(57)【特許請求の範囲】
【請求項１】
コンピュータネットワークに接続している観測装置と観測対象装置間の経路情報を収集する経路情報収集方法であって、
前記観測装置が前記観測対象装置のアドレスを取得する第一のステップと、
前記観測装置が前記観測対象装置の属しているネットワークセグメントに関する情報を取得または推測する第二のステップと、
前記観測装置が前記観測装置から前記観測対象装置への経路情報、および前記ネットワークセグメントに関する情報に基づいて前記ネットワークセグメントに属すると推測した前記観測対象装置とは別のいくつかの装置への経路情報を取得する第三のステップと、
前記観測装置が取得した前記経路情報を前記ネットワークセグメント毎に経路情報テーブルに格納する第四のステップと、
で実現されることを特徴とする経路情報収集方法。
【請求項２】
コンピュータネットワークに接続している観測装置と観測対象装置間の経路情報を収集する経路情報収集方法であって、
前記観測装置が前記観測対象装置のアドレスを取得する第一のステップと、
前記観測装置に割り当てられた複数のアドレスのリストを取得する第二のステップと、
前記観測装置が前記アドレスのリストに記載のアドレスを複数選択し、選択した前記アドレスすべてについてこれを前記観測装置の送信元アドレスとして設定し、すべての前記送信元アドレスについて前記観測装置から前記観測対象装置への経路情報を取得する第三のステップと、
前記観測装置が取得した前記経路情報を前記観測対象装置毎に経路情報テーブルに格納する第四のステップと、
で実現されることを特徴とする経路情報収集方法。
【請求項３】
請求項１または２に記載の経路情報収集方法であって、
前記経路情報とは前記観測装置から前記観測対象装置または前記観測対象装置が属しているネットワークセグメントに属すると推測した前記観測対象装置とは別のいくつかの装置への経路上に存在する中継装置の識別情報を前記観測装置に近い順に配列したものである
ことを特徴とする経路情報収集方法。
【請求項４】
コンピュータネットワークに接続している観測装置と観測対象装置間の経路情報を収集する経路情報収集方法であって、
前記経路情報とは前記観測装置からコンピュータネットワーク上の装置の間の経路上に存在する中継装置の識別情報を前記観測装置に近い順に配列したものであって、
前記観測装置が前記観測対象装置のアドレスを取得する第一のステップと、
前記観測装置が前記観測装置から前記観測対象装置の経路情報を取得する第二のステップと、
前記第二のステップにより経路情報を取得後、これまで取得できた経路情報に記載の中継装置のうち、これまで前記観測装置からの経路情報を取得していない中継装置について前記観測装置−前記中継装置間の経路情報を取得する処理を再帰的に実行する処理を行う第三のステップと、
第一のステップ、第二のステップ、および第三のステップの実行により取得できた経路情報を前記観測対象装置毎に経路情報テーブルに保存する第四のステップと
を有することを特徴とする経路情報収集方法。
【請求項５】
請求項４に記載の経路情報収集方法であって、
前記観測装置は前記中継装置が属するネットワークセグメントに関する情報を取得または推測し、これを前記経路情報テーブルに保存すること
を特徴とする経路情報収集方法。
【請求項６】
請求項４または５に記載の経路情報収集方法であって、
前記経路情報テーブルに保存される経路情報は、前記観測装置からのホップ数と中継装置の識別情報で構成されること
を特徴とする経路情報収集方法。
【請求項７】
コンピュータネットワークに接続している観測対象装置との経路情報を収集する観測装置であって、
前記観測対象装置のアドレスを取得する第一の手段と、
前記観測対象装置の属しているネットワークセグメントに関する情報を取得または推測する第二の手段と、
前記観測対象装置への経路情報、および前記ネットワークセグメントに関する情報に基づいて前記ネットワークセグメントに属すると推測した前記観測対象装置とは別のいくつかの装置への経路情報を取得する第三の手段と、
取得した前記経路情報を前記ネットワークセグメント毎に経路情報テーブルに格納する第四の手段と、
を備えたことを特徴とする観測装置。
【請求項８】
コンピュータネットワークに接続している観測対象装置との経路情報を収集する観測装置であって、
前記観測対象装置のアドレスを取得する第一の手段と、
観測装置に割り当てられた複数のアドレスのリストを取得する第二の手段と、
前記アドレスのリストに記載のアドレスを複数選択し、選択した前記アドレスすべてについてこれを送信元アドレスとして設定し、すべての前記送信元アドレスについて前記観測対象装置への経路情報を取得する第三の手段と、
取得した前記経路情報を前記観測対象装置毎に経路情報テーブルに格納する第四の手段と、
を備えたことを特徴とする観測装置。
【請求項９】
請求項７または８に記載の観測装置であって、
前記経路情報とは観測装置から前記観測対象装置または前記観測対象装置が属しているネットワークセグメントに属すると推測した前記観測対象装置とは別のいくつかの装置への経路上に存在する中継装置の識別情報を観測装置に近い順に配列したものである
ことを特徴とする観測装置。
【請求項１０】
コンピュータネットワークに接続している観測対象装置との経路情報を収集する観測装置であって、
前記経路情報とは観測装置からコンピュータネットワーク上の装置の間の経路上に存在する中継装置の識別情報を観測装置に近い順に配列したものであって、
前記観測対象装置のアドレスを取得する第一の手段と、
観測装置から前記観測対象装置の経路情報を取得する第二の手段と、
前記第二の手段により経路情報を取得後、これまで取得できた経路情報に記載の中継装置のうち、これまで観測装置からの経路情報を取得していない中継装置について観測装置−前記中継装置間の経路情報を取得する処理を再帰的に実行する処理を行う第三の手段と、
第一の手段、第二の手段、および第三の手段により取得できた経路情報を前記観測対象装置毎に経路情報テーブルに保存する第四の手段と
を備えたことを特徴とする観測装置。
【請求項１１】
請求項１０に記載の観測装置であって、
前記中継装置が属するネットワークセグメントに関する情報を取得または推測し、これを前記経路情報テーブルに保存すること
を特徴とする観測装置。
【請求項１２】
請求項１０または１１に記載の観測装置であって、
前記経路情報テーブルに保存される経路情報は、前記観測装置からのホップ数と中継装置の識別情報で構成されること
を特徴とする観測装置。
【請求項１３】
コンピュータネットワークに接続している観測装置と観測対象装置間の経路情報を収集する経路情報収集プログラムであって、
コンピュータを、
前記観測対象装置のアドレスを取得する第一の手段、
前記観測対象装置の属しているネットワークセグメントに関する情報を取得または推測する第二の手段、
前記観測装置から前記観測対象装置への経路情報、および前記ネットワークセグメントに関する情報に基づいて前記ネットワークセグメントに属すると推測した前記観測対象装置とは別のいくつかの装置への経路情報を取得する第三の手段、および、
取得した前記経路情報を前記ネットワークセグメント毎に経路情報テーブルに格納する第四の手段、
として機能させるための経路情報収集プログラム。
【請求項１４】
コンピュータネットワークに接続している観測装置と観測対象装置間の経路情報を収集する経路情報収集プログラムであって、
コンピュータを、
前記観測対象装置のアドレスを取得する第一の手段、
前記観測装置に割り当てられた複数のアドレスのリストを取得する第二の手段、
前記アドレスのリストに記載のアドレスを複数選択し、選択した前記アドレスすべてについてこれを前記観測装置の送信元アドレスとして設定し、すべての前記送信元アドレスについて前記観測装置から前記観測対象装置への経路情報を取得する第三の手段、および、
取得した前記経路情報を前記観測対象装置毎に経路情報テーブルに格納する第四の手段、
として機能させるための経路情報収集プログラム。
【請求項１５】
請求項１３または１４に記載の経路情報収集プログラムであって、
前記経路情報とは前記観測装置から前記観測対象装置または前記観測対象装置が属しているネットワークセグメントに属すると推測した前記観測対象装置とは別のいくつかの装置への経路上に存在する中継装置の識別情報を前記観測装置に近い順に配列したものである
ことを特徴とする経路情報収集プログラム。
【請求項１６】
コンピュータネットワークに接続している観測装置と観測対象装置間の経路情報を収集する経路情報収集プログラムであって、
前記経路情報とは前記観測装置からコンピュータネットワーク上の装置の間の経路上に存在する中継装置の識別情報を前記観測装置に近い順に配列したものであって、
コンピュータを、
前記観測対象装置のアドレスを取得する第一の手段、
前記観測装置から前記観測対象装置の経路情報を取得する第二の手段、
前記第二の手段により経路情報を取得後、これまで取得できた経路情報に記載の中継装置のうち、これまで前記観測装置からの経路情報を取得していない中継装置について前記観測装置−前記中継装置間の経路情報を取得する処理を再帰的に実行する処理を行う第三の手段、および、
第一の手段、第二の手段、および第三の手段により取得できた経路情報を前記観測対象装置毎に経路情報テーブルに保存する第四の手段、
として機能させるための経路情報収集プログラム。
【請求項１７】
請求項１６に記載の経路情報収集プログラムであって、
前記中継装置が属するネットワークセグメントに関する情報を取得または推測し、これを前記経路情報テーブルに保存すること
を特徴とする経路情報収集プログラム。
【請求項１８】
請求項１６または１７に記載の経路情報収集プログラムであって、
前記経路情報テーブルに保存される経路情報は、前記観測装置からのホップ数と中継装置の識別情報で構成されること
を特徴とする経路情報収集プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はインターネット上で観測拠点と観測対象拠点との間の経路情報を詳細に収集する技術に関する。
【０００２】
【従来の技術】
インターネットの急激な発展に伴い、インターネットに接続する端末数の増加、ネットワークトポロジーの複雑化、インターネット上のトラヒックの増大などによりインターネットを介したサービス提供の際の品質維持が問題となっている。サービス品質の劣化を防ぐため分散配置された複数のサーバを用いてサービスを提供するケースが増えている。このように同一のサービスを複数台のサーバで提供する場合、複数台のサーバに対するクライアントアクセスの振り分けを行うサーバ選択装置が必要である。サーバ選択の１方法として複数のミラーサーバのうちなるべくクライアントから最寄りのサーバを選択させるものがある。この方法によるサーバ選択を精度良く実施するためにはミラーサーバ−クライアント間の経路情報を正確に、詳細に収集する必要がある。
【０００３】
インターネット上の２拠点間の経路情報を取得する方法として最も一般的なものの一つにtracerouteコマンドがある。tracerouteコマンドはインターネット接続可能な汎用コンピュータにはほぼ標準で備わっているコマンドである。tracerouteコマンドは自端末からインターネットに接続している他端末に向かう経路上に存在するルータのアドレスを自端末に近い順で表示する機能を提供する。
【０００４】
このtracerouteコマンドを用いたミラーサーバ−クライアント間の経路情報の収集方法、およびその経路情報を用いたサーバ選択方法としていくつかの方法があるのでここで説明する。
【０００５】
（方法１）クライアント側からミラーサーバ−クライアント間の経路情報を知る方法
あらかじめ複数のミラーサーバのアドレスをクライアントに通知し、クライアントはすべてのミラーサーバに対してtracerouteコマンドを実施する。すべてのミラーサーバに対するtracerouteコマンドの実行結果に基づいてアクセスするミラーサーバを決定する。この方法により例えば経由ルータ数の最も少ないミラーサーバにアクセスすることを決定するといったサーバ選択が可能となる。
【０００６】
（方法２）ミラーサーバ側からミラーサーバ−クライアント間の経路情報を知る方法
サーバ選択機能を提供するサーバ選択装置は全てのミラーサーバに対してミラーサーバ−クライアント間の経路情報取得を要求する。その要求に基づいてそれぞれのミラーサーバはtracerouteコマンドをクライアントに対して実行し、実行結果をサーバ選択装置に通知する。サーバ選択装置はその実行結果を収集し、その結果に基づいてクライアントにアクセスさせるサーバを決定する。この方法により例えば経由ルータ数の最も少ないミラーサーバにクライアントをアクセスさせる事を決定するといったサーバ選択が可能となる。
【０００７】
（方法３）第３の観測装置を用いてミラーサーバ−クライアント間の経路情報を取得する方法
ミラーサーバ−クライアント間距離測定をミラーサーバ・クライアント以外の第３の観測装置を用いて行う方法である。本出願人による特願２０００−１８５１４０号（特開２００２−９８２８号公報（平成１４年１月１１日公開）、特許第３４０１４７８号（平成１５年２月２１日登録））に記載の方法について説明する。事前に複数台のミラーサーバに対し観測装置−ミラーサーバ間の経路情報（経路上に存在するルータのアドレスを観測装置から近い順に並べた情報）をtracerouteコマンド等によって取得し、これを記憶しておく。観測装置にミラーサーバ−クライアント間の経路情報取得要求が発生した場合、観測装置はクライアントに対しtracerouteコマンドに類する処理を実施して観測装置−クライアント間の経路情報を取得する。この観測装置−クライアント間の経路情報と事前に取得しておいた観測装置−ミラーサーバ間の経路情報とを比較し、共通経路における経由ルータ数をＭ、観測装置−クライアント間の経由ルータ数をＣ、観測装置−ミラーサーバ間の経由ルータ数をＳとし、評価値Ｌ＝Ｃ＋Ｓ−２×Ｍを最小にするミラーサーバを選択することで最寄りサーバを選択する方法である。図１を例として説明する。図１から観測装置−サーバ１までの経由ルータ数Ｓ１＝４，観測装置−サーバ２までの経由ルータ数Ｓ２＝４，観測装置−クライアントまでの経由ルータ数Ｃ＝５，観測装置−サーバ１までと観測装置−クライアントまでの共通経路に存在する経由ルータ数Ｍ１＝４，観測装置−サーバ１までと観測装置−クライアントまでの共通経路に存在する経由ルータ数Ｍ２＝２であるから、サーバ１の評価値Ｌ１＝Ｃ＋Ｓ１−２×Ｍ１＝５＋４−２×４＝１とサーバ２の評価値Ｌ２＝Ｃ＋Ｓ２−２×Ｍ２＝５＋４−２×２＝５とを比較し、これを小さくするサーバ１を選択する。
【０００８】
方法３の場合事前に観測装置−ミラーサーバ間の経路情報を取得する必要があるが、これをtracerouteによって行う他にＲＩＰ、ＢＧＰ４などのルーティングプロトコルを用いて各ルータのルーティングテーブルを取得する方法がある。ＲＩＰは自律システム（インターネットの管理単位、独自のルーティングポリシで管理する事が可能）内部のルーティングプロトコルとして代表的なものであり、３０秒毎にルータに直接接続されるネットワークにルーティングテーブルをブロードキャストする方式である。またＢＧＰ４は自律システム間のルーティングプロトコルであり、ＢＧＰ４対応ルータ間でＴＣＰのコネクションを確立し、複数の自律システムの接続関係を示すパスツリーを交換する。この方法は実際にルーティングを行うルータのルーティングテーブルを直接参照する方法であるため、正確な経路情報が得られるものと期待できる。
【０００９】
【発明が解決しようとする課題】
しかしながら上記の方法では実用上の問題が発生する。
方法１、方法２ともtracerouteコマンドをミラーサーバの数だけ実施しなければならないため、すべてのミラーサーバからの応答がない限り最寄りサーバを特定できない。従ってサーバ選択に要する時間を長期化させてしまう可能性がある。近年サービスのレスポンスタイムの高速化はインターネット上でサービスを提供する際の必須要件であるため、これらの方法は実用的ではない。
【００１０】
方法３は事前に取得しておいた観測装置−ミラーサーバ間の経路情報を用いるため、サーバ選択時には観測装置−クライアント間の経路を一つだけ取得すれば良い。従って上記２方法に比べると高速な方法となる。しかし、これらの方法も事前に観測装置−ミラーサーバ間の経路情報を取得する部分で下記に示すような実用上の問題点がある。
【００１１】
tracerouteコマンドを用いて事前に観測装置−ミラーサーバ間の経路情報を取得する方法では、一度のtracerouteコマンドの実行で取得できる経路は一通りであり、インターネットのような複雑な冗長構成を持つネットワークの経路情報を取得することが困難である。また短期間に複数回tracerouteコマンドを実行した場合でも、ルータ側でtracerouteコマンドの送信元、送信先およびネクストホップの組をキャッシュするケースが多いため、同一の経路を辿る場合が多く、冗長構成を網羅した経路情報を取得することは困難である。このような経路情報を用いて方法３によるサーバ選択を実施した場合、観測装置と実際はクライアントに最寄りであるミラーサーバとの間の経路と、観測装置とクライアントとの間の経路とがインターネットの冗長構成によって別な経路を辿る可能性があるため正確なサーバ選択処理が行えない可能性がある。図２に示した例では、クライアントはサーバ２の方が近いが、観測装置からそれぞれのサーバヘの経路上で経由する中継装置は観測装置に近い順にサーバ１がＲ１，Ｒ２，Ｒ６、サーバ２がＲ１，Ｒ５，Ｒ３，Ｒ４であり、観測装置からクライアントヘの経路上で経由する中継装置は観測装置に近い順にＲ１，Ｒ２，Ｒ６，Ｒ７，Ｒ８である。これらから観測装置−サーバ１までの経由ルータ数Ｓ１＝３，観測装置−サーバ２までの経由ルータ数Ｓ２＝４，観測装置−クライアントまでの経由ルータ数Ｃ＝５，観測装置−サーバ１までと観測装置−クライアントまでの共通経路に存在する経由ルータ数Ｍ１＝３，観測装置−サーバ２までと観測装置−クライアントまでの共通経路に存在する経由ルータ数Ｍ２＝１であるから、サーバ１の評価値Ｌ１＝Ｃ＋Ｓ１−２×Ｍ１＝５＋３−２×３＝２とサーバ２の評価値Ｌ２＝Ｃ＋Ｓ２−２×Ｍ２＝５＋４−２×１＝７とを比較し、これを最小にするサーバ１を選択してしまう。実際の経由ルータ数から考えると本来ならばサーバ２が選ばれるべきであるにもかかわらずサーバ１が選ばれてしまう。このようにサーバまでの経路情報にネットワークの冗長構成に関する情報が含まれない場合クライアントにとっての最寄りサーバを選択する事が困難となる。
【００１２】
またルーティングプロトコルを用いて事前に観測装置−サーバ間の経路情報を取得する方法では、前述のtracerouteを用いる方法に比べ冗長構成を含めた正確な経路情報が取得できる可能性がある。しかし例えばＲＩＰの場合観測装置が取得できるルーティングテーブルは、観測装置が接続しているネットワークに直接接続しているルータのルーティングテーブルのみであるため、全てのミラーサーバまでの経路を収集するためには、全てのサブネット上に観測装置をおく必要があり非現実的である。また、ＢＧＰ４などのように認証機能が設けられているプロトコルの場合、ルータによっては観測装置に対しＢＧＰ４による通信を認めていない可能性がある。このような制約により、ルーティングプロトコルによって取得したルーティングテーブルのみで全ての経路を網羅した経路情報を取得するのは困難である。
【００１３】
以上述べてきたように、実際のサービスに適用可能な方式は方法３のみであるが、方法３にも実用上の問題がある。本発明の目的は、方法３の問題点である観測装置−サーバ間の経路情報を正確に取得するための技術を提供することである。
【００１４】
【課題を解決するための手段】
本特許に記載の３つの発明について説明する。
第一の発明を説明するフローチャートを図３に示す。はじめに観測装置が観測対象装置のアドレスを外部から取得する。取得した観測対象装置のアドレスから該観測対象装置が属するネットワークセグメントに関する情報を取得する。ここでネットワークセグメントに関する情報とは例えば観測対象装置が属するネットワークのサブネットマスク、あるいはネットワークアドレスなどの場合もある。また、このステップでは情報を取得せず、推定するのみの場合もある。続いて観測装置−観測対象装置間の経路情報を取得する。ここで経路情報とは観測装置−観測対象装置間の経路上に配置されている中継装置の識別情報を観測装置に近い順に配列したものである場合もある。また中継装置とはルータである場合もある。続いて観測対象装置の属するネットワークセグメントに関する情報に基づき、そのネットワークセグメントに属する装置を推測し、観測装置−推測した装置間の経路情報を取得する。最後に上記のステップで取得した経路情報をネットワークセグメント毎に経路情報テーブルに格納する。経路情報に中継装置が含まれる場合、中継装置の属性情報を取得、あるいは推定して当該テーブルに保存する場合もある。これで第一の発明の処理が終了する。
【００１５】
ここで第一の発明における経路情報を格納するテーブルの構成例を図４を用いて説明する。テーブルの情報要素はネットワークセグメントの識別情報および経路情報である。経路情報はネットワークセグメント毎に当テーブルに格納される。一つのネットワークセグメントに対し１つの観測装置−観測対象装置間の経路情報と、観測装置−推測した装置間の複数の経路情報が関連付けられる形で格納される。
【００１６】
このように一つのネットワークセグメントに対し複数の経路情報が格納されることから、あるネットワークセグメントに到達する経路の冗長構成に関する情報を取得する事が可能となる。
【００１７】
次に第二の発明を説明するフローチャートを図５に示す。はじめに観測装置が観測対象装置のアドレスを外部から取得する。続いて観測装置に割り当てられた複数のアドレスのリストを外部から取得する。続いて割り当てられたアドレスのいくつかを選択し、選択されたアドレスすべてについて観測装置の送信元アドレスとして設定し、すべてのアドレスについて経路情報を取得する。ここで経路情報とは観測装置−観測対象装置間の経路上に配置されている中継装置の識別情報を観測装置に近い順に配列したものである場合もある。また中継装置とはルータである場合もある。最後に上記のステップで取得した経路情報を観測対象装置の識別情報毎に経路情報テーブルに格納する。
【００１８】
ここで第二の発明における経路情報を格納するテーブルの構成例を図６を用いて説明する。テーブルの情報要素は観測対象装置の識別情報および経路情報である。経路情報は観測対象装置毎に当テーブルに格納される。一つの観測対象装置に対しアドレスがそれぞれ異なる観測装置−観測対象装置間の複数経路情報が関連付けられる形で格納される。
【００１９】
このように一つの観測対象装置に対し複数の経路情報が格納されることから、ある観測対象装置に到達する経路の冗長構成に関する情報を取得する事が可能となる。
【００２０】
次に第三の発明を説明するフローチャートを図７に示す。はじめに観測装置が観測対象装置のアドレスを外部から取得する。取得した観測対象装置のアドレスから観測装置−観測対象装置間の経路情報を取得する。ここで経路情報とは観測装置−観測対象装置間の経路上に配置されている中継装置の識別情報を観測装置に近い順に羅列したものである。また中継装置とはルータである場合もある。次に取得した経路情報に記載の中継装置のうち、その中継装置自体を経路情報の取得対象として観測装置−中継装置間の経路情報を取得した事のない中継装置すべてについて、これを取得する。取得した結果経路情報に記載の中継装置のうち、その中継装置自体を経路情報の取得対象とした観測装置−中継装置間の経路情報を取得した事のない中継装置が存在するならば再度上記のステップを繰り返す。このステップを繰り返し、経路情報に含まれる全ての中継装置についてそれ自体を経路情報の取得対象とした観測装置−中継装置間の経路情報を取得し終えたら、取得した経路情報すべてについて観測対象装置毎に経路情報を格納するテーブルに保存して処理を終了する。中継装置の属性情報を取得、あるいは推定して当該テーブルに保存する場合もある。これで第三の発明の処理が終了する。
【００２１】
ここで第三の発明における経路情報の取得例を図８に示す。ここで図中Ａ〜Ｆは中継装置である。まず観測装置−観測対象装置間の経路情報を取得する（▲１▼）。このとき観測装置から近い順にＡ，Ｂ，Ｃ，Ｄが中継装置として取得できたとする。続いて取得できた中継装置のうち観測対象装置に近いものから順に（図８の例ではＤから）その中継装置自身を観測対象として観測装置−中継装置間経路情報を取得する（▲２▼，▲３▼，▲４▼，▲５▼）。これらの実行の結果図８では新たに取得した中継装置Ｅ，Ｆが経路情報の取得対象となっていないため、これらについて観測装置−中継装置間経路情報を取得する（▲６▼，▲７▼）これらの実行の結果図８では経路情報の取得対象になっていない中継装置は存在しないため、ここで経路情報取得処理を終了する。
【００２２】
また第三の発明における経路情報を格納するテーブルの構成例を図９を用いて説明する。テーブルの情報要素は観測対象装置の識別情報および経路情報である。経路情報は観測装置からのホップ数と中継装置の識別情報で構成される。この経路情報は観測対象装置の識別情報毎に当テーブルに格納される。
【００２３】
このように一つの観測対象装置に対し複数の経路情報が格納されることから、あるネットワークセグメントに到達する経路の冗長構成に関する情報を取得する事が可能となる。
【００２４】
【発明の実施の形態】
本発明の実施例を説明する。実施例の説明にあたり前提となる条件を示す。
●  全てのサーバ、装置はインターネット通信可能な汎用コンピュータ上のソフトウェアで実装されるものとする。
●  ミラーサーバはＷＷＷサーバとする。
【００２５】
（実施例１）
実施例１では第一の発明の実施例について述べる。実施例１ではサーバ選択装置が事前にサーバ選択装置−ミラーサーバ間の経路情報を取得しておき、クライアントからのサーバ選択要求に基づいてクライアントから見たホップ数（経由ルータ数）の少ないサーバを選択するシステムを実現する。実施例１において前提とするネットワーク環境を図１０に示す。Ｒ１からＲ７はすべてルータであり、Ｒ２−１とＲ２−２、Ｒ３−１とＲ３−２、Ｒ４−１とＲ４−２はそれぞれ二重化されたルータであるとする。またミラーサーバ１が属するＩＰサブネットをＳＳ１、ミラーサーバ２が属するＩＰサブネットをＳＳ２とする。
【００２６】
ここで当実施例におけるサーバ選択装置の構造について図１１に示す。当サーバ選択装置は、ミラーサーバの経路情報を取得する部分、クライアントに対して最もホップ数の少ないミラーサーバを選択する部分、および共通部分で構成される。
【００２７】
まず共通部分の構成について説明する。共通部分はネットワークインターフェース関連と経路情報テーブルの部分である。ネットワークインターフェース関連はデータリンク層／物理層ネットワークインターフェース、ＩＰ（Internet Protocol）／ＩＣＭＰ（Internet Control Message Protocol）プロトコルスタックおよびＴＣＰ（Transmission Control Protocol）プロトコルスタックで構成される。後述のＨＴＴＰサーバとの通信にはＴＣＰプロトコルスタックが使用され、経路情報取得のためにはＴＣＰプロトコルスタックを介さずにＩＰ／ＩＣＭＰプロトコルスタックが直接使用される。経路情報テーブルはテキストファイルで構成され、記述される情報要素はネットワークアドレス、サブネットマスク、経路情報としてサーバ選択装置からのホップ数と経由ルータのＩＰアドレスのリストである。
【００２８】
続いてミラーサーバの経路情報を取得する部分の構成について説明する。ミラーサーバの経路情報を経路情報テーブルに登録する場合は、サーバ選択装置のＨＴＴＰサーバ１にアクセスする。経路情報収集制御用ホームページでは登録したいミラーサーバのＩＰアドレスおよびミラーサーバが属するサブネットのサブネットマスクを入力させ、入力内容を経路情報収集ＣＧＩに通知する。経路情報収集ＣＧＩはミラーサーバのＩＰアドレスおよびミラーサーバが属するサブネットのサブネットマスクを引数として経路情報収集プロセスを起動し、経路情報収集処理を開始した旨を出力して処理を終了する。経路情報収集プロセスの処理フローを図１２に示す。サーバ選択装置は当業者には既知のtracerouteコマンドを有している。tracerouteコマンドはターゲットとなるＩＰアドレスをコマンドの引数にしてtracerouteコマンドを実行すると、観測サーバからターゲットとなるＩＰアドレスまでの経路上に存在するルータのＩＰアドレスを観測サーバに近い順に表示する機能を有している。まず当サーバ選択装置はミラーサーバのＩＰアドレスに対しtracerouteを実行する。例えばミラーサーバ１へtracerouteを実施した結果経由ルータがＲ１（０），Ｒ２−２（０），Ｒ３−２（０），Ｒ６（０）であることがわかったとする。しかし実際にはＲ２−１（０）とＲ２−２（０）、Ｒ３−１（０）とＲ３−２（０）とは冗長構成となっているため、この時点では経路情報としては不十分である。次に経路情報収集プロセスに入力されたサブネットマスクを用い、そのサブネットに属すると推測されるサーバのＩＰアドレスをいくつか用意する。サーバ１のＩＰアドレスが172.18.100.80、サブネットマスクが255.255.255.0である場合、例えば２つのＩＰアドレス、172.18.100.10，172.18.100.40を自動的に生成し、これらのアドレスに対しtracerouteを実行する。パケットの送信先がミラーサーバとは異なるため、172.18.100.80の時と比ベtracerouteの結果が別ルートになる可能性がある。172.18.100.10に対してtracerouteを行った結果がＲ１（０），Ｒ２−１（０），Ｒ３−２（０），Ｒ６（０）であり、172.18.100.40に対してtracerouteを行った結果がＲ１（０），Ｒ２−１（０），Ｒ３−１（０），Ｒ６（０）であったものとする。これらの結果を経路情報テーブルに格納する。格納した結果を図１３の上半分に示す。このように同一サブネットに属する複数のクライアントに向け経路情報を取得することで、冗長度の高いネットワークの経路情報をより正確に取得する事が可能となる。
【００２９】
続いてクライアントに対して最もホップ数の少ないミラーサーバを選択する部分について説明する。ミラーサーバ１のＩＰアドレスを172.18.100.80，ミラーサーバ２のアドレスを172.18.200.10とした時の経路情報テーブルに格納されている情報を図１３に示す。クライアントはコンテンツを取得するためにサーバ選択装置のＨＴＴＰサーバ２にアクセスする。ＨＴＴＰサーバ２は自ら要求されたコンテンツを配信するのではなく、まずサーバ選択プロセスを起動し，サーバ選択プロセスが選択したサーバにクライアントの要求をリダイレクトする。図１４に示すメッセージをクライアントに送信することでリダイレクトを実施する。サーバ選択プロセスでは、クライアントのＩＰアドレスに対しtracerouteを実行する。tracerouteの実行結果がＲ１（０），Ｒ２−２（０），Ｒ３−２（０），Ｒ４−１（０），Ｒ５（０）であったとする。この例ではサーバ選択装置−ミラーサーバ１までの経由ルータ数Ｓ１＝４，サーバ選択装置−ミラーサーバ２までの経由ルータ数Ｓ２＝５，サーバ選択装置−クライアントまでの経由ルータ数Ｃ＝５である。図１３に示す経路情報テーブルを用いてサーバ選択装置−クライアント間の経路と、サーバ選択装置−サーバ１、サーバ２間の経路との共通経路を次のアルゴリズムによって求める。経路情報テーブルに記載された、あるネットワークアドレスにおけるＮ−１ホップ目までの全てのホップ数について各ホップ数におけるルータのアドレスのどれか一つがサーバ選択装置−クライアント間の経路情報の同じホップ数のルータと一致している場合、当ネットワークアドレスにおけるＮホップ目のルータのアドレスの一つがサーバ選択装置−クライアント間の経路情報のＮホップ目のルータのアドレスに等しいかどうかを検査し、等しい場合はＮ＋１ホップ目に付いても同様の処理を行い、等しくない場合はサーバ選択装置−当該ネットワークアドレス間とサーバ選択装置−クライアント間の共通経路に存在するルータ数はＮ−１であるとする。このアルゴリズムに従うとサーバ選択装置−ミラーサーバ１までと観測装置−クライアントまでの共通経路に存在するルータ数Ｍ１＝３，サーバ選択装置−ミラーサーバ２までと観測装置−クライアントまでの共通経路に存在するルータ数Ｍ２＝４であるから、ミラーサーバ１の評価値Ｌ１＝Ｃ＋Ｓ１−２×Ｍ１＝５＋４−２×３＝３とミラーサーバ２の評価値Ｌ２＝Ｃ＋Ｓ２−２×Ｍ２＝５＋５−２×４＝２を比較してこの値を最小とするミラーサーバ２をサーバ選択結果として通知する。
【００３０】
このように冗長度を持つネットワークの経路情報をあらかじめ網羅した経路情報テーブルを用意しておくことで、クライアントにとって最寄りのミラーサーバを正確に選択することが可能となる。
【００３１】
（実施例２）
実施例２では第二の発明の実施例について述べる。実施例２ではサーバ選択装置が事前にサーバ選択装置−ミラーサーバ間の経路情報を取得しておき、クライアントからのサーバ選択要求に基づいてクライアントから見たホップ数（経由ルータ数）の少ないサーバを選択するシステムを実現する。実施例２において前提とするネットワーク環境を図１０に示し、実施例１と同様であるものとする。
ここで当実施例におけるサーバ選択装置の構造について図１１に示し、実施例１と同様であるものとする。
【００３２】
まず共通部分の構成について説明する。共通部分について実施例１と異なる部分は経路情報テーブルである。経路情報テーブルはテキストファイルで構成され、記述される情報要素はミラーサーバのアドレス、経路情報としてサーバ選択装置からのホップ数と経由ルータのＩＰアドレスのリストである。
【００３３】
続いてミラーサーバの経路情報を取得する部分の構成について説明する。ミラーサーバの経路情報を経路情報テーブルに登録する場合は、サーバ選択装置のＨＴＴＰサーバ１にアクセスする。経路情報収集制御用ホームページでは登録したいミラーサーバのＩＰアドレスを入力させ、入力内容を経路情報収集ＣＧＩに通知する。経路情報収集ＣＧＩはミラーサーバのＩＰアドレスを引数として経路情報収集プロセスを起動し、経路情報収集処理を開始した旨を出力して処理を終了する。経路情報収集プロセスの処理フローを図１５に示す。サーバ選択装置は当業者には既知のtracerouteコマンドを有しているのは実施例１と同様である。まず当サーバ選択装置に割り当てられたＩＰアドレスのリストを取得し、その中から今回の経路情報取得に用いる複数のＩＰアドレスを選択する。当サーバ選択装置はそれぞれのＩＰアドレスを送信元ＩＰアドレスとしてミラーサーバのＩＰアドレスに対しtracerouteを実行する。例えば送信元ＩＰアドレスを10.100.1.10としミラーサーバ１へtracerouteを実施した結果経由ルータがＲ１（０），Ｒ２−２（０），Ｒ３−２（０），Ｒ６（０）であることがわかったとする。しかし実際にはＲ２−１（０）とＲ２−２（０）、Ｒ３−１（０）とＲ３−２（０）とは冗長構成となっているため、この時点では経路情報としては不十分である。そこでさらに他のアドレス10.100.1.11，10.100.1.12をサーバ選択装置の送信元ＩＰアドレスとし、ミラーサーバに対してtracerouteを実行する。パケットの送信元が異なるため、10.100.1.10の時と比ベtracerouteの結果が別ルートになる可能性がある。10.100.1.11からtracerouteを行った結果がＲ１（０），Ｒ２−１（０），Ｒ３−２（０），Ｒ６（０）であり、10.100.1.12からtracerouteを行った結果がＲ１（０），Ｒ２−１（０），Ｒ３−１（０），Ｒ６（０）であったものとする。これらの結果を経路情報テーブルに格納する。格納した結果を図１６の上半分に示す。このように同一サブネットに属する複数のクライアントに向け経路情報を取得することで、冗長度の高いネットワークの経路情報をより正確に取得する事が可能となる。
【００３４】
クライアントに対して最もホップ数の少ないミラーサーバを選択する部分については実施例１と同様のため割愛する。
【００３５】
このように冗長度を持つネットワークの経路情報をあらかじめ網羅した経路情報テーブルを用意しておくことで、クライアントにとって最寄りのミラーサーバを正確に選択することが可能となる。
【００３６】
（実施例３）
実施例３では第三の発明の実施例について述べる。実施例３ではサーバ選択装置が事前にサーバ選択装置−ミラーサーバ間の経路情報を取得しておき、クライアントからのサーバ選択要求に基づいてクライアントから見たホップ数（経由ルータ数）の少ないサーバを選択するシステムを実現する。実施例３において前提とするネットワーク環境は実施例１と同様とし、図１０に示す通りである。
【００３７】
ここで当実施例におけるサーバ選択装置の構造について解説するが、基本的には実施例１と同様図１１に示す構造を持つ。当サーバ選択装置は、ミラーサーバの経路情報を取得する部分、クライアントに対して最もホップ数の少ないミラーサーバを選択する部分、および共通部分で構成される。
【００３８】
まず共通部分の構成について説明する。共通部分はネットワークインターフェース関連と経路情報テーブルである。ネットワークインターフェース関連は実施例１と同様なので説明を割愛する。経路情報テーブルはテキストファイルで構成され、記述される情報要素はミラーサーバのアドレス、経路情報としてサーバ選択装置からのホップ数、経由ルータが属すると推定されるネットワークアドレスおよびそのサブネットマスクである。
【００３９】
続いてミラーサーバの経路情報を取得する部分の構成について説明する。ミラーサーバの経路情報を経路情報テーブルに登録する場合は、サーバ選択装置のＨＴＴＰサーバ１にアクセスする。経路情報収集制御用ホームページでは登録したいミラーサーバのＩＰアドレスを入力させ、入力内容を経路情報収集ＣＧＩに通知する。経路情報収集ＣＧＩはミラーサーバのＩＰアドレスを引数として経路情報収集プロセスを起動し、経路情報収集処理を開始した旨を出力して処理を終了する。経路情報収集プロセスの処理フローを図１７に示す。まず当サーバ選択装置はミラーサーバのＩＰアドレスに対しtracerouteを実行する。tracerouteの実行結果を図１８に示す。例えばミラーサーバ１へtracerouteを実施した結果経由ルータがＲ１（０），Ｒ２−２（０），Ｒ３−２（０），Ｒ６（０）であることがわかったとする（図１８▲１▼）。しかし実際にはＲ２−１（０）とＲ２−２（０）、Ｒ３−１（０）とＲ３−２（０）とは冗長構成となっているため、この時点では経路情報としては不十分である。次にtracerouteを実行していないＲ１（０），Ｒ２−２（０），Ｒ３−２（０），Ｒ６（０）それぞれについてtracerouteを実行する（図１８▲２▼）。この結果からtracerouteを実行していないＲ３−１（０），Ｒ２−１（０）が取得できたため、これらについてtracerouteを実行する（図１８▲３▼）。図１８▲３▼のステップを終了した時点で全てのルータに対してtracerouteが実施されたので、次の処理に移る。図１９にルータのＩＰアドレスを示す。同一ホップ数で複数のルータがある場合、下記のアルゴリズムでルータが属するネットワークアドレス及びサブネットマスクを推定する。同一ホップ数のルータのＩＰアドレスの４バイト目を比較し、その最大値をＡｍａｘ，最小値をＡｍｉｎとする。ここで自然数Ｎの範囲を［１，７］と定義し、Ａｍａｘ／２Ｎの整数部分とＡｍｉｎ／２Ｎの整数部分が等しくなる最小のＮを求め、これをＮｍｉｎとする。ルータが属すると推定されるネットワークアドレスは３バイト目まではルータのＩＰアドレスと共通で４バイト目を（Ａｍａｘ／２Ｎｍｉｎの整数部分＝Ａｍｉｎ／２Ｎｍｉｎの整数部分）×２Ｎｍｉｎであるとする。またその場合のサブネットマスクを255.255.255.(256-2Ｎｍｉｎ)とする。このアルゴリズムを用いて求めたネットワークアドレス及びサブネットマスクを図１９に示す。同一ホップ数で１つのルータしかない場合、推定されるネットワークアドレスはルータのＩＰアドレスと等しく、推定されるサブネットマスクは255.255.255.255であるとする。ここで図１９のホップ数３のルータを例にとり、上記のアルゴリズムによる計算の流れを説明する。ホップ数３ではルータのＩＰアドレスの４バイト目が１４０と１８９である。従ってＡｍｉｎ＝１４０，Ａｍａｘ＝１８９である。Ａｍａｘ／２Ｎの整数部分とＡｍｉｎ／２Ｎの整数部分が等しくなる最小のＮを求めるため、Ｎの最大値７から１づつ減らした時のＡｍａｘ／２ＮとＡｍｉｎ／２Ｎの結果を表１に示す。この結果よりＡｍａｘ／２Ｎの整数部分とＡｍｉｎ／２Ｎの整数部分が等しくなる最小のＮはＮｍｉｎ＝６であることが分かる。従ってルータが属すると推定されているネットワークアドレスの４バイト目は２×２６＝１２８��あるから、求めるネットワークアドレスは10.3.1.128である。また推定されるサブネットマスクは255.255.255.(256-2６)であるから、求めるサブネットマスクは255.255.255.192である。最後にこのようにして求めた経路情報を経路情報テーブルに保存することで処理を終了する。このように同一サブネットに属する複数のクライアントに向け経路情報を取得し、さらに本発明による一回の経路情報取得だけでは網羅しきれなかった冗長度の高いネットワークの経路情報を、ルータが属すると推定されるネットワークアドレスやサブネットマスクを推定することにより、より広範囲にネットワークの冗長構成を網羅することが可能となる。
【００４０】
【表１】
0003842624.tif 000002
【００４１】
続いてクライアントに対して最もホップ数の少ないミラーサーバを選択する部分について説明する。ミラーサーバ１のＩＰアドレスを172.18.100.10，ミラーサーバ２のアドレスを172.18.200.10とした時の経路情報テーブルに格納される情報を図２０に示す。クライアントがサーバ選択装置のＨＴＴＰサーバ２にアクセスする。ＨＴＴＰサーバ２は自ら要求されたコンテンツを配信するのではなく、まずサーバ選択プロセスを起動し、サーバ選択プロセスが選択したサーバにクライアントの要求をリダイレクトする。図１４に示すメッセージをクライアントに送信することでリダイレクトを実施する。サーバ選択プロセスでは、クライアントのＩＰアドレスに対しtracerouteを実行する。tracerouteの実行結果は図２１に示す通りであったとする。この例ではサーバ選択装置−ミラーサーバ１までの経由ルータ数Ｓ１＝４，サーバ選択装置−ミラーサーバ２までの経由ルータ数Ｓ２＝５，サーバ選択装置−クライアントまでの経由ルータ数Ｃ＝５である。図２０に示す経路情報テーブルを用いてサーバ選択装置−クライアント間の経路と、サーバ選択装置−サーバ１、サーバ２間の経路との共通経路を次のアルゴリズムによって求める。経路情報テーブルに記載された、あるミラーサーバにおけるＮ−１ホップ目までの全てのホップ数について各ホップ数における推定されたネットワークアドレスにサーバ選択装置−クライアント間の経路情報の同じホップ数のルータが属している場合、当ミラーサーバにおけるＮホップ目の推定されたネットワークアドレスにサーバ選択装置−クライアント間の経路情報のＮホップ目のルータが属しているかどうかを検査し、属している場合はＮ＋１ホップ目に付いても同様の処理を行い、属していない場合はサーバ選択装置−当該ネットワークアドレス間とサーバ選択装置−クライアント間の共通経路に存在するルータ数はＮ−１であるとする。このアルゴリズムに従うとサーバ選択装置−ミラーサーバ１までと観測装置−クライアントまでの共通経路に存在するルータ数Ｍ１＝３，サーバ選択装置−ミラーサーバ２までと観測装置−クライアントまでの共通経路に存在するルータ数Ｍ２＝４であるから、ミラーサーバ１の評価値Ｌ１＝Ｃ＋Ｓ１−２×Ｍ１＝５＋４−２×３＝３とミラーサーバ２の評価値Ｌ２＝Ｃ＋Ｓ２−２×Ｍ２＝５＋５−２×４＝２を比較してこの値を最小とするミラーサーバ２をサーバ選択結果として通知する。
【００４２】
このように冗長度を持つネットワークの経路情報をあらかじめ網羅した経路情報テーブルを用意しておくことで、クライアントにとって最寄りのミラーサーバを正確に選択することが可能となる。
【００４３】
以上本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【００４４】
【発明の効果】
以上説明してきた通り、本発明によって観測装置−サーバ間距離と観測装置−クライアント間距離に基づくサーバ選択等の処理を正確に実施するための、ネットワークの冗長構成を反映した経路情報を正確に、詳細に収集することが可能となる。
【図面の簡単な説明】
【図１】従来の技術の方法３を説明する図である。
【図２】従来の技術の方法３の問題点を説明する図である。
【図３】第一の発明のフローチャートを示す図である。
【図４】第一の発明における経路情報テーブルの構成例を示す図である。
【図５】第二の発明のフローチャートを示す図である。
【図６】第二の発明における経路情報テーブルの構成例を示す図である。
【図７】第三の発明のフローチャートを示す図である。
【図８】第三の発明の経路情報取得方法を説明する図である。
【図９】第三の発明における経路情報テーブルの構成例を示す図である。
【図１０】実施例１の前提とするネットワーク構成例を示す図である。
【図１１】実施例１におけるサーバ選択装置の構成例を示す図である。
【図１２】実施例１におけるフローチャートを示す図である。
【図１３】実施例１における経路情報テーブル格納例を示す図である。
【図１４】実施例１におけるＨＴＴＰリダイレクトメッセージの例を示す図である。
【図１５】実施例２におけるフローチャートを示す図である。
【図１６】実施例２における経路情報テーブル格納例を示す図である。
【図１７】実施例３におけるフローチャートを示す図である。
【図１８】実施例３における経路情報取得結果を示す図である。
【図１９】実施例３における取得した経路情報をまとめた図である。
【図２０】実施例３における経路情報テーブル格納例を示す図である。
【図２１】実施例３におけるサーバ選択装置−クライアント間のtraceroute実行結果を示す図である。
【図１】
0003842624.tif 000003
【図２】
0003842624.tif 000004
【図３】
0003842624.tif 000005
【図４】
0003842624.tif 000006
【図５】
0003842624.tif 000007
【図６】
0003842624.tif 000008
【図７】
0003842624.tif 000009
【図８】
0003842624.tif 000010
【図９】
0003842624.tif 000011
【図１０】
0003842624.tif 000012
【図１１】
0003842624.tif 000013
【図１２】
0003842624.tif 000014
【図１３】
0003842624.tif 000015
【図１４】
0003842624.tif 000016
【図１５】
0003842624.tif 000017
【図１６】
0003842624.tif 000018
【図１７】
0003842624.tif 000019
【図１８】
0003842624.tif 000020
【図１９】
0003842624.tif 000021
【図２０】
0003842624.tif 000022
【図２１】
0003842624.tif 000023