ネットワーク調査方法およびネットワーク調査装置
【課題】複数の端末が接続されるネットワークにおいて端末間の通信効率を向上させるための通信コストを推定する。
【解決手段】複数のネットワーク機器を介して複数の端末が接続されるネットワークの通信コストを算出するネットワーク調査装置は、前記複数の端末へ調査パケットを送信する送信部と、前記調査パケットに対応する応答パケットを受信する受信部と、前記受信部による前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出する検出部と、前記送信部が前記調査パケットを繰り返し送信したときに前記検出部により検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する算出部、を有する。
【解決手段】複数のネットワーク機器を介して複数の端末が接続されるネットワークの通信コストを算出するネットワーク調査装置は、前記複数の端末へ調査パケットを送信する送信部と、前記調査パケットに対応する応答パケットを受信する受信部と、前記受信部による前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出する検出部と、前記送信部が前記調査パケットを繰り返し送信したときに前記検出部により検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する算出部、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の端末が接続されたネットワークを調査する方法および装置に係わる。
【背景技術】
【0002】
クライアント・サーバ型のデータ配信システムでは、データ受信端末の数の増加に応じて、配信サーバの負荷も大きくなる。このため、大規模な配信システムにおいては、アクセスが集中する配信サーバまたはネットワークインフラのキャパシティを大きくする必要があり、配信コストが増加してしまう。このような背景もあり、近年では、ピア・ツー・ピア(P2P:peer-to-peer)技術を応用したデータ配信方法が注目されている。
【0003】
P2Pを利用したストリーミング配信方法では、例えば、データを受信した端末が、そのデータを他の端末へ転送する。この場合、各端末がそれぞれ中継装置として動作し、大規模な同報配信が実現される。この方法によれば、端末の数が増加しても、配信サーバの負荷はさほど増加することはない。
【0004】
P2Pデータ配信は、物理的なネットワーク環境を意識する必要はなく、端末間の論理リンクで形成される論理ネットワーク(或いは、オーバーレイネットワーク)上でのデータ配信とみなすことができる。また、P2Pデータ配信においては、論理ネットワーク上の端末同士の接続方法により、物理的なネットワーク上を流れるデータトラフィック量が決まる。
【0005】
図1は、P2Pデータ配信について説明する図である。図1に示すネットワークでは、3台の端末n1〜n3がルータA〜Dを介して接続されている。このようなネットワークにおいて、端末n1から端末n2、n3へP2P方式でデータを配信するものとする。この場合、端末n1から端末n2、n3へのデータ配信は、例えば、下記の手順Aまたは手順Bにより実現される。
(手順A)端末n1は端末n2へデータを送信し、端末n2はそのデータを端末n3へ転送する
(手順B)端末n1は端末n3へデータを送信し、端末n3はそのデータを端末n2へ転送する
【0006】
ここで、データ配信のネットワーク距離がより短い手順を適切に選択すれば、データ配信の効率が高くなる。ネットワーク距離は、例えば、通信経路上のルータの台数によって表わされる。例えば、手順1においては、端末n1から端末n2への経路上に3台のルータC、B、Aが存在し、端末n2から端末n3への経路上に2台のルータA、Dが存在する。すなわち、手順1の総ネットワーク距離は「5」である。一方、手順2においては、端末n1から端末n3への経路上に4台のルータC、B、A、Dが存在し、端末n3から端末n2への経路上に2台のルータD、Aが存在する。すなわち、手順2の総ネットワーク距離は「6」である。この場合、手順2ではなく手順1を選択することにより、データ配信の効率が高くなる。なお、通信経路上のルータの台数は、例えば、tracerouteコマンドまたはtracertコマンドにより検出することができる。
【0007】
図2は、複数のスイッチングハブを備えるサブネットワークの一例を示す図である。図2に示す例では、サブネットワークは、5台のスイッチングハブSW1〜SW5を備え、ルータの配下に構築されている。そして、端末N1〜N6は、スイッチングハブSW1〜SW5を介してデータを送受信することができる。
【0008】
以下の例では、ネットワークトポロジ(ネットワーク距離)が図1のルータで構成されるネットワーク同様に把握できていることを前提に動作について説明する。
本例では、端末N1から端末N2〜N6へP2P方式でデータが配信されるものとする。この場合、端末N1は、ネットワーク距離が最も短い宛先端末へデータを送信する。図2に示す構成では、端末N1から端末N2へデータが送信される。続いて、端末N2は、受信データを、ネットワーク距離が最も短い他の宛先端末へ転送する。図2に示す構成では、端末N2から端末N3へデータが転送される。以下同様に、各端末は、ネットワーク距離に基づいて、受信データを他の端末へ転送する。これにより、端末N1から端末N2〜N6への効率的なデータ配信が実現される。
【0009】
関連する技術として、特許文献1には、異なるプロトコルを用いてネットワークに接続している管理対象デバイスについても認識が可能なネットワーク構成調査方法が記載されている。このネットワーク構成調査方法は、使用可能なプロトコルの種別を取得し、全てのプロトコルを用いてネットワークに接続された機器へ応答を要請する探索要求を発行する。そして、機器からの応答を集計し、集計結果に基づき機器の管理に用いるデバイスリストを表示する。
【0010】
他の関連する技術として、特許文献2には、宅内ネットワークの構成調査を行う通信装置が記載されている。この通信装置は以下の構成を備える。TTLを変化させたルータ調査用パケットを生成し、前記ルータ調査用パケットの送信先を切り替える調査用パケット作成部。前記ルータ調査用パケットに対応してルータから返信されるICMPパケットから前記ルータのアドレスを取得する受信パケット解析部。前記受信パケット解析部から情報を取得し、前記ルータ調査用パケット作成部を制御し、ネットワークの調査を施す制御部。前記ルータ調査用パケットおよびICMPパケットを送受信するパケット送受信部。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2000−172600号公報
【特許文献2】特開2006−345347号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
上述のように、P2P方式で複数の端末にデータを配信する場合、各端末がそれぞれネットワーク距離の短い宛先端末へデータを転送することにより、効率的なデータ配信が実現される。ところが、ネットワークがL2スイッチ(あるいは、スイッチングハブ)で構築されている場合は、以下の理由により、効率的にデータを配信できないことがある。なお、「L2」は、OSI参照モデルのレイヤ2を表す。
【0013】
L2スイッチは、データの宛先情報に基づいてそのデータを転送するが、IPレイヤまたはIPレイヤよりも上位レイヤのコマンド(例えば、tracerouteコマンド)を処理することはできない。このため、L2スイッチで構築されるネットワークにおいては、通信装置(端末、L2スイッチ、ネットワーク管理装置など)は、IPレイヤまたはそれよりも上位のレイヤからL2スイッチの存在を検出することはできず、通信経路上のL2スイッチの台数を測定することはできない。すなわち、端末間のネットワーク距離を予め測定しておくことは困難である。したがって、このようなネットワークでは、各端末は、ネットワーク距離の短い宛先端末を適切に選択することはできず、効率の悪いデータ配信が行われることがあった。
【0014】
なお、この問題は、ネットワークがL2スイッチで構築されている場合に限らず、ネットワークが1台以上のL2スイッチを含んでいる場合に発生し得る。また、この問題は、L2スイッチに限定されるものではなく、IPコマンドを処理できない機器を含むネットワークにおいて発生し得る。
【0015】
本発明の課題は、複数の端末が接続されるネットワークにおいて、端末間の通信効率を向上させるための通信コストを推定することである。
【課題を解決するための手段】
【0016】
本発明の1つの態様のネットワーク調査装置は、複数のネットワーク機器を介して複数の端末が接続されるネットワークにおいて使用され、前記複数の端末へ調査パケットを送信する送信部と、前記調査パケットに対応する応答パケットを受信する受信部と、前記受信部による前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出する検出部と、前記送信部が前記調査パケットを繰り返し送信したときに前記検出部により検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する算出部、を有する。
【発明の効果】
【0017】
本出願において開示される方法または構成によれば、複数の端末が接続されるネットワークにおいて、端末間の通信効率を向上させるための通信コストを推定することが可能となる。
【図面の簡単な説明】
【0018】
【図1】図1は、P2Pデータ配信について説明する図である。
【図2】図2は、複数のスイッチングハブを備えるサブネットワークの一例を示す図である。
【図3】図3は、実施形態のネットワーク調査方法が使用されるネットワークの構成の一例を示す図である。
【図4】図4は、ネットワーク調査装置の構成を示す図である。
【図5】図5(a)は、調査パケットの実施例であり、図5(b)は、応答パケットの実施例である。
【図6】図6(a)は、一時リストの実施例であり、図6(b)は、端末リストの実施例である。
【図7】図7は、端末グループの検出方法を説明する図である。
【図8】図8は、グループ情報リストの実施例である。
【図9】図9は、グループ情報リストを作成する処理を示すフローチャートである。
【図10】図10は、端末グループの集約化処理を示すフローチャートである。
【図11】図11は、端末グループ間の包含関係に矛盾が生じるケースについて説明する図である。
【図12】図12は、通信コストを算出する処理を示すフローチャートである。
【図13】図13は、通信コストテーブルの実施例である。
【図14】図14は、他の実施形態のネットワーク調査方法が使用されるネットワークの構成の一例を示す図である。
【図15】図15は、他の実施形態において作成された通信コストテーブルの実施例である。
【図16】図16は、ネットワーク調査装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【0019】
図3は、実施形態のネットワーク調査方法が使用されるネットワークの構成の一例を示す図である。この例では、ルータ1に接続されるサブネットワーク2において実施形態のネットワーク調査方法が使用される。なお、ルータ1は、外部ネットワーク3とサブネットワーク2とを接続する。また、ルータ1は、この例では、OSI参照モデルのレイヤ3以上の機能を実装し、例えば、tracerouteコマンド等に応答する機能を備える。
【0020】
サブネットワーク2は、複数のネットワーク機器(この実施例では、スイッチングハブSW1〜SW5)により構築されている。スイッチングハブSW1は、ルータ1に接続されている。また、スイッチングハブSW1には、スイッチングハブSW2、SW4が接続されている。さらに、スイッチングハブSW2にはスイッチングハブSW3が接続され、スイッチングハブSW4には、スイッチングハブSW5が接続されている。スイッチングハブSW1〜SW5は、例えば、L2スイッチである。すなわち、スイッチングハブSW1〜SW5は、この例では、IPコマンドおよびレイヤ3以上のプロトコルのコマンドを実行できないものとする。
【0021】
サブネットワーク2には、6台の端末N1〜N6が接続されている。端末N1、N2はスイッチングハブSW3に収容され、端末N3はスイッチングハブSW2に収容され、端末N4はスイッチングハブSW4に収容され、端末N5、N6はスイッチングハブSW5に収容されている。
【0022】
各端末N1〜N6は、P2P(peer-to-peer)で他の端末とデータを送受信する機能を備えている。また、各端末N1〜N6には、P2Pで同報配信を実現するための宛先情報が設定されている。例えば、端末N1、N2、N3、N4、N5、N6には、宛先情報としてそれぞれ自身を除く端末N1、N2、N3、N4、N5、N6が設定されている。この場合、ルータ1は、外部ネットワーク3から受信した端末N1宛の同報データをSW1→SW2→SW3経由で端末N1へ転送する。そうすると、端末N1は、宛先情報を参照し、外部ネットワーク3から受信した同報データをSW3経由で端末N2へ転送する。続いて、端末N2は、宛先情報を参照し、端末N1から受信した同報データをSW3→SW2経由で端末N3へ転送する。同様に、端末N3、N4、N5は、それぞれ、宛先情報に従って同報データをSW経由で端末N4、N5、N6へ転送する。これにより、端末N1〜N6は同報データを受信する。なお、端末N6は、受信した同報データを、さらに他のサブネットワークに収容されている端末へ転送するようにしてもよい。
【0023】
ネットワーク調査装置10は、サーバコンピュータであり、サブネットワーク2のトポロジを検出し、端末N1〜N6間の通信コストを算出する。通信コストは、後で詳しく説明するが、例えば、端末間の通信経路上に存在するスイッチングハブの台数に相当する。また、ネットワーク調査装置10は、端末N1〜N6間の通信コストに基づいて、上述した宛先情報を生成するようにしてもよい。この場合、宛先情報は、例えば、上述した同報配信の通信効率が最適化されるように決定される。なお、ネットワーク調査装置10は、端末N1〜N6に宛先情報を配布するようにしてもよい。或いは、端末N1〜N6は、ネットワーク調査装置10に対応する宛先情報を要求するようにしてもよい。
【0024】
ネットワーク調査装置10は、図3に示す例ではスイッチングハブSW1に接続されているが、他の任意のスイッチングハブSW2〜SW5に接続されるようにしてもよい。また、ネットワーク調査装置10は、ルータ1に接続されていてもよいし、外部ネットワーク3上に設けられていてもよい。
【0025】
図4は、ネットワーク調査装置10の構成を示す図である。ネットワーク調査装置10は、この実施例では、送信部11、受信部12、検出部13、算出部14を備える。
送信部11は、調査対象のネットワークに接続されているすべての端末へ調査パケットを送信する。図3に示す例では、送信部11は、サブネットワーク2に接続されている端末N1〜N6それぞれに対して調査パケットを送信する。
【0026】
送信部11は、特に限定されるものではないが、IPマルチキャストまたはブロードキャストにより調査パケットを送信する。例えば、IPマルチキャストが実行される場合には、IPヘッダには予め決められたIPマルチキャストアドレス(例:224.0.0.1)が設定され、端末N1〜N6は、同IPマルチキャストアドレスの調査パケットを受信するよう設定される。この場合、図3に示すスイッチングハブSW1〜SW5は、IPマルチキャストアドレスに従って、ネットワーク調査装置10から送信された調査パケットを端末N1〜N6へ転送する。
【0027】
このとき、ネットワーク調査装置10から送信される調査パケットは、ルータ1にも転送される。ただし、ルータ1は、特に限定されるものではないが、受信した調査パケットを外部ネットワーク2に送出しないように設定されている。もしくは、外部ネットワーク2に上述のIPマルチキャストアドレスを受信する端末がなく、外部に転送されないものとする。
【0028】
送信部11は、特に限定されるものではないが、再送機能を有していないプロトコルで調査パケットを送信する。すなわち、送信部11は、例えば、UDPで調査パケットを送信する。
【0029】
調査パケットには、図5(a)に示すように、ID、調査番号、返送アドレス、返送ポートが設定される。IDは、パケットタイプを表す情報である。したがって、調査パケットのIDフィールドには、調査パケットを表す予め決められた値が設定される。調査番号は、ネットワーク調査装置10が端末N1〜N6へ調査パケットを送信する手順を繰り返し実行する際に、各送信手順を識別するシーケンス番号に相当する。したがって、1回のマルチキャストまたはブロードキャストで端末N1〜N6へ送信される各調査パケットには、同じ調査番号が割り当てられている。返送アドレスおよび返送ポートは、調査パケットを受信した端末が応答パケットを返送する宛先を指示するアドレスおよびTCP/IPポート番号を表す。この実施例では、返送アドレスには、ネットワーク調査装置10のIPアドレスが設定される。また、返送ポートには、ネットワーク調査装置10において応答パケットを受信するために予め予約されたポート番号が設定される。
【0030】
各端末N1〜N6は、上述の調査パケットを受信すると、図5(b)に示す応答パケットを作成してネットワーク調査装置10へ返送する。このとき、各端末N1〜N6は、特に限定されるものではないが、再送機能を有しているプロトコルで応答パケットを送信する。すなわち、各端末N1〜N6は、例えば、TCPで応答パケットを送信する。
【0031】
応答パケットのIPヘッダの宛先IPアドレスには、調査パケットで通知される「返送アドレス」が設定される。すなわち、応答パケットの宛先IPアドレスは、ネットワーク調査装置10のIPアドレスである。また、応答パケットのTCPヘッダの宛先ポート番号には、調査パケットにより通知される「返送ポート」が設定される。さらに、応答パケットのIDフィールドには、応答パケットを表す予め決められた値が設定される。なお、応答パケットに設定される調査番号は、受信した調査パケットの調査番号がそのまま使用される。
【0032】
各端末N1〜N6は、調査パケットを受信すると、上述の応答パケットをネットワーク調査装置10に送信する。そうすると、スイッチングハブSW1〜SW5は、端末N1〜N6から送信された応答パケットをネットワーク調査装置10へ転送する。このとき、応答パケットには、応答パケットの送信元端末を識別する情報を含んでいる。応答パケットの送信元端末を識別する情報は、例えば、IPヘッダに設定される送信元IPアドレスである。よって、ネットワーク調査装置10は、応答パケットの送信元端末を検出することができる。
【0033】
受信部12は、送信部11から送信された調査パケットに対応する応答パケットを受信する。この実施例では、受信部12は、上述した「返送ポート」により指示されるTCPポートで、端末N1〜N6から送信される応答パケットを待ち受ける。そして、受信部12は、端末N1〜N6から受信した応答パケットを検出部13に渡す。ただし、受信部12は、送信部11が調査パケットを送信したときから、所定時間ΔTが経過するまでの期間だけ、その調査パケットに対応する応答パケットを待ち受ける。例えば、送信部11が時刻T1に調査番号001が設定された調査パケットを送信した場合、受信部12は、調査番号001が設定されている応答パケットを、時刻T1+ΔTまで待ち受ける。つづいて、送信部11が時刻T2に調査番号002が設定された調査パケットを送信した場合、受信部12は、調査番号002が設定されている応答パケットを、時刻T2+ΔTまで待ち受ける。
【0034】
なお、調査パケットに設定される調査番号および調査パケットの送信時刻は、例えば、送信部11から受信部12に通知される。或いは、検出部13が調査番号を管理するようにしてもよい。この場合、検出部13から送信部11および受信部12へ調査番号が通知される。
【0035】
検出部13は、受信部12による応答パケットの受信結果に基づいて、調査対象のネットワークに接続されている全ての端末の中で、調査パケットを受信していない端末が属する端末グループを検出する。すなわち、検出部13は、端末N1〜N6の中で、調査パケットを受信していない端末が属する端末グループを検出する。ここで、検出部13は、一時リスト15および端末リスト16を利用して端末グループを検出する。一時リスト15および端末リスト16は、検出部13の内部に設けられてもよいし、検出部13の外部に設けられてもよい。また、検出部13は、調査番号ごとに(すなわち、マルチキャストまたはブロードキャストで端末N1〜N6へ調査パケットを送信するごとに)、端末グループを検出する。
【0036】
図6(a)は、一時リスト15の実施例である。一時リスト15には、調査番号ごとに、応答パケットの送信元端末が登録される。すなわち、検出部13は、受信部12が受信した応答パケットの調査番号および送信元端末をチェックする。ここで、応答パケットの送信元端末は、例えば、IPヘッダに設定されている送信元IPアドレスにより識別される。そして、検出部13は、受信部12により応答パケットが受信される毎に、その受信応答パケットの送信元端末を一時リスト15に登録する。図6(a)に示す例は、送信部11が調査番号100の調査パケットを端末N1〜N6へ送信し、受信部12がその調査パケットに対応する応答パケットを端末N3、N4、N5、N6から受信したときの、一時リスト15の状態を表している。
【0037】
図6(b)は、端末リスト16の実施例である。端末リスト16には、調査対象のネットワークに接続されている端末が登録される。したがって、この実施例では、端末リスト16には、サブネットワーク2に接続されている端末N1、N2、N3、N4、N5、N6が登録されている。ここで、調査対象のネットワークに接続される端末が予め決められている場合には、端末リスト16は予め作成される。一方、調査対象のネットワークに接続される端末が既知でない場合には、端末リスト16は、例えば、以下の手順Aにより作成される。
(a1)調査パケットをマルチキャストまたはブロードキャストで送信する。
(a2)上記(a1)で送信した調査パケットに対応する応答パケットの送信元端末を一時リスト15に登録する。
(a3)一時リスト15および端末リスト16を対比し、一時リスト15のみに登録されている端末があれば、その端末を端末リスト16に追加する。
(a4)一時リスト15をリセットする。
(a5)上記(a1)〜(a4)を所定回数繰り返し実行する。
【0038】
なお、検出部13は、上記手順(a1)〜(a5)で端末リスト16を作成しながら、端末グループを検出するようにしてもよい。或いは、検出部13は、上記手順(a1)〜(a5)で端末リスト16を作成した後に、端末グループを検出するようにしてもよい。
【0039】
検出部13は、以下の手順Bで端末グループを検出する。
(b1)送信部11に調査パケットの送信を指示する。これにより、送信部11は、調査番号iの調査パケットを、マルチキャストまたはブロードキャストで、端末N1〜N6へ送信する。このとき、調査パケットは、基本的に、端末リスト16に登録されているすべての端末へ送信される。
(b2)上記(b1)で送信した調査パケットに対応する応答パケット(すなわち、調査番号iの応答パケット)の送信元端末を、一時リスト15に登録する。
(b3)一時リスト15および端末リスト16を参照し、端末リスト16に登録されているが、一時リスト15には登録されていない端末を検出する。これにより検出される1または複数の端末は「応答パケットの送信元端末以外の端末」である。
(b4)上記(b3)で検出された1または複数の端末を要素とする端末グループを、調査番号iに対して得られる端末グループとして出力する。
(b5)一時リスト15をリセットする。
【0040】
このように、検出部13は、調査番号iに対して「応答パケットの送信元端末以外の端末」を要素とする端末グループを検出する。例えば、図6に示す例では、端末リスト16に端末N1〜N6が登録され、調査番号100に対して一時リスト15に端末N3〜N6が登録されている。すなわち、端末N1、N2は、端末リスト16に登録されているが、一時リスト15には登録されていない。この場合、検出部13は、調査番号100に対して「端末グループ=N1、N2」を出力する。
【0041】
検出部13は、調査番号iをカウントアップしながら上記手順(b1)〜(b5)を繰り返し実行する。なお、一時リスト15および端末リスト16に登録されている端末が互いにすべて一致する場合は、端末グループは検出されない。すなわち、「端末グループ=該当なし」が出力される。
【0042】
図7は、端末グループの検出方法を説明する図である。ここでは、ネットワーク調査装置10から端末N1〜N6へマルチキャストまたはブロードキャストで調査パケットが送信されるものとする。このとき、調査パケットは、基本的には、すべての端末N1〜N6に到達する。ただし、ネットワークを介して伝送されるパケットは、例えばネットワークの輻輳時には、廃棄されることがある。すなわち、ネットワーク調査装置10から端末N1〜N6へ送信される調査パケットは、ネットワーク上でパケットロスが発生することがある。
【0043】
図7(a)に示す例では、スイッチングハブSW3において輻輳が発生し、調査パケットがスイッチングハブSW3において廃棄されている。この場合、ネットワーク調査装置10から送信される調査パケットは、端末N3〜N6には到達するが、端末N1、N2には到達しない。なお、調査パケットは、この実施例では、再送機能を有していないプロトコルで送信される。したがって、スイッチングハブSW3においてパケットロスが発生すると、上記調査パケットは、端末N1、N2により受信されることはない。
【0044】
端末N3〜N6は、調査パケットを受信すると、それぞれ、対応する応答パケットを作成してネットワーク調査装置10へ返送する。このとき、応答パケットは、この実施例では、再送機能を有するプロトコルで送信される。したがって、端末N3〜N6から送信される応答パケットは、サブネットワーク2が輻輳している場合であっても、確実に、ネットワーク調査装置10へ到達する。すなわち、ネットワーク調査装置10は、端末N3〜N6から応答パケットを受信する。
【0045】
一方、端末N1、N2は、この例では、調査パケットを受信しないので、いずれも応答パケットを送信しない。よって、ネットワーク調査装置10は、端末N1、N2から応答パケットを受信することはない。
【0046】
ネットワーク調査装置10の検出部13は、所定時間内に端末N1、N2から応答パケットを受信できなかったときは、端末N1、N2をグループ化する。すなわち、端末グループ「N1、N2」が検出される。
【0047】
このように、調査パケットを受信した端末は、ネットワーク調査装置10へ応答パケットを返送する。このとき、端末から送信される応答パケットは、上述したように、確実にネットワーク調査装置10へ到達する。よって、ネットワーク調査装置10が端末N1、N2から応答パケットを受信できない原因は、調査パケットが端末N1、N2へ到達しなかったことであると考えられる。すなわち、応答パケットの送信元端末以外の端末は、調査パケットを受信していないと考えられ、端末N1、N2は、「調査パケットを受信できなかった端末」としてグループ化される。また、調査パケットが端末N1、N2へ到達しなかった原因は、端末N1、N2に共通して係わるネットワーク機器(この実施例では、スイッチングハブSW3)において、調査パケットが廃棄された可能性が高いと考えられる。
【0048】
したがって、上述のようにして検出される端末グループは、ネットワークトポロジを表す情報として利用することができる。例えば、端末グループ「N1、N2」が検出されたときは、端末N1、N2が同じスイッチングハブに接続されているか、あるいは、端末N1、N2がネットワーク機器10から見て同じスイッチングハブの先に設けられていると考えられる。図7(a)に示す例では、端末1、N2は、いずれもスイッチングハブSW3に接続されている。
【0049】
図7(b)に示す例では、スイッチングハブSW4において輻輳が発生し、調査パケットがスイッチングハブSW4において廃棄されている。この場合、ネットワーク調査装置10から送信される調査パケットは、端末N1〜N3には到達するが、端末N4〜N6には到達しない。
【0050】
この場合、ネットワーク調査装置10は、端末N1〜N3から応答パケットを受信するが、端末N4〜N6からは応答パケットを受信することはない。そうすると、検出部13は、端末N4、N5、N6をグループ化する。すなわち、端末グループ「N4、N5、N6」が検出される。
【0051】
端末グループ「N4、N5、N6」が検出されたときは、端末N4、N5、N6に共通して係わるネットワーク機器(この実施例では、スイッチングハブSW4)において、調査パケットが廃棄された可能性が高いと考えられる。この場合、端末N4、N5、N6が同じスイッチングハブに接続されているか、あるいは、端末N4、N5、N6がネットワーク機器10から見て同じスイッチングハブの先に設けられていると考えられる。図7(b)に示す例では、端末4、N5、N6は、いずれもネットワーク機器10から見てスイッチングハブSW4の先に接続されている。
【0052】
ネットワーク調査装置10は、上記調査を繰り返し実行する。「調査」は、サブネットワーク2に接続されているすべての端末へ調査パケットを送信して応答をモニタする手順に相当する。そして、検出部13は、各調査において、各端末から対応する応答パケットを受信できるか否かに応じて、複数の端末グループを検出する。なお、検出部13により検出された端末グループは、算出部14に通知される。
【0053】
算出部14は、検出部13により検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する。このとき、算出部14は、グループ情報リスト17を更新および参照しながら、端末間の通信コストを算出する。
【0054】
図8は、グループ情報リスト17の実施例を示す。グループ情報リスト17には、検出部13により検出された端末グループが登録される。図8に示す例では、6つの端末グループ「N1、N2」「N4、N5、N6」「N1、N2、N3」「N5、N6」「N1、N2、N3、N4、N5、N6」「N1、N2、N5、N6」がグループ情報リスト17に登録されている。なお、例えば、端末グループ「N1、N2」は、ネットワーク調査装置10が端末N1、N2から応答パケットを受信できなかったときに登録される。また、例えば、端末グループ「N4、N5、N6」は、ネットワーク調査装置10が端末N4、N5、N6から応答パケットを受信できなかったときに登録される。
【0055】
また、グループ情報リスト17は、各端末グループについて検出頻度(図8では、頻度カウンタ)を管理する。検出頻度は、この例では、検出部13により端末グループが検出された回数を表す。すなわち、算出部14は、検出部13によりある端末グループが検出されると、その端末グループの頻度カウンタをカウントアップする。なお、図8に示す例では、例えば、端末グループ「N1、N2」が15回検出され、端末グループ「N4、N5、N6」が12回検出された状態を示している。さらに、算出部14は、グループ情報リスト17において、登録されている端末グループを検出頻度に応じてソートする。
【0056】
図9は、グループ情報リスト17を作成する処理を示すフローチャートである。この処理は、送信部11、受信部12、検出部13、算出部14により実行される。また、この処理は、例えば、定期的に繰り返し実行される。
【0057】
ステップS1において、検出部13は、調査番号を設定する。調査番号は、例えばシーケンス番号であり、各「調査」に対して異なる値が使用される。「調査」は、上述したように、サブネットワーク2に接続されているすべての端末へ調査パケットを送信して応答を検出する手順に相当する。そして、検出部13は、調査番号を送信部11および受信部12に通知する。なお、この例では、調査番号は検出部13により生成されるが、他の回路要素により生成されるようにしてもよい。
【0058】
ステップS2において、送信部11は、調査パケットを作成してサブネットワーク2に接続されているすべての端末へ送信する。このとき、調査パケットには、検出部13から通知された調査番号が設定される。また、調査パケットは、マルチキャストまたはブロードキャストにより送信される。
【0059】
ステップS3において、受信部12および検出部13は、調査結果を収集する。すなわち、まず、受信部12は、送信部11が調査パケットを送信したときから所定の期間が経過するまで、検出部13から通知された調査番号が設定されている応答パケットを待ち受ける。そして、検出部13は、受信部12が受信した各応答パケットの送信元端末と、端末リスト16に登録されている端末とを比較する。ここで、応答パケットの送信元端末は調査パケットを受信しており、他の端末は調査パケットを受信していないと考えられる。すなわち、調査パケットを受信していない端末が検出される。
【0060】
ステップS4において、検出部13は、応答パケットの受信状況に基づいて、調査パケットを受信していない端末があるか否かを判定する。そして、調査パケットを受信していない端末があれば、処理はステップS5に移る。なお、受信部12がすべての端末から応答パケットを受信したときは、処理は終了する。
【0061】
ステップS5において、検出部13は、調査パケットを受信していない端末をグループ化する。そして、算出部14は、グループ情報リスト17において、検出部13により検出された端末グループの頻度カウンタをインクリメント(カウント値を「1」だけカウントアップ)する。そして、ステップS6において、算出部14は、更新されたグループ情報リスト17を、頻度カウンタの値に従ってソートする。
【0062】
このように、ネットワーク調査装置10は、図9に示すフローチャートの処理を繰り返し実行することによりグループ情報リスト17を作成する。ここで、ステップS5〜S6の処理は、基本的に、ネットワーク調査装置10から送信された調査パケットが、サブネットワーク2内のいずれかのスイッチングハブで廃棄されたときに実行される。即ち、グループ情報リスト17は、基本的に、調査パケットが廃棄されたときに更新される。
【0063】
算出部14は、上述のようにして作成したグループ情報リスト17を利用して、端末グループの集約化を実行する。なお、端末グループの集約化は、調査対象のネットワークのトポロジを検出する処理に相当する。
【0064】
図10は、端末グループの集約化処理を示すフローチャートである。このフローチャートの処理は、例えば、グループ情報リスト17が作成された後に、算出部14によって実行される。
【0065】
ステップS11において、算出部14は、トポロジ情報を初期化する。ここで、トポロジ情報は、特に図示しないが、ネットワーク調査装置10が有する所定のメモリ領域に作成される。
【0066】
ステップS12において、算出部14は、グループ情報リスト17から、頻度カウンタの値が最大の端末グループを選択する。なお、グループ情報リスト17は、頻度カウンタの値に従って端末グループがソートされているものとする。
【0067】
ステップS13において、算出部14は、処理対象のグループ情報とトポロジ情報との間に、共通の要素が存在するか否かを判定する。処理対象のグループ情報は、ステップS12またはS19において選択された端末グループに属する1または複数の端末を表す。トポロジ情報は、後で実施例を参照しながら説明するが、端末間の関係を表す。なお、トポロジ情報は、ステップS11で初期化された時点では、1つの要素も含んでいない。また、トポロジ情報は、ステップS14またはS16において更新される。そして、処理対象のグループ情報とトポロジ情報との間に共通の要素(すなわち、端末ID)が存在するときは、処理はステップS14へ移行する。一方、それらの間に共通の要素が存在しないときは、処理はステップS17へ移行する。
【0068】
ステップS14において、算出部14は、処理対象のグループ情報とトポロジ情報内の各部分リストとの間の包含関係の有無を検出する。ここで、各部分リストは、後で実施例を参照しながら説明するが、1または複数の端末IDを含んでいる。例えば、処理対象のグループ情報が「N1、N2」であり、トポロジ情報内の部分リストが「(N1、N2、N3)」であるものとする。この場合、この部分リストが処理対象のグループ情報を包含していると判定される。また、処理対象のグループ情報が「N1、N2」であり、トポロジ情報内の部分リストが「(N2、N3)」であるものとする。この場合、処理対象のグループ情報に属する「N1」は部分リストの要素ではなく、部分リストに属する「N3」は処理対象のグループ情報の要素ではない。したがって、処理対象のグループ情報とトポロジ情報との間に包含関係は存在しないと判定される。
【0069】
処理対象のグループ情報とトポロジ情報内の部分リストとの間に包含関係が存在するときは(ステップS14:Yes)、ステップS15において、算出部14は、トポロジ情報を更新する。このとき、処理対象のグループ情報との間に包含関係を有する部分リストが、処理対象のグループ情報とトポロジ情報との間の包含関係を表す包含リストに置き換えられる。
【0070】
処理対象のグループ情報とトポロジ情報内の部分リストとの間に包含関係が存在しないときは(ステップS14:No)、ステップS16において、算出部14は、処理対象のグループ情報がエラーを含んでいると判定する。この場合、ステップS15の処理はスキップされる。また、処理対象のグループ情報は廃棄される。
【0071】
なお、処理対象のグループ情報とトポロジ情報との間に共通の要素が存在しないときには(ステップS13:No)、算出部14は、ステップS17において、処理対象のグループ情報により表わされる端末リストを、新たな部分リストとしてトポロジ情報に追加する。この場合も、ステップS15の処理はスキップされる。
【0072】
ステップS18〜S19において、算出部14は、グループ情報リスト17に登録されているすべての端末グループを選択したか否かをチェックする。そして、グループ情報リスト17に未選択の端末グループが存在する場合には、算出部14は、次の端末グループを選択してステップS13に戻る。すなわち、算出部14は、グループ情報リスト17から頻度カウンタに応じて端末グループを1つずつ順番に選択してステップS13〜S19の処理をそれぞれ実行する。これにより、端末グループが集約化され、トポロジ情報が生成される。
【0073】
次に、図10に示す端末グループの集約化処理の実施例を説明する。ここでは、図8に示すグループ情報リスト17が先に作成されているものとする。
まず、ステップS12において、図8に示すグループ情報リスト17から、頻度カウンタの値が最大の端末グループが選択される。すなわち、端末グループ「N1、N2」が選択される。このとき、トポロジ情報は初期化されているので、処理対象のグループ情報とトポロジ情報との間に共通の要素は存在せず、ステップS13において「No」と判定される。したがって、ステップS17において、端末グループ「N1、N2」が、1つの部分リストとしてトポロジ情報に追加される。この結果、トポロジ情報は、下記のように更新される。
トポロジ情報1=(N1、N2)
【0074】
なお、トポロジ情報i(i=1,2,3,...)は、i番目の端末グループに対する集約化処理が実行されたときのトポロジ情報を表すものとする。また、トポロジ情報の表記において、括弧記号は、端末グループを表す。すなわち、1つの括弧内に記載されている複数の端末は、同じ端末グループに属していることを表す。
【0075】
続いて、2番目に高い頻度の端末グループが選択される。すなわち、端末グループ「N4、N5、N6」が選択される。ここで、選択された端末グループ「N4、N5、N6」とトポロジ情報1「(N1、N2)」との間には、共通の要素は存在しない。この場合、処理対象のグループ情報に属する端末、およびトポロジ情報1に含まれている端末は、互いに並列に配置されていると判定される。そして、ステップS17において、端末グループ「N4、N5、N6」は、新たな部分リストとしてトポロジ情報に追加される。この結果、トポロジ情報は、下記のように更新される。
トポロジ情報2=(N1、N2)(N4、N5、N6)
なお、トポロジ情報の表記において、異なる括弧に属する端末は、異なる端末グループに属する。
【0076】
続いて、3番目の端末グループ「N1、N2、N3」が選択される。ここで、選択された端末グループ「N1、N2、N3」とトポロジ情報2「(N1、N2)(N4、N5、N6)」との間には、共通の要素が存在する。また、選択された端末グループ「N1、N2、N3」とトポロジ情報2の部分リスト「(N1、N2)」との間には、包含関係が存在する。すなわち、部分リスト「(N1、N2)」の各要素は、全て、端末グループ「N1、N2、N3」の要素に含まれている。したがって、この場合、ステップS15において、この包含関係を表す包含リスト「((N1、N2)N3)」が作成される。さらに、処理対象のグループ情報との間に包含関係を有する部分リスト「(N1、N2)」が、処理対象のグループ情報とトポロジ情報との間の包含関係を表す包含リスト「((N1、N2)N3)」に置き換えられる。この結果、トポロジ情報は、下記のように更新される。
トポロジ情報3=((N1、N2)N3)(N4、N5、N6)
【0077】
なお、トポロジ情報および包含リストの表記において、多重括弧は、端末グループが親子関係を有していることを表す。例えば、「((N1、N2)N3)」は、端末グループ「N1、N2、N3」の中に、子端末グループ「N1、N2」が存在していることを表している。
【0078】
続いて、4番目の端末グループ「N5、N6」が選択される。ここで、選択された端末グループ「N5、N6」とトポロジ情報3「((N1、N2)N3)(N4、N5、N6)」との間には、共通の要素が存在する。また、選択された端末グループ「N5、N6」とトポロジ情報3の部分リスト「(N4、N5、N6)」との間には、包含関係が存在する。すなわち、端末グループ「N5、N6」の各要素は、全て、部分リスト「(N4、N5、N6)」の要素に含まれている。したがって、ステップS15において、この包含関係を表す包含リスト「(N4(N5、N6))」が作成される。そして、トポロジ情報3の部分リスト「(N4、N5、N6)」が、この包含リスト「(N4(N5、N6))」に置き換えられる。この結果、トポロジ情報は、下記のように更新される。
トポロジ情報4=((N1、N2)N3)(N4(N5、N6))
【0079】
続いて、5番目の端末グループ「N1、N2、N3、N4、N5、N6」が選択されると、同様に、トポロジ情報は下記のように更新される。
トポロジ情報5=(((N1、N2)N3)(N4(N5、N6)))
【0080】
さらに、6番目の端末グループ「N1、N2、N5、N6」が選択される。ここで、この端末グループ「N1、N2、N5、N6」とトポロジ情報5「(((N1、N2)N3)(N4(N5、N6)))」との間には、共通の要素が存在する。ところが、この端末グループ「N1、N2、N5、N6」とトポロジ情報5の各部分リストとの間には、包含関係は存在しない。トポロジ情報5は、部分リスト1「((N1、N2)N3)」および部分リスト2「(N4(N5、N6))」を有する。しかしながら、部分リスト1に属する「N3」は上記端末グループに属しておらず、且つ、上記端末リストに属する「N5」「N6」は部分リスト1に属していない。すなわち、6番目の端末リストと部分リスト1との間に包含関係は存在しない。同様に、6番目の端末リストと部分リスト2との間にも包含関係は存在しない。よって、ステップS14において「No」と判定され、ステップS16においてエラーが検出される。
【0081】
上述のようにしてグループ情報リスト17に登録されているすべての端末グループについてステップS13〜S17の処理を実行すると、算出部14は、作成したトポロジ情報を出力する。上述の例では、トポロジ情報5が出力される。
【0082】
このように、算出部14は、グループ情報リスト17に登録されている各端末グループについてステップS13〜S17の処理を実行することにより、トポロジ情報を作成して出力する。ただし、算出部14は、グループ情報リスト17に登録されている一部の端末グループについてステップS13〜S17の処理を実行することでトポロジ情報を作成してもよい。
【0083】
例えば、グループ情報リスト17において、頻度カウンタの値が所定の閾値を超えている端末グループについてステップS13〜S17が実行されるようにしてもよい。この場合、閾値は、例えば、調査対象のネットワークに接続される端末の数、および/または、調査の実行回数に応じて決定される。一例として、図8に示す例において、閾値が「6」であるものとする。そうすると、上位4つの端末グループについてステップS13〜S17の処理が実行され、上述したトポロジ情報4が出力される。
【0084】
或いは、算出部14は、ステップS14で「No」と判定されてエラーが検出されたときに、端末グループの集約化処理を終了するようにしてもよい。すなわち、先に選択されている端末グループと、新たに選択された端末グループとの間の包含関係が矛盾するときに、端末グループの集約化処理を終了するようにしてもよい。
【0085】
ここで、端末グループ間の包含関係が矛盾し、ステップS16のエラーが検出されるケースについて説明する。一例として、2つの端末グループ「N1、N2」「N2、N3」が検出されてグループ情報リスト17に登録されているものとする。このとき、端末グループ「N1、N2」は、「端末N3は調査パケットを受信したが、端末N1、N2は調査パケットを受信していない」ときに検出される。すなわち、端末グループ「N1、N2」は、例えば、図11(a)に示すネットワークトポロジにおいて、スイッチングハブSW−Xで調査パケットのロスが発生したときに検出されると考えられる。
【0086】
一方、端末グループ「N2、N3」は、「端末N1は調査パケットを受信したが、端末N2、N3は調査パケットを受信していない」ときに検出される。すなわち、端末グループ「N2、N3」は、例えば、図11(b)に示すネットワークトポロジにおいて、スイッチングハブSW−Yで調査パケットのロスが発生したときに検出されると考えられる。
【0087】
このように、互いに矛盾する端末グループ「N1、N2」「N2、N3」が検出されると、図11(a)〜図11(b)に示すように、互いに異なるネットワークトポロジが推定される。すなわち、互いに矛盾する端末グループが検出されると、ネットワークトポロジを推定することはできない。そこで、実施形態のネットワーク調査方法では、互いに矛盾する端末グループが検出されたときは、検出頻度の高い端末グループに基づいてネットワークトポロジを推定する。具体的には、頻度カウンタの値の大きい端末グループから順番に図10に示すフローチャートの処理が実行される。そして、先に選択されている端末グループと、新たに選択された端末グループとの間の包含関係が矛盾するときには、図10に示すフローチャートにおいて、後に選択される端末グループのグループ情報は無視される。
【0088】
例えば、端末グループ「N2、N3」よりも端末グループ「N1、N2」の検出頻度の方が高いものとすると、図11(a)に示すネットワークトポロジが推定される。なお、図11(a)に示すネットワークトポロジにおいて、端末グループ「N2、N3」が検出される状況は、図11(c)に示すように、2地点でパケットロスが発生するときである。すなわち、端末グループ「N2、N3」は、スイッチングハブSW−Xと端末N2との間に設けられたスイッチングハブSW−Wで調査パケットのパケットロスが発生すると共に、スイッチングハブSW−Yと端末N3との間に設けられたスイッチングハブSW−Zでも調査パケットのパケットロスが発生するときに検出される。しかし、1回の調査においてほぼ同時に2地点でパケットロスが発生する確率は非常に低い。すなわち、例えば、図11(a)に示すネットワークトポロジにおいては、端末グループ「N2、N3」が検出される頻度は非常に低くなると見込まれる。したがって、端末グループの集約化処理において、頻度カウンタの値が所定の閾値以下の端末グループを使用しないことにより、不適切なネットワークトポロジが推定されることが回避される。
【0089】
算出部14は、上述のようにして作成したトポロジ情報に基づいて、調査対象のネットワークに接続される端末間の通信コストを算出する。この実施例では、トポロジ情報から通信コストテーブルへの変換が行われる。
【0090】
図12は、通信コストを算出する処理を示すフローチャートである。このフローチャートの処理は、例えば、基準端末が指定されたときに実行される。基準端末は、特に限定されるものではないが、例えば、調査対象のネットワークに新たに接続される端末である。すなわち、例えば、端末N1〜N5がP2Pネットワークを構築しており、このP2Pネットワークに新たに端末N6が接続される際には、端末N6が基準端末である。この場合、ネットワーク調査装置10は、端末N6からの問合せに応じて、端末N6から他の端末N1〜N5への通信コストをそれぞれ計算する。
【0091】
ステップS21において、算出部14は、ネットワークに接続されている複数の端末の中から計算対象端末を選択する。計算対象端末は、例えば、端末リスト16に登録されている端末であって、基準端末以外の端末の中から選択される。
【0092】
ステップS22において、算出部14は、トポロジ情報から、基準端末または計算対象端末のいずれも含まない部分リストを削除する。これにより、注目トポロジ情報が得られる。なお、注目トポロジ情報は、基準端末と計算対象端末を含む最小限のネットワークトポロジを表す。
【0093】
ステップS23において、算出部14は、ステップS22で得られる注目トポロジ情報において、基準端末と計算対象端末とを区切る括弧の数を計算する。そして、この括弧の数が、基準端末と計算対象端末との間の通信コストとして出力される。
【0094】
ステップS24〜S25において、算出部14は、計算対象端末として選択されていない端末をサーチする。そして、計算対象端末として選択されていない端末が残っているときは、その中から次の計算対象端末を選択してステップS22に戻る。すなわち、各端末についてそれぞれステップS22〜S23の処理が実行される。この結果、基準端末と他の各端末との間の通信コストがそれぞれ算出される。
【0095】
次に、通信コストの計算方法についての実施例を説明する。以下の説明では、図10に示すフローチャートの処理を実行することにより、下記のトポロジ情報が得られているものとする。
トポロジ情報=((N1、N2)N3)(N4(N5、N6))
なお、このトポロジ情報は、以下の4つの部分リストを有する
(N1、N2)
(N1、N2、N3)
(N5、N6)
(N4、N5、N6)
【0096】
ここで、基準端末=N6であるものとする。そうすると、通信コストは以下のようにして計算される。
計算対象端末=N5である場合、トポロジ情報から「((N1、N2)N3)」が削除され、注目トポロジ情報「(N4(N5、N6))」が生成される。そして、「N6」と「N5」との間を区切る括弧の数がカウントされる。この場合、「N6」および「N5」は、同じ括弧内に配置されている。したがって、端末N6から端末N5への通信コストは「0」である。
【0097】
計算対象端末=N4である場合も、注目トポロジ情報「(N4(N5、N6))」が生成される。ただし、「N4」は、「(N5、N6)」の外に配置されている。すなわち、「N6」および「N4」は、互いに1つの括弧により区切られている。したがって、端末N6から端末N4への通信コストは「1」である。
【0098】
計算対象端末=N3である場合は、注目トポロジ情報「((N1、N2)N3)(N4(N5、N6))」が生成される。ここで、「N6」から「N3」に到達するためには、下記の3つの括弧a〜cを超える必要がある。
括弧a:(N5、N6)
括弧b:(N4、N5、N6)
括弧c:(N1、N2、N3)
すなわち、「N6」から「N3」に到達するためには、括弧aの内側から外側へ移行し、括弧bの内側から外側へ移行し、括弧cの外側から内側へ移行する必要がある。換言すれば、「N6」および「N3」は、互いに3つの括弧により区切られている。したがって、端末N6から端末N3への通信コストは「3」である。
【0099】
計算対象端末=N2である場合は、注目トポロジ情報「((N1、N2)N3)(N4(N5、N6))」が生成される。ここで、「N6」から「N2」に到達するためには、下記の4つの括弧a〜dを超える必要がある。
括弧a:(N5、N6)
括弧b:(N4、N5、N6)
括弧c:(N1、N2、N3)
括弧d:(N1、N2)
すなわち、「N6」および「N2」は、互いに4つの括弧により区切られている。したがって、端末N6から端末N2への通信コストは「4」である。同様に、端末N6から端末N1への通信コストも「4」である。
【0100】
上記計算により、通信コストテーブル18が作成される。端末N6が基準端末であるときの通信コストテーブル18の実施例を図13に示す。なお、この実施例では、スイッチングハブSW1に対応するコストはカウントされていない。ただし、上述の計算においては、各端末に対して共通してスイッチングハブSW1に対応するコストが除去されているので、相対的な通信コストを比較する際には問題は生じない。また、スイッチングハブSW1に直接的に接続される端末が追加されると、さらに調査を繰り返すことによってスイッチングハブSW1の存在が認識または推定されるようになり、スイッチングハブSW1に対応するコストが計算結果に反映されるようになる。
【0101】
上述のようにして端末N6を基準とする通信コストテーブル18を作成すると、ネットワーク調査装置10は、端末N6に対して、端末N6からの通信コストが最も低い相手端末を通知する。図13に示す例では、ネットワーク調査装置10から端末N6に対して「N5」が通知される。そうすると、端末N6は、端末N5に対して、P2P通信データの転送先として端末N6を設定する旨を依頼する。また、この依頼を受けた端末N5は、他の端末(ここでは、端末N1〜N4の中の1つ)から受信したP2P通信データを、端末N6へ転送する。これにより、通信コストの低い経路でP2Pデータ配信が実現され、端末間の通信効率が向上する。
【0102】
ネットワーク調査装置10は、2以上の端末への通信コストが同じ場合には、例えば、調査パケットのロスの発生確率が低い方の端末を、P2P通信の相手端末として選択してもよい。また、ネットワーク調査装置10は、新たに追加された端末以外の端末を基準として通信コストを計算してもよい。すなわち、ネットワーク調査装置10は、任意の端末を基準として通信コストを計算できる。
【0103】
なお、ネットワーク調査装置10は、例えば、定期的に調査を繰り返し実行し、グループ情報リスト17を更新してゆく。この場合、時間経過に伴って調査パケットのロスの発生回数が増えてゆき、調査結果の信頼性が向上する。
【0104】
また、実施形態のネットワーク調査方法は、スイッチングハブ等において調査パケットのロスが発生することを利用する。このため、実施形態のネットワーク調査方法は、例えば、端末間で通常のP2Pデータ通信が行われているときに実行されるようにしてもよい。この場合、通常のP2Pデータ通信による輻輳に起因して調査パケットのロスが発生する確率が高くなる。この結果、グループ情報リスト17を作成するためのサンプル数が増加して調査の信頼性が向上する。或いは、グループ情報リスト17を作成するために要する時間が短くなる。
【0105】
さらに、ネットワーク調査装置10は、調査パケットのパケットロスを起こりやすくするために、調査実行時に調査パケットに加えてダミーパケットを送信するようにしてもよい。この場合、例えば、調査パケットおよびダミーパケットは、時間分割多重で送信される。
【0106】
<他の実施形態>
図3に示す実施形態では、通信コストを計算するためにネットワーク調査装置10が設けられている。これに対して、他の実施形態では、調査対象のネットワークに接続される複数の端末の中の任意の端末が、ネットワーク調査装置として端末間の通信コストを計算する。
【0107】
図14は、他の実施形態のネットワーク調査方法が使用されるネットワークの構成の一例を示す図である。ここでは、端末N1〜N6の中で、端末N1が通信コストを計算する機能を備えている。この場合、端末N1は、図4に示す送信部11、受信部12、検出部13、算出部14、一時リスト15、端末リスト16、グループ情報リスト17、通信コストテーブル18を備える。なお、端末N1〜N6の中の2以上の端末が通信コスト計算機能を備えてもよいし、各端末がそれぞれ通信コスト計算機能を備えてもよい。
【0108】
図14に示すシステムにおいて、端末N1がグループ情報リスト17を作成する手順、および各端末との間の通信コストを計算する手順は、基本的に、図3に示すネットワーク調査装置10により実行される手順と同じである。端末N1が作成した通信コストテーブル18の実施例を図15に示す。
【0109】
端末N1は、定期的に上述の調査を実行し、グループ情報リスト17および通信コストテーブル18を更新するようにしてもよい。この構成によれば、端末N1は、常に、通信コストの低い相手端末を利用してP2Pデータ配信を行うことができる。例えば、端末N1のP2P通信の相手端末として端末N3が指定されているものとする。その後、図15に示す通信コストテーブル18が得られたものとする。ここで、図15に示す例では、端末N1から端末N3への通信コストよりも、端末N1から端末N2への通信コストの方が低い。したがって、この場合、端末N1は、通信コストテーブル18を参照し、P2P通信の相手端末を、端末N3から端末N2に切り替える。これにより、P2P通信のデータ転送効率が改善する。なお、このような状況は、例えば、スイッチングハブSW3に端末N2が新たに接続されたときに発生し得る。
【0110】
<ハードウェア構成>
図16は、ネットワーク調査装置10のハードウェア構成を示す図である。なお、実施形態のネットワーク調査方法を実行する端末装置も、基本的に、図16に示す構成を有している。
【0111】
図16において、CPU101は、メモリ103を利用してネットワーク調査プログラムを実行することにより、実施形態のネットワーク調査方法を提供する。記憶装置102は、ネットワーク調査プログラムを格納する。なお、記憶装置102は、外部記憶装置であってもよい。メモリ103は、例えば半導体メモリであり、RAM領域およびROM領域を含んで構成される。このように、実施形態のネットワーク調査装置は、CPUおよびメモリを備えるコンピュータにより実現される。
【0112】
読み取り装置104は、CPU101の指示に従って可搬型記録媒体105にアクセスする。可搬型記録媒体105は、例えば、半導体デバイス、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体を含むものとする。通信インタフェース106は、CPU101の指示に従って、ネットワークを介してデータを送受信する。入出力装置107は、例えば、ユーザからの指示を受け付けるデバイス等に相当する。
【0113】
実施形態に係わるネットワーク調査プログラムは、上述したフローチャートの手順を記述しており、例えば、下記の形態で提供される。
(1)記憶装置102に予めインストールされている。
(2)可搬型記録媒体105により提供される。
(3)プログラムサーバ110からダウンロードする。
【0114】
そして、上記構成のコンピュータシステムでネットワーク調査プログラムを実行することにより、実施形態に係わるネットワーク調査装置が実現される。すなわち、上記構成のコンピュータシステムで実施形態のネットワーク調査プログラムを実行することにより、送信部11、受信部12、検出部13、算出部14の一部または全部が実現される。さらに、一時リスト15、端末リスト16、グループ情報リスト17、通信コストテーブル18は、例えば、メモリ103上に作成される。
【0115】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のネットワーク機器を介して複数の端末が接続されるネットワークの通信コストを算出するネットワーク調査装置であって、
前記複数の端末へ調査パケットを送信する送信部と、
前記調査パケットに対応する応答パケットを受信する受信部と、
前記受信部による前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出する検出部と、
前記送信部が前記調査パケットを繰り返し送信したときに前記検出部により検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する算出部、
を有するネットワーク調査装置。
(付記2)
付記1に記載のネットワーク調査装置であって、
前記複数の端末グループの検出頻度をそれぞれ記録するグループ情報リストをさらに備え、
前記算出部は、検出頻度の高い順に抽出した2以上の端末グループ間の包含関係を利用して、端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
(付記3)
付記2に記載のネットワーク調査装置であって、
前記算出部は、予め決められた閾値よりも高い検出頻度の端末グループ間の包含関係を利用して、端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
(付記4)
付記1に記載のネットワーク調査装置であって、
前記算出部は、前記複数の端末グループ間の内包関係に基づいて前記ネットワークのトポロジを表すトポロジ情報を生成し、前記トポロジ情報に基づいて端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
(付記5)
付記1〜4のいずれか1つに記載のネットワーク調査装置であって、
前記送信部は、マルチキャストまたはブロードキャストで前記調査パケットを前記複数の端末へ送信する
ことを特徴とするネットワーク調査装置。
(付記6)
付記1〜4のいずれか1つに記載のネットワーク調査装置であって、
前記送信部は、再送機能を有していないプロトコルで前記調査パケットを送信し、
前記受信部は、再送機能を有するプロトコルで前記応答パケットを受信する
ことを特徴とするネットワーク調査装置。
(付記7)
付記1〜4のいずれか1つに記載のネットワーク調査装置であって、
前記送信部は、前記調査パケットと並列にダミーパケットを送信する
ことを特徴とするネットワーク調査装置。
(付記8)
複数のネットワーク機器を介して複数の端末が接続されるネットワークにおいてネットワーク調査装置により実行されるネットワーク調査方法であって、
前記複数の端末へ調査パケットを送信し、
前記調査パケットに対応する応答パケットを受信し、
前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出し、
前記調査パケットを繰り返し送信したときに検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する、
ことを特徴とするネットワーク調査方法。
(付記9)
付記8に記載のネットワーク調査方法であって、
前記ネットワーク調査装置は、前記複数の端末の中の任意の端末により実現される
ことを特徴とするネットワーク調査方法。
【符号の説明】
【0116】
1 ルータ
2 サブネットワーク
3 外部ネットワーク
10 ネットワーク調査装置
11 送信部
12 受信部
13 検出部
14 算出部
15 一時リスト
16 端末リスト
17 グループ情報リスト
18 通信コストテーブル
【技術分野】
【0001】
本発明は、複数の端末が接続されたネットワークを調査する方法および装置に係わる。
【背景技術】
【0002】
クライアント・サーバ型のデータ配信システムでは、データ受信端末の数の増加に応じて、配信サーバの負荷も大きくなる。このため、大規模な配信システムにおいては、アクセスが集中する配信サーバまたはネットワークインフラのキャパシティを大きくする必要があり、配信コストが増加してしまう。このような背景もあり、近年では、ピア・ツー・ピア(P2P:peer-to-peer)技術を応用したデータ配信方法が注目されている。
【0003】
P2Pを利用したストリーミング配信方法では、例えば、データを受信した端末が、そのデータを他の端末へ転送する。この場合、各端末がそれぞれ中継装置として動作し、大規模な同報配信が実現される。この方法によれば、端末の数が増加しても、配信サーバの負荷はさほど増加することはない。
【0004】
P2Pデータ配信は、物理的なネットワーク環境を意識する必要はなく、端末間の論理リンクで形成される論理ネットワーク(或いは、オーバーレイネットワーク)上でのデータ配信とみなすことができる。また、P2Pデータ配信においては、論理ネットワーク上の端末同士の接続方法により、物理的なネットワーク上を流れるデータトラフィック量が決まる。
【0005】
図1は、P2Pデータ配信について説明する図である。図1に示すネットワークでは、3台の端末n1〜n3がルータA〜Dを介して接続されている。このようなネットワークにおいて、端末n1から端末n2、n3へP2P方式でデータを配信するものとする。この場合、端末n1から端末n2、n3へのデータ配信は、例えば、下記の手順Aまたは手順Bにより実現される。
(手順A)端末n1は端末n2へデータを送信し、端末n2はそのデータを端末n3へ転送する
(手順B)端末n1は端末n3へデータを送信し、端末n3はそのデータを端末n2へ転送する
【0006】
ここで、データ配信のネットワーク距離がより短い手順を適切に選択すれば、データ配信の効率が高くなる。ネットワーク距離は、例えば、通信経路上のルータの台数によって表わされる。例えば、手順1においては、端末n1から端末n2への経路上に3台のルータC、B、Aが存在し、端末n2から端末n3への経路上に2台のルータA、Dが存在する。すなわち、手順1の総ネットワーク距離は「5」である。一方、手順2においては、端末n1から端末n3への経路上に4台のルータC、B、A、Dが存在し、端末n3から端末n2への経路上に2台のルータD、Aが存在する。すなわち、手順2の総ネットワーク距離は「6」である。この場合、手順2ではなく手順1を選択することにより、データ配信の効率が高くなる。なお、通信経路上のルータの台数は、例えば、tracerouteコマンドまたはtracertコマンドにより検出することができる。
【0007】
図2は、複数のスイッチングハブを備えるサブネットワークの一例を示す図である。図2に示す例では、サブネットワークは、5台のスイッチングハブSW1〜SW5を備え、ルータの配下に構築されている。そして、端末N1〜N6は、スイッチングハブSW1〜SW5を介してデータを送受信することができる。
【0008】
以下の例では、ネットワークトポロジ(ネットワーク距離)が図1のルータで構成されるネットワーク同様に把握できていることを前提に動作について説明する。
本例では、端末N1から端末N2〜N6へP2P方式でデータが配信されるものとする。この場合、端末N1は、ネットワーク距離が最も短い宛先端末へデータを送信する。図2に示す構成では、端末N1から端末N2へデータが送信される。続いて、端末N2は、受信データを、ネットワーク距離が最も短い他の宛先端末へ転送する。図2に示す構成では、端末N2から端末N3へデータが転送される。以下同様に、各端末は、ネットワーク距離に基づいて、受信データを他の端末へ転送する。これにより、端末N1から端末N2〜N6への効率的なデータ配信が実現される。
【0009】
関連する技術として、特許文献1には、異なるプロトコルを用いてネットワークに接続している管理対象デバイスについても認識が可能なネットワーク構成調査方法が記載されている。このネットワーク構成調査方法は、使用可能なプロトコルの種別を取得し、全てのプロトコルを用いてネットワークに接続された機器へ応答を要請する探索要求を発行する。そして、機器からの応答を集計し、集計結果に基づき機器の管理に用いるデバイスリストを表示する。
【0010】
他の関連する技術として、特許文献2には、宅内ネットワークの構成調査を行う通信装置が記載されている。この通信装置は以下の構成を備える。TTLを変化させたルータ調査用パケットを生成し、前記ルータ調査用パケットの送信先を切り替える調査用パケット作成部。前記ルータ調査用パケットに対応してルータから返信されるICMPパケットから前記ルータのアドレスを取得する受信パケット解析部。前記受信パケット解析部から情報を取得し、前記ルータ調査用パケット作成部を制御し、ネットワークの調査を施す制御部。前記ルータ調査用パケットおよびICMPパケットを送受信するパケット送受信部。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2000−172600号公報
【特許文献2】特開2006−345347号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
上述のように、P2P方式で複数の端末にデータを配信する場合、各端末がそれぞれネットワーク距離の短い宛先端末へデータを転送することにより、効率的なデータ配信が実現される。ところが、ネットワークがL2スイッチ(あるいは、スイッチングハブ)で構築されている場合は、以下の理由により、効率的にデータを配信できないことがある。なお、「L2」は、OSI参照モデルのレイヤ2を表す。
【0013】
L2スイッチは、データの宛先情報に基づいてそのデータを転送するが、IPレイヤまたはIPレイヤよりも上位レイヤのコマンド(例えば、tracerouteコマンド)を処理することはできない。このため、L2スイッチで構築されるネットワークにおいては、通信装置(端末、L2スイッチ、ネットワーク管理装置など)は、IPレイヤまたはそれよりも上位のレイヤからL2スイッチの存在を検出することはできず、通信経路上のL2スイッチの台数を測定することはできない。すなわち、端末間のネットワーク距離を予め測定しておくことは困難である。したがって、このようなネットワークでは、各端末は、ネットワーク距離の短い宛先端末を適切に選択することはできず、効率の悪いデータ配信が行われることがあった。
【0014】
なお、この問題は、ネットワークがL2スイッチで構築されている場合に限らず、ネットワークが1台以上のL2スイッチを含んでいる場合に発生し得る。また、この問題は、L2スイッチに限定されるものではなく、IPコマンドを処理できない機器を含むネットワークにおいて発生し得る。
【0015】
本発明の課題は、複数の端末が接続されるネットワークにおいて、端末間の通信効率を向上させるための通信コストを推定することである。
【課題を解決するための手段】
【0016】
本発明の1つの態様のネットワーク調査装置は、複数のネットワーク機器を介して複数の端末が接続されるネットワークにおいて使用され、前記複数の端末へ調査パケットを送信する送信部と、前記調査パケットに対応する応答パケットを受信する受信部と、前記受信部による前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出する検出部と、前記送信部が前記調査パケットを繰り返し送信したときに前記検出部により検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する算出部、を有する。
【発明の効果】
【0017】
本出願において開示される方法または構成によれば、複数の端末が接続されるネットワークにおいて、端末間の通信効率を向上させるための通信コストを推定することが可能となる。
【図面の簡単な説明】
【0018】
【図1】図1は、P2Pデータ配信について説明する図である。
【図2】図2は、複数のスイッチングハブを備えるサブネットワークの一例を示す図である。
【図3】図3は、実施形態のネットワーク調査方法が使用されるネットワークの構成の一例を示す図である。
【図4】図4は、ネットワーク調査装置の構成を示す図である。
【図5】図5(a)は、調査パケットの実施例であり、図5(b)は、応答パケットの実施例である。
【図6】図6(a)は、一時リストの実施例であり、図6(b)は、端末リストの実施例である。
【図7】図7は、端末グループの検出方法を説明する図である。
【図8】図8は、グループ情報リストの実施例である。
【図9】図9は、グループ情報リストを作成する処理を示すフローチャートである。
【図10】図10は、端末グループの集約化処理を示すフローチャートである。
【図11】図11は、端末グループ間の包含関係に矛盾が生じるケースについて説明する図である。
【図12】図12は、通信コストを算出する処理を示すフローチャートである。
【図13】図13は、通信コストテーブルの実施例である。
【図14】図14は、他の実施形態のネットワーク調査方法が使用されるネットワークの構成の一例を示す図である。
【図15】図15は、他の実施形態において作成された通信コストテーブルの実施例である。
【図16】図16は、ネットワーク調査装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【0019】
図3は、実施形態のネットワーク調査方法が使用されるネットワークの構成の一例を示す図である。この例では、ルータ1に接続されるサブネットワーク2において実施形態のネットワーク調査方法が使用される。なお、ルータ1は、外部ネットワーク3とサブネットワーク2とを接続する。また、ルータ1は、この例では、OSI参照モデルのレイヤ3以上の機能を実装し、例えば、tracerouteコマンド等に応答する機能を備える。
【0020】
サブネットワーク2は、複数のネットワーク機器(この実施例では、スイッチングハブSW1〜SW5)により構築されている。スイッチングハブSW1は、ルータ1に接続されている。また、スイッチングハブSW1には、スイッチングハブSW2、SW4が接続されている。さらに、スイッチングハブSW2にはスイッチングハブSW3が接続され、スイッチングハブSW4には、スイッチングハブSW5が接続されている。スイッチングハブSW1〜SW5は、例えば、L2スイッチである。すなわち、スイッチングハブSW1〜SW5は、この例では、IPコマンドおよびレイヤ3以上のプロトコルのコマンドを実行できないものとする。
【0021】
サブネットワーク2には、6台の端末N1〜N6が接続されている。端末N1、N2はスイッチングハブSW3に収容され、端末N3はスイッチングハブSW2に収容され、端末N4はスイッチングハブSW4に収容され、端末N5、N6はスイッチングハブSW5に収容されている。
【0022】
各端末N1〜N6は、P2P(peer-to-peer)で他の端末とデータを送受信する機能を備えている。また、各端末N1〜N6には、P2Pで同報配信を実現するための宛先情報が設定されている。例えば、端末N1、N2、N3、N4、N5、N6には、宛先情報としてそれぞれ自身を除く端末N1、N2、N3、N4、N5、N6が設定されている。この場合、ルータ1は、外部ネットワーク3から受信した端末N1宛の同報データをSW1→SW2→SW3経由で端末N1へ転送する。そうすると、端末N1は、宛先情報を参照し、外部ネットワーク3から受信した同報データをSW3経由で端末N2へ転送する。続いて、端末N2は、宛先情報を参照し、端末N1から受信した同報データをSW3→SW2経由で端末N3へ転送する。同様に、端末N3、N4、N5は、それぞれ、宛先情報に従って同報データをSW経由で端末N4、N5、N6へ転送する。これにより、端末N1〜N6は同報データを受信する。なお、端末N6は、受信した同報データを、さらに他のサブネットワークに収容されている端末へ転送するようにしてもよい。
【0023】
ネットワーク調査装置10は、サーバコンピュータであり、サブネットワーク2のトポロジを検出し、端末N1〜N6間の通信コストを算出する。通信コストは、後で詳しく説明するが、例えば、端末間の通信経路上に存在するスイッチングハブの台数に相当する。また、ネットワーク調査装置10は、端末N1〜N6間の通信コストに基づいて、上述した宛先情報を生成するようにしてもよい。この場合、宛先情報は、例えば、上述した同報配信の通信効率が最適化されるように決定される。なお、ネットワーク調査装置10は、端末N1〜N6に宛先情報を配布するようにしてもよい。或いは、端末N1〜N6は、ネットワーク調査装置10に対応する宛先情報を要求するようにしてもよい。
【0024】
ネットワーク調査装置10は、図3に示す例ではスイッチングハブSW1に接続されているが、他の任意のスイッチングハブSW2〜SW5に接続されるようにしてもよい。また、ネットワーク調査装置10は、ルータ1に接続されていてもよいし、外部ネットワーク3上に設けられていてもよい。
【0025】
図4は、ネットワーク調査装置10の構成を示す図である。ネットワーク調査装置10は、この実施例では、送信部11、受信部12、検出部13、算出部14を備える。
送信部11は、調査対象のネットワークに接続されているすべての端末へ調査パケットを送信する。図3に示す例では、送信部11は、サブネットワーク2に接続されている端末N1〜N6それぞれに対して調査パケットを送信する。
【0026】
送信部11は、特に限定されるものではないが、IPマルチキャストまたはブロードキャストにより調査パケットを送信する。例えば、IPマルチキャストが実行される場合には、IPヘッダには予め決められたIPマルチキャストアドレス(例:224.0.0.1)が設定され、端末N1〜N6は、同IPマルチキャストアドレスの調査パケットを受信するよう設定される。この場合、図3に示すスイッチングハブSW1〜SW5は、IPマルチキャストアドレスに従って、ネットワーク調査装置10から送信された調査パケットを端末N1〜N6へ転送する。
【0027】
このとき、ネットワーク調査装置10から送信される調査パケットは、ルータ1にも転送される。ただし、ルータ1は、特に限定されるものではないが、受信した調査パケットを外部ネットワーク2に送出しないように設定されている。もしくは、外部ネットワーク2に上述のIPマルチキャストアドレスを受信する端末がなく、外部に転送されないものとする。
【0028】
送信部11は、特に限定されるものではないが、再送機能を有していないプロトコルで調査パケットを送信する。すなわち、送信部11は、例えば、UDPで調査パケットを送信する。
【0029】
調査パケットには、図5(a)に示すように、ID、調査番号、返送アドレス、返送ポートが設定される。IDは、パケットタイプを表す情報である。したがって、調査パケットのIDフィールドには、調査パケットを表す予め決められた値が設定される。調査番号は、ネットワーク調査装置10が端末N1〜N6へ調査パケットを送信する手順を繰り返し実行する際に、各送信手順を識別するシーケンス番号に相当する。したがって、1回のマルチキャストまたはブロードキャストで端末N1〜N6へ送信される各調査パケットには、同じ調査番号が割り当てられている。返送アドレスおよび返送ポートは、調査パケットを受信した端末が応答パケットを返送する宛先を指示するアドレスおよびTCP/IPポート番号を表す。この実施例では、返送アドレスには、ネットワーク調査装置10のIPアドレスが設定される。また、返送ポートには、ネットワーク調査装置10において応答パケットを受信するために予め予約されたポート番号が設定される。
【0030】
各端末N1〜N6は、上述の調査パケットを受信すると、図5(b)に示す応答パケットを作成してネットワーク調査装置10へ返送する。このとき、各端末N1〜N6は、特に限定されるものではないが、再送機能を有しているプロトコルで応答パケットを送信する。すなわち、各端末N1〜N6は、例えば、TCPで応答パケットを送信する。
【0031】
応答パケットのIPヘッダの宛先IPアドレスには、調査パケットで通知される「返送アドレス」が設定される。すなわち、応答パケットの宛先IPアドレスは、ネットワーク調査装置10のIPアドレスである。また、応答パケットのTCPヘッダの宛先ポート番号には、調査パケットにより通知される「返送ポート」が設定される。さらに、応答パケットのIDフィールドには、応答パケットを表す予め決められた値が設定される。なお、応答パケットに設定される調査番号は、受信した調査パケットの調査番号がそのまま使用される。
【0032】
各端末N1〜N6は、調査パケットを受信すると、上述の応答パケットをネットワーク調査装置10に送信する。そうすると、スイッチングハブSW1〜SW5は、端末N1〜N6から送信された応答パケットをネットワーク調査装置10へ転送する。このとき、応答パケットには、応答パケットの送信元端末を識別する情報を含んでいる。応答パケットの送信元端末を識別する情報は、例えば、IPヘッダに設定される送信元IPアドレスである。よって、ネットワーク調査装置10は、応答パケットの送信元端末を検出することができる。
【0033】
受信部12は、送信部11から送信された調査パケットに対応する応答パケットを受信する。この実施例では、受信部12は、上述した「返送ポート」により指示されるTCPポートで、端末N1〜N6から送信される応答パケットを待ち受ける。そして、受信部12は、端末N1〜N6から受信した応答パケットを検出部13に渡す。ただし、受信部12は、送信部11が調査パケットを送信したときから、所定時間ΔTが経過するまでの期間だけ、その調査パケットに対応する応答パケットを待ち受ける。例えば、送信部11が時刻T1に調査番号001が設定された調査パケットを送信した場合、受信部12は、調査番号001が設定されている応答パケットを、時刻T1+ΔTまで待ち受ける。つづいて、送信部11が時刻T2に調査番号002が設定された調査パケットを送信した場合、受信部12は、調査番号002が設定されている応答パケットを、時刻T2+ΔTまで待ち受ける。
【0034】
なお、調査パケットに設定される調査番号および調査パケットの送信時刻は、例えば、送信部11から受信部12に通知される。或いは、検出部13が調査番号を管理するようにしてもよい。この場合、検出部13から送信部11および受信部12へ調査番号が通知される。
【0035】
検出部13は、受信部12による応答パケットの受信結果に基づいて、調査対象のネットワークに接続されている全ての端末の中で、調査パケットを受信していない端末が属する端末グループを検出する。すなわち、検出部13は、端末N1〜N6の中で、調査パケットを受信していない端末が属する端末グループを検出する。ここで、検出部13は、一時リスト15および端末リスト16を利用して端末グループを検出する。一時リスト15および端末リスト16は、検出部13の内部に設けられてもよいし、検出部13の外部に設けられてもよい。また、検出部13は、調査番号ごとに(すなわち、マルチキャストまたはブロードキャストで端末N1〜N6へ調査パケットを送信するごとに)、端末グループを検出する。
【0036】
図6(a)は、一時リスト15の実施例である。一時リスト15には、調査番号ごとに、応答パケットの送信元端末が登録される。すなわち、検出部13は、受信部12が受信した応答パケットの調査番号および送信元端末をチェックする。ここで、応答パケットの送信元端末は、例えば、IPヘッダに設定されている送信元IPアドレスにより識別される。そして、検出部13は、受信部12により応答パケットが受信される毎に、その受信応答パケットの送信元端末を一時リスト15に登録する。図6(a)に示す例は、送信部11が調査番号100の調査パケットを端末N1〜N6へ送信し、受信部12がその調査パケットに対応する応答パケットを端末N3、N4、N5、N6から受信したときの、一時リスト15の状態を表している。
【0037】
図6(b)は、端末リスト16の実施例である。端末リスト16には、調査対象のネットワークに接続されている端末が登録される。したがって、この実施例では、端末リスト16には、サブネットワーク2に接続されている端末N1、N2、N3、N4、N5、N6が登録されている。ここで、調査対象のネットワークに接続される端末が予め決められている場合には、端末リスト16は予め作成される。一方、調査対象のネットワークに接続される端末が既知でない場合には、端末リスト16は、例えば、以下の手順Aにより作成される。
(a1)調査パケットをマルチキャストまたはブロードキャストで送信する。
(a2)上記(a1)で送信した調査パケットに対応する応答パケットの送信元端末を一時リスト15に登録する。
(a3)一時リスト15および端末リスト16を対比し、一時リスト15のみに登録されている端末があれば、その端末を端末リスト16に追加する。
(a4)一時リスト15をリセットする。
(a5)上記(a1)〜(a4)を所定回数繰り返し実行する。
【0038】
なお、検出部13は、上記手順(a1)〜(a5)で端末リスト16を作成しながら、端末グループを検出するようにしてもよい。或いは、検出部13は、上記手順(a1)〜(a5)で端末リスト16を作成した後に、端末グループを検出するようにしてもよい。
【0039】
検出部13は、以下の手順Bで端末グループを検出する。
(b1)送信部11に調査パケットの送信を指示する。これにより、送信部11は、調査番号iの調査パケットを、マルチキャストまたはブロードキャストで、端末N1〜N6へ送信する。このとき、調査パケットは、基本的に、端末リスト16に登録されているすべての端末へ送信される。
(b2)上記(b1)で送信した調査パケットに対応する応答パケット(すなわち、調査番号iの応答パケット)の送信元端末を、一時リスト15に登録する。
(b3)一時リスト15および端末リスト16を参照し、端末リスト16に登録されているが、一時リスト15には登録されていない端末を検出する。これにより検出される1または複数の端末は「応答パケットの送信元端末以外の端末」である。
(b4)上記(b3)で検出された1または複数の端末を要素とする端末グループを、調査番号iに対して得られる端末グループとして出力する。
(b5)一時リスト15をリセットする。
【0040】
このように、検出部13は、調査番号iに対して「応答パケットの送信元端末以外の端末」を要素とする端末グループを検出する。例えば、図6に示す例では、端末リスト16に端末N1〜N6が登録され、調査番号100に対して一時リスト15に端末N3〜N6が登録されている。すなわち、端末N1、N2は、端末リスト16に登録されているが、一時リスト15には登録されていない。この場合、検出部13は、調査番号100に対して「端末グループ=N1、N2」を出力する。
【0041】
検出部13は、調査番号iをカウントアップしながら上記手順(b1)〜(b5)を繰り返し実行する。なお、一時リスト15および端末リスト16に登録されている端末が互いにすべて一致する場合は、端末グループは検出されない。すなわち、「端末グループ=該当なし」が出力される。
【0042】
図7は、端末グループの検出方法を説明する図である。ここでは、ネットワーク調査装置10から端末N1〜N6へマルチキャストまたはブロードキャストで調査パケットが送信されるものとする。このとき、調査パケットは、基本的には、すべての端末N1〜N6に到達する。ただし、ネットワークを介して伝送されるパケットは、例えばネットワークの輻輳時には、廃棄されることがある。すなわち、ネットワーク調査装置10から端末N1〜N6へ送信される調査パケットは、ネットワーク上でパケットロスが発生することがある。
【0043】
図7(a)に示す例では、スイッチングハブSW3において輻輳が発生し、調査パケットがスイッチングハブSW3において廃棄されている。この場合、ネットワーク調査装置10から送信される調査パケットは、端末N3〜N6には到達するが、端末N1、N2には到達しない。なお、調査パケットは、この実施例では、再送機能を有していないプロトコルで送信される。したがって、スイッチングハブSW3においてパケットロスが発生すると、上記調査パケットは、端末N1、N2により受信されることはない。
【0044】
端末N3〜N6は、調査パケットを受信すると、それぞれ、対応する応答パケットを作成してネットワーク調査装置10へ返送する。このとき、応答パケットは、この実施例では、再送機能を有するプロトコルで送信される。したがって、端末N3〜N6から送信される応答パケットは、サブネットワーク2が輻輳している場合であっても、確実に、ネットワーク調査装置10へ到達する。すなわち、ネットワーク調査装置10は、端末N3〜N6から応答パケットを受信する。
【0045】
一方、端末N1、N2は、この例では、調査パケットを受信しないので、いずれも応答パケットを送信しない。よって、ネットワーク調査装置10は、端末N1、N2から応答パケットを受信することはない。
【0046】
ネットワーク調査装置10の検出部13は、所定時間内に端末N1、N2から応答パケットを受信できなかったときは、端末N1、N2をグループ化する。すなわち、端末グループ「N1、N2」が検出される。
【0047】
このように、調査パケットを受信した端末は、ネットワーク調査装置10へ応答パケットを返送する。このとき、端末から送信される応答パケットは、上述したように、確実にネットワーク調査装置10へ到達する。よって、ネットワーク調査装置10が端末N1、N2から応答パケットを受信できない原因は、調査パケットが端末N1、N2へ到達しなかったことであると考えられる。すなわち、応答パケットの送信元端末以外の端末は、調査パケットを受信していないと考えられ、端末N1、N2は、「調査パケットを受信できなかった端末」としてグループ化される。また、調査パケットが端末N1、N2へ到達しなかった原因は、端末N1、N2に共通して係わるネットワーク機器(この実施例では、スイッチングハブSW3)において、調査パケットが廃棄された可能性が高いと考えられる。
【0048】
したがって、上述のようにして検出される端末グループは、ネットワークトポロジを表す情報として利用することができる。例えば、端末グループ「N1、N2」が検出されたときは、端末N1、N2が同じスイッチングハブに接続されているか、あるいは、端末N1、N2がネットワーク機器10から見て同じスイッチングハブの先に設けられていると考えられる。図7(a)に示す例では、端末1、N2は、いずれもスイッチングハブSW3に接続されている。
【0049】
図7(b)に示す例では、スイッチングハブSW4において輻輳が発生し、調査パケットがスイッチングハブSW4において廃棄されている。この場合、ネットワーク調査装置10から送信される調査パケットは、端末N1〜N3には到達するが、端末N4〜N6には到達しない。
【0050】
この場合、ネットワーク調査装置10は、端末N1〜N3から応答パケットを受信するが、端末N4〜N6からは応答パケットを受信することはない。そうすると、検出部13は、端末N4、N5、N6をグループ化する。すなわち、端末グループ「N4、N5、N6」が検出される。
【0051】
端末グループ「N4、N5、N6」が検出されたときは、端末N4、N5、N6に共通して係わるネットワーク機器(この実施例では、スイッチングハブSW4)において、調査パケットが廃棄された可能性が高いと考えられる。この場合、端末N4、N5、N6が同じスイッチングハブに接続されているか、あるいは、端末N4、N5、N6がネットワーク機器10から見て同じスイッチングハブの先に設けられていると考えられる。図7(b)に示す例では、端末4、N5、N6は、いずれもネットワーク機器10から見てスイッチングハブSW4の先に接続されている。
【0052】
ネットワーク調査装置10は、上記調査を繰り返し実行する。「調査」は、サブネットワーク2に接続されているすべての端末へ調査パケットを送信して応答をモニタする手順に相当する。そして、検出部13は、各調査において、各端末から対応する応答パケットを受信できるか否かに応じて、複数の端末グループを検出する。なお、検出部13により検出された端末グループは、算出部14に通知される。
【0053】
算出部14は、検出部13により検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する。このとき、算出部14は、グループ情報リスト17を更新および参照しながら、端末間の通信コストを算出する。
【0054】
図8は、グループ情報リスト17の実施例を示す。グループ情報リスト17には、検出部13により検出された端末グループが登録される。図8に示す例では、6つの端末グループ「N1、N2」「N4、N5、N6」「N1、N2、N3」「N5、N6」「N1、N2、N3、N4、N5、N6」「N1、N2、N5、N6」がグループ情報リスト17に登録されている。なお、例えば、端末グループ「N1、N2」は、ネットワーク調査装置10が端末N1、N2から応答パケットを受信できなかったときに登録される。また、例えば、端末グループ「N4、N5、N6」は、ネットワーク調査装置10が端末N4、N5、N6から応答パケットを受信できなかったときに登録される。
【0055】
また、グループ情報リスト17は、各端末グループについて検出頻度(図8では、頻度カウンタ)を管理する。検出頻度は、この例では、検出部13により端末グループが検出された回数を表す。すなわち、算出部14は、検出部13によりある端末グループが検出されると、その端末グループの頻度カウンタをカウントアップする。なお、図8に示す例では、例えば、端末グループ「N1、N2」が15回検出され、端末グループ「N4、N5、N6」が12回検出された状態を示している。さらに、算出部14は、グループ情報リスト17において、登録されている端末グループを検出頻度に応じてソートする。
【0056】
図9は、グループ情報リスト17を作成する処理を示すフローチャートである。この処理は、送信部11、受信部12、検出部13、算出部14により実行される。また、この処理は、例えば、定期的に繰り返し実行される。
【0057】
ステップS1において、検出部13は、調査番号を設定する。調査番号は、例えばシーケンス番号であり、各「調査」に対して異なる値が使用される。「調査」は、上述したように、サブネットワーク2に接続されているすべての端末へ調査パケットを送信して応答を検出する手順に相当する。そして、検出部13は、調査番号を送信部11および受信部12に通知する。なお、この例では、調査番号は検出部13により生成されるが、他の回路要素により生成されるようにしてもよい。
【0058】
ステップS2において、送信部11は、調査パケットを作成してサブネットワーク2に接続されているすべての端末へ送信する。このとき、調査パケットには、検出部13から通知された調査番号が設定される。また、調査パケットは、マルチキャストまたはブロードキャストにより送信される。
【0059】
ステップS3において、受信部12および検出部13は、調査結果を収集する。すなわち、まず、受信部12は、送信部11が調査パケットを送信したときから所定の期間が経過するまで、検出部13から通知された調査番号が設定されている応答パケットを待ち受ける。そして、検出部13は、受信部12が受信した各応答パケットの送信元端末と、端末リスト16に登録されている端末とを比較する。ここで、応答パケットの送信元端末は調査パケットを受信しており、他の端末は調査パケットを受信していないと考えられる。すなわち、調査パケットを受信していない端末が検出される。
【0060】
ステップS4において、検出部13は、応答パケットの受信状況に基づいて、調査パケットを受信していない端末があるか否かを判定する。そして、調査パケットを受信していない端末があれば、処理はステップS5に移る。なお、受信部12がすべての端末から応答パケットを受信したときは、処理は終了する。
【0061】
ステップS5において、検出部13は、調査パケットを受信していない端末をグループ化する。そして、算出部14は、グループ情報リスト17において、検出部13により検出された端末グループの頻度カウンタをインクリメント(カウント値を「1」だけカウントアップ)する。そして、ステップS6において、算出部14は、更新されたグループ情報リスト17を、頻度カウンタの値に従ってソートする。
【0062】
このように、ネットワーク調査装置10は、図9に示すフローチャートの処理を繰り返し実行することによりグループ情報リスト17を作成する。ここで、ステップS5〜S6の処理は、基本的に、ネットワーク調査装置10から送信された調査パケットが、サブネットワーク2内のいずれかのスイッチングハブで廃棄されたときに実行される。即ち、グループ情報リスト17は、基本的に、調査パケットが廃棄されたときに更新される。
【0063】
算出部14は、上述のようにして作成したグループ情報リスト17を利用して、端末グループの集約化を実行する。なお、端末グループの集約化は、調査対象のネットワークのトポロジを検出する処理に相当する。
【0064】
図10は、端末グループの集約化処理を示すフローチャートである。このフローチャートの処理は、例えば、グループ情報リスト17が作成された後に、算出部14によって実行される。
【0065】
ステップS11において、算出部14は、トポロジ情報を初期化する。ここで、トポロジ情報は、特に図示しないが、ネットワーク調査装置10が有する所定のメモリ領域に作成される。
【0066】
ステップS12において、算出部14は、グループ情報リスト17から、頻度カウンタの値が最大の端末グループを選択する。なお、グループ情報リスト17は、頻度カウンタの値に従って端末グループがソートされているものとする。
【0067】
ステップS13において、算出部14は、処理対象のグループ情報とトポロジ情報との間に、共通の要素が存在するか否かを判定する。処理対象のグループ情報は、ステップS12またはS19において選択された端末グループに属する1または複数の端末を表す。トポロジ情報は、後で実施例を参照しながら説明するが、端末間の関係を表す。なお、トポロジ情報は、ステップS11で初期化された時点では、1つの要素も含んでいない。また、トポロジ情報は、ステップS14またはS16において更新される。そして、処理対象のグループ情報とトポロジ情報との間に共通の要素(すなわち、端末ID)が存在するときは、処理はステップS14へ移行する。一方、それらの間に共通の要素が存在しないときは、処理はステップS17へ移行する。
【0068】
ステップS14において、算出部14は、処理対象のグループ情報とトポロジ情報内の各部分リストとの間の包含関係の有無を検出する。ここで、各部分リストは、後で実施例を参照しながら説明するが、1または複数の端末IDを含んでいる。例えば、処理対象のグループ情報が「N1、N2」であり、トポロジ情報内の部分リストが「(N1、N2、N3)」であるものとする。この場合、この部分リストが処理対象のグループ情報を包含していると判定される。また、処理対象のグループ情報が「N1、N2」であり、トポロジ情報内の部分リストが「(N2、N3)」であるものとする。この場合、処理対象のグループ情報に属する「N1」は部分リストの要素ではなく、部分リストに属する「N3」は処理対象のグループ情報の要素ではない。したがって、処理対象のグループ情報とトポロジ情報との間に包含関係は存在しないと判定される。
【0069】
処理対象のグループ情報とトポロジ情報内の部分リストとの間に包含関係が存在するときは(ステップS14:Yes)、ステップS15において、算出部14は、トポロジ情報を更新する。このとき、処理対象のグループ情報との間に包含関係を有する部分リストが、処理対象のグループ情報とトポロジ情報との間の包含関係を表す包含リストに置き換えられる。
【0070】
処理対象のグループ情報とトポロジ情報内の部分リストとの間に包含関係が存在しないときは(ステップS14:No)、ステップS16において、算出部14は、処理対象のグループ情報がエラーを含んでいると判定する。この場合、ステップS15の処理はスキップされる。また、処理対象のグループ情報は廃棄される。
【0071】
なお、処理対象のグループ情報とトポロジ情報との間に共通の要素が存在しないときには(ステップS13:No)、算出部14は、ステップS17において、処理対象のグループ情報により表わされる端末リストを、新たな部分リストとしてトポロジ情報に追加する。この場合も、ステップS15の処理はスキップされる。
【0072】
ステップS18〜S19において、算出部14は、グループ情報リスト17に登録されているすべての端末グループを選択したか否かをチェックする。そして、グループ情報リスト17に未選択の端末グループが存在する場合には、算出部14は、次の端末グループを選択してステップS13に戻る。すなわち、算出部14は、グループ情報リスト17から頻度カウンタに応じて端末グループを1つずつ順番に選択してステップS13〜S19の処理をそれぞれ実行する。これにより、端末グループが集約化され、トポロジ情報が生成される。
【0073】
次に、図10に示す端末グループの集約化処理の実施例を説明する。ここでは、図8に示すグループ情報リスト17が先に作成されているものとする。
まず、ステップS12において、図8に示すグループ情報リスト17から、頻度カウンタの値が最大の端末グループが選択される。すなわち、端末グループ「N1、N2」が選択される。このとき、トポロジ情報は初期化されているので、処理対象のグループ情報とトポロジ情報との間に共通の要素は存在せず、ステップS13において「No」と判定される。したがって、ステップS17において、端末グループ「N1、N2」が、1つの部分リストとしてトポロジ情報に追加される。この結果、トポロジ情報は、下記のように更新される。
トポロジ情報1=(N1、N2)
【0074】
なお、トポロジ情報i(i=1,2,3,...)は、i番目の端末グループに対する集約化処理が実行されたときのトポロジ情報を表すものとする。また、トポロジ情報の表記において、括弧記号は、端末グループを表す。すなわち、1つの括弧内に記載されている複数の端末は、同じ端末グループに属していることを表す。
【0075】
続いて、2番目に高い頻度の端末グループが選択される。すなわち、端末グループ「N4、N5、N6」が選択される。ここで、選択された端末グループ「N4、N5、N6」とトポロジ情報1「(N1、N2)」との間には、共通の要素は存在しない。この場合、処理対象のグループ情報に属する端末、およびトポロジ情報1に含まれている端末は、互いに並列に配置されていると判定される。そして、ステップS17において、端末グループ「N4、N5、N6」は、新たな部分リストとしてトポロジ情報に追加される。この結果、トポロジ情報は、下記のように更新される。
トポロジ情報2=(N1、N2)(N4、N5、N6)
なお、トポロジ情報の表記において、異なる括弧に属する端末は、異なる端末グループに属する。
【0076】
続いて、3番目の端末グループ「N1、N2、N3」が選択される。ここで、選択された端末グループ「N1、N2、N3」とトポロジ情報2「(N1、N2)(N4、N5、N6)」との間には、共通の要素が存在する。また、選択された端末グループ「N1、N2、N3」とトポロジ情報2の部分リスト「(N1、N2)」との間には、包含関係が存在する。すなわち、部分リスト「(N1、N2)」の各要素は、全て、端末グループ「N1、N2、N3」の要素に含まれている。したがって、この場合、ステップS15において、この包含関係を表す包含リスト「((N1、N2)N3)」が作成される。さらに、処理対象のグループ情報との間に包含関係を有する部分リスト「(N1、N2)」が、処理対象のグループ情報とトポロジ情報との間の包含関係を表す包含リスト「((N1、N2)N3)」に置き換えられる。この結果、トポロジ情報は、下記のように更新される。
トポロジ情報3=((N1、N2)N3)(N4、N5、N6)
【0077】
なお、トポロジ情報および包含リストの表記において、多重括弧は、端末グループが親子関係を有していることを表す。例えば、「((N1、N2)N3)」は、端末グループ「N1、N2、N3」の中に、子端末グループ「N1、N2」が存在していることを表している。
【0078】
続いて、4番目の端末グループ「N5、N6」が選択される。ここで、選択された端末グループ「N5、N6」とトポロジ情報3「((N1、N2)N3)(N4、N5、N6)」との間には、共通の要素が存在する。また、選択された端末グループ「N5、N6」とトポロジ情報3の部分リスト「(N4、N5、N6)」との間には、包含関係が存在する。すなわち、端末グループ「N5、N6」の各要素は、全て、部分リスト「(N4、N5、N6)」の要素に含まれている。したがって、ステップS15において、この包含関係を表す包含リスト「(N4(N5、N6))」が作成される。そして、トポロジ情報3の部分リスト「(N4、N5、N6)」が、この包含リスト「(N4(N5、N6))」に置き換えられる。この結果、トポロジ情報は、下記のように更新される。
トポロジ情報4=((N1、N2)N3)(N4(N5、N6))
【0079】
続いて、5番目の端末グループ「N1、N2、N3、N4、N5、N6」が選択されると、同様に、トポロジ情報は下記のように更新される。
トポロジ情報5=(((N1、N2)N3)(N4(N5、N6)))
【0080】
さらに、6番目の端末グループ「N1、N2、N5、N6」が選択される。ここで、この端末グループ「N1、N2、N5、N6」とトポロジ情報5「(((N1、N2)N3)(N4(N5、N6)))」との間には、共通の要素が存在する。ところが、この端末グループ「N1、N2、N5、N6」とトポロジ情報5の各部分リストとの間には、包含関係は存在しない。トポロジ情報5は、部分リスト1「((N1、N2)N3)」および部分リスト2「(N4(N5、N6))」を有する。しかしながら、部分リスト1に属する「N3」は上記端末グループに属しておらず、且つ、上記端末リストに属する「N5」「N6」は部分リスト1に属していない。すなわち、6番目の端末リストと部分リスト1との間に包含関係は存在しない。同様に、6番目の端末リストと部分リスト2との間にも包含関係は存在しない。よって、ステップS14において「No」と判定され、ステップS16においてエラーが検出される。
【0081】
上述のようにしてグループ情報リスト17に登録されているすべての端末グループについてステップS13〜S17の処理を実行すると、算出部14は、作成したトポロジ情報を出力する。上述の例では、トポロジ情報5が出力される。
【0082】
このように、算出部14は、グループ情報リスト17に登録されている各端末グループについてステップS13〜S17の処理を実行することにより、トポロジ情報を作成して出力する。ただし、算出部14は、グループ情報リスト17に登録されている一部の端末グループについてステップS13〜S17の処理を実行することでトポロジ情報を作成してもよい。
【0083】
例えば、グループ情報リスト17において、頻度カウンタの値が所定の閾値を超えている端末グループについてステップS13〜S17が実行されるようにしてもよい。この場合、閾値は、例えば、調査対象のネットワークに接続される端末の数、および/または、調査の実行回数に応じて決定される。一例として、図8に示す例において、閾値が「6」であるものとする。そうすると、上位4つの端末グループについてステップS13〜S17の処理が実行され、上述したトポロジ情報4が出力される。
【0084】
或いは、算出部14は、ステップS14で「No」と判定されてエラーが検出されたときに、端末グループの集約化処理を終了するようにしてもよい。すなわち、先に選択されている端末グループと、新たに選択された端末グループとの間の包含関係が矛盾するときに、端末グループの集約化処理を終了するようにしてもよい。
【0085】
ここで、端末グループ間の包含関係が矛盾し、ステップS16のエラーが検出されるケースについて説明する。一例として、2つの端末グループ「N1、N2」「N2、N3」が検出されてグループ情報リスト17に登録されているものとする。このとき、端末グループ「N1、N2」は、「端末N3は調査パケットを受信したが、端末N1、N2は調査パケットを受信していない」ときに検出される。すなわち、端末グループ「N1、N2」は、例えば、図11(a)に示すネットワークトポロジにおいて、スイッチングハブSW−Xで調査パケットのロスが発生したときに検出されると考えられる。
【0086】
一方、端末グループ「N2、N3」は、「端末N1は調査パケットを受信したが、端末N2、N3は調査パケットを受信していない」ときに検出される。すなわち、端末グループ「N2、N3」は、例えば、図11(b)に示すネットワークトポロジにおいて、スイッチングハブSW−Yで調査パケットのロスが発生したときに検出されると考えられる。
【0087】
このように、互いに矛盾する端末グループ「N1、N2」「N2、N3」が検出されると、図11(a)〜図11(b)に示すように、互いに異なるネットワークトポロジが推定される。すなわち、互いに矛盾する端末グループが検出されると、ネットワークトポロジを推定することはできない。そこで、実施形態のネットワーク調査方法では、互いに矛盾する端末グループが検出されたときは、検出頻度の高い端末グループに基づいてネットワークトポロジを推定する。具体的には、頻度カウンタの値の大きい端末グループから順番に図10に示すフローチャートの処理が実行される。そして、先に選択されている端末グループと、新たに選択された端末グループとの間の包含関係が矛盾するときには、図10に示すフローチャートにおいて、後に選択される端末グループのグループ情報は無視される。
【0088】
例えば、端末グループ「N2、N3」よりも端末グループ「N1、N2」の検出頻度の方が高いものとすると、図11(a)に示すネットワークトポロジが推定される。なお、図11(a)に示すネットワークトポロジにおいて、端末グループ「N2、N3」が検出される状況は、図11(c)に示すように、2地点でパケットロスが発生するときである。すなわち、端末グループ「N2、N3」は、スイッチングハブSW−Xと端末N2との間に設けられたスイッチングハブSW−Wで調査パケットのパケットロスが発生すると共に、スイッチングハブSW−Yと端末N3との間に設けられたスイッチングハブSW−Zでも調査パケットのパケットロスが発生するときに検出される。しかし、1回の調査においてほぼ同時に2地点でパケットロスが発生する確率は非常に低い。すなわち、例えば、図11(a)に示すネットワークトポロジにおいては、端末グループ「N2、N3」が検出される頻度は非常に低くなると見込まれる。したがって、端末グループの集約化処理において、頻度カウンタの値が所定の閾値以下の端末グループを使用しないことにより、不適切なネットワークトポロジが推定されることが回避される。
【0089】
算出部14は、上述のようにして作成したトポロジ情報に基づいて、調査対象のネットワークに接続される端末間の通信コストを算出する。この実施例では、トポロジ情報から通信コストテーブルへの変換が行われる。
【0090】
図12は、通信コストを算出する処理を示すフローチャートである。このフローチャートの処理は、例えば、基準端末が指定されたときに実行される。基準端末は、特に限定されるものではないが、例えば、調査対象のネットワークに新たに接続される端末である。すなわち、例えば、端末N1〜N5がP2Pネットワークを構築しており、このP2Pネットワークに新たに端末N6が接続される際には、端末N6が基準端末である。この場合、ネットワーク調査装置10は、端末N6からの問合せに応じて、端末N6から他の端末N1〜N5への通信コストをそれぞれ計算する。
【0091】
ステップS21において、算出部14は、ネットワークに接続されている複数の端末の中から計算対象端末を選択する。計算対象端末は、例えば、端末リスト16に登録されている端末であって、基準端末以外の端末の中から選択される。
【0092】
ステップS22において、算出部14は、トポロジ情報から、基準端末または計算対象端末のいずれも含まない部分リストを削除する。これにより、注目トポロジ情報が得られる。なお、注目トポロジ情報は、基準端末と計算対象端末を含む最小限のネットワークトポロジを表す。
【0093】
ステップS23において、算出部14は、ステップS22で得られる注目トポロジ情報において、基準端末と計算対象端末とを区切る括弧の数を計算する。そして、この括弧の数が、基準端末と計算対象端末との間の通信コストとして出力される。
【0094】
ステップS24〜S25において、算出部14は、計算対象端末として選択されていない端末をサーチする。そして、計算対象端末として選択されていない端末が残っているときは、その中から次の計算対象端末を選択してステップS22に戻る。すなわち、各端末についてそれぞれステップS22〜S23の処理が実行される。この結果、基準端末と他の各端末との間の通信コストがそれぞれ算出される。
【0095】
次に、通信コストの計算方法についての実施例を説明する。以下の説明では、図10に示すフローチャートの処理を実行することにより、下記のトポロジ情報が得られているものとする。
トポロジ情報=((N1、N2)N3)(N4(N5、N6))
なお、このトポロジ情報は、以下の4つの部分リストを有する
(N1、N2)
(N1、N2、N3)
(N5、N6)
(N4、N5、N6)
【0096】
ここで、基準端末=N6であるものとする。そうすると、通信コストは以下のようにして計算される。
計算対象端末=N5である場合、トポロジ情報から「((N1、N2)N3)」が削除され、注目トポロジ情報「(N4(N5、N6))」が生成される。そして、「N6」と「N5」との間を区切る括弧の数がカウントされる。この場合、「N6」および「N5」は、同じ括弧内に配置されている。したがって、端末N6から端末N5への通信コストは「0」である。
【0097】
計算対象端末=N4である場合も、注目トポロジ情報「(N4(N5、N6))」が生成される。ただし、「N4」は、「(N5、N6)」の外に配置されている。すなわち、「N6」および「N4」は、互いに1つの括弧により区切られている。したがって、端末N6から端末N4への通信コストは「1」である。
【0098】
計算対象端末=N3である場合は、注目トポロジ情報「((N1、N2)N3)(N4(N5、N6))」が生成される。ここで、「N6」から「N3」に到達するためには、下記の3つの括弧a〜cを超える必要がある。
括弧a:(N5、N6)
括弧b:(N4、N5、N6)
括弧c:(N1、N2、N3)
すなわち、「N6」から「N3」に到達するためには、括弧aの内側から外側へ移行し、括弧bの内側から外側へ移行し、括弧cの外側から内側へ移行する必要がある。換言すれば、「N6」および「N3」は、互いに3つの括弧により区切られている。したがって、端末N6から端末N3への通信コストは「3」である。
【0099】
計算対象端末=N2である場合は、注目トポロジ情報「((N1、N2)N3)(N4(N5、N6))」が生成される。ここで、「N6」から「N2」に到達するためには、下記の4つの括弧a〜dを超える必要がある。
括弧a:(N5、N6)
括弧b:(N4、N5、N6)
括弧c:(N1、N2、N3)
括弧d:(N1、N2)
すなわち、「N6」および「N2」は、互いに4つの括弧により区切られている。したがって、端末N6から端末N2への通信コストは「4」である。同様に、端末N6から端末N1への通信コストも「4」である。
【0100】
上記計算により、通信コストテーブル18が作成される。端末N6が基準端末であるときの通信コストテーブル18の実施例を図13に示す。なお、この実施例では、スイッチングハブSW1に対応するコストはカウントされていない。ただし、上述の計算においては、各端末に対して共通してスイッチングハブSW1に対応するコストが除去されているので、相対的な通信コストを比較する際には問題は生じない。また、スイッチングハブSW1に直接的に接続される端末が追加されると、さらに調査を繰り返すことによってスイッチングハブSW1の存在が認識または推定されるようになり、スイッチングハブSW1に対応するコストが計算結果に反映されるようになる。
【0101】
上述のようにして端末N6を基準とする通信コストテーブル18を作成すると、ネットワーク調査装置10は、端末N6に対して、端末N6からの通信コストが最も低い相手端末を通知する。図13に示す例では、ネットワーク調査装置10から端末N6に対して「N5」が通知される。そうすると、端末N6は、端末N5に対して、P2P通信データの転送先として端末N6を設定する旨を依頼する。また、この依頼を受けた端末N5は、他の端末(ここでは、端末N1〜N4の中の1つ)から受信したP2P通信データを、端末N6へ転送する。これにより、通信コストの低い経路でP2Pデータ配信が実現され、端末間の通信効率が向上する。
【0102】
ネットワーク調査装置10は、2以上の端末への通信コストが同じ場合には、例えば、調査パケットのロスの発生確率が低い方の端末を、P2P通信の相手端末として選択してもよい。また、ネットワーク調査装置10は、新たに追加された端末以外の端末を基準として通信コストを計算してもよい。すなわち、ネットワーク調査装置10は、任意の端末を基準として通信コストを計算できる。
【0103】
なお、ネットワーク調査装置10は、例えば、定期的に調査を繰り返し実行し、グループ情報リスト17を更新してゆく。この場合、時間経過に伴って調査パケットのロスの発生回数が増えてゆき、調査結果の信頼性が向上する。
【0104】
また、実施形態のネットワーク調査方法は、スイッチングハブ等において調査パケットのロスが発生することを利用する。このため、実施形態のネットワーク調査方法は、例えば、端末間で通常のP2Pデータ通信が行われているときに実行されるようにしてもよい。この場合、通常のP2Pデータ通信による輻輳に起因して調査パケットのロスが発生する確率が高くなる。この結果、グループ情報リスト17を作成するためのサンプル数が増加して調査の信頼性が向上する。或いは、グループ情報リスト17を作成するために要する時間が短くなる。
【0105】
さらに、ネットワーク調査装置10は、調査パケットのパケットロスを起こりやすくするために、調査実行時に調査パケットに加えてダミーパケットを送信するようにしてもよい。この場合、例えば、調査パケットおよびダミーパケットは、時間分割多重で送信される。
【0106】
<他の実施形態>
図3に示す実施形態では、通信コストを計算するためにネットワーク調査装置10が設けられている。これに対して、他の実施形態では、調査対象のネットワークに接続される複数の端末の中の任意の端末が、ネットワーク調査装置として端末間の通信コストを計算する。
【0107】
図14は、他の実施形態のネットワーク調査方法が使用されるネットワークの構成の一例を示す図である。ここでは、端末N1〜N6の中で、端末N1が通信コストを計算する機能を備えている。この場合、端末N1は、図4に示す送信部11、受信部12、検出部13、算出部14、一時リスト15、端末リスト16、グループ情報リスト17、通信コストテーブル18を備える。なお、端末N1〜N6の中の2以上の端末が通信コスト計算機能を備えてもよいし、各端末がそれぞれ通信コスト計算機能を備えてもよい。
【0108】
図14に示すシステムにおいて、端末N1がグループ情報リスト17を作成する手順、および各端末との間の通信コストを計算する手順は、基本的に、図3に示すネットワーク調査装置10により実行される手順と同じである。端末N1が作成した通信コストテーブル18の実施例を図15に示す。
【0109】
端末N1は、定期的に上述の調査を実行し、グループ情報リスト17および通信コストテーブル18を更新するようにしてもよい。この構成によれば、端末N1は、常に、通信コストの低い相手端末を利用してP2Pデータ配信を行うことができる。例えば、端末N1のP2P通信の相手端末として端末N3が指定されているものとする。その後、図15に示す通信コストテーブル18が得られたものとする。ここで、図15に示す例では、端末N1から端末N3への通信コストよりも、端末N1から端末N2への通信コストの方が低い。したがって、この場合、端末N1は、通信コストテーブル18を参照し、P2P通信の相手端末を、端末N3から端末N2に切り替える。これにより、P2P通信のデータ転送効率が改善する。なお、このような状況は、例えば、スイッチングハブSW3に端末N2が新たに接続されたときに発生し得る。
【0110】
<ハードウェア構成>
図16は、ネットワーク調査装置10のハードウェア構成を示す図である。なお、実施形態のネットワーク調査方法を実行する端末装置も、基本的に、図16に示す構成を有している。
【0111】
図16において、CPU101は、メモリ103を利用してネットワーク調査プログラムを実行することにより、実施形態のネットワーク調査方法を提供する。記憶装置102は、ネットワーク調査プログラムを格納する。なお、記憶装置102は、外部記憶装置であってもよい。メモリ103は、例えば半導体メモリであり、RAM領域およびROM領域を含んで構成される。このように、実施形態のネットワーク調査装置は、CPUおよびメモリを備えるコンピュータにより実現される。
【0112】
読み取り装置104は、CPU101の指示に従って可搬型記録媒体105にアクセスする。可搬型記録媒体105は、例えば、半導体デバイス、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体を含むものとする。通信インタフェース106は、CPU101の指示に従って、ネットワークを介してデータを送受信する。入出力装置107は、例えば、ユーザからの指示を受け付けるデバイス等に相当する。
【0113】
実施形態に係わるネットワーク調査プログラムは、上述したフローチャートの手順を記述しており、例えば、下記の形態で提供される。
(1)記憶装置102に予めインストールされている。
(2)可搬型記録媒体105により提供される。
(3)プログラムサーバ110からダウンロードする。
【0114】
そして、上記構成のコンピュータシステムでネットワーク調査プログラムを実行することにより、実施形態に係わるネットワーク調査装置が実現される。すなわち、上記構成のコンピュータシステムで実施形態のネットワーク調査プログラムを実行することにより、送信部11、受信部12、検出部13、算出部14の一部または全部が実現される。さらに、一時リスト15、端末リスト16、グループ情報リスト17、通信コストテーブル18は、例えば、メモリ103上に作成される。
【0115】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のネットワーク機器を介して複数の端末が接続されるネットワークの通信コストを算出するネットワーク調査装置であって、
前記複数の端末へ調査パケットを送信する送信部と、
前記調査パケットに対応する応答パケットを受信する受信部と、
前記受信部による前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出する検出部と、
前記送信部が前記調査パケットを繰り返し送信したときに前記検出部により検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する算出部、
を有するネットワーク調査装置。
(付記2)
付記1に記載のネットワーク調査装置であって、
前記複数の端末グループの検出頻度をそれぞれ記録するグループ情報リストをさらに備え、
前記算出部は、検出頻度の高い順に抽出した2以上の端末グループ間の包含関係を利用して、端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
(付記3)
付記2に記載のネットワーク調査装置であって、
前記算出部は、予め決められた閾値よりも高い検出頻度の端末グループ間の包含関係を利用して、端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
(付記4)
付記1に記載のネットワーク調査装置であって、
前記算出部は、前記複数の端末グループ間の内包関係に基づいて前記ネットワークのトポロジを表すトポロジ情報を生成し、前記トポロジ情報に基づいて端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
(付記5)
付記1〜4のいずれか1つに記載のネットワーク調査装置であって、
前記送信部は、マルチキャストまたはブロードキャストで前記調査パケットを前記複数の端末へ送信する
ことを特徴とするネットワーク調査装置。
(付記6)
付記1〜4のいずれか1つに記載のネットワーク調査装置であって、
前記送信部は、再送機能を有していないプロトコルで前記調査パケットを送信し、
前記受信部は、再送機能を有するプロトコルで前記応答パケットを受信する
ことを特徴とするネットワーク調査装置。
(付記7)
付記1〜4のいずれか1つに記載のネットワーク調査装置であって、
前記送信部は、前記調査パケットと並列にダミーパケットを送信する
ことを特徴とするネットワーク調査装置。
(付記8)
複数のネットワーク機器を介して複数の端末が接続されるネットワークにおいてネットワーク調査装置により実行されるネットワーク調査方法であって、
前記複数の端末へ調査パケットを送信し、
前記調査パケットに対応する応答パケットを受信し、
前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出し、
前記調査パケットを繰り返し送信したときに検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する、
ことを特徴とするネットワーク調査方法。
(付記9)
付記8に記載のネットワーク調査方法であって、
前記ネットワーク調査装置は、前記複数の端末の中の任意の端末により実現される
ことを特徴とするネットワーク調査方法。
【符号の説明】
【0116】
1 ルータ
2 サブネットワーク
3 外部ネットワーク
10 ネットワーク調査装置
11 送信部
12 受信部
13 検出部
14 算出部
15 一時リスト
16 端末リスト
17 グループ情報リスト
18 通信コストテーブル
【特許請求の範囲】
【請求項1】
複数のネットワーク機器を介して複数の端末が接続されるネットワークの通信コストを算出するネットワーク調査装置であって、
前記複数の端末へ調査パケットを送信する送信部と、
前記調査パケットに対応する応答パケットを受信する受信部と、
前記受信部による前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出する検出部と、
前記送信部が前記調査パケットを繰り返し送信したときに前記検出部により検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する算出部、
を有するネットワーク調査装置。
【請求項2】
請求項1に記載のネットワーク調査装置であって、
前記複数の端末グループの検出頻度をそれぞれ記録するグループ情報リストをさらに備え、
前記算出部は、検出頻度の高い順に抽出した2以上の端末グループ間の包含関係を利用して、端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
【請求項3】
請求項2に記載のネットワーク調査装置であって、
前記算出部は、予め決められた閾値よりも高い検出頻度の端末グループ間の包含関係を利用して、端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
【請求項4】
請求項1に記載のネットワーク調査装置であって、
前記算出部は、前記複数の端末グループ間の内包関係に基づいて前記ネットワークのトポロジを表すトポロジ情報を生成し、前記トポロジ情報に基づいて端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
【請求項5】
複数のネットワーク機器を介して複数の端末が接続されるネットワークにおいてネットワーク調査装置により実行されるネットワーク調査方法であって、
前記複数の端末へ調査パケットを送信し、
前記調査パケットに対応する応答パケットを受信し、
前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出し、
前記調査パケットを繰り返し送信したときに検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する、
ことを特徴とするネットワーク調査方法。
【請求項1】
複数のネットワーク機器を介して複数の端末が接続されるネットワークの通信コストを算出するネットワーク調査装置であって、
前記複数の端末へ調査パケットを送信する送信部と、
前記調査パケットに対応する応答パケットを受信する受信部と、
前記受信部による前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出する検出部と、
前記送信部が前記調査パケットを繰り返し送信したときに前記検出部により検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する算出部、
を有するネットワーク調査装置。
【請求項2】
請求項1に記載のネットワーク調査装置であって、
前記複数の端末グループの検出頻度をそれぞれ記録するグループ情報リストをさらに備え、
前記算出部は、検出頻度の高い順に抽出した2以上の端末グループ間の包含関係を利用して、端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
【請求項3】
請求項2に記載のネットワーク調査装置であって、
前記算出部は、予め決められた閾値よりも高い検出頻度の端末グループ間の包含関係を利用して、端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
【請求項4】
請求項1に記載のネットワーク調査装置であって、
前記算出部は、前記複数の端末グループ間の内包関係に基づいて前記ネットワークのトポロジを表すトポロジ情報を生成し、前記トポロジ情報に基づいて端末間の通信コストを算出する
ことを特徴とするネットワーク調査装置。
【請求項5】
複数のネットワーク機器を介して複数の端末が接続されるネットワークにおいてネットワーク調査装置により実行されるネットワーク調査方法であって、
前記複数の端末へ調査パケットを送信し、
前記調査パケットに対応する応答パケットを受信し、
前記応答パケットの受信結果に基づいて、前記複数の端末の中で前記調査パケットを受信していない端末が属する端末グループを検出し、
前記調査パケットを繰り返し送信したときに検出される複数の端末グループ間の包含関係に基づいて、端末間の通信コストを算出する、
ことを特徴とするネットワーク調査方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−60263(P2012−60263A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−199309(P2010−199309)
【出願日】平成22年9月6日(2010.9.6)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願日】平成22年9月6日(2010.9.6)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]