(57)【要約】【課題】列挙要求に応じて、数多くのアクセス可能なノードが列挙応答を同時に送信することにより生ずる可能性のある過度のネットワーク輻輳を低減する。悪意のあるノードが、数多くのアクセス可能なノードから列挙応答を同時に送信するように仕向ける可能性を低減する。【解決手段】列挙要求がネットワーク中のノードから送信される。列挙要求を受信した各ノードは、その列挙要求を受信するノードによって決定された時間に列挙応答を送信する。【選択図】図１
2006109435.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサによって実行されたとき、
列挙プロセス中に、ネットワーク中でノードによって前に送信された列挙応答に関係する情報、並びに、前記列挙プロセス中に送信される列挙応答間の望ましい平均時間に基づいて、前記ネットワークにおける前記列挙プロセス中の列挙要求に対して前記ノードが応答する時間を前記ノードにおいて決定するステップと、
前記決定された時間に、前記列挙要求に対して応答するステップと、
を備える方法を前記１つまたは複数のプロセッサに実施させることを特徴とするプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２】
前記情報は、前記列挙プロセス中に所与の時間枠にわたって列挙応答を前に送信したノードの総数（カウント）を含むことを特徴とする請求項１に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項３】
前記情報は、前記列挙プロセスの残りの期間に列挙応答を送信する可能性の高いノードの推定を含むことを特徴とする請求項１に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項４】
前記列挙要求に応答する前記時間が、ラウンドベースのスケジューリング法を用いて決定されることを特徴とする請求項１に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項５】
前記列挙要求に応答する前記時間が、可変ラウンド長スケジューリング法を用いて決定されることを特徴とする請求項１に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項６】
前記列挙要求に応答する前記時間が、固定ラウンド長スケジューリング法を用いて決定されることを特徴とする請求項１に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項７】
前記列挙要求は、前記列挙プロセス中に列挙要求に対して前に応答した前記ネットワーク中のノードを識別する情報を含むことを特徴とする請求項１に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項８】
前記列挙要求は、前記列挙プロセス中に列挙要求に対して前に応答した前記ネットワーク中のノードのネットワークアドレスを含むことを特徴とする請求項１に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項９】
前記列挙要求に応答する前記時間は、ラウンドベースのスケジューリング法を用いて決定されること、並びに、前記決定された時間に前記列挙要求に対して応答する前記ステップは、前記ラウンドベースのスケジューリング法によって定義されるタイミングラウンド中で応答するステップを含むことを特徴とする請求項１に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項１０】
ネットワーク中のノードから送信された列挙応答をモニタし収集した情報に基づいて、一連のタイミングラウンド中のどのタイミングラウンドにおいて前記ネットワーク中のノードから列挙応答を送信すべきかを決定するステップと、
前記決定されたタイミングラウンドにおいて前記列挙応答を送信するステップと、
を備えることを特徴とする方法。
【請求項１１】
前記一連のタイミングラウンドにおける前記タイミングラウンドのそれぞれは、実質的に同じ時間期間であることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記一連のタイミングラウンドにおける少なくとも１つの前記タイミングラウンドの時間期間は、前記ネットワーク中で送信された列挙応答のカウントに基づいて決定されることを特徴とする請求項１０に記載の方法。
【請求項１３】
前記一連のタイミングラウンドにおける複数の前記タイミングラウンドの時間期間はそれぞれ、前記ネットワーク中で送信された列挙応答のビット密度に基づいて決定されることを特徴とする請求項１０に記載の方法。
【請求項１４】
前記列挙応答を送信するために前記決定されたタイミングラウンド中の時間をランダムに選択するステップと、
前記決定されたタイミングラウンド中の前記選択された時間に、前記列挙応答を送信するステップと、
をさらに備えることを特徴とする請求項１０に記載の方法。
【請求項１５】
一連のタイミングラウンド中のどのタイミングラウンドにおいて列挙応答を送信すべきかを決定する前記ステップは、
時間期間ｔの現在のタイミングラウンドを起動するステップと、
前記ネットワークを介して列挙応答をまだ送信していない前記ネットワーク中のノードの数（Ｎ）を推定するステップと、
Ｎ、並びに、列挙プロセス中の前記ネットワークを介する列挙応答間の望ましい最小の平均時間を規定する最小の間隔値（Ｉ）に基づいて、前記プロセスの終了を推定するステップと、
前記現在のタイミングラウンドの起動開始と、前記列挙の前記推定された終了との間の時間を選択するステップと、
前記選択された時間が前記現在のタイミングラウンド中で生ずる場合、前記列挙応答を前記現在のタイミングラウンド中で送信することを決定するステップと、
を含むことを特徴とする請求項１０に記載の方法。
【請求項１６】
１つまたは複数のプロセッサによって実行されたとき、
ネットワークを介して列挙応答を前に送信した前記ネットワーク中のノードを識別する情報を含む列挙要求を前記ネットワ−ク中の第１のノードで受信するステップと、
前記第１のノードから、一連のタイミングラウンド中のどのタイミングラウンドで、列挙応答を送信すべきかを決定するステップと、
前記第１のノードが前記列挙要求中で識別されない場合は、前記決定されたタイミングラウンド中で前記列挙応答を送信するステップと、
を備える方法を前記１つまたは複数のプロセッサに実施させることを特徴とするプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項１７】
前記一連のタイミングラウンドにおける前記タイミングラウンドのそれぞれは、実質的に同じ時間期間のものであることを特徴とする請求項１６に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項１８】
前記一連のタイミングラウンドにおける少なくとも１つの前記タイミングラウンドの時間期間は、前記列挙要求へ応答して、列挙応答を送信していない前記ネットワークにおけるノードの数の推定に基づいて決定されることを特徴とする請求項１６に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項１９】
前記一連のタイミングラウンドにおける少なくとも１つの前記タイミングラウンドの時間期間は、列挙応答間の望ましい最小の平均時間を指定する最小の間隔値（Ｉ）に基づいて決定されることを特徴とする請求項１６に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２０】
前記一連のタイミングラウンドにおける少なくとも１つの前記タイミングラウンドの時間期間は、ノードが前記タイミングラウンドのうちの１つで列挙応答を送信するようになる望ましい確率を示す事前決定された値に基づいて決定されることを特徴とする請求項１６に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２１】
前記一連のタイミングラウンドにおける少なくとも１つの前記タイミングラウンドの時間期間は、前記列挙要求に応答して、列挙応答を送信していない前記ネットワークにおけるノードの数の推定、並びに、前記一連のタイミングラウンド中に送信される列挙応答間の望ましい最小の平均時間を指定する最小の間隔値（Ｉ）に基づいて決定されることを特徴とする請求項１６に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２２】
前記一連のタイミングラウンド中のどのタイミングラウンドにおいて送信すべきかは、前記列挙要求へ応答して、列挙応答を送信していない前記ネットワークにおけるノードの数の推定に基づいて決定されることを特徴とする請求項１６に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２３】
前記一連のタイミングラウンド中のどのタイミングラウンドにおいて送信すべきかは、列挙応答間の望ましい最小の平均時間を規定する最小の間隔値（Ｉ）に基づいて決定されることを特徴とする請求項１６に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２４】
前記一連のタイミングラウンド中のどのタイミングラウンドにおいて送信すべきかは、前記列挙要求に応答したノードの前記数のカウントに基づくことを特徴とする請求項１６に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２５】
１つまたは複数のプロセッサによって実行されたとき、
ネットワーク中の複数のノードに第１の列挙要求を送信するステップと、
前記複数のノードの少なくとも１つから列挙応答を受信するステップであって、前記受信された列挙応答は、スケジューリング法を用いて前記少なくとも１つのノードによって決定された時間に前記少なくとも１つのノードから送信されていることと、
第２の列挙要求を前記複数のノードに送信するステップであって、前記第２の列挙要求は、前記複数のノードの前記少なくとも１つから列挙応答を受信しているという確認応答を含むことと、
を備えるネットワークノード列挙方法を前記１つまたは複数のプロセッサに実施させることを特徴とするプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２６】
前記スケジューリング法は、ラウンドベースのスケジューリング法を含むことを特徴とする請求項２５に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２７】
前記スケジューリング法は、固定ラウンド長スケジューリング法を含むことを特徴とする請求項２５に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２８】
前記スケジューリング法は、可変ラウンド長スケジューリング法を含むことを特徴とする請求項２５に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項２９】
第１の列挙要求を送信する前記ステップは、前記第１の列挙要求をブロードキャストするステップを含むことを特徴とする請求項２５に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項３０】
第１の列挙要求を送信する前記ステップは、前記第１の列挙要求をマルチキャストするステップを含むことを特徴とする請求項２５に記載のプロセッサ実行可能命令を実行する１つまたは複数のコンピュータ読取り可能媒体。
【請求項３１】
ノードと、
ネットワーク中の他のノードから送信された列挙応答をモニタし収集した情報を用いて決定された時間に、前記ネットワークを介して受信された列挙要求に対して、前記ネットワークを介して、列挙応答を送信することにより応答するための前記ノード内のレスポンダ手段と、
を備えることを特徴とするシステム。
【請求項３２】
前記レスポンダ手段は、ラウンドベースのスケジューリング手段を含むことを特徴とする請求項３１に記載のシステム。
【請求項３３】
前記応答することは、列挙応答を送信することを含むことを特徴とする請求項３１に記載のシステム。
【請求項３４】
前記時間は、固定ラウンド長スケジューリング法を用いて決定されることを特徴とする請求項３１に記載のシステム。
【請求項３５】
前記時間は、可変ラウンド長スケジューリング法を用いて決定されることを特徴とする請求項３１に記載のシステム。
【請求項３６】
前記収集された情報は、列挙応答により生じたネットワーク負荷に関係する情報を含むことを特徴とする請求項３１に記載のシステム。
【請求項３７】
前記収集された情報は、所与の時間枠にわたって前記ネットワーク中で送信された列挙応答の数を含むことを特徴とする請求項３１に記載のシステム。
【請求項３８】
前記収集された情報は、前記ネットワーク中の所与の時間枠にわたり応答に含まれて送信されたデータ量を含むことを特徴とする請求項３１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載のシステムおよび方法は、一般に、ネットワークノードの列挙に関する。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
列挙要求に応じて、数多くのアクセス可能なノードが列挙応答を同時に送信することにより生ずる可能性のある過度のネットワーク輻輳を低減する。悪意のあるノードが、数多くのアクセス可能なノードから列挙応答を同時に送信するように仕向ける可能性を低減する。
【課題を解決するための手段】
【０００３】
本明細書において、ネットワークノード列挙（ｅｎｕｍｅｒａｔｉｏｎ）のシステムおよび方法の様々な実施態様を説明する。本明細書に記載のシステムおよび方法のいくつかによると、ネットワーク中のノードから選択されたノードは、そのネットワーク中の他のノードに列挙要求を送信する。列挙要求の受信に応答して、アクセス可能（すなわち、「オンライン」）でありかつその要求を受けるノードは列挙応答（ｅｎｕｍｅｒａｔｉｏｎ  ｒｅｓｐｏｎｓｅ）を送信し、それにより、列挙要求を送信しているノードにそのノードがアクセス可能であることを知らせる。列挙要求を送信しているノードは、次いで、受信した列挙応答の確認応答（ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）を送信する。一実施態様では、列挙要求を送信しているノードは、１つまたは複数の将来の列挙要求中において、確認応答を送信する。
【０００４】
列挙要求に応じて、数多くのアクセス可能なノードが列挙応答を同時に送信することにより生ずる可能性のある過度のネットワーク輻輳を低減するために、列挙応答は、様々に変化する時刻に、アクセス可能なノードから送信される。悪意のあるノードが、数多くのアクセス可能なノードから列挙応答を同時に送信するように仕向ける可能性を低減するために、各アクセス可能なノードは、独立してその列挙応答の送信時刻を決定する。
【０００５】
いくつかの実施態様では、各ノードは、ノードで行われるネットワーク活動の観測および／または将来のネットワーク活動予測に基づいて、列挙応答を送信する時間を独立にスケジューリングする。さらに、いくつかの実施態様では、各アクセス可能なノードは、各列挙応答をいくつかのタイミングラウンド（ｔｉｍｉｎｇ  ｒｏｕｎｄ）のうちの１つで送信するようにスケジューリングする「ラウンドベース」のスケジューリング法を使用する。
【発明を実施するための最良の形態】
【０００６】
次に、図１を参照すると、コンピュータネットワーク１００が一般的な表現で示されている。ネットワーク１００は、ネットワークノードの列挙が行われる可能性のある一環境を示す。コンピュータネットワーク１００は、ネットワーククラウド１１２を介して相互接続されたいくつかの（Ｎ）ノード１１０を含む。ネットワーククラウド１１２は、一般に、データ（例えば、列挙要求および列挙応答）が、ノード１１０間を移動するとき、様々なネットワークパス、装置、および／または伝送媒体を介して、様々な経路を取ることができることを示す。線１０８など、ノード１１０とネットワーククラウド１１２間のギザギザの線は、ノード１１０がネットワーク１００中でアクセス可能（すなわち、「オンライン」）であることを示す。例えば、各ノード（１）、（２）、（３）、（５）、および（Ｎ）がネットワーク１００中でアクセス可能なものとして示され、一方、ノード（４）がネットワーク１００中でアクセス不能（「オフライン」）なものとして示されている。
【０００７】
本明細書では、「ノード」という用語は、ネットワーク（例えば、ネットワーク１００）中で一意にアドレス指定可能な、そうでなければ一意に識別可能でかつネットワーク中の他のノードとの通信が動作可能な任意のコンピュータシステム、装置、またはプロセスを指す。例えば、それだけに限らないが、ノードは、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップ装置、タブレット装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、家庭用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、任意の上記システムもしくは装置を含む分散コンピューティング環境などとすることができる。ネットワークノード１１０の一実施例を、図６に関してコンピュータシステム６００の形で後に述べる。
【０００８】
ノードが、コンピュータシステムまたは何らかの形の装置を含む場合、そのノードは、通常、プロセッサおよび１つまたは複数の形式のコンピュータ読取り可能媒体、およびノードを動作可能にネットワーク１００に接続させる１つまたは複数の通信接続を含む。本明細書では、コンピュータ読取り可能媒体は、コンピュータによってアクセスおよび理解が可能な形式で符号化された情報を記憶または実施できる任意の媒体とすることができる。コンピュータ読取り可能媒体の典型的な形式は、それだけに限らないが、揮発性／不揮発性メモリと、取外し可能および／または取外し不能媒体を含むデータ記憶装置と、通信媒体とを含む。
【０００９】
通信媒体は、搬送波または他の移送機構など変調されたデータ信号中にコンピュータ可読情報を具体化し、情報配信媒体を含む。「変調されたデータ信号」とは、信号に情報をエンコードするなどの方法で１つまたは複数の特性が設定されたまたは変更された信号のことを意味する。例として、それだけに限らないが、通信媒体は、有線ネットワークもしくは直接有線接続などの有線媒体、および音響、高周波、赤外線などの無線媒体および他の無線媒体を含む。
【００１０】
図１に示したように、ノード（１）１１４は列挙モジュール１１６を含み、一方、ノード（２）〜（Ｎ）はそれぞれ、レスポンダモジュール１１８を含む。一般に、列挙モジュール１１６は、ノード（１）１１４に、ネットワークノードの列挙を実施する様々な機能を提供する。例えば、列挙モジュール１１６は、列挙要求を構築し、列挙要求の送信をスケジューリングし、列挙要求を送信し、列挙応答の確認応答を送信し、受信した列挙応答中に含まれる情報を処理し、ネットワーク中のアクセス可能なノードの数を判定し、および／またはネットワーク中のアクセス可能なノードを識別する機能をノード（１）１１４に提供することができる。一般に、各レスポンダモジュール１１８は、それが含まれているあるいは関連付けられているノード１１０に、受信した列挙要求を処理し、何らかの基準および／およびまたは論理に基づいて、列挙応答を送信する時間を決定する機能を提供する。本明細書では、「送信する（ｓｅｎｄｉｎｇ）」という用語は、一般に、ネットワーク１００を介して、列挙要求や列挙応答などの情報を送信すること（例えば、ブロードキャスト、マルチキャスト、ユニキャストなど）を指す。
【００１１】
特定のモジュールに関して本明細書に記載された機能は、モジュールそれ自体によって、またはモジュールがそれに含まれたもしくは関連付けられたノードと協力することによって、あるいはいくつかのサブモジュールによって実施することもできることを理解されたい。例えば、いくつかの実施態様では、モジュールによって実施されるオペレーションは、１つまたは複数のコンピュータ読取り可能媒体中で実施されるコンピュータ実行可能命令として実装される。その実施態様では、モジュールのオペレーションは、モジュールを含むまたは関連付けられたノード中の１つまたは複数のプロセッサにより実行することができる。他の実施態様では、モジュールのオペレーションは、モジュールがそれに含まれたまたは関連付けられたノードの一部として、または関連する何らかの他の方法で、ハードウェア、ファームウェアとして、あるいはハードウェア、ファームウェア、およびソフトウェアの何らかの組合せとして実装することができる。さらに、特定のモジュールに関して本明細書で説明する機能は、いくつかのノードにより実施され、あるいはそれを介して配布することもできる。
【００１２】
次に、より具体的に列挙モジュール１１６のいくつかの特有の機能を見ると、一つの実施態様では、列挙モジュール１１６は、時間的に間隔のあるいくつかの列挙要求をネットワ−ク１００中のレスポンダモジュール１１８に送信する。送信された列挙要求相互間の間隔は周期的でも非周期的でもよい。例えば、一つの実施態様では、列挙要求が本明細書で「要求間隔」と呼ぶ均等に間を空けた時間間隔で送信される。他の実施態様では、列挙要求は、ランダムに選択された様々な時間で送信される。さらに、他の実施態様では、列挙要求は、何らかの他のスケジュール、論理、および／または列挙モジュール１１６で行われる決定に基づいて、列挙モジュール１１６により決定された時間で送信される。
【００１３】
一つの実施態様では、列挙要求は、特に、列挙モジュール１１６により受信された列挙応答を前に送信したノード１１０を識別する（確認する）情報を含む。一つの実施態様では、各列挙要求は、所与の時間フレーム中に列挙モジュールにより受信された列挙応答を送信したノード１１０を識別する情報を含む。例えば、一つの実施態様では、各列挙要求は、最後の列挙要求が列挙モジュールによって送信された後に、列挙応答を送信したノード１１０を識別する情報を含む。一つの実施態様では、列挙要求は、前に確認応答されているノード１１０を識別することができる。他の実施態様では、所与のノードが列挙要求で確認応答される回数を制限し、または上限を設けることができる。
【００１４】
列挙モジュール１１６が列挙応答を受信したとき、その応答中に含まれる情報は、処理または後で取り出すために記憶することができる。例えば、その列挙モジュール１１６は、列挙応答を送信した各ノードの識別（例えば、ネットワークアドレス）がその中に記憶される１つまたは複数のデータ構造を作成し、および／または維持することができる。一つの実施態様では、列挙モジュール１１６は、最後に列挙要求が送信された後に、列挙要求を送信したすべてのノードのアドレスを含む１つのデータ構造と、列挙プロセスを通じて列挙応答を送信したすべてのノードのアドレスを含む他のデータ構造とを維持する。その実施態様では、最後の列挙要求以降に列挙応答を送信したすべてのノードのアドレスを含むデータ構造は、次いで、次の列挙要求を構築するのに使用することができ、一方、列挙プロセスを通じて列挙応答を送信したすべてのノードのアドレスを含むデータ構造は、最終のネットワークノード列挙のために使用することができる。他の実施態様では、列挙モジュール１１６は、列挙プロセスで使用される様々な他のデータをコンパイルし、および／または記憶する。
【００１５】
いくつかの実施態様では、列挙モジュール１１６は、事前決定された条件（例えば、タイミング条件など）が満たされるまで、列挙要求を送信し、また列挙応答を受信し処理する。例えば、それだけに限らないが、一実施態様では、列挙モジュール１１６は、最後の列挙応答を受信してから所与の時間枠が経過するまで、列挙要求を送信し続ける。他の実施態様では、列挙モジュール１１６は、所与の時間枠ごとの応答数が何らかの最小値を下回るまで、列挙要求を送信し続ける。他の実施態様では、列挙モジュール１１６は、所与の時間枠ごとの受信応答数が何らかの最小値を下回るまで、列挙要求を送信し、次いで、追加の事前決定された時間枠に対する列挙要求を送信し続ける。
【００１６】
一実施態様では、列挙プロセス中にノードから受信した情報は、様々な列挙データを作成するために分析されおよび／またはコンパイルされる。例えば、他の情報に加えて、列挙プロセス中に列挙応答を送信したすべてのノードの数および／または識別を決定することができる。
【００１７】
図２は、ネットワーク中でエニュメレータにより実施される列挙プロセスで実施できる様々なオペレーションを含むオペレーションフロー２００を示す。図２に関する以下の説明は、図１のネットワーク１００を参照して行うものとする。具体的には、図２の説明は、図１の列挙モジュール１１６およびネットワーク１００を参照して行われる。しかし、図２に関して述べられたオペレーションフローは、列挙モジュール１１６により実施されること、またはネットワーク１００中で実施されることに限定するものではないことを理解されたい。さらに、オペレーションフロー２００は、オペレーションを実行する特定の順序を示しているが、他の実施態様では、そのオペレーションを異なった形で順序付けできることを理解されたい。
【００１８】
オペレーションフロー２００は、特に、要求フェーズを示している。要求フェーズは、列挙プロセスのうちで列挙応答がネットワーク中のノードに送信される部分である。その要求フェーズを、オペレーション２１０〜２１８を含むオペレーションループとして、オペレーションフロー２００に示す。
【００１９】
図２に示したように、オペレーション２０８において、列挙要求間における所望の間隔が設定される。図２に示す実施態様では、オペレーション２０８は、要求フェーズの前にオペレーションフロー２００中で１回行われる。代替の実施態様では、オペレーション２０８は、要求フェーズ中に行うこともできる。こうすると、動作条件もしくはネットワーク条件あるいはオペレータの好みに基づいて、要求フェーズ中に列挙要求間の所望の間隔を変更する柔軟性が提供される。
【００２０】
次に、オペレーション２１０において、列挙モジュール１１６によって列挙要求がネットワーク１００中のノード１１０に送信される。オペレーション２１０で送信された列挙要求は、特に、列挙モジュール１１６が受信した列挙応答を前に送信しているノード１１０を識別する情報を含むことができる。すなわち、オペレーション２１０で送信された列挙要求は、列挙モジュール１１６が受信した列挙応答を前に送信しているノード１１０の確認応答を含むことができる。
【００２１】
一つの実施態様では、オペレーション２１０で送信された列挙応答は、最後の列挙要求が列挙モジュール１１６によって送信された後に、列挙モジュール１１６が受信した列挙応答を送信したノード１１０だけを識別または確認する情報を含む。他の実施態様では、オペレーション２１０で送信された列挙応答は、現在の列挙プロセス中に列挙モジュール１１６が受信した列挙応答を送信しているすべての、または、いくつかのノード１１０を識別する情報を含む。
【００２２】
次に、オペレーション２１２において、列挙モジュール１１６が列挙プロセスの要求フェーズを終了すべきかどうか決定する。すなわち、オペレーション２１０〜２１８によって形成されるオペレーションループから出るかどうかに関して判定が行われる。オペレーション２１２で行われる判定は、様々なファクタに基づくことができる。いくつかの実施態様では、オペレーション２１２における判定は、列挙プロセス中で応答する可能性の高いすべてノードがすでに応答していることを示すまたは示唆する何らかの基準に基づいて行われる。例えば、一つの実施態様では、列挙モジュール１１６によって最後の列挙応答が受信されてから事前決定の時間が経過した場合、オペレーション２１２で判定が行われて、列挙プロセスの要求フェーズを終了する。他の実施態様では、列挙モジュール１１６が列挙プロセスの要求フェーズを終了させるかどうかを判定するのに他の基準を使用することができる。オペレーション２１２は、オペレーション２１０〜２１８によって形成されるオペレーションループ中で、オペレーション２１０の後以外の諸点でも行うことができることを理解されたい。
【００２３】
オペレーション２１２において、列挙モジュール１１６が要求フェーズを終了させるべきであると判定した場合、オペレーションフロー２００は、以下で述べるオペレーション２２０に進む。しかし、オペレーション２１２で、列挙モジュール１１６が要求フェーズを終了させるべきでないと判定した場合、オペレーションフローは、オペレーション２１４に進み、列挙モジュール１１６によって最後の列挙要求が送信された後に、何らかの列挙応答が受信されたかどうか判定が行われる。
【００２４】
オペレーション２１４において、列挙モジュール１１６によって最後の列挙要求が送信された後に、列挙応答が何も受信されていないと判定された場合、オペレーションフロー２００は、後で示すオペレーション２１８に進む。しかし、オペレーション２１４で、列挙モジュール１１６によって最後の列挙要求が送信された後に、１つまたは複数の列挙応答を受信していると判定された場合、その応答を送信したノードの識別が記憶され、オペレーションフロー２００はオペレーション２１８に進む。
【００２５】
オペレーション２１８において、列挙要求を送信すべきかどうか判定される。その判定は、様々な方法で行うことができる。例えば、一つの実施態様では、列挙モジュール１１６によって最後の列挙要求が送信されてから、オペレーション２０８で設定された列挙要求間の所望の間隔に等しい時間枠が経過したかどうかに基づいて判定が行われる。オペレーション２１８で、列挙要求を送信すべきであると判定された場合、オペレーションフロー２００はオペレーション２１０に戻る。オペレーション２１８で、列挙要求を送信すべきではないと判定された場合、オペレーションフローは、オペレーション２１４に戻る。オペレーション２１８は、オペレーション２１４の後以外の要求フェーズにおける諸点でも行うことができることを理解されたい。
【００２６】
オペレーション２１２に戻ると、上記のように、列挙モジュール１１６は要求フェーズを終了させるべきであると判定された場合、オペレーションフロー２００はオペレーション２２０に進む。オペレーション２２０において、列挙プロセス中に収集されたデータはコンパイルされおよび／または記憶され、オペレーションフロー２００が終了する。オペレーション２２０でコンパイルされ得るデータタイプのいくつかの実施例は、所与の時間枠内に列挙モジュール１１６によって送信された列挙要求に応答したすべてのノードのカウントおよび／または識別を含む。
【００２７】
いくつかの実施態様では、オペレーション２２０は、オペレーションフロー２００のオペレーション２１２に続く位置にはない。すなわち、いくつかの実施態様では、オペレーション２２０は、列挙モジュール１１６が列挙プロセスの要求フェーズを終了すべきであるという判定に続いて実行されない。そうではなく、いくつかの実施態様では、データをコンパイルし送信するタスクを、要求フェーズ中の１つまたは複数の点で行うことが可能であり、あるいは要求フェーズを通じて連続的に行うことができる。
【００２８】
各レスポンダモジュール１１８は、列挙モジュール１１６からの列挙要求の送信に対してネットワークをモニタする。本明細書に記載の様々な実施態様では、列挙要求を検出すると、各レスポンダモジュール１１８は、応答スケジューリング法を実行する。一般に、応答スケジューリング法は、列挙応答を送信することによりレスポンダモジュール１１８が列挙要求に応答するかどうかを判定する。列挙要求にレスポンダモジュールが応答するように判定された場合、スケジューリング法は、レスポンダモジュール１１８が列挙応答を送信する時間を決定する。
【００２９】
レスポンダモジュール１１８によって使用できる応答スケジューリング法にはいくつかの異なるタイプがある。例えば、それに限らないが、図３、図４、および図５はそれぞれ、レスポンダモジュール１１８によって使用できる応答スケジューリング法を示す。いくつかの実施態様では、ネットワーク１００における各レスポンダモジュールは、所与の列挙プロセス中に同じまたは実質的に同様の応答スケジューリング法を使用する。他の実施態様では、ネットワーク１００中で様々なレスポンダモジュール１１８により様々なスケジューリング法を使用することもできる。
【００３０】
図３、図４、および図５に関する以下の説明を図１のネットワーク１００を参照して行う。具体的には、図３、図４、および図５の説明は、ネットワーク１００のレスポンダモジュール１１８およびエニュメレータモジュール１１６を参照して行う。しかし、図３、図４、および図５に述べるスケジューリング法は、レスポンダモジュール１１８、列挙モジュール１１６により実施されることに、またはネットワーク１００中で実施されることに限定するものではないことを理解されたい。さらに、図３、図４、および図５のそれぞれに示されたスケジューリング法はそれぞれ、オペレーションおよび／または状態の特定の順序を示しているが、他の実施態様では、そのオペレーションおよび／または状態は、異なって順序付けられ、図示された様々なオペレーションおよび／または状態を実施あるいは含めることなく、および／または他のオペレーションおよび／または状態を含むことができることを理解されたい。
【００３１】
まず図３を参照すると、ネットワーク列挙中にレスポンダモジュール１１８がそれを介して遷移することのできる例示的な諸状態を示す簡略化した状態遷移図が示されている。図３のように、レスポンダモジュール１１８は、最初はアイドル状態３１０にある。列挙要求３１２を受信すると、レスポンダモジュール１１８は、応答タイマを設定し、列挙応答の送信時間を決定し、アイドル状態３１０から休止状態３２０に進む。列挙応答の送信時間は、タイマを参照し、レスポンダモジュールが列挙応答を列挙モジュール１１６に送信する時間を指定する。
【００３２】
レスポンダモジュール１１８は、様々な方法で列挙応答の送信時間を決定することができる。いくつかの実施態様では、レスポンダモジュール１１８は、レスポンダモジュール１１８によって行われる他のレスポンダモジュールから送信される列挙応答の観測に基づいて決定される。より具体的には、これらの実施態様では、レスポンダモジュールは、これらの観測を用いて、ネットワーク中の他のノードが同様のタイミング方法を使用しているものと仮定し、ネットワークを介して送信される列挙応答の望ましい配布を行うようにするタイミング方法を用いて列挙の送信時間を設定する。そのタイミング方法では、ネットワーク中の他のノードが同様のタイミング方法を使用しているという仮定を用いているが、その仮定が正しくないこともあり得ることを理解されたい。
【００３３】
このような一実施態様では、レスポンダモジュール１１８によって行われる観測は、他のレスポンダモジュールによる列挙応答の送信によって生ずるネットワーク全体の列挙応答の密度に関する。他のこのような実施態様では、レスポンダモジュール１１８によって行われる観測は、他のレスポンダモジュールによる列挙応答の送信によるネットワーク全体の所与の時間枠ごとに送信されるデータ（例えば、１秒当たりのビット）量によるネットワーク負荷に関する。どのようにして、送信時間を計算できるかについてのより具体的な実施例は、図４および図５に関して以下で説明する。
【００３４】
休止状態３２０に入った後、レスポンダモジュール１１８は、タイマが応答送信時間３２２に達すること、あるいは列挙モジュール１１６がレスポンダモジュール１１８から列挙応答を受信したという確認を含む列挙要求３２４（確認応答）を受信することのいずれかを待つ。タイマが応答送信時間３２２に達した場合、レスポンダモジュールは、応答送信時間にまたは別の時間に列挙応答を送信し、送信済み状態３３０に進む。レスポンダモジュールが肯定の確認応答（ｐｉｓｉｔｉｖｅ  ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）３２４を受信した場合、レスポンダモジュール１１８は、完了状態３４０に進む。
【００３５】
送信済み状態３３０に入った後、レスポンダモジュール１１８は、列挙要求３３２または３３４の受信を待つ。列挙要求が確認応答３３４を含まない場合、前に述べたように、レスポンダモジュール１１８は応答タイマを設定し、列挙応答送信時間を決定し、送信済み状態３３０から休止状態３２０に進む。列挙要求が肯定の確認応答３３２を含んでいた場合、レスポンダモジュール１１８は、送信済み状態３３０から完了状態３４０に進む。
【００３６】
いくつかの実施態様では、レスポンダモジュール１１８は、「ラウンドベース」のスケジューリング法を使用する。ラウンドベースのスケジューリング法は、一般に、ネットワーク中の様々なレスポンダモジュール相互間で同期化され得るいくつかの連続するタイミングラウンドのうちの１つ中で列挙応答の送信をスケジューリングする。ラウンドベースのスケジューリングでは、ラウンドのタイミングは、各レスポンダモジュール１１８によって個別に計算される。しかし、各レスポンダモジュール１１８で使用される共通のスケジューリング法によって、また列挙要求によってトリガされるそのスケジューリング法に対するほぼ同時の起動時間によって、様々な各レスポンダモジュール１１８のタイミングラウンド間で全体の同期化を行うことができる。
【００３７】
ラウンドベースのスケジューリングは、固定ラウンド長スケジューリングまたは可変ラウンド長スケジューリングに分類することができる。固定ラウンド長スケジューリングでは、タイミングラウンドの所与のシーケンスにおける各タイミングラウンドの時間期間はほぼ同じである。それに対して、可変ラウンド長スケジューリングでは、タイミングラウンドの所与のシーケンスにおける各タイミングラウンドの時間期間は変化し得る。
【００３８】
固定ラウンド長スケジューリングおよび可変ラウンド長スケジューリングでは共に、列挙応答間の何らかの望ましい最小の平均時間に、すべてのアクセス可能なレスポンダモジュールからの列挙応答の送信を均等に配信する試みがなされる。それを達成するために、固定および可変ラウンド長スケジューリング法は共に、ノード残存値（Ｎ）および最小間隔値（Ｉ）を計算する。ノード残存値（Ｎ）は、列挙モジュール１１６から肯定の確認応答をまだ受信していないノード数の推定を規定する整数値である。最小間隔値（Ｉ）は、列挙プロセスで、アクセス可能なすべてのノードのレスポンダモジュールからの、ネットワークを介した列挙応答相互間の望ましい最小の平均時間を指定する。
【００３９】
固定ラウンド長スケジューリングでは、ＮおよびＩの値は、列挙応答が所与のラウンド中に送信されたかどうかを判定するために使用される。可変ラウンド長スケジューリングでは、ＮおよびＩの値は、ラウンド長を決定するために使用される。
【００４０】
ノード残存値（Ｎ）を決定する方法は、使用するラウンドベーススケジューリングのタイプに依存する。ノード残存値（Ｎ）を決定できる方法のいくつかの実施例については、図４および図５に関して以下に説明する。Ｉの値は、経験的に選択され、または最大ネットワークサイズ、ネットワーク送信速度などの様々なパラメータに基づいて計算することができる。いくつかの実施態様では、Ｉはミリ秒（ｍｓ）で規定される。他の実施態様では、Ｉは他の時間単位で表現される。Ｉの値は、取得された後、ネットワーク中のすべてのレスポンダモジュール１１８に記憶され、またはアクセス可能にすることができる。
【００４１】
図４および図５はそれぞれ、スケジューリング法の１つの可能な実施態様に対するオペレーションフローを示す。図４および図５に関する以下の議論は、単一の列挙要求に応答する単一のレスポンダモジュール１１８に関して行われる。図４および図５に示すオペレーションフローは、列挙要求がレスポンダモジュール１１８によって受信されるごとにレスポンダモジュール１１８で行うことができることを理解されたい。さらに、図４および図５に示されたものと同じまたは同様のオペレーションフローが、通常、列挙プロセス中に、ネットワーク１００におけるアクセス可能な各レスポンダモジュール１１８中で行われることを理解されたい。
【００４２】
図４は、レスポンダモジュール１１８における固定ラウンド長スケジューリング法に対する可能なオペレーションフロー４００を示す。いくつかの実施態様では、オペレーションフロー４００で示されるスケジューリング法は、レスポンダモジュールによって列挙要求が受信されるごとに、レスポンダモジュール１１８によって実施される。他の実施態様では、オペレーションフロー４００で示されるスケジューリング法は、レスポンダモジュール１１８によって指定された時間にのみ実施される。すなわち、いくつかの実施態様では、オペレーションフロー４００で示されるスケジューリング法は、様々な動作条件またはユーザ要求に基づいて「開始（ｔｕｒｎｅｄ  ｏｎ）」または「終了（ｔｕｒｎｅｄ  ｏｆｆ）」する。
【００４３】
いくつかの実施態様では、レスポンダモジュールの中でオペレーションフロー４００を実施する前のある時間に、固定ラウンド長スケジューリング法で使用されるタイミングラウンドの時間期間を指定するタイミングラウンド時間期間値（ｔｄ）が決定される。ｔｄの値は経験的に選択することができるが、最大ネットワークサイズ、ネットワーク送信速度などの様々なパラメータに基づいて計算することもできる。いくつかの実施態様では、ｔｄはタイミングラウンドの時間期間をミリ秒（ｍｓ）で示す整数値である。他の実施態様では、ｔｄは他の時間単位で表現される。それが取得された後、ｔｄの値は、ネットワークにおけるすべてのレスポンダモジュール１１８に記憶され、またはアクセス可能となる。
【００４４】
多くの実施態様では、値ｔｄは、列挙プロセスの開始前に決定される。ほとんどの実施態様では、値ｔｄはスケジューリング法を通じて一定のままである。いくつかの実施態様では、値ｔｄはスケジューリング法における第１のタイミングラウンドに対する第１の値を有し、観測されたプロセス負荷などのファクタに基づきスケジューリング法における残りのタイミングラウンドに対する第２の値に調整される。
【００４５】
オペレーション４１０において、レスポンダモジュール１１８が列挙要求を受信する。列挙要求の受信により、レスポンダモジュール１１８のスケジューリング方法が開始され、または「トリガ」される。オペレーション４１２で、レスポンダモジュール１１８からの列挙応答を列挙モジュール１１６がすでに受信しているという指示（「確認応答」）を、受信した列挙要求が含んでいるかどうかの判定が行われる。例えば、レスポンダモジュールは、列挙プロセスにおいて、早い時期に送信された列挙要求に答えて列挙応答を送信することもできる。
【００４６】
オペレーション４１２において、受信した列挙要求が肯定の確認応答を含んでいると判定された場合、オペレーションフロー４００は終了する。しかし、オペレーション４１２で、受信した列挙要求が肯定の確認応答を含んでいないと判定された場合は、オペレーション４１４で、列挙応答が、オペレーションフロー４００中で行われる一連のタイミングラウンドにおける次のタイミングラウンドで送信される確率を規定する確率値（φ）の決定が行われる。
【００４７】
確率値（φ）は、様々な方法で選択され、または決定することができる。例えば、１つの実施態様では、値（φ）は列挙応答を列挙モジュール１１６にまだ送信していないレスポンダモジュールの数の推定に基づいて決定される。一実施態様では、φは次式により決定される。
【００４８】
【数１】
2006109435.tif 000003
【００４９】
最初にオペレーション４１４が実施されたとき、Ｎの値は、ネットワーク１００でアクセス可能なノードの最大数の推定を示す最大ノード値（Ｎｍａｘ）に初期設定される。次いで、オペレーションフローにおいて、オペレーション４１４が実施される連続する各時間で、以下で詳細に述べるように、他のレスポンダモジュールから送信される観測された応答に基づいてＮが決定される。
【００５０】
次に、タイミングラウンドオペレーション４１６が時間期間ｔｄのタイミングラウンドを開始する。タイミングラウンドの起動と実質的に同時に、オペレーション４１８において、そのタイミングラウンド中に列挙応答をレスポンダモジュール１１８が送信すべきかどうか判定される。その判定は、オペレーション４１４で決定された確率φを用いて行われる。すなわち、確率φを有する現在のラウンド中に列挙応答を送信するかどうかを選択するために、いくつかの機構またはアルゴリズムが使用される。
【００５１】
オペレーション４１８において、現在のタイミングラウンド中に列挙応答を送信すべきではないと判定された場合、オペレーションフロー４００は、以下に示すオペレーション４２４に進む。しかし、オペレーション４１８において、現在のタイミングラウンド中に列挙応答を送信すべきであると判定された場合は、オペレーション４２０において、次いで、列挙応答が送信されるラウンド中の正確な時間が決められる。一つの実施態様では、列挙応答を送信するラウンド中の時間は、そのラウンドの時間期間にわたりランダムに選択される。他の実施態様では、列挙応答を送信するラウンド中の時間は、他の方法で選択することができる。オペレーション４２０に続いて、オペレーション４２２で、オペレーション４２０中に決定された時間で列挙応答が送信される。
【００５２】
オペレーション４２２に続いて、オペレーション４２４において、現在のタイミングラウンド中に列挙応答を送信したすべてのノードのカウント（ｒ）が行われる。一つの実施態様では、カウント（ｒ）は、レスポンダモジュールによって、ネットワークをモニタすることにより、また現在のタイミングラウンド中にネットワークに送信された列挙応答の数をカウントすることによって行われる。オペレーション４２４は、オペレーション４２２に続いて行われるものとして示されているが、オペレーションにおいて、現在のタイミングラウンド中にネットワークで送信された列挙応答のカウントは、通常、すべてのまたは大部分のタイミングラウンドを通じて行われることを理解されたい。
【００５３】
次に、オペレーションフロー４００は、オペレーション４２６へ進み、ノード残存値（Ｎ）を推定する。一般に、Ｎは、他のレスポンダモジュールから送信され観測された応答に基づいて推定される。例えば、一つの実施態様では、ノード残存値（Ｎ）は、次式により計算される。
【００５４】
【数２】
2006109435.tif 000004
【００５５】
オペレーションフロー４００で、最初にオペレーションフロー４２６が実施されたとき、Ｎｐｒｅｖｉｏｕｓの値はＮｍａｘと同じである。その後にオペレーション４２６がオペレーションフロー４００で実施される各時間では、Ｎの値は、オペレーション４２６がフロー４００で最後に実施されたときに計算されたＮの値となる。
【００５６】
いくつかの実施態様では、計算されたＮの値は、上限（ＮＵＢ）および／または下限ＮＬＢを有する。ＮＵＢおよびＮＬＢの値は様々な方法で選択することができる。例えば、それだけに限らないが、その値を事前決定された固定値とすること、その値をオペレーションフロー４００中で計算すること、それが様々な観測されたノードまたはネットワーク挙動に基づくこと、および／またはそれを前のもしくは現在の計算値Ｎのパーセンテージとすることができる。
【００５７】
さらに、いくつかの実施態様では、オペレーション４２６においてＮの推定または計算に値ｔｄを用いるのではなく、タイミングラウンドの実際の時間期間を測定し（ｔａｃｔｕａｌ）、次いで、測定された値ｔａｃｔｕａｌをＮの推定または計算に使用する。例えば、値ｔａｃｔｕａｌを上記の式（１）中で値ｔｄの代わりに使用することになる。
【００５８】
次に、オペレーション４２８において、現在のタイミングラウンド中に列挙要求を受信したかどうかの判定が行われる。現在のタイミングラウンド中に要求が受信されていると判定した場合、オペレーションフローは、上記のオペレーション４１２に戻る。現在のタイミングラウンド中に要求が受信されていないと判定した場合は、オペレーションフローは、オペレーション４３０に進み、非アクティヴ条件（ｉｎａｃｔｉｖｉｔｙ  ｃｏｎｄｉｔｉｏｎ）が満たされているかどうか判定が行われる。
【００５９】
非アクティヴ条件は、いくつかの方法で選択しおよび／または決定することができる。例えば、一つの実施態様では、列挙要求を受信してから所与の時間が経過した場合、その非アクティヴ条件が満たされる。オペレーション４３０において、非アクティヴ条件が満たされていると判定された場合、オペレーションフローは終了する。しかし、オペレーション４３０で、非アクティヴ条件が満たされていないと判定された場合、オペレーションフローは前に説明したオペレーション４１４に戻る。
【００６０】
前述のように、オペレーションフロー４００は、肯定の確認応答を含む列挙応答が受信されたとき（オペレーション４１２）、または非アクティヴ条件が満たされた場合（オペレーション４３０）終了することになる。さらに、いくつかの実施態様では、列挙要求が受信されたオペレーションフロー中の任意の点で、その要求が肯定の確認応答を含むかどうかの判定が行われる。受信した要求が肯定の確認応答を含んでいないと判定された場合、オペレーションフローは継続する。例えば、要求が、オペレーション４１８の前で、オペレーション４１６に続いて受信され、肯定の確認応答を含んでいない場合、オペレーションフローは、オペレーション４１８に進む。受信した要求が肯定の確認応答を含んでいると判定された場合は、オペレーションフローは終了する。
【００６１】
一つの実施態様では、オペレーションループ４００の開始以降の間に、他のレスポンダモジュールから送信され観測された列挙応答の合計数（ＴＲ）のカウントは、レスポンダモジュールによって保持される。その実施態様によると、列挙要求がレスポンダモジュールによって受信されるごとに、要求が受信された時間におけるＴＲの値（ＴＲｍｂ）が記憶される。すなわち、値ＴＲｍｂは、要求が受信されるごとに記憶される。所与のラウンドｉの最後に、ＴＲｍｂの最近の値を、前のタイミングラウンドの最後における値ＴＲｍｂと比較する。ＴＲｍｂの最近の値が、前のタイミングラウンドの最後における値ＴＲｍｂよりも大きい場合、そのＴＲｍｂの最近の値と、前のタイミングラウンドの最後における値ＴＲｍｂとの差（ＴＲｄｉｆｆ）をオペレーションフロー４００のオペレーション４２６で決定された値Ｎに加算し、それを次式で表す。
【００６２】
【数３】
2006109435.tif 000005
【００６３】
図５は、レスポンダモジュール１１８における可変ラウンド長スケジューリング法に対して可能な１つのオペレーションフロー５００を示す。いくつかの実施態様では、オペレーションフロー５００で示すスケジューリング法は、列挙要求をレスポンダモジュールが受信するごとに、レスポンダモジュール１１８によって実施される。他の実施態様では、オペレーションフロー５００で示すスケジューリング法は、指定された時間でだけレスポンダモジュール１１８によって実施される。すなわち、いくつかの実施態様では、オペレーションフロー５００で示されたスケジューリング法は、様々な動作条件またはユーザ要求に基づいて「開始」または「終了」する。
【００６４】
レスポンダモジュールにおけるオペレーションフロー５００を実施する前のある時間に、送信確率値（φ）および／または初期タイミングラウンド時間期間値（ｔｉｎｉｔｉａｌ）が決定される。送信確率値（φ）は、応答がタイミングラウンド中に発行される確率を指定する。初期タイミングラウンド時間期間値（ｔｉｎｉｔｉａｌ）は、可変ラウンド長スケジューリング法における最初のタイミングラウンドの時間期間を指定する。
【００６５】
φおよびｔｉｎｉｔｉａｌの値は、経験的に選択することもできるが、最大ネットワークサイズ、ネットワーク送信速度などの様々なパラメータに基づいて計算することができる。φおよびｔｉｎｉｔｉａｌの値は、取得された後、ネットワーク中のすべてのレスポンダモジュール１１８に記憶され、またはアクセス可能となる。
【００６６】
多くの実施態様では、値φは、列挙プロセスの開始前に決定される。ほとんどの実施態様では、値φは、スケジューリング法を通じて一定のままである。いくつかの実施態様では、値φは、スケジューリング法における最初のタイミングラウンドに対する最初の値を有し、観測されたプロセス負荷などのファクタに基づいて、スケジューリング法における残りのタイミングラウンドに対する第２の値に調整される。
【００６７】
一つの実施態様では、ｔｉｎｉｔｉａｌの値は次のように決定される。まず、ネットワーク１００におけるアクセス可能なノードの最大数の推定を表す最大のノード値（Ｎｍａｘ）が決定される。次いで、初期タイミングラウンド時間期間値（ｔｉｎｉｔｉａｌ）が次式により決定される。 
式（３）  ｔｉｎｉｔｉａｌ＝φ×Ｎｍａｘ×Ｉ
【００６８】
オペレーション５１０において、レスポンダモジュール１１８が列挙要求を受信する。列挙要求の受信により、レスポンダモジュール１１８のスケジューリング法が開始され、または「トリガ」される。オペレーション５１２において、レスポンダモジュール１１８からの列挙応答を列挙モジュール１１６がすでに受信しているという指示（「肯定の確認応答」）を、受信した列挙要求が含んでいるかどうかの判定が行われる。例えば、レスポンダモジュールは、その列挙プロセスにおいてより早い時期に送信された列挙要求に答えて列挙応答を送信することもできる。
【００６９】
オペレーション５１２において、受信した列挙要求が肯定の確認応答を含んでいると判定された場合、オペレーションフロー５００は終了する。しかし、オペレーション５１２において、受信した列挙要求が肯定の確認応答を含んでいないと判定された場合は、オペレーション５１４において、次のタイミングラウンドの時間期間（Ｔ）が決定される。オペレーション５１４が最初に実施されたときは、Ｔはｔｉｎｉｔｉａｌに等しい。その後にオペレーション５１４がオペレーションフローで実施される各時間に、他のレスポンダモジュールから送信され観測された応答に基づいてＴが決定される。例えば、一つの実施態様では、Ｔの値は、次式により、列挙応答が次のタイミングラウンドに対して均等に配信されるように計算される。 
式（４）  Ｔ＝φ×Ｎ×Ｉ
【００７０】
次に、タイミングラウンドオペレーション５１６が時間期間Ｔのタイミングラウンドを開始する。オペレーション５１８で、タイミングラウンドの起動と実質的に同時に、そのタイミングラウンド中にレスポンダモジュール１１８により列挙応答を送信すべきかどうか判定される。その判定は、上記の確率φを用いて行われる。すなわち、確率φを有する現在のラウンド中で、列挙応答を送信するかどうかを選択するために何らかの機構またはアルゴリズムが使用される。
【００７１】
一つの実施態様では、レスポンダは、それが動作するＴの最小値を有する。それは、Ｔｍｉｎとして時間の単位で直接、またはノードの数Ｎｍｉｎとして間接に指定することができる。このような実施態様では、ＴがＴｍｉｎより小さい（またはＮが、Ｎｍｉｎより小さい）場合、タイミングラウンドの時間期間はＴｍｉｎに設定され、確率が１に設定される。
【００７２】
オペレーション５１８において、現在のタイミングラウンド中に列挙応答を送信すべきではないと判定された場合、オペレーションフロー５００は、以下で示すオペレーション５２４に進む。オペレーション５１８において、現在のタイミングラウンド中に列挙応答を送信すべきであると判定された場合、オペレーション５２０において、次いで、その列挙応答が送信されるラウンド中の正確な時間が決められる。一つの実施態様では、列挙応答を送信するラウンド中の時間は、そのラウンドの時間期間にわたりランダムに選択される。他の実施態様では、列挙応答を送信するラウンド中の時間は、他の方法で選択することができる。オペレーション５２０に続いて、ステップ５２２において、オペレーション５２０中で決定された時間で列挙応答が送信される。
【００７３】
オペレーション５２２に続いて、オペレーション５２４において、現在のタイミングラウンド中に列挙応答を送信したすべてのノードのカウント（ｒ）が行われる。一つの実施態様では、カウント（ｒ）は、応答モジュールによって、ネットワークをモニタすることにより、また現在のタイミングラウンド中でネットワーク中に送信された列挙応答の数をカウントすることによって行われる。オペレーション５２４が、オペレーション５２２に続いて行われるものとして示されているが、オペレーションにおいて、現在のタイミングラウンド中にネットワーク中で送信された列挙応答のカウントは、通常、すべてのまたはほとんどのタイミングラウンドを通じて行われることを理解されたい。
【００７４】
次に、オペレーションフロー５００は、オペレーション５２６に進み、ノード残存値（Ｎ）を推定する。一般に、Ｎは、他のレスポンダモジュールから送信され観測された応答に基づいて推定される。現在のラウンドの始めで、列挙要求にまだ応答する必要のあったレスポンダモジュールの数（Ｎｃｕｒｒｅｎｔ）は、約
【００７５】
【数４】
2006109435.tif 000006
【００７６】
であったと推定することができる。Ｎｃｕｒｒｅｎｔに対するこの推定を用いると、ノード残存値（Ｎ）は、次式のように推定することができる。
【００７７】
【数５】
2006109435.tif 000007
【００７８】
次に、オペレーション５２８において、現在のタイミングラウンド中に列挙要求を受信したかどうかの判定が行われる。現在のタイミングラウンド中に要求が受信されていると判定した場合、オペレーションフローは、上記のオペレーション５１２に戻る。現在のタイミングラウンド中に要求が受信されていないと判定した場合は、オペレーションフローは、オペレーション５３０に進み、非アクティヴ条件が満たされているかどうか判定が行われる。
【００７９】
非アクティヴ条件は、いくつかの方法で選択しおよび／または決定することができる。例えば、一つの実施態様では、列挙要求を受信してから所与の時間が経過した場合、その非アクティヴ条件が満たされる。オペレーション５３０において、非アクティヴ条件が満たされていると判定された場合、オペレーションフローは終了する。オペレーション５３０において、非アクティヴ条件が満たされていないと判定された場合、オペレーションフローは前述のオペレーション５１４に戻る。
【００８０】
前述のように、オペレーションフロー５００は、肯定の確認応答を含む列挙応答が受信された場合（オペレーション５１２）、または非アクティヴ条件が満たされた場合（オペレーション５３０）に終了することになる。さらに、いくつかの実施態様では、列挙要求が受信されたオペレーションフロー中の任意の点で、その要求が肯定の確認応答を含むかどうかの判定が行われる。受信した要求が肯定の確認応答を含んでいないと判定された場合、オペレーションフローは継続する。例えば、要求が、オペレーション５１８の前で、オペレーション５１６に続いて受信され、肯定の確認応答を含んでいない場合、オペレーションフローは、オペレーション５１８に進む。受信した要求が肯定の確認応答を含んでいると判定された場合は、オペレーションフローは終了する。
【００８１】
上記の様々なタイミング法では、レスポンダモジュール１１８は、通常、列挙要求を受信するごとに列挙応答を送信することになる。さらに前述のように、様々な実施態様では、レスポンダモジュールは、通常、ネットワーク１００をモニタし、また所与の時間枠中に送信された列挙応答の数をカウントする。次いで、そのカウントを列挙要求にまだ応答していないレスポンダモジュールの数Ｎを推定するのに使用される。しかし、いくつかの実施態様では、レスポンダモジュールは、応答を所与の確率ｚでネットワーク全体に送出する（ブロードキャスト）ことにより、また確率（１−ｚ）で、指定された応答を列挙モジュール１１６に送信する（ユニキャスト）ことによって、ネットワークに加えられた負荷を低減することができる。このような実施態様ではさらに、観測された応答数をｚで割ることによってＮを推定することが可能である。
【００８２】
図６は、コンピュータシステム６００の形で例示的なネットワークノード１１０を示す。その最も基本的な構成では、コンピューティングシステム６００は、少なくとも１つの処理装置６０２およびメモリ６０４を含む。正確な構成およびコンピューティング装置のタイプに応じて、メモリ６０４は、（ＲＡＭなどの）揮発性のもの、（ＲＯＭ、フラッシュメモリなどの）不揮発性のもの、またはその２つの何らかの組合せとすることができる。その最も基本的な構成を図６に破線６０６で示す。さらに、コンピュータシステム６００は、追加の特徴／機能を有することもできる。例えば、装置６００はまた、それだけに限らないが、磁気もしくは光ディスクまたはテープを含む（取外し可能および／または取外し不能の）追加のストレージを含むこともできる。このような追加のストレージは、取外し可能ストレージ６０８および取外し不能ストレージ６１０により図６に示されている。
【００８３】
コンピュータシステム６００はまた、装置を他の装置と通信できるようにする通信接続６１２を含むことができる。コンピュータシステム６００はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、などの入力装置６１４を有することができる。表示装置、スピーカ、プリンタなどの出力装置６１６もまた、コンピュータシステム６００中に含むことができる。これらの装置はすべて、当技術分野で周知のものであり、ここでは詳細に論ずる必要がない。
【００８４】
システムおよび方法のいくつかの特定の実施態様が添付の図面中に示され、また前述の詳細な説明中で述べられているが、図示し、説明した本システムおよび方法は、説明した特定の諸実施態様に限定されるものではなく、以下の特許請求の範囲に記載され定義された趣旨を逸脱することなく、数多くの再構成、変更、および代用を行うことが可能であることが理解されよう。
【図面の簡単な説明】
【００８５】
【図１】本明細書に記載のシステムおよび方法によるネットワークノードの列挙を実施できるコンピュータネットワーク１００を一般的に表した図である。
【図２】図１のネットワークなどのネットワークでエニュメレータにより実施される列挙プロセスで実施可能な様々なオペレーションを含むオペレーションフローを示す図である。
【図３】ネットワーク列挙中にレスポンダモジュールがそれを介して遷移できる例示的な状態を示す簡略化した状態遷移図である。
【図４】図１のネットワークなどのネットワーク中のレスポンダモジュールにおける固定ラウンド長スケジューリング法のためのオペレーションフローを示す図である。
【図５】図１のネットワークなどのネットワーク中のレスポンダモジュールにおける可変ラウンド長スケジューリング法のためのオペレーションフローを示す図である。
【図６】コンピュータシステムの形の例示的なネットワークノードを示す図である。
【符号の説明】
【００８６】
１００  コンピュータネットワーク
６００  コンピュータシステム
【図１】
2006109435.tif 000008
【図２】
2006109435.tif 000009
【図３】
2006109435.tif 000010
【図４】
2006109435.tif 000011
【図５】
2006109435.tif 000012
【図６】
2006109435.tif 000013
【外国語明細書】
2006109435000001.pdf