(57)【要約】【課題】サービス拒否（ＤｏＳ）攻撃を受けている間のクライアントとエンド・サーバの間のトラフィック・フローを維持するネットワーク・アーキテクチャおよび関連方法を提供すること。【解決手段】本ネットワーク・アーキテクチャは、クライアントとサーバの間に接続された一組のオーバーレイ・ノードを含む。各オーバーレイ・ノードは、サービス拒否攻撃に耐えるために、トラフィックをエンド・サーバに転送する最適な経路を選択する目的で、他のノードを格付けおよび検査できる。検査は、１つまたは複数の性能メトリック（つまり、負荷、ジッタ、待ち時間、損失率）に基づいて、より性能が高いオーバーレイ・ノードを検出するために行う。たとえば、一実施態様では、ＤｏＳ攻撃を受けている間でもエンド・サーバとクライアントの間の接続性が維持されるように、トラフィックをエンド・サーバに転送するための、負荷が軽いオーバーレイ経路を、検査によって検出する。【選択図】  図１
2005210727.tif 000002
【特許請求の範囲】
【請求項１】
サービス拒否攻撃を受けている間のクライアントとサーバの間のトラフィック・フローを維持するオーバーレイ・ネットワークであって、
前記クライアントと前記サーバの間に接続された一組のオーバーレイ・ノードを備え、各オーバーレイ・ノードは、
格付けの高いオーバーレイ・ノードが、格付けの低いオーバーレイ・ノードより、トラフィックを前記サーバに転送する性能が高いオーバーレイ・ノードであることを示すように、性能メトリックに基づいて前記オーバーレイ・ノードを格付けするように構成された格付けモジュールと、
検査間隔の間に、前記格付けの高いオーバーレイ・ノードの一部分を、格付けの低いオーバーレイ・ノードより頻繁に検査するように構成された検査モジュールと
を備えたオーバーレイ・ネットワーク。
【請求項２】
前記格付けモジュールがさらに、検査間隔後に、前記格付けの高いオーバーレイ・ノードの一部分が、１つまたは複数の前記格付けの低いオーバーレイ・ノードより高い、トラフィックを前記サーバに転送する性能を引き続き有するかどうかを判断するように構成された、請求項１に記載のオーバーレイ・ネットワーク。
【請求項３】
サービス拒否攻撃に抗戦するためにネットワーク内のオーバーレイ・ノードを評価する方法であって、
格付けの高いオーバーレイ・ノードが、格付けの低いオーバーレイ・ノードより、トラフィックをターゲットに転送する性能が高いオーバーレイ・ノードであることを示すように、性能メトリックに基づいて、前記オーバーレイ・ノードを格付けする工程と、
検査間隔の間に、前記格付けの高いオーバーレイ・ノードの一部分を、格付けの低いオーバーレイ・ノードより頻繁に検査する工程と
を含む方法。
【請求項４】
検査間隔後に、前記格付けの高いオーバーレイ・ノードの一部分が、１つまたは複数の前記格付けの低いオーバーレイ・ノードより高い、トラフィックをターゲットに転送する性能を引き続き有するかどうかを判断する工程と、
前記格付けの高いオーバーレイ・ノードの一部分の、トラフィックをターゲットに転送する性能が、１つまたは複数の前記格付けの低いオーバーレイ・ノードより低くなった場合には、前記格付けの高いオーバーレイ・ノードの一部分の格付けを低い格付けに格下げする工程と
をさらに含む、請求項３に記載の方法。
【請求項５】
検査間隔後に、前記格付けの高いオーバーレイ・ノードの一部分が、１つまたは複数の前記格付けの低いオーバーレイ・ノードより高い、トラフィックをターゲットに転送する性能を引き続き有するかどうかを判断する工程と、
前記格付けの高いオーバーレイ・ノードの一部分の、トラフィックをターゲットに転送する性能が、１つまたは複数の前記格付けの低いオーバーレイ・ノードより低くなった場合には、１つまたは複数の前記格付けの低いオーバーレイ・ノードの格付けを高い格付けに格上げする工程と
をさらに含む、請求項３に記載の方法。
【請求項６】
前記格付けの高いオーバーレイ・ノードの一部分を、トラフィックをターゲットに転送する経路の一部として含めるよう選択することをさらに含む、請求項３に記載の方法。
【請求項７】
実行時に、コンピュータに対し、
オーバーレイ・ネットワーク内のオーバーレイ・ノードを評価する工程と、
格付けの高いオーバーレイ・ノードが、格付けの低いオーバーレイ・ノードより、トラフィックをターゲットに転送する性能が高いオーバーレイ・ノードであることを示すように、性能メトリックに基づいて、前記オーバーレイ・ノードを格付けする工程と、
検査間隔の間に、前記格付けの高いオーバーレイ・ノードの一部分を、格付けの低いオーバーレイ・ノードより頻繁に検査する工程と
を指示する、コンピュータで実行可能な命令を含む、１つまたは複数のコンピュータ可読媒体。
【請求項８】
サーバとクライアントの間に点在するオーバーレイ・ノードを含むネットワークにおいて、サービス拒否攻撃に抗戦するシステムであって、
検査間隔の間に前記ネットワーク内のオーバーレイ・ノードを検査して、各オーバーレイ・ノードの接続性レベルを判断する手段と、
最高格付けを有するオーバーレイ・ノードが、トラフィックを前記サーバに転送するための最高の接続能力を有するように、各オーバーレイ・ノードを格付けする手段と、
前記最高格付けを有するオーバーレイ・ノードを、前記トラフィックを前記サーバに転送する経路の一部として含めるよう選択する手段と、
後続の検査間隔の間に、格付けの高いオーバーレイ・ノードの一部分を、他のオーバーレイ・ノードより頻繁に検査する手段と
を含むシステム。
【請求項９】
サービス拒否攻撃に抗戦するオーバーレイ・ネットワークであって、
クライアントからサーバに向けられたトラフィックを認証するように構成されたアクセス・ノードと、
前記アクセス・ノードによってあらかじめ認証された前記トラフィックを前記サーバに転送するように構成されたターゲット・ノードと、
前記アクセス・ノードと前記ターゲット・ノードの間に接続され、少なくとも１つの性能メトリックに基づいて前記クライアントと前記サーバの間の最適なエンドツーエンド経路を選択することによって、前記トラフィックを前記アクセス・ノードから前記ターゲット・ノードに転送するように構成されたオーバーレイ・ノードと
を備えるオーバーレイ・ネットワーク。
【請求項１０】
オーバーレイ・ネットワークにおいて、サービス拒否攻撃を受けている間のクライアントとサーバの間のトラフィック・フローを維持するノードであって、
格付けの高いオーバーレイ・ノードが、格付けの低いオーバーレイ・ノードより、トラフィックを前記サーバに転送する性能が高いオーバーレイ・ノードであることを示すように、前記クライアントと前記サーバの間に接続されたオーバーレイ・ノードを、性能メトリックに基づいて格付けするように構成された格付けモジュールと、
検査間隔の間に、前記格付けの高いオーバーレイ・ノードの一部分を、格付けの低いオーバーレイ・ノードより頻繁に検査するように構成された検査モジュールと
を備えたノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主にネットワーク・セキュリティに関し、より詳細には、サービス拒否攻撃への対処に用いるネットワーク・アーキテクチャおよび方法に関する。
【背景技術】
【０００２】
サービス拒否（ＤｏＳ）攻撃は、通常、Ｗｅｂサイト、インターネット・サービス・プロバイダ（ＩＳＰ）、その他のサーバなどのネットワーク・ノードに、その処理能力を超える大量のトラフィックを一挙に送りつけ、その攻撃の間、被害ノードをネットワーク内で不通にさせることを含む。
【０００３】
別種のさらに高度な攻撃として、分散ＤｏＳ（ＤＤｏＳ）がある。ＤＤｏＳ攻撃を仕掛けようとする攻撃者は、まず、数多くのノードを、たとえばよく知られたセキュリティ・ホールを経由して攻略する。攻略されたそれらのノードは、本質的に攻撃者のスレーブとなり、ネットワークにトラフィックを送りつける出撃ポイントとして動作する。攻撃者は、十分な数の攻略したノードを召集することにより、複数の出撃ポイントからトラフィックを大量に流入させてネットワーク規模の大がかりな攻撃を仕掛けることができる。大規模ＤＤｏＳ攻撃を仕掛けることは、意外に簡単であることが知られつつある。たとえば、メール添付も、アクティブＷｅｂページ・コンテンツも、ネットワーク・ノードを攻略する悪意のコンテンツ（ウィルスなど）を広めるために、様々な方法で活用されてきた。本明細書での説明のために、特に指定しない限り、「サービス拒否」（ＤｏＳ）という用語は、ＤＤｏＳ攻撃を含む、ほぼすべての形態のサービス拒否攻撃を含むものとする。
【０００４】
業界におけるＤｏＳの議論のほとんどはエンド・サーバ・ホストを過負荷にすることに集中しているが、ＤｏＳは、クライアントとエンド・サーバ・ホストの間の通信経路を渋滞させ、正規のクライアント要求のための帯域幅を奪うことによってもサービスを混乱させる（本明細書では、これをネットワークＤｏＳと呼ぶ）。ネットワークＤｏＳは、ノードに対するＤｏＳ攻撃を包含するものであることに注意されたい。そのノードと他のノードをつなぐすべてのリンクが攻撃にさらされれば、ノードは実質的に非アクティブになるからである。
【０００５】
そのようなＤｏＳ攻撃のすべてに対処するための研究が不足しているということはまったくない。実際、多種多様な解決策がこれまで提案されている。しかし、そのほとんどが、ネットワークの構成要素の大幅な変更を必要とし、導入には費用がかさむものである。また、複数のＩＳＰ間の協同体制を必要とする解決策も提案されている。しかし、これらは、ＩＳＰ間のリアルタイムかつ効果的な協同体制を確立することの複雑さから、ほとんどの事例では、実装するのは非現実的である。
【０００６】
さらにまた、攻撃を検知してから防御することに集中するアプローチもある。しかし、このようなアプローチは、攻撃者との果てしない「猫とネズミの」競争になる。実際、よくできたＤＤｏＳ攻撃であれば、検知を完全にすり抜けてしまう。言い換えると、攻撃者が検知を回避する手口がたえず高度化しており、かつ、状況に応じて手口を変えてくるために、悪意のトラフィックを阻止することは非常に難しい。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
それゆえに、ＤｏＳ攻撃は、通信ネットワークに重大な脅威をもたらし続ける。実際、インターネットを巻き込む攻撃の頻度や規模は確実に増大している。災害復旧や戦場の作戦調整などミッションクリティカルなアプリケーションでは、サービスの混乱があると、深刻な事態を招きかねない。残念ながら、ＤｏＳ攻撃に対抗するために用いられる現行の解決策には、ＤｏＳ攻撃からの完全な保護を保証するものはなく、ミッションクリティカルなアプリケーションも、それほどクリティカルでない他のアプリケーションも、攻撃に対して脆弱なままである。
【課題を解決するための手段】
【０００８】
本明細書では、サービス拒否（ＤｏＳ）攻撃を受けている間のクライアントとサーバの間のトラフィック・フローを維持するネットワーク・アーキテクチャおよび関連方法について説明する。本ネットワーク・アーキテクチャは、クライアントとエンド・サーバの間に接続された一組のオーバーレイ・ノードを含む。各オーバーレイ・ノードは、サービス拒否攻撃に耐えるために、トラフィックをエンド・サーバに転送する最適な経路を選択する目的で、他のノードを格付けおよび検査できる。
【０００９】
一実施態様では、各オーバーレイ・ノードは、格付けモジュールと検査モジュールを備える。格付けモジュールは、性能メトリックに基づいて、他のオーバーレイ・ノードを格付けする。通常、格付けが高いオーバーレイ・ノードは、格付けが低いオーバーレイ・ノードより、トラフィックをサーバに転送する能力が高いと見なされる。検査モジュールは、検査間隔の間に、格付けの高いオーバーレイ・ノードの一部分を、格付けの低いオーバーレイ・ノードより頻繁に検査するように構成される。各オーバーレイ・ノードは、最高格付けのオーバーレイ・ノードを動的に選択して、トラフィックをサーバに転送する経路の一部として含めるように構成された経路選択モジュールをさらに含むことができる。
【００１０】
別の実施態様では、本ネットワーク・アーキテクチャは、アクセス・ノード、ターゲット・ノード、およびオーバーレイ・ノードを含む。アクセス・ノードは、クライアントからサーバに向けられたトラフィックを認証するように構成される。ターゲット・ノードは、あらかじめアクセス・ノードによって認証されたトラフィックをサーバに転送するように構成される。オーバーレイ・ノードは、アクセス・ノードとターゲット・ノードの間に接続される。オーバーレイ・ノードは、少なくとも１つの性能メトリックによる最適経路に基づいて、クライアントとサーバの間のエンドツーエンド経路を選択することにより、アクセス・ノードからターゲット・ノードまでのトラフィックの経路を指定するように構成される。
【００１１】
発明を実施するための最良の形態の説明では、添付図面を参照する。各図面において、参照符号の左端の桁は、その参照符号が最初に使用された図面を表す。
【発明を実施するための最良の形態】
【００１２】
概要
本明細書で説明するのは、背景技術セクションで説明したような、あらゆる悪意の攻撃を根絶する試みではなく、より防御的なアプローチを用いるネットワーク・アーキテクチャである（ただし、本明細書で説明する防御的なアプローチを、背景技術セクションで説明したような攻撃的なアプローチと結合することは可能である）。具体的には、サービス拒否（ＤｏＳ）攻撃を受けているときでも、正規のクライアントとエンド・サーバの間の十分な接続性を維持できる、適応型の防衛境界線をエンド・サーバの周囲に構築する。そのようなネットワーク・アーキテクチャおよび関連方法は、特に、緊急事態において、ＤｏＳ攻撃を受けている間であっても、政府機関、緊急対策班、および司令部と連絡をとる軍隊の間の通信を保証する上で特に有効である。
【００１３】
一実施態様では、３層のオーバーレイ・ネットワークを用いて、クライアントとサーバの間の正規の通信をＤｏＳ攻撃から保護する。第１層には、クライアントの認証を行うアクセス・ノードを配置する。これにより、正規のクライアントだけがアクセス・ノードを通り抜けてサービスを開始できる。アクセス・ノードは、不正なトラフィックを他の層またはサーバに送り込むことによって、攻撃者が他のいずれかの層に攻撃を集中させるのを防ぐ。第２層には、１つまたは複数の性能メトリックによって決定される、ターゲット・ノードまでの最適経路を決定するために、検査技法を実行するオーバーレイ・ノードを配置する。そして第３層には、オーバーレイ・ノードからサーバ（通常はエンド・サーバ）にトラフィックを渡すポイントとして動作するターゲット・ノードを配置する。ターゲット・ノードは、トラフィックがいずれかのアクセス・ノードから送信されたものである場合に、そのトラフィックをサーバに渡す。通常は、ターゲット・ノードだけがサーバの識別情報を有するので、サーバとの通信は、少なくとも１つのターゲット・ノードを必ず通る。
【００１４】
本明細書の例示的オーバーレイ・ネットワークに関するもう１つの特徴は、トラフィックをクライアントからサーバに転送するための最適なエンドツーエンド経路を選択するために、ネットワーク内のノードが他のノードを効率よく検査できることである。この検査は、各ノードに関連付けられた格付けに従って行う。格付けの高いノード（性能が高いノード）は、格付けの低いノード（性能が低いノード）より頻繁に検査される。
【００１５】
この特徴の意義をわかりやすく説明するために、まず、従来のオーバーレイ・ネットワークについて説明する。簡単に言えば、そのような従来型のネットワークの１つがＲｅｓｉｌｉｅｎｔ  Ｏｖｅｒｌａｙ  Ｎｅｔｗｏｒｋ（ＲＯＮ）である。ＲＯＮは、リンク停止やルータ障害からの復旧にオーバーレイ・ネットワークを用いることを提案する。したがって、ＲＯＮは、ＤｏＳ攻撃そのものに対しては提案されていない。ＲＯＮノードは、他のすべてのＲＯＮノードを積極的に検査することによって、基盤を成すネットワークにおける問題を検出する。あるノードが別のノードと通信する場合は、そのトラフィックを単純に、最も近いＲＯＮノードに送る。すると、そのＲＯＮノードが宛先までの最適な経路を見つけようとする。
【００１６】
障害を迅速に検知するには検査を積極的に行うのが理想的だが、それはスケーラビリティや効率を大きく損なうものである。たとえば、ＲＯＮは、すべてのノードを同じ頻度で検査する。あるノードが渋滞していると、しばらくは渋滞のままであることが多い。これは特に、ＤｏＳ攻撃のシナリオに当てはまる。したがって、そのようなリンクを検査することは、効率が悪く、オーバーレイ・ネットワークにかかる負荷をさらに助長することになる。
【００１７】
後で詳述するように、本明細書の例示的オーバーレイ・ネットワークは、この問題を克服するために、格付けの低いノードより格付けの高いノードに集中して検査を行う検査システムを用いる。通常、格付けの高いノードは、格付けの低いノードよりも、トラフィックをサーバに転送するための潜在的接続能力が高い（特に、ＤｏＳ攻撃を受けている間はそうである）。したがって、各オーバーレイ・ノードは、ノードの格付けに基づいて、ＲＯＮよりも格段に効率の良いやり方で他のオーバーレイ・ノードを検査する。すなわち、各オーバーレイ・ノードは、格付けの高いノードを、格付けの低いノードより頻繁に検査する。これにより、検査のオーバーヘッドが、ＲＯＮと比較して、Ｏ（Ｋ）からＯ（ｌｏｇＫ）まで下がり（Ｋはオーバーレイ・ノードの数）、スケーラビリティが著しく増大する。つまり、本明細書の革新的な検査システムは、ノードやリンクの渋滞解消を可能にし、従来の技法より効率的かつスケーラブルな方式で検査を行う。
【００１８】
別の従来型のアプローチとして、Ｓｅｃｕｒｅ  Ｏｖｅｒｌａｙ  Ｓｅｒｖｉｃｅｓ（ＳＯＳ）と呼ばれるオーバーレイ・ネットワークがある。これは特に、固定されたエンド・サーバをＤｏＳ攻撃から保護することを目的としたものである。このエンド・サーバは、一組の「秘密の」サーブレットに囲まれている。これらのサーブレットだけが、エンド・サーバの位置を知っているノードである。ＳＯＳは、業界で「Ｃｈｏｒｄ」と呼ばれている技法を用いて、そのオーバーレイ内で経路指定を行う。Ｃｈｏｒｄ技法は、ノードの匿名性を維持するランダム化された経路指定を用いる。Ｃｈｏｒｄ法を実行するノードは、各パケットがエンド・サーバに到達する経路を、パケットごとに異なるように選択する。これは、オーバーレイ全体の安全性を向上させるのに役立つが、性能を著しく低下させる。１つのオーバーレイ・ホップは、実際には複数の物理的ホップにまたがる場合があるため、長い待ち時間によって転送性能が低下する可能性がある。さらにＣｈｏｒｄ技法は、ネットワーク性能に基づいて経路を検査したり調整したりしようとしないので、ネットワークの現在の状態を考慮に入れない。その結果、Ｃｈｏｒｄでは、最短経路を指定する方式に比べて待ち時間が１０倍にもなるおそれがある。ＳＯＳは主に攻撃（ネットワークＤｏＳ攻撃）に重点を置いており、ネットワークの物理トポロジを考慮に入れないため、オーバーレイ・リンクと物理リンクとの相互関係が無視されることになる。ＳＯＳの主要目的は保護であって、性能についてはほとんど考慮していない。
【００１９】
対照的に、本明細書で説明するオーバーレイ・ネットワークとその革新的な検査システムは、高レベルの安全性を維持するだけでなく、最高レベルの性能を常時確保する。すなわち、本明細書で説明するオーバーレイ・ネットワークは、ノードをその性能に基づいて格付けし、性能がよりよい（格付けがより高い）ノードをトラフィック転送の経路選択の一部として選択することによって、ＳＯＳネットワークと同等の高レベルの安全性を維持しながら、ＳＯＳネットワークより格段にすぐれた性能を実現する。
【００２０】
例示的なネットワーク・アーキテクチャ
図１は、サービス拒否（ＤｏＳ）攻撃に対処するための例示的なオーバーレイ・ネットワーク１００を示す図である。オーバーレイ・ネットワーク１００は、クライアント１０２（１），１０２（２），．．．，１０２（Ｎ）を特定のサーバ１０４（ホスト、エンド・サーバ、ホスト・サーバなどとも呼ぶ）に接続する。
【００２１】
ほとんどの場合、クライアント（まとめて参照符号１０２で表す）とサーバ１０４は、オーバーレイ・ネットワーク１００の外側に存在する。クライアント１０２は、様々な方法で実装できる。クライアントの実装例として、パーソナル・コンピュータ、無線／有線通信装置、個人用携帯情報端末、据え置き型コンピュータ、ゲーム機器、ポータブル・コンピュータ、有線通信装置、テレビ、セットトップ・ボックス、その他のスマート機器などがあり、これらに限定されない。
【００２２】
サーバ１０４は、複数の異なるホスト・エンティティを表すことができる。まず、サーバ１０４は、単一のホスト・エンティティを表すことができる。これは、（たとえば、安全上の懸念や、コンテンツが動的に変化することなどにより）複数の異なるノードでサービスを容易に複製できない場合にありうる。あるいは、サーバ１０４は、ホスティング・サービスが実際に提供されている別のオーバーレイ・ネットワークに複製された、分散サーバまたはポータルのコレクションを表すことができる。サーバ１０４とクライアント１０２の間の通信には、プロトコル通信規格を何種類でも用いることができる。たとえば、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＷＡＰ（Ｗｉｒｅｌｅｓｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）、その他の様々な通信プロトコルを用いることができ、これらに限定されない。
【００２３】
この例示的実施態様では、オーバーレイ・ネットワーク１００は、仮想接続により、クラウド１０６（１），．．．，１０６（Ｎ）として示されている複数の物理バックボーン・ネットワークにまたがって配備できる。これらの物理バックボーン・ネットワーク（まとめて参照符号１０６で表す）と異なり、オーバーレイ・ネットワークに関連付けられる、物理経路指定の方針制約はほとんどない（あってもわずかである）。すなわち、オーバーレイ・ネットワーク１００の各ノード（後述）は、そのオーバーレイ・ネットワーク内の他のすべてのノードに仮想的に接続されている。たとえば、あるノードが物理ネットワーク１０６（１）内の特定の位置にあり、その位置から離れて、物理ネットワーク１０６（Ｎ）内に別のノードがある場合でも、その２つのノードは、同じ物理ネットワーク内で物理的に隣接しているかのように、接続されていると見なされる。
【００２４】
オーバーレイ・ネットワーク１００は、特にＤｏＳ攻撃を受けている間であっても、クライアント１０２とサーバ１０４の間の通信を維持するように構成される。この例示的実施態様では、オーバーレイ・ネットワーク１００は、アクセス・ノード１０８（１），．．．，１０８（Ｎ）、オーバーレイ・ノード１１０（１），１１０（２），１１０（３），１１０（４），１１０（５），１１０（６），１１０（７），．．．，１１０（Ｎ）、およびターゲット・ノード１１２（１），．．．，１１２（Ｎ）を含む。表記「Ｎ」は、任意の数の装置が存在可能であることを意味する。また、図１に示したノードの数は、説明および例示だけを目的としたものであることを理解されたい。各タイプのノードの数が異なっても（より多くても、より少なくても）、オーバーレイ・ネットワーク１００の実装に使用することができる。
【００２５】
アクセス・ノード（まとめて参照符号１０８で表す）は、オーバーレイ・ネットワーク１００へのアクセス・ポイントとして動作する。アクセス・ノード１０８は、クライアント１０２を認証してから、オーバーレイ・ネットワーク１００へのアクセスを許可する。次にアクセス・ノード１０８は、オーバーレイ・ノード（まとめて参照符号１１０で表す）およびターゲット・ノード（まとめて参照符号１１２で表す）を介して、トラフィックをクライアント１０２からサーバ１０４まで転送する。
【００２６】
したがって、クライアント１０２がオーバーレイ・ネットワーク１００の保護下にあるサービスを取得できるように、通常は、各クライアントに、適切なセキュリティ資格があらかじめ設定される。具体的には、クライアント１０２は、少なくとも１つのアクセス・ノード１０８の位置を知っている必要があり、自身をアクセス・ノードと相互認証するために必要な資格を有している必要がある。この認証処理の結果、その特定のクライアントとその特定のアクセス・ノードとが安全に関連付けられる。つまり、正規のクライアント１０２だけがオーバーレイ・ネットワーク１００にアクセスでき、正規のクライアント１０２だけがアクセス・ノード１０８経由のサービスを開始できる。
【００２７】
概して、クライアント１０２は、複数のアクセス・ノード１０８の情報を有することができ、特定タイプの条件（たとえば、性能経路指定方針、負荷バランシング、その他の条件）に基づいて、どのアクセス・ノードからオーバーレイ・ネットワーク１００に入るかを選択できる。たとえば、クライアント１０２は、負荷をよりよく分散するために、アクセス・ノード１０８に分散されなければならない。概して、アクセス・ノード１０８は、比較的、互いに独立して動作できる。必要であれば、共同でネットワーク侵入検知を行える理想的な位置にアクセス・ノード１０８を実装することができる。
【００２８】
オーバーレイ・ノード１１０は、アクセス・ノード１０８とターゲット・ノード１１２の間に接続される。オーバーレイ・ノード１１０は、主に、アクセス・ノード１０８および他のオーバーレイ・ノード１１０から受け取ったトラフィックを、ターゲット・ノード１１２または他のオーバーレイ・ノード１１０に転送する役割を担う。本明細書で用いているように、「トラフィック」はデータを指し、「トラフィック・フロー」は、あるポイントから別のポイントへのデータの動きを指す。各オーバーレイ・ノード１１０は、トラフィックを転送する際に、（そのオーバーレイ・ノードから見て）サーバ１０４にアクセスするために現時点で最適なターゲット・ノード１１２と、そのターゲット・ノード１１２に到達するために最適な経路（つまり、次のホップ）を動的に選択する。
【００２９】
後で詳述するように、最適なターゲット・ノードと、そのターゲット・ノードに到達するために最適な経路は、少なくとも１つの「性能メトリック」に基づく（この「性能メトリック」は、使用可能帯域幅、待ち時間、パケット損失率、ジッタ、費用、および／または他の性能メトリックを指す）。たとえば、ファイル転送サービスでは、最大の使用可能帯域幅でターゲット・ノードに到達する最適経路が必要とされよう。一方、リアルタイムのマルチメディア・サービスでは、最小のジッタでターゲット・ノードに到達する経路が必要とされよう。
【００３０】
したがって、全体的に見て、オーバーレイ・ノード１１０は、１つまたは複数の性能メトリックに基づき、クライアント１０２とサーバ１０４の間の最適なエンドツーエンド経路を選択する。図１には、クライアント１０２（１）とサーバ１０４の間の１つの例示的なエンドツーエンド経路１１４（太線）を示している。ただし、オーバーレイ・ネットワーク１００の動作特性に応じて、クライアント１０２とサーバ１０４の間の最適なエンドツーエンド経路１１４が無数に存在することは理解されよう。一実施態様では、クライアント１０２からのオーバーレイ経路指定と、それに対するサーバ１０４からの応答のオーバーレイ経路指定は、双方向リンクにより（たとえば、ノードが双方向）、同じエンドツーエンド経路をたどる。ただし、サーバ１０４への着信要求とサーバ１０４からの発信応答の経路を異なるようにすることは可能である。
【００３１】
また、オーバーレイ・ノード１１０同士の通信は安全であることを前提としている。これは、オーバーレイ・ノード間に（たとえば、ＩＰｓｅｃを用いて）安全なトンネルを設定することにより実現できる。したがって、オーバーレイ・ネットワーク１００においてトラフィックがどのように経路指定されるかという情報をＤｏＳ攻撃者に握られることはないはずである。
【００３２】
ターゲット・ノード１１２は、オーバーレイ・ネットワーク１００とサーバ１０４の間の排他的なゲートウェイとして動作する。すなわち、ターゲット１１２は、オーバーレイ・ネットワーク１００からサーバ１０４に流れるトラフィックと、サーバ１０４からネットワーク１００に流れるトラフィックの唯一の出口ポイントと入口ポイントを提供する。言い換えると、サーバ１０４はいくつかのターゲット・ノード１１２に囲まれており、トラフィックが少なくとも１つのアクセス・ノード１０８から発信されたものであれば、ターゲット・ノード１１２だけがそのトラフィックをサーバ１０４に渡す。逆に、サーバ１０４からのトラフィックは、ターゲット・ノード１１２にのみ渡される。
【００３３】
安全性を高めるために、オーバーレイ・ネットワーク１００においては、ターゲット・ノード１１２だけがサーバ１０４の識別情報を知っている。さらに、クライアント１０２は、ターゲット・ノード１１２が存在することを知らないのが理想的である。ただし、ターゲット・ノード１１２が存在することをクライアント１０２が知っていても、クライアント１０２がターゲット１１２の識別情報や位置を知ることはない。ターゲット・ノード１１２の識別情報は、１つまたは複数のオーバーレイ・ノード１１０にしか与えられないからである。
【００３４】
このように、３層アーキテクチャのアプローチを用いることによって、クライアント１０２とサーバ１０４の間の正規の通信をＤｏＳ攻撃から保護することができる。第１層には、クライアント１０２の認証を行うアクセス・ノード１０８を配置する。これにより、正規のクライアントだけがアクセス・ノードを通り抜けてサービスを開始できる。アクセス・ノード１０８は、不正なトラフィックを他の層またはサーバに送り込むことによって、攻撃者が他のいずれかの層に攻撃を集中させるのを防ぐ。第２層には、１つまたは複数の性能メトリックによって規定される、ターゲット・ノード１１２までの最適経路を決定するために、検査技法（詳細は後述）を実行するオーバーレイ・ノード１１０（アクセス・ノード１０８を含む）を配置する。第３層には、オーバーレイ・ノードからサーバ（エンド・サーバ）にトラフィックを渡すポイントとして動作するターゲット・ノード１１２を配置する。ターゲット・ノード１１２は、トラフィックがいずれかのアクセス・ノード１０８から送信されたものである場合に、そのトラフィックをサーバに渡す。通常は、ターゲット・ノード１１２だけがサーバ１０４の識別情報を有するので、サーバ１０４との通信は、少なくとも１つのターゲット・ノード１１２を必ず通る。
【００３５】
一実施態様では、オーバーレイ・ネットワークの各ノードは、２種類または３種類の機能性を有することができる。たとえば、オーバーレイ・ノード１１０は、特定の用途ではアクセス・ノード１０８として動作したり、別の状況ではオーバーレイ・ノードとして動作したり、さらに別の状況ではターゲット・ノードとして動作したりできる。さらに、アクセス・ノード１０８、オーバーレイ・ノード１１０、および／またはターゲット・ノード１１２の機能を、用途に応じて別のタイプのノードの機能に動的に変換することが可能である。たとえば、一実施態様では、オーバーレイ・ノード１１０を、ターゲット・ノード１１２として動作するよう変換できる。構成を切り替えることは、潜在的ＤｏＳ攻撃者が、オーバーレイ上で何らかの詮索行為（スヌーピング）をすることを、混乱させることにより、長期にわたり安全性を高めることに役立つ。
【００３６】
以下で説明する方法論的特徴のいくつかは、必ずしも３層のオーバーレイ・ネットワークを用いなくても実装が可能である。たとえば、代替実施態様では、ターゲット・ノード１１２を使用せず、アクセス・ノード１０８とオーバーレイ・ノード１１０だけを使用することが可能である（ただし、安全性は多少低下する）。そのような構成では、１つまたは複数のオーバーレイ・ノード１１０がトラフィックをサーバ１０４に直接転送することになる。
【００３７】
したがって、ＤｏＳ攻撃で通信を全面的に不能にするためには、すべてのアクセス・ノード１０８をダウンさせ、さらにすべてのターゲット・ノード１１２をダウンさせなければならないが、それは相当に複雑な離れ業である。さらに、オーバーレイ・ネットワーク１００内のノード同士は多岐にわたる接続がなされているため、クライアント１０２とサーバ１０４の間の通信は、高い弾力性を有する。実際、後で詳述するように、攻撃に対しては、オーバーレイ・ネットワーク１００内をジグザグに移動する。このことは、弾力性をさらに高め、性能上の利点ももたらす。
【００３８】
一言で言えば、オーバーレイ・ネットワーク１００は、サーバ１０４に対し、高度の「順応性」を有するシールドを形成する。そして、この順応性により、攻撃下での性能低下が緩やかである。オーバーレイ・ネットワーク１００は、経路を再配線（つまり選択）することにより、過剰な負荷を精力的に移動しようとする。これにより、接続性が向上し、かつ、他の性能特性も向上する。このアプローチは、ノードにフィルタを設けて不要かつ悪意のトラフィックをブロックするなどの、ＤｏＳに対する攻撃的なアプローチをよく補完するものであり、また、そのアプローチと容易に結合できる。基盤を成す物理ネットワークが経路指定の方針制約の影響を受けるのと異なり、オーバーレイ・ネットワークの重要な特徴は、オーバーレイ内ですべてのノードが他のすべてのノードと仮想的に接続されていることである。この新規な、ＤｏＳに対して弾力性があるオーバーレイ・ネットワークは、分散オーバーレイ経路指定手法を用いる。これは、エンド・サーバにアクセスするための「最適な」ターゲット・ノードと、そのターゲット・ノードに到達するための最適な経路（つまり、次のホップ）を、オーバーレイ・ノードごとに動的に選択する手法である。
【００３９】
ここまでで、例示的なネットワーク環境について説明した。次に、オーバーレイ・ネットワーク１００に１つまたは複数のノードを実装するための例示的な物理プラットフォームについて説明する。
【００４０】
例示的なコンピュータ・プラットフォーム
アクセス・ノード１０８、オーバーレイ・ノード１１０、およびターゲット・ノード１１２で提供されるどの機能性も、任意の汎用または特殊用途のコンピューティング・システムに実装できる。それらのノードのいずれでの使用にも適する、よく知られたコンピューティング・システム、環境、および／または構成として、パーソナル・コンピュータ、サーバ・コンピュータ、マルチプロセッサ・システム、マイクロプロセッサベース・システム、ネットワーク・コンピュータ、ルータ、光スイッチ、無線ルータ、ミニコンピュータ、メインフレーム・コンピュータ、これらのシステムまたは装置を任意に含む分散コンピューティング環境などがあり、これらに限定されない。
【００４１】
さらに、ノード１０８、１１０、および１１２で提供される例示的な機能性はすべて、コンピュータで実行される、コンピュータで実行可能な命令の一般的なコンテキスト（プログラム・モジュールなど）に記述できる。一般に、プログラム・モジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造体、ロジック、その他の実行可能データが含まれ、これらは特定のタスクを実行したり、特定の抽象データ型を実装したりする。オーバーレイ・ネットワーク１００で提供される機能性は、オーバーレイ・ネットワーク１００を介してリンクされたリモート・ノードでタスクが実行される分散コンピューティング環境でも実践可能である。分散コンピューティング環境では、プログラム・モジュールは、ローカル・コンピュータとリモート・コンピュータの両方の記憶媒体（メモリ記憶デバイスを含む）に配置できる。
【００４２】
図２は、オーバーレイ・ネットワーク１００にノードを実装するために使用するコンピュータ・プラットフォーム２００の例示的な物理表現を示す図である。特に、コンピュータ・プラットフォーム２００は、ノード（たとえば、アクセス・ノード、オーバーレイ・ノード、および／またはターゲット・ノード）を少ない変更でハードウェア、ファームウェア、および／またはソフトウェアに実装するための、任意の汎用または特殊用途のコンピューティング・システムを表す。
【００４３】
オーバーレイ・ネットワーク１００の各ノードは、ノードの動作を制御する制御モジュール２０２を含む。各制御モジュール２０２は、ハードウェア、ファームウェア、ロジック、ソフトウェア、またはこれらの任意の組み合わせで実装できる。図示した例示的な実施態様では、制御モジュール２０２は、コンピュータ（つまり、処理ユニット２２２内の１つまたは複数のプロセッサ）で実行される、コンピュータで実行可能な命令の一般的なコンテキストで記述できるプログラム・モジュールとして実装されている。制御モジュール２０２は、メモリ２２４内に常駐する。
【００４４】
メモリ２２４は、通常、様々なコンピュータ可読媒体を含む。そのような媒体として、コンピュータ・プラットフォーム２００からアクセスできる任意の市販媒体を使用でき、これらには、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体が含まれる。このコンピュータ可読媒体は、コンピュータ可読命令、データ構造体、プログラム・モジュール、その他のコンピュータ・プラットフォーム２００用データの不揮発性記憶を実現する。メモリ２２４のコンピュータ可読媒体には、制御モジュール２０２の１つまたは複数の部分をはじめとする、任意の数のプログラム・モジュールを格納できる。
【００４５】
また、制御モジュール２０２の複数の部分を、コンピュータ・プラットフォーム２００から離れた場所にあるリモート・メモリ記憶デバイスに格納できることにも注目されたい。さらに、本明細書では制御モジュール２０２を単体ブロックとして例示しているが、それらの任意のコンポーネントを、様々な場合に、コンピュータ・プラットフォーム２００の様々な記憶コンポーネントに常駐させることができ、コンピュータの１つまたは複数のプロセッサ（処理ユニット２２２など）で実行できることが理解されよう。
【００４６】
ユーザは、キーボード２２８やポインティング・デバイス２３０（たとえば、「マウス」）などの入力デバイスを使用して、コンピュータ・プラットフォーム２００にコマンドや情報を入力できる。他の入力デバイス（具体的には図示せず）として、マイクロホンやジョイスティックなどもある。これらの入力デバイスや他の入力デバイスは、入出力インターフェース２３２（ネットワークや無線通信リンクなど）を介してコンピュータ・プラットフォーム２００に接続される。コンピュータ・プラットフォーム２００は、通信リンク２０３を介して他のノードに接続される。具体的には、通信リンク２０３は、入出力インターフェース２３２をオーバーレイ・ネットワーク２００に接続する。最後に、ユーザにグラフィカル情報を提供するために、モニタ２３４または他のタイプの表示デバイスをコンピュータ・プラットフォーム２００に接続することもできる。
【００４７】
ここまでで、以上、例示的なオーバーレイ・ネットワークと、オーバーレイ・ネットワークの各ノードに使用する例示的なコンピュータ・プラットフォームについて説明した。次に、オーバーレイ・ネットワーク１００のノードで使用する例示的な検査システムについて説明する。
【００４８】
例示的な検査システム
図３は、オーバーレイ・ノード１１０で使用する例示的な検査システム３０２を示す図である。説明のために、オーバーレイ・ノード１１０（１）を参照して検査システム３０２を説明するが、他の任意のオーバーレイ・ノードでも説明は容易にできよう。検査システム３０２は、制御モジュール２０２（図２）に常駐する。例示的実施態様では、各検査システム３０２は、コンピュータの処理ユニット２２２（図２）で実行される、コンピュータで実行可能な命令で表されるが、ハードウェアとして、あるいはハードウェア、ファームウェア、ロジック、およびソフトウェアの任意の組み合わせとして実装することもできる。
【００４９】
検査システム３０２は、オーバーレイ・ネットワーク１００のオーバーレイ・ノード１１０に組み込まれる。検査システム３０２は、オーバーレイ・ノード１１０が他のオーバーレイ・ノード１１０を検査し、それらのノードの性能を格付けし、最高格付けを有する１つまたは複数のノードを含む経路を選択することによって、他のノード（ターゲット・ノード１１２など）に到達する最適な経路を選択することを可能にする。
【００５０】
例示した実施態様では、検査システム３０２は、格付けモジュール３０４、検査モジュール３０６、および経路選択モジュール３０８を含む。格付けモジュール３０４は、オーバーレイ・ネットワーク内の他のノード（他のオーバーレイ・ノードなど）を、１つまたは複数の性能メトリックに基づいて格付けするように構成される。高い格付けは、トラフィックをサーバに転送する性能が、格付けの低いオーバーレイ・ノードよりすぐれているオーバーレイ・ノードに割り当てられる（通常、サーバへのトラフィック転送はターゲット・ノードを介するが、必須ではない）。
【００５１】
たとえば、性能メトリックが帯域幅であれば、格付けの高いノードは、格付けの低いノードより、トラフィックを転送する際の帯域幅が広い。性能メトリックがジッタであれば、格付けの高いノードは、格付けの低いノードより、トラフィックを転送する際のジッタが少ない。性能メトリックが待ち時間であれば、格付けの高いノードは、格付けの低いノードより、待ち時間が短い（その他の性能メトリックについても同様である）。
【００５２】
各ノードの格付けは、格付けテーブル３１０で保持できる。このテーブルは、メモリ２２４（図２）の一部に格納できる。一実施態様では、格付けテーブル３１０は、様々なビン３１２（１），３１２（２），３１２（３），．．．，３１２（Ｎ）を含むことができる。ビン３１２（１）には、最高性能（最高格付け）を有する１つまたは複数のノードの識別情報が格納され、ビン３１２（Ｎ）には、最低性能（最低格付け）を有するノードの識別情報が格納される。さらに、この各ノードの識別情報とともに、オーバーレイ・リンクがそのノードに到達する指定の性能を示す、そのノードに対応する性能メトリック値、ならびにそのノードからターゲット・ノードに到達する最適経路の性能レベルが格納される。
【００５３】
検査モジュール３０６は、１つまたは複数の性能メトリックに基づいて他のオーバーレイ・ノードの性能を利用するために、他のオーバーレイ・ノードを検査するように構成される。検査モジュール３０６は、格付けの高いオーバーレイ・ノードの一部分を、格付けの低いオーバーレイ・ノードより頻繁に検査する。検査モジュール３０６は、オーバーレイ・ノードの格付けを、より頻繁に検査するノードを選択する際の基準にする。本明細書で使用しているように、「群」は、１つまたは複数のノードを意味する。
【００５４】
たとえば、検査間隔の間、検査モジュール３０６は、最高性能を有する１つまたは複数のオーバーレイ・ノード（つまり、ビン３１２（１）にリストされているノード）を検査する。例示的実施態様では、あるノードが別のノードを検査する場合、オーバーレイ・リンクが検査対象ノードに到達するための、指定された性能メトリックの値を測定するだけでなく、検査対象ノードがターゲット・ノードに到達するための最適経路と、その経路のメトリック値の両方を要求する。
【００５５】
たとえば、ノード１１０（１）がノード１１０（２）を検査し、必要な性能メトリックが帯域幅であるとする。この場合、ノード１１０（１）は、経路３１６を介してノード１１０（２）に到達するために使用可能な帯域幅を測定する。ノード１１０（１）はさらに、ノード１１０（２）から最適経路３１８を介してターゲット・ノード１１２（１）に到達するために使用可能な帯域幅も測定する。これら２つの測定に基づき、ノード１１０（１）は、性能メトリック値を割り当てることができる。これは、ノード１１０（２）に割り当てられた性能に対応する。その性能メトリック値に基づき、ノード１１０（１）はさらに、ノード１１０（２）の性能メトリック値が他のオーバーレイ・ノードよりすぐれているか劣っているかを判別することによって、ノード１１０（２）を格付けすることができる。
【００５６】
格付けモジュール３０４は、１つの検査間隔が終了するたびに、最高格付けのノードの性能メトリック値が、格付けの低いノードに割り当てられている性能メトリック値より下がっていないかどうかを判別する。格付けモジュール３０４は、最高格付けを有する（たとえば、ビン３１２（１）にある）１つまたは複数のノードに割り当てられている性能メトリック値が、格付けの低い（たとえば、ビン３１２（２）にある）１つまたは複数のノードに割り当てられている性能メトリック値より下がった場合には、最高格付けを有する（ビン３１２（１）にある）１つまたは複数のノードを格下げするように構成されている。同様に、格付けモジュール３０４は、前に格付けが低かったノードの（性能メトリック値に基づく）性能レベルが、前に格付けが高かった１つまたは複数のノードより上がった場合は、前に格付けが低かったノードを高い格付けに格上げするように構成されている。したがって、格付けモジュール３０４は、検査モジュール３０６が実施した検査に基づいて、オーバーレイ・ノードを高い格付けのビンに格上げして検査頻度を上げたり、オーバーレイ・ノードを低い格付けのビンに格下げして検査頻度を下げたりできる。
【００５７】
経路選択モジュール３０８は、通常、トラフィックをターゲット・ノードに転送するために、最高格付けのノードを１つまたは複数含む経路を選択する。たとえば、経路選択モジュール３０８は、例示した実施態様ではノード１１０（２）が最高格付けを有する（たとえば、ビン３１２（１）に格付けされている）ので、トラフィックをターゲット・ノード１１２（１）に転送する経路の一部として、ノード１１０（２）を含めるよう選択する。安全性が高くない代替実施態様では、前述したようなターゲット・ノードを使用せずに、オーバーレイ・ノード（ノード１１０（２）など）からサーバ１０４に直接転送することが可能である。その場合、ノード１１０（２）は、ターゲット・ノードのように動作する。
【００５８】
検査システム３０２を、３つの個別機能ブロック（格付けモジュール３０４、検査モジュール３０６、および経路選択モジュール３０８）を含むように図示したが、コンピュータで実行可能な命令、ロジック、ファームウェア、および／またはハードウェアの形で実際に実装する場合には、各ブロックを参照して説明した機能性が、識別可能な個別モジュールとして存在しない場合もあることを理解されたい。検査システム３０２は、他のコンポーネントと統合したり、大規模なシステムにモジュールとして組み込んだりもできる。ほとんどの場合、検査システム３０２は、統合されているかどうかにかかわらず、ノードが（ｉ）１つまたは複数の性能メトリックに基づいて他のオーバーレイ・ノードを格付けし、（ｉｉ）格付けが高く、性能が高い他のオーバーレイ・ノードの一部分を、格付けが低く、格付けの高いノードと比較して性能が劣るオーバーレイ・ノードよりも頻繁に検査することを可能にする。
【００５９】
ここまでで、検査システム３０２の各種コンポーネントについて説明した。次に、検査システム３０２が他のノードを検査および格付けする動作について詳細に説明する。
【００６０】
動作方法
検査システム３０２の方法は、プロセッサで実行可能な命令の一般的なコンテキストで説明することができる。ここで説明する方法は、通信ネットワークを介してリンクされたリモート処理デバイスで機能が実行される分散コンピューティング環境でも実践可能である。分散コンピューティング環境では、コンピュータで実行可能な命令は、ローカルとリモートの両方の記憶媒体（メモリ記憶デバイスを含む）に配置できる。
【００６１】
図４は、オーバーレイ・ネットワークにおいて、他のオーバーレイ・ノードを検査および格付けする例示的な方法４００を示す図である。方法４００により、オーバーレイ・ネットワーク内の各オーバーレイ・ノードは効率的な方式で他のノードを検査できるようになる。１つまたは複数の性能メトリックに基づいてクライアントとサーバの間でトラフィックを転送するための（エンドツーエンド性能が最大になる）最適経路を選択してオーバーレイ・トポロジを適合させることにより、各オーバーレイ・ノードは、検査した各ノードの性能に関連付けられた格付けに基づいて、ＤｏＳ攻撃などのネットワーク状態に対応することができる。
【００６２】
方法４００は、ブロック４０２、４０４、４０６、４０８、４１０、および４１２を含む。本方法を説明する順序は、限定として解釈されるべきではない。説明する各方法ブロックをいくつ用いても、どのような順序に組み合わせても、本方法を実施することは可能である。さらに、本方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせで実施することができる。
【００６３】
例示的な方法４００については、図３と図４を交互に参照して説明する。説明のために、図３のノード１１０（１）から見た方法４００を図示したが、オーバーレイ・ネットワーク１００（図１）内の任意のオーバーレイ・ノードを当てはめることが可能である。
【００６４】
ブロック４０２では、初期設定を実施する。例示的実施態様では、初期設定は、ノードをランダムに選択し、そのノードをビンに割り当てることを含む。たとえば、オーバーレイ・ノード１１０（２）を最高格付けのビン３１２（１）に割り当て、２つのオーバーレイ・ノード１１０（３）および１１０（４）を次に格付けが高いビン３１２（２）に割り当て、４つのオーバーレイ・ノード１１０（５）、１１０（６）、１１０（７）、および１１０（８）を次のビン３１２（３）に割り当て、８つのオーバーレイ・ノード１１０（９）、１１０（１０）、１１０（１１）、１１０（１２）、１１０（１３）、１１０（１４）、１１０（１５）、および１１０（１６）を次に格付けが高いビンに割り当てる（以降も同様）。各ビンに対して選択したオーバーレイ・ノードの数は説明のためであり、実際に各ビンに対して選択する数は異なってもよい。さらに代替実施態様では、ノードをビンにランダムに割り当てる代わりに、すべてのノードの検査を一斉に行い、その結果を受けて、１つまたは複数の性能メトリックに基づく、各ノードがトラフィックをターゲット・ノードに転送する能力に応じて、各ノードをビンに割り当てることが可能である。
【００６５】
ブロック４０４では、各ビンについて検査間隔を設定する。たとえば、ビン３１２（１）にあるすべてのノードを、△ごとに検査するように設定する（△は秒単位の定数値である）。ビン３１２（２）にあるすべてのノードを２△ごとに検査するように設定し、ビン３１２（３）にあるすべてのノードを４△ごとに検査するように設定する（以降も同様）。各ノードを検査する実際の時間間隔は、実装に応じて異なってもよい。ただし、通常は、ビン３１２（１）にあるオーバーレイ・ノードを、ビン３１２（２）にあるオーバーレイ・ノードより頻繁に検査し、ビン３１２（２）にあるオーバーレイ・ノードを、ビン３１２（３）にあるオーバーレイ・ノードより頻繁に検査する（以降も同様）。
【００６６】
判断ブロック４０６では、△（ビン３１２（２）の場合は２△、ビン３１２（３）の場合は４△、以降も同様）秒が経過したかどうかを判断する。判断ブロック４０６のＮＯ分岐に従う場合は、△、２△、４△などの秒数が経過していないので、方法４００は、△、２△、４△などの秒数が経過するまで待機する。判断ブロック４０６のＹＥＳ分岐に従う場合は、△、２△、４△などの秒数が経過したので、方法４００はブロック４０８に進む。ブロック４０８では、１つまたは複数の特定ビンにある１つまたは複数のノードを検査する。たとえば、最高格付けビン３１２（１）については、△ごとに検査する。次に高い格付けのビン３１２（２）については２△ごとに検査し、次に高い格付けのビン３１２（３）については４△ごとに検査する（以降も同様）。図３の例では、最高格付けビン３１２（１）が△ごとに検査されるときには、ビン３１２（１）にある現在のノード（たとえば、ノード１１０（２））が検査される。次に格付けが高いビン３１２（２）が２△ごとに検査されるときには、ノード１１０（３）および１１０（４）が、１１０（２）とともに検査される。
【００６７】
オーバーレイ・ノード１１０（１）は、ノード１１０（２）の検査に基づいて、ノード１１０（２）に性能メトリック値（数値など）を割り当てることができる。この値は、ノード１１０（２）がトラフィックをターゲット・ノード１１２（図１）に転送する能力に対応する。オーバーレイ・ノード１１０（１）がビン３１２（２）、３１２（３）、．．．、３１２（Ｎ）にある他のノードを検査する場合にも、同じことが当てはまる。
【００６８】
次に、判断ブロック４１０では、ブロック４０８で検査した特定ビンにある１つまたは複数のノードが、格付けのより低いビンにあるノードより性能が高いかどうかを判断する。たとえば、ビン３１２（１）にあるオーバーレイ・ノード１１０（２）の性能メトリック値が、ビン３１２（２）にあるオーバーレイ・ノード１１０（３）および／または１１０（４）に関連付けられた性能メトリック値より高いかどうかを判断する。
【００６９】
判断ブロック４１０のＮＯ分岐に従う場合は、ビン３１２（１）にあるノードより性能の高いオーバーレイ・ノードがビン３１２（２）にないことになり、方法４００は判断ブロック４０６に戻る。
【００７０】
一方、判断ブロック４１０のＹＥＳ分岐に従う場合は、格付けの低いビンにある１つまたは複数のノードの性能が、格付けの高いビンにあるノードより高いことになり、その格付けの低いビンにある１つまたは複数のノードを、格付けの高いビンに格上げし、格付けの高いビンにある１つまたは複数のノードを、格付けの低いビンに格下げする。たとえば、ビン３１２（２）にあるいずれかのオーバーレイ・ノードの性能が、ビン３１２（１）にある１つまたは複数のオーバーレイ・ノードより高い場合は、ノード１１０（２）をビン３１２（２）に格下げし、ノード１１０（３）および／またはノード１１０（４）のいずれかをビン３１２（１）に格上げする。通常、どちらの性能が高いかは、性能メトリック値で決まる。次に方法４００は、判断ブロック４０６に戻る。
【００７１】
判断ブロック４１０では、次にくるビン（たとえば、ビン３１２（３））に、前のビン（ビン３１２（２）または３１２（１））にあるノードより高い性能メトリック値を関連付けられたノードがあるかどうかも判断することができる。判断ブロック４１０のＮＯ分岐に従う場合は、ビン３１２（２）にあるオーバーレイ・ノードより性能の高いオーバーレイ・ノードがビン３１２（３）にないことになり、方法４００は判断ブロック４０６に戻る。一方、判断ブロック４１０のＹＥＳ分岐に従う場合は、ビン３１２（２）にあるオーバーレイ・ノードより性能の高いオーバーレイ・ノードがビン３１２（３）にあることになり、方法４００は判断ブロック４１２に戻る。たとえば、ビン３１２（３）にある１つまたは複数のノードの性能が、ビン３１２（２）にあるオーバーレイ・ノードより高いとみなせる場合には、ビン３１２（３）にある１つまたは複数のノードを、ビン３１２（２）に割り当てられている最大ノード数まで、ビン３１２（２）に格上げできる。そして、その場合は、ビン３１２（３）にある、性能がより高い各ノードに対して同数の、ビン３１２（２）にある１つまたは複数のオーバーレイ・ノードをビン３１２（３）に格下げする。この方法論は、ビン３１２（Ｎ）まで同様に適用できる。つまり、次にくるビンが前のビンと比較される限り、連続するビン間の比較を続けることができる。
【００７２】
以上は、ノードの検査および格付けの、１つの例示的方法論であることに注意されたい。ある期間にわたって格付けの高いノードを、格付けの低いノードより頻繁に検査する場合には、他の方法論を用いることもできる。たとえば、各ノードに格付け番号を割り当て、個々のノードの検査頻度をその番号に基づいて決定するようにすれば、ビンにノードを割り当てずに格付けを実施することができる。
【００７３】
構造的特徴および／または方法論的動作に特有の表現で本発明について説明してきたが、添付した特許請求項で定義される本発明は、ここで説明した特定の特徴や動作に必ずしも限定されないことを理解されたい。より、正確に言えば、ここで説明した特定の特徴および動作は、特許請求する本発明の例示的実施形態として開示したものである。
【図面の簡単な説明】
【００７４】
【図１】サービス拒否（ＤｏＳ）攻撃に対処するための例示的なオーバーレイ・ネットワークを示す図である。
【図２】オーバーレイ・ネットワークにノードを実装するために使用するコンピュータ・プラットフォームの例示的な物理表現を示す図である。
【図３】オーバーレイ・ノードの例示的な検査システムを示す図である。
【図４】オーバーレイ・ネットワークにおいて、他のノードを検査および格付けする例示的な方法を示す図である。
【図１】
2005210727.tif 000003
【図２】
2005210727.tif 000004
【図３】
2005210727.tif 000005
【図４】
2005210727.tif 000006