(57)【特許請求の範囲】
【請求項１】
３つ以上のノードによって構成されかつ前記ノードのそれぞれが前記ノードのうちの少なくとも１つの他のノードと互いに関連付けられているネットワークにおいて、
前記ノードのうちの検査対象のノードである第一のノードに、前記ノードのうちの当該第一のノード以外のノードである第二のノードのうちの、当該第一のノードに関連付けられている第三のノードの１つへ、特定のデータを送信する送信処理を実行させ、
前記第二のノードに、当該第二のノードが受信した前記特定のデータを、当該第二のノードに関連付けられている前記他のノードのうちの当該特定のデータを当該第二のノードへ送信したノード以外のすべてのノードへ転送する、転送処理を実行させ、
前記第一のノードに、前記第三のノードのうちの前記特定のデータを送信した先である第三のノード以外のいずれかから当該第一のノードが当該特定のデータを受信しなかった場合に、機能しなくなれば前記第二のノード同士の通信に不具合をきたす特性が当該第一のノードにあると判別する、判別処理を実行させる、
ことを特徴とするノード特性判別方法。
【請求項２】
前記判別処理を、前記送信処理を実行させてから所定の時間が経過した後に実行させる、
請求項１記載のノード特性判別方法。
【請求項３】
前記特定のデータに、当該特定のデータが転送された回数を記録しておき、
前記転送処理を、前記特定のデータに記録されている前記回数が所定の回数未満である場合にのみ、実行させる、
請求項１または請求項２記載のノード特性判別方法。
【請求項４】
３つ以上のノードによって構成されかつ前記ノードのそれぞれが前記ノードのうちの少なくとも１つの他のノードと関連付けられているネットワークにおいて、
前記ノードのうちの、検査対象のノードである第一のノードが関連付けられている１つの第二のノードに、当該第一のノード以外のノードである第三のノードのうちの当該第二のノードに関連付けられておりかつ当該第一のノード以外のすべてのノードへ、特定のデータを送信する送信処理を実行させ、
前記第三のノードに、当該第三のノードが受信した前記特定のデータを、当該第三のノードに関連付けられておりかつ前記第一のノード以外の前記他のノードのうちの、当該特定のデータを当該第三のノードへ送信したノード以外のすべてのノードへ転送する、転送処理を実行させ、
前記第一のノードに、前記ノードのうちの当該第一のノードに関連付けられている第四のノードのいずれかに前記特定のデータが届いていない場合に、機能しなくなれば前記第二のノードと当該特定のデータが届いていない第四のノードとの間の通信に不具合をきたす特性が当該第一のノードにあると判別する、判別処理を実行させる、
ことを特徴とするノード特性判別方法。
【請求項５】
３つ以上のノードによって構成されかつ前記ノードのそれぞれが前記ノードのうちの少なくとも１つの他のノードと互いに関連付けられているネットワークにおいて、前記ノードのうちの第一のノードとして用いられ、かつ、前記ノードのうちの２つ以上の第二のノードと互いに関連付けられている通信装置であって、
前記第二のノードのうちの１つへ、自らに関連付けられている他のノードのうちの１つのノードから送信されてきた場合に当該他のノードのうちの当該送信元以外のノードすべてへ送信することによってリレーされる特定のデータを発信する、特定データ発信手段と、
当該通信装置に戻ってきた前記特定のデータを受信する特定データ受信手段と、
前記特定データ発信手段が前記特定のデータを発信した発信先以外の前記第二のノードのいずれかから前記特定データ受信手段によって前記特定のデータが受信されなかった場合に、機能しなくなれば前記ノード同士の通信に不具合をきたす特性が当該通信装置にあると判別する、判定手段と、
を有することを特徴とする通信装置。
【請求項６】
ネットワークのノードとして用いられ、かつ、当該ノードとして前記ネットワークに参加している第二のノードが関連付けられている通信装置であって、
前記ノードとして前記ネットワークに参加しておりかつ当該通信装置が関連付けられている１つの第三のノードが、当該第三のノードに関連付けられている、前記ノードのうちの当該通信装置以外のノードへ、検査を開始する旨の通知を、当該第三のノードから受信する、通知受信手段と、
前記通知受信手段によって前記通知が受信された後、前記ノードのうちの一方のノードから当該一方のノードに関連付けられている他方のノードにリレーされる特定のデータが前記第二のノードのいずれかに届いていない場合に、機能しなくなれば前記第三のノードと当該特定のデータが届いていない第二のノードとの間の通信に不具合をきたす特性が当該通信装置にあると判別する、判別手段と、
を有することを特徴とする通信装置。
【請求項７】
３つ以上のノードによって構成されかつ前記ノードのそれぞれが前記ノードのうちの少なくとも１つの他のノードと互いに関連付けられているネットワークにおいて、前記ノードのうちの第一のノードとして用いられ、かつ、前記ノードのうちの２つ以上の第二のノードと互いに関連付けられている通信装置を制御するための、コンピュータプログラムであって、
前記通信装置に、
前記第二のノードのうちの１つへ、自らに関連付けられている他のノードのうちの１つのノードから送信されてきた場合に当該他のノードのうちの当該送信元以外のノードすべてへ送信することによってリレーされる特定のデータを発信する処理と、
当該通信装置に戻ってきた前記特定のデータを受信する処理と、
前記特定のデータを発信した発信先以外の前記第二のノードのいずれかから前記特定のデータを受信できなかった場合に、機能しなくなれば前記ノード同士の通信に不具合をきたす特性が当該通信装置にあると判別する、判別処理と、を実行させる、
ことを特徴とするコンピュータプログラム。
【請求項８】
ネットワークのノードとして用いられ、かつ、当該ノードとして前記ネットワークに参加している第二のノードが関連付けられている、通信装置を制御するためのコンピュータプログラムであって、
前記通信装置に、
前記ノードとして前記ネットワークに参加しておりかつ当該通信装置が関連付けられている１つの第三のノードが、当該第三のノードに関連付けられている、前記ノードのうちの当該通信装置以外のノードへ、検査を開始する旨の通知を、当該第三のノードから受信する処理と、
前記通知が受信された後、前記ノードのうちの一方のノードから当該一方のノードに関連付けられている他方のノードにリレーされる特定のデータが前記第二のノードのいずれかに届いていない場合に、機能しなくなれば前記第三のノードと当該特定のデータが届いていない第二のノードとの間の通信に不具合をきたす特性が当該通信装置にあると判別する、判別処理と、を実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークのノードの特性を判別する方法などに関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置（ノード）を複数台、通信回線で繋いでネットワークを形成し、これらの情報処理装置同士でデータのやり取りを行う技術が、広く普及している。
【０００３】
Ｐ２Ｐ（Peer to Peer）型のネットワークは、クライアントサーバ型のネットワークよりも簡単に構築することができるので、小規模のオフィスなどにおいて広く採用されている。また、近年は、ＷｉｎｎｙおよびＷｉｎＭＸなどのソフトウェアによって、大規模なＰ２Ｐ型のネットワークが構築されるようになった。
【０００４】
上述のソフトウェアによるＰ２Ｐ型のネットワークにおいては、１つのノードは、他のすべてのノードの存在を知っているとは限らない。自らのスペックに応じた個数のノードの存在のみを知っている。このように、存在を知っているノードのことを「隣のノード」などと呼ぶことがある。また、共有ファイルなどの資源の情報つまりグローバルな情報は、サーバによって一元的に管理されるのではなく、ノードに分散して管理される。
【０００５】
そして、このようなネットワークにおいては、隣り合わない２つのノード間での情報のやり取りは、他のノードを介してリレー式に行われる。また、ある１つのノードからネットワーク全体に情報を伝達する場合は、当該１つのノードは、隣のすべてのノードに情報を伝達する。さらに、これらの各ノードは、自らの隣のノードに情報をリレーする。このようにリレーを行うことによって、情報がネットワーク全体に行き渡る。
【０００６】
また、Ｐ２Ｐ型のネットワークでは、ノードの参加および離脱がよく起こるので、論理的な接続形態（トポロジー）が変化しやすい。
【特許文献１】特表２００３−５２４３３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
図１９はネットワークの論理的なトポロジーの例を示す図である。
【０００８】
ネットワーク全体の総通信量を増加させることなく、すべてのノードに情報を伝達させるための方法として、すべてのノードを含むツリー（「スパニングツリー」などと呼ばれることもある。）を用い、無差別に隣のノードに情報をリレーするのではなくこのツリーに従って情報をやり取りする、という方法が提案されている。
【０００９】
また、通信の確実性を向上させるために、次のような方法が提案されている。例えば図１９のような接続形態を有するネットワークにおいて、楕円で示すノード間の通信路として、太い実線で示す通常の通信路のほかに、細い点線で示す予備の通信回線を確保しておく。そして、通常の通信路の障害が発生した場合に、予備の通信回線を用いて情報のやり取り。
【００１０】
そのほか、特許文献１には、冗長ネットワーク接続を有するネットワーク・ノードを備えるコンピュータ・ネットワークの状態を検出かつ管理し、複数ネットワーク障害から回復するための方法が開示されている。
【００１１】
ところが、これらの従来の方法によると、通信路ではなくノードに障害が発生した場合に、他のいずれか２つのノード間の通信が不能になるなどの不具合を発生させてしまうおそれがある。また、電源のオフなどによってノードがネットワークから離脱した場合にも、他のいずれか２つのノード間の通信が不能になってしまうおそれがある。図１９の例によると、「Ｎ９１」のノードに障害が発生した場合は、予備の通信路を使用したとしても、右側のノードと左側のノードとの通信が不能になってしまう。しかし、これらの従来の方法では、この問題を解決することができない。
【００１２】
この問題を解決するには、まず、障害が発生しまたはネットワークから離脱すると他のいずれか２つのノードの通信に不具合をきたしてしまうノードを見つけることが必要である。
【００１３】
本発明は、このような問題点に鑑み、障害が発生しまたはネットワークから離脱すると他のいずれか２つのノードの通信に不具合をきたしてしまうノードを従来よりも容易に見つけ出すことを、目的とする。
【課題を解決するための手段】
【００１４】
本発明の一形態に係るノード特性判別方法は、３つ以上のノードによって構成されかつ前記ノードのそれぞれが前記ノードのうちの少なくとも１つの他のノードと互いに関連付けられているネットワークにおいて、前記ノードのうちの検査対象のノードである第一のノードに、前記ノードのうちの当該第一のノード以外のノードである第二のノードのうちの、当該第一のノードに関連付けられている第三のノードの１つへ、特定のデータを送信する送信処理を実行させ、前記第二のノードに、当該第二のノードが受信した前記特定のデータを、当該第二のノードに関連付けられている前記他のノードのうちの当該特定のデータを当該第二のノードへ送信したノード以外のすべてのノードへ転送する、転送処理を実行させ、前記第一のノードに、前記第三のノードのうちの前記特定のデータを送信した先である第三のノード以外のいずれかから当該第一のノードが当該特定のデータを受信しなかった場合に、機能しなくなれば前記第二のノード同士の通信に不具合をきたす特性が当該第一のノードにあると判別する、判別処理を実行させる。
【００１５】
好ましくは、前記判別処理を、前記送信処理を実行させてから所定の時間が経過した後に実行させる。
【００１６】
または、前記特定のデータに、当該特定のデータが転送された回数を記録しておき、前記転送処理を、前記特定のデータに記録されている前記回数が所定の回数未満である場合にのみ、実行させる。
【００１７】
本発明の他の形態に係るノード特性判別方法は、３つ以上のノードによって構成されかつ前記ノードのそれぞれが前記ノードのうちの少なくとも１つの他のノードと関連付けられているネットワークにおいて、前記ノードのうちの、検査対象のノードである第一のノードが関連付けられている１つの第二のノードに、当該第一のノード以外のノードである第三のノードのうちの当該第二のノードに関連付けられておりかつ当該第一のノード以外のすべてのノードへ、特定のデータを送信する送信処理を実行させ、前記第三のノードに、当該第三のノードが受信した前記特定のデータを、当該第三のノードに関連付けられておりかつ前記第一のノード以外の前記他のノードのうちの、当該特定のデータを当該第三のノードへ送信したノード以外のすべてのノードへ転送する、転送処理を実行させ、前記第一のノードに、前記ノードのうちの当該第一のノードに関連付けられている第四のノードのいずれかに前記特定のデータが届いていない場合に、機能しなくなれば前記第二のノードと当該特定のデータが届いていない第四のノードとの間の通信に不具合をきたす特性が当該第一のノードにあると判別する、判別処理を実行させる。
【発明の効果】
【００１８】
本発明によると、障害が発生しまたはネットワークから離脱すると他のいずれか２つのノードの通信に不具合をきたしてしまうノードを従来よりも容易に見つけることができる。
【発明を実施するための最良の形態】
【００１９】
〔第一の実施形態〕
図１はネットワークＮＳの全体的な構成の例を示す図、図２はパーソナルコンピュータＴＲのハードウェア構成の例を示す図、図３はパーソナルコンピュータＴＲの機能的構成の例を示す図、図４はネットワークＮＳの論理的なトポロジーの例を示す図である。
【００２０】
ネットワークＮＳは、図１に示すように、複数のローカルエリアネットワークＳＧ（ＳＧ１、ＳＧ２、…）および広域通信回線ＷＮＴなどによって構成される。各ローカルエリアネットワークＳＧには、１台または複数台のパーソナルコンピュータＴＲ、ハブＤＨ、およびルータＤＲなどが設けられている。以下、各パーソナルコンピュータＴＲを「パーソナルコンピュータＴＲ１」、「パーソナルコンピュータＴＲ２」、「パーソナルコンピュータＴＲ３」、…と区別して記載することがある。
【００２１】
同じローカルエリアネットワークＳＧに属するパーソナルコンピュータＴＲおよびルータＤＲは、そのローカルエリアネットワークＳＧの中のハブＤＨにツイストペアケーブルによって繋がれている。各ローカルエリアネットワークＳＧのルータＤＲ同士は、広域通信回線ＷＮＴを介して互いに接続可能である。これにより、互いに異なるローカルエリアネットワークＳＧに属するパーソナルコンピュータＴＲ同士がデータ通信を行うことができる。広域通信回線ＷＮＴとして、インターネット、専用線、または公衆回線などが用いられる。ハブＤＨおよびルータＤＲの代わりにモデム、ターミナルアダプタ、またはダイアルアップルータなどが用いられる場合もある。
【００２２】
ネットワークＮＳは、Ｐ２Ｐ（peer to peer）の形態のネットワークであり、これらのパーソナルコンピュータＴＲは、ノードとして機能する。つまり、各パーソナルコンピュータＴＲ同士で、互いの資源（例えば、ＣＰＵ、ハードディスク、または印刷ユニットなどのハードウェア資源、アプリケーションなどのソフトウェア資源、または書類ファイル、音楽ファイル、または画像ファイルなどの情報資源）を共有することができる。以下、多数のファイルの資源を各パーソナルコンピュータＴＲに分散して共有する場合を例に説明する。以下、共有されるファイルを「共有ファイル」と記載する。また、各パーソナルコンピュータＴＲを「ノード」と記載することがある。
【００２３】
ネットワークＮＳは、例えば複数のフロアまたは複数の拠点を有する企業などの組織に構築される。この場合は、ローカルエリアネットワークＳＧは、フロアまたは拠点ごとに設けられる。
【００２４】
パーソナルコンピュータＴＲは、図２に示すように、ＣＰＵ２０ａ、ＲＡＭ２０ｂ、ＲＯＭ２０ｃ、ハードディスク２０ｄ、通信インタフェース２０ｅ、画像インタフェース２０ｆ、入出力インタフェース２０ｇ、その他の種々の回路または装置などによって構成される。
【００２５】
通信インタフェース２０ｅは、ＮＩＣ（Network Interface Card）であって、ツイストペアケーブルを介してハブＤＨのいずれかのポートに繋がれている。画像インタフェース２０ｆは、モニタと繋がれており、画面を表示するための映像信号をモニタに送出する。
【００２６】
入出力インタフェース２０ｇは、キーボードもしくはマウスなどの入力装置またはフロッピディスクドライブもしくはＣＤ−ＲＯＭドライブなどの外部記憶装置などと繋がれている。そして、ユーザが入力装置に対して行った操作の内容を示す信号を入力装置から入力する。または、フロッピディスクまたはＣＤ−ＲＯＭなどの記録媒体に記録されているデータを外部記憶装置に読み取らせ、これを入力する。または、記録媒体に書き込むためのデータを外部記憶装置に出力する。
【００２７】
ハードディスク２０ｄには、図３に示すような接続テーブル更新処理部２０１、関連付け変更要求部２０２、ファイル変化通知部２０３、ファイル変化通知中継部２０４、ディレクトリ更新処理部２０５、共有ファイルアクセス部２０６、自検査用データ発信部２０７、検査用データ受信部２０８、検査用データ転送部２０９、クリティカル判別部２１０、接続テーブル記憶部２ＫＡ、およびディレクトリ記憶部２ＫＢなどの機能を実現するためのプログラムおよびデータが格納されている。これらのプログラムおよびデータは必要に応じてＲＡＭ２０ｂに読み出され、ＣＰＵ２０ａによってプログラムが実行される。
【００２８】
パーソナルコンピュータＴＲには、それぞれ、他のパーソナルコンピュータＴＲとの識別のために、ノードＩＤ、ＩＰアドレス、およびＭＡＣアドレスが与えられている。ノードＩＤおよびＩＰアドレスは、ネットワークＮＳの規則に従って与えられる。ＭＡＣアドレスは、そのパーソナルコンピュータＴＲの通信インタフェース２０ｅに対して固定的に与えられているアドレスである。パーソナルコンピュータＴＲ１、ＴＲ２、ＴＲ３、…に与えられているノードＩＤはそれぞれ「Ｎ０１」、「Ｎ０２」、「Ｎ０３」、…である。
【００２９】
また、これらのパーソナルコンピュータＴＲ１、ＴＲ２、…は、図４に示すように、仮想空間に配置されているものと仮想されている。そして、点線で示すように、仮想空間内の近隣の少なくとも１台の他のパーソナルコンピュータＴＲと関連付けられている。かつ、これらの関連付けによって、すべてのパーソナルコンピュータＴＲが互いに直接的にまたは間接的に関係するようになっている。なお、「直接的に関係する」とは、図４において１本の点線で繋がれていること（例えば、パーソナルコンピュータＴＲ３とパーソナルコンピュータＴＲ５とのような関係）を言い、「間接的に関係する」とは、２本以上の点線および１つ以上のノードで繋がれていること（例えば、パーソナルコンピュータＴＲ１とパーソナルコンピュータＴＲ７とのような関係）を言う。
【００３０】
パーソナルコンピュータＴＲは、自らに関連付けられている他のパーソナルコンピュータＴＲとの間でデータの送受信を行うことができる。両者は、ネットワークＮＳに参加している間は、常時、接続（コネクション）を確立した状態であってもよいし、必要に応じてこれを確立してもよい。
【００３１】
さらに、間接的に関係する他のパーソナルコンピュータＴＲとの間で、両パーソナルコンピュータＴＲの間にある１台または複数台のパーソナルコンピュータＴＲを介してデータの送受信を行うことができる。
【００３２】
または、間接的に関係するパーソナルコンピュータＴＲ同士が、それぞれのノードＩＤ、ＭＡＣアドレス、またはＩＰアドレスを互いに通知し合うことによって、データの送受信を行うことができる。または、ポート番号および所属するローカルエリアネットワークＳＧのルータＤＲのグローバルアドレスを互いに通知し合うことによって、データの送受信を行うことができる。
【００３３】
次に、図３に示すパーソナルコンピュータＴＲの各部の機能を、パーソナルコンピュータＴＲ同士の接続のための機能、ファイルの共有のための機能、およびクリティカルなノードの検出および非クリティカル化のための機能に大別して説明する。
【００３４】
なお、「クリティカルなノード」とは、図１９に示した「Ｎ９１」のノードのような、障害が発生しまたはネットワークから離脱することによって機能しなくなると他のいずれか２つのノード間の通信に不具合をきたしてしまう、という特性を有するノードを意味する。
【００３５】
〔パーソナルコンピュータＴＲ同士の接続のための機能〕
図５は接続テーブルＴＬの例を示す図、図６はネットワークＮＳへの参加およびネットワークＮＳからの離脱の際の処理の流れの例を説明するフローチャートである。
【００３６】
接続テーブル記憶部２ＫＡには、そのパーソナルコンピュータＴＲ自身に直接関連付けられている他のパーソナルコンピュータＴＲごとのノードデータＤＴＮを格納した接続テーブルＴＬが記憶されている。例えば、パーソナルコンピュータＴＲ１、ＴＲ２、およびＴＲ３の各接続テーブル管理部２ＫＡは、それぞれ、図５（ａ）〜（ｃ）に示すような接続テーブルＴＬ１、ＴＬ２、およびＴＬ３を記憶し管理する。
【００３７】
ノードデータＤＴＮには、当該他のパーソナルコンピュータＴＲのノードＩＤ、ＩＰアドレス、ＭＡＣアドレス、およびポート番号のほか、当該他のパーソナルコンピュータＴＲが所属するローカルエリアネットワークＳＧのルータＤＲのグローバルアドレスなどが示される。
【００３８】
そのほか、接続テーブル記憶部２ＫＡには、そのパーソナルコンピュータＴＲ自身のノードデータＤＴＮが記憶されている。
【００３９】
これらの接続テーブルＴＬの内容は、そのパーソナルコンピュータＴＲの運用の開始前に管理者によって予め作成される。また、運用の開始後は、接続テーブルＴＬの内容は、そのパーソナルコンピュータＴＲ自身にとっての他のパーソナルコンピュータＴＲとの直接の関連付けの変更に応じて接続テーブル更新処理部２０１によって更新される。
【００４０】
接続テーブル更新処理部２０１は、次の（Ｅ１）〜（Ｅ３）のいずれかのイベントが発生した場合に、自らの接続テーブル記憶部２ＫＡに記憶されている接続テーブルＴＬの内容を更新する。
（Ｅ１）  他のパーソナルコンピュータＴＲから要求を受けた場合
（Ｅ２）  そのパーソナルコンピュータＴＲ自身がネットワークＮＳから離脱する場合
（Ｅ３）  そのパーソナルコンピュータＴＲ自身がネットワークＮＳに新たにまたは再び参加する場合
関連付け変更要求部２０２は、他のパーソナルコンピュータＴＲに対して関連付けの変更を行うように要求する。
【００４１】
例えば、そのパーソナルコンピュータＴＲ自身がネットワークＮＳに参加する際（電源をオンにしたとき、オペレーティングシステムを再起動したとき、またはオフラインの状態からオンラインの状態に切り替えたときなど）に、そのパーソナルコンピュータＴＲ自身との関連付けを行うように、ネットワークＮＳに現在参加中である他のいずれかのパーソナルコンピュータＴＲに対して要求する。
【００４２】
または、そのパーソナルコンピュータＴＲ自身がネットワークＮＳから離脱する際に、現在直接関連付けられている他のパーソナルコンピュータＴＲに対して、関連付けを解除するように要求する。
【００４３】
ここで、接続テーブル更新処理部２０１および関連付け変更要求部２０２の処理の内容を、図４に示すようにパーソナルコンピュータＴＲ１〜ＴＲ９が既に参加しているネットワークＮＳに新たにパーソナルコンピュータＴＲＸが参加しようとする場合およびパーソナルコンピュータＴＲＸがネットワークＮＳから離脱する場合を例に、図６のフローチャートなどを参照しながら説明する。
【００４４】
パーソナルコンピュータＴＲＸの関連付け変更要求部２０２は、ネットワークＮＳに参加する際に、既にネットワークＮＳに参加している他のいずれかのパーソナルコンピュータＴＲに対して、パーソナルコンピュータＴＲＸとの関連付けを行うように要求する（図６（ａ）の＃３０１）。ここでは、パーソナルコンピュータＴＲ１に対して要求したとする。
【００４５】
パーソナルコンピュータＴＲ１において、その要求が受信されると（＃３１１）、接続テーブル更新処理部２０１は、パーソナルコンピュータＴＲＸのノードデータＤＴＮを生成し自らの接続テーブルＴＬ（ＴＬ１）に追加し（＃３１２）、関連付けが完了した旨をパーソナルコンピュータＴＲＸに対して回答する（＃３１３）。
【００４６】
パーソナルコンピュータＴＲＸの接続テーブル更新処理部２０１は、完了の通知が受信されると（＃３０２）、パーソナルコンピュータＴＲ１のノードデータＤＴＮを生成し自らの接続テーブルＴＬに追加する（＃３０３）。
【００４７】
その後、パーソナルコンピュータＴＲＸがネットワークＮＳから離脱する際に、パーソナルコンピュータＴＲＸの関連付け変更要求部２０２は、自らの接続テーブルＴＬに基づいて、現在自らと直接関連付けられている他のパーソナルコンピュータＴＲに対して、関連付けの解除を要求する（図６（ｂ）の＃３２１）。そして、接続テーブル更新処理部２０１は、自らの接続テーブルＴＬから当該他のパーソナルコンピュータＴＲのノードデータＤＴＮを削除する（＃３２２）。
【００４８】
例えば、パーソナルコンピュータＴＲ１と直接関連付けられている場合は、パーソナルコンピュータＴＲ１に対して要求を行い、パーソナルコンピュータＴＲ１のノードデータＤＴＮを削除する。
【００４９】
その要求を受けたパーソナルコンピュータＴＲ（例えば、パーソナルコンピュータＴＲ１）の接続テーブル更新処理部２０１は、パーソナルコンピュータＴＲＸのＤＴＮを自らの接続テーブルＴＬ（ＴＬ１）から削除する（＃３３１、＃３３２）。
【００５０】
このような手順で、ネットワークＮＳに参加するパーソナルコンピュータＴＲと既存のパーソナルコンピュータＴＲとの関連付けの処理が行われたり、離脱するパーソナルコンピュータＴＲと残るパーソナルコンピュータＴＲとの関連付けの解除の処理が行われたりする。
【００５１】
また、関連付け変更要求部２０２は、そのパーソナルコンピュータＴＲ自身がクリティカルなノードであると自らのクリティカル判別部２１０によって判別された場合にも、他のパーソナルコンピュータＴＲに対して関連付けの処理を行うように要求する。これについては、後に説明する。
【００５２】
〔ファイルの共有のための機能〕
図３に戻って、ディレクトリ記憶部２ＫＢには、どのノード（パーソナルコンピュータＴＲ）にどの共有ファイルが保存されているのかを示すディレクトリ情報を記憶する。ただし、ディレクトリ記憶部２ＫＢは、すべてのパーソナルコンピュータＴＲにあるとは限らない。一部のパーソナルコンピュータＴＲにあれば構わない。ディレクトリ情報を管理するために、例えば、マイクロソフト社のアクティブディレクトリのサービスが用いられる。
【００５３】
ファイル変化通知部２０３は、そのパーソナルコンピュータＴＲ自身が保存している共有ファイルに関する変化があった場合に、その変化を他のパーソナルコンピュータＴＲに通知するための処理を行う。
【００５４】
具体的には、新たに共有ファイルを保存した場合、既存の共有ファイルのファイル名を変更した場合、または既存の共有ファイルを削除した場合などに、その処理の内容およびその共有ファイルのファイル名などを示すファイル変化通知データＤＴＨを、そのパーソナルコンピュータＴＲ自身の接続テーブルＴＬに示される他のパーソナルコンピュータＴＲつまり論理的に隣にある他のパーソナルコンピュータＴＲに対して送信する。以下、論理的に隣にある他のパーソナルコンピュータＴＲを「隣のパーソナルコンピュータＴＲ」または「隣のノード」などと記載する。
【００５５】
ファイル変化通知中継部２０４は、隣のパーソナルコンピュータＴＲから受信したファイル変化通知データＤＴＨを、それ以外の隣のパーソナルコンピュータＴＲに転送する。例えば、図４に示すパーソナルコンピュータＴＲ１のファイル変化通知中継部２０４は、パーソナルコンピュータＴＲ３からファイル変化通知データＤＴＨを受信した場合は、パーソナルコンピュータＴＲ２およびＴＲ６にそれを転送する。ただし、同一のファイル変化通知データＤＴＨを再び受信した場合は、転送を行わない。
【００５６】
ディレクトリ更新処理部２０５は、そのパーソナルコンピュータＴＲ自身が保存している共有ファイルに上記のような変化があった場合に、それに合わせて、自らのディレクトリ記憶部２ＫＢに記憶されているディレクトリ情報を更新する。また、ファイル変化通知データＤＴＨが受信された場合に、それに示される変化の内容に合わせて、自らのディレクトリ記憶部２ＫＢに記憶されているディレクトリ情報を更新する。
【００５７】
共有ファイルアクセス部２０６は、ユーザが指定した共有ファイルに、ディレクトリ記憶部２ＫＢに記憶されているディレクトリ情報に基づいてアクセスする。ただし、ディレクトリ情報を有しない場合は、近隣のパーソナルコンピュータＴＲが有するディレクトリ情報を参照する。
【００５８】
〔クリティカルなノードの検出および非クリティカル化のための機能〕
図７は転送処理の流れの例を説明するフローチャート、図８は検査用データＤＴＫのリレーの経路の例を示す図、図９はパーソナルコンピュータＴＲ１の非クリティカル化の例を示す図である。
【００５９】
自検査用データ発信部２０７は、そのパーソナルコンピュータＴＲ自身がクリティカルなノードであるか否かを検査するための検査用データＤＴＫを、自らの接続テーブルＴＬに基づいて隣のパーソナルコンピュータＴＲに発信（送信）する。検査用データＤＴＫには、検査対象つまりそのパーソナルコンピュータＴＲ自身の識別子（例えば、ノードＩＤ）が示されている。また、この検査用データＤＴＫは、パケット化され、後述するように、各パーソナルコンピュータＴＲによってリレーされる。検査用データＤＴＫには、リレーしたパーソナルコンピュータＴＲの識別子（例えば、ノードＩＤ）およびその検査用データＤＴＫを他の検査用データＤＴＫと区別するためのＩＤが書き込まれる。
【００６０】
検査用データ受信部２０８は、隣のパーソナルコンピュータＴＲから検査用データＤＴＫを受信する。
【００６１】
検査用データ転送部２０９は、検査用データ受信部２０８によって受信された検査用データＤＴＫを転送する処理を図７に示すように行う。
【００６２】
その検査用データＤＴＫの最初の発信元つまり検査対象がどのパーソナルコンピュータＴＲであるかをチェックする（図７の＃３４１）。検査対象がそのパーソナルコンピュータＴＲ自身である場合は（＃３４２でＹｅｓ）、転送は行わない。この検査用データＤＴＫは、後述するクリティカル判別部２１０で用いられる。
【００６３】
一方、検査対象がそのパーソナルコンピュータＴＲ自身でない場合は（＃３４２でＮｏ）、自らの接続テーブルＴＬをチェックする（＃３４３）。
【００６４】
隣のパーソナルコンピュータＴＲ（ノード）が接続テーブルＴＬに複数示されている場合は（＃３４４でＹｅｓ）、その検査用データＤＴＫの転送元（１つ手前）であるノード以外の隣のノードに検査用データＤＴＫを転送する（＃３４６）。転送元であるノード以外の隣のノードが複数ある場合は、それぞれに対して転送する。ただし、同一の検査用データＤＴＫを当該隣のノードに既に転送したことがある場合は（＃３４５でＹｅｓ）、転送は行わない。
【００６５】
クリティカル判別部２１０は、そのパーソナルコンピュータＴＲ自身が発信しそのパーソナルコンピュータＴＲに戻ってきた検査用データＤＴＫに基づいて、そのパーソナルコンピュータＴＲ自身がクリティカルであるか否かを判別する。第一の実施形態では、
（Ｃ１）  自検査用データ発信部２０７が任意の１台の隣のパーソナルコンピュータＴＲに発信した検査用データＤＴＫが、残りの隣のパーソナルコンピュータＴＲのうちの１台以上から検査用データＤＴＫが戻ってこなかった場合
に、そのパーソナルコンピュータＴＲ自身がクリティカルであると判別する。
【００６６】
（Ｃ２）  自検査用データ発信部２０７が任意の１台の隣のパーソナルコンピュータＴＲに発信した検査用データＤＴＫが、残りの隣のパーソナルコンピュータＴＲすべてから検査用データＤＴＫが戻ってきた場合
は、そのパーソナルコンピュータＴＲ自身がクリティカルでないと判別する。
【００６７】
ここで、図４に示すパーソナルコンピュータＴＲ１が検査用データＤＴＫの発信元である場合を例に、検査用データＤＴＫが各パーソナルコンピュータＴＲによってどのようにしてリレーされるのか、および、パーソナルコンピュータＴＲ１がどのようにして自らの特性（クリティカルなノードであるか否か）を判別するかを、説明する。
【００６８】
パーソナルコンピュータＴＲ１は、図４に示す通り、パーソナルコンピュータＴＲ２、ＴＲ３、およびＴＲ６と隣り合っている。
【００６９】
パーソナルコンピュータＴＲ１の自検査用データ発信部２０７は、任意の隣のパーソナルコンピュータＴＲに検査用データＤＴＫを発信する。
【００７０】
例えば、パーソナルコンピュータＴＲ６に発信する。すると、この検査用データＤＴＫは、図８のように、パーソナルコンピュータＴＲ６、ＴＲ７、ＴＲ８、ＴＲ９、ＴＲ２の順にリレーされてパーソナルコンピュータＴＲ１に戻ってくる。しかし、パーソナルコンピュータＴＲ３からは戻ってこない。
【００７１】
したがって、この検査用データＤＴＫは上記の（Ｃ１）に該当するので、パーソナルコンピュータＴＲ１のクリティカル判別部２１０は、自らがクリティカルなノードであると判別する。
【００７２】
関連付け変更要求部２０２は、自らがクリティカルなノードであるとクリティカル判別部２１０によって判別された場合に、クリティカルなノードであることを解消するために、他の２つのパーソナルコンピュータＴＲ同士が直接関連付けられるように、当該他の２つのパーソナルコンピュータＴＲに対して要求する。
【００７３】
具体的には、クリティカルなノードであると判別した際に用いられた検査用データＤＴＫをリレーした任意のパーソナルコンピュータＴＲとそれをリレーしなかった任意のパーソナルコンピュータＴＲとを直接関連付ける。図８の例では、検査用データＤＴＫをリレーしたパーソナルコンピュータＴＲ（ＴＲ２、ＴＲ６、ＴＲ７、ＴＲ８、ＴＲ９）のいずれかとそれ以外のパーソナルコンピュータＴＲ（ＴＲ３、ＴＲ４、ＴＲ５）のいずれかとを関連付ける。例えば、図９のように、パーソナルコンピュータＴＲ２とＴＲ５とを直接関連付ける。
【００７４】
なお、２組以上を関連付けてもよいが、接続の組合せが過剰になるとネットワークＮＳ全体にグローバルな情報を配信する場合に冗長な通信が増えてしまう。そこで、関連付けをむやみに増やさないのが好ましい。
【００７５】
クリティカルなノードであるか否かの検査のタイミングつまり自検査用データ発信部２０７が検査用データＤＴＫを発信するタイミングは、
（Ｇ１）  所定の時間が経過するごと
（Ｇ２）  他のいずれかのパーソナルコンピュータＴＲ（ノード）がネットワークＮＳから離脱したとき
のいずれかである。両方のタイミングを採用してもよいし、一方のタイミングのみを採用してもよい。
【００７６】
（Ｇ１）の所定の時間は、例えば次のように定めることができる。１台のパーソナルコンピュータＴＲがネットワークＮＳに参加してから離脱するまでの平均的な時間Ｔを求める。１台のパーソナルコンピュータＴＲに直接関連付けられている（隣の）平均的なノードの個数（ノード数Ｎ）を求める。この場合において、そのパーソナルコンピュータＴＲがネットワークＮＳに参加している間に隣のノードの離脱が発生するインターバルの期待値は、「Ｔ／Ｎ」である。そこで、この期待値を（Ｇ１）の所定の時間とする。
【００７７】
オフィスのパーソナルコンピュータは一般に一日のうちの１２時間程度使用される。また、トラフィックの負荷の分散を考慮すると、１つのノードに直接関連付けるノードの数は４〜８程度が妥当である。よって、所定の時間は９０分〜３時間程度が妥当である。
【００７８】
なお、グローバルな情報のやり取りを行う頻度が高い場合やトラフィックを少なくしネットワークＮＳの信頼性を向上させる必要がある場合は、所定の時間を短くすればよい。
【００７９】
図１０は検査対象であるパーソナルコンピュータＴＲにおける全体的な処理の流れの例を説明するフローチャートである。
【００８０】
次に、クリティカルなノードであることを避けるための処理の流れを、図４のパーソナルコンピュータＴＲ１がこの処理を行う場合を例に、図１０のフローチャートを参照しながら説明する。
【００８１】
図１０において、パーソナルコンピュータＴＲ１は、検査のタイミングが訪れると（＃１でＹｅｓ）、検査用データＤＴＫを任意の１台の隣のノードに発信する（＃２）。検査用データＤＴＫはパケット化され、各ノードによってやり取りされる。
【００８２】
パーソナルコンピュータＴＲ１は、所定の待ち時間が経過するまでに残りの隣のパーソナルコンピュータＴＲすべてから検査用データＤＴＫを受信したら（＃３でＮｏ、＃４でＹｅｓ）、自らをクリティカルでないと判別する（＃５）。
【００８３】
残りの隣のパーソナルコンピュータＴＲのうちの少なくとも１台からは検査用データＤＴＫを受信できずに所定の待ち時間が経過したら（＃４でＮｏ、＃３でＹｅｓ）、自らをクリティカルなノードであると判別する（＃６）。そして、クリティカルなノードでなくなるように、他の特定の複数のノード同士を直接関連付ける処理を行う（＃７）。
【００８４】
ステップ＃１〜＃７の処理は、パーソナルコンピュータＴＲ１がネットワークＮＳから離脱するまで、適宜、実行される。
【００８５】
また、パーソナルコンピュータＴＲ１は、ネットワークＮＳから離脱するまでの間、図１０の処理と並行して、他のパーソナルコンピュータＴＲが発信元である検査用データＤＴＫをリレーする処理および接続テーブルＴＬを更新する処理などを適宜実行する。
【００８６】
〔第二の実施形態〕
図１１はネットワークＮＳの論理的なトポロジーの第二の例を示す図、図１２はパーソナルコンピュータＴＲの機能的構成の第二の例を示す図、図１３は接続テーブルＴＬの第二の例を示す図である。
【００８７】
第一の実施形態では、隣り合う２つのパーソナルコンピュータＴＲの接続テーブルＴＬ（図５参照）には、互いのノードＩＤ、ＩＰアドレス、ＭＡＣアドレス、ポート番号、および所属するローカルエリアネットワークＳＧのルータＤＲのグローバルアドレスなどの情報が示されていた。つまり、隣り合う２つのパーソナルコンピュータＴＲは、相互に直接関連付けられていた。
【００８８】
しかし、第二の実施形態では、隣り合う２つのパーソナルコンピュータＴＲのうち、一方のパーソナルコンピュータＴＲの接続テーブルＴＬのみに他方のパーソナルコンピュータＴＲのノードＩＤなどの情報が格納されている場合がある。したがって、当該一方のパーソナルコンピュータＴＲから当該他方のパーソナルコンピュータＴＲへの接続は自らの接続テーブルＴＬに基づいて直ちに行えるが、当該他方のパーソナルコンピュータＴＲから当該一方のパーソナルコンピュータＴＲへの接続は他のパーソナルコンピュータＴＲを介さなければ行えない場合がある。つまり、往復の通信の経路が非対称にならざるを得ない場合がある。
【００８９】
このような特性により、第二の実施形態のネットワークＮＳ’は、図１１に示すような論理的なトポロジーが形成される。なお、図１１において、矢印の点線は、直ちに接続可能な方向を表している。すなわち、点線の根元のパーソナルコンピュータＴＲから矢印方向のパーソナルコンピュータＴＲへの接続は前者自身の接続テーブルＴＬに基づいて直ちに行うことができるが、その反対方向の接続は直接は行えないことを意味する。
【００９０】
以下、図１１のようなトポロジーが形成されるネットワークＮＳ’を例に説明する。第一の実施形態と重複する点については、説明を省略する。
【００９１】
第二の実施形態では、各パーソナルコンピュータＴＲを「パーソナルコンピュータＴＲ２１」、「パーソナルコンピュータＴＲ２２」、「パーソナルコンピュータＴＲ２３」、…と区別して記載する。また、パーソナルコンピュータＴＲ２１、ＴＲ２２、ＴＲ２３、…のノードＩＤはそれぞれ「Ｎ２１」、「Ｎ２２」、「Ｎ２３」、…である。
【００９２】
ネットワークＮＳの全体的な構成および各パーソナルコンピュータＴＲのハードウェア構成は、第一の実施形態の場合と同様であり、それぞれ、図１および図２に示した通りである。
【００９３】
ただし、ハードディスク２０ｄには、図１２に示す接続テーブル更新処理部２２１、関連付け変更要求部２２２、ファイル変化通知部２２３、ファイル変化通知中継部２２４、ディレクトリ更新処理部２２５、共有ファイルアクセス部２２６、隣ノード検査開始処理部２２７、検査用データ受信部２２８、検査用データ転送部２２９、クリティカル判別部２３０、接続テーブル記憶部２ＬＡ、およびディレクトリ記憶部２ＬＢなどの機能を実現するためのプログラムおよびデータが格納されている。
【００９４】
接続テーブル記憶部２ＬＡは、図３に示した第一の実施形態の接続テーブル記憶部２ＫＡと同様に、接続テーブルＴＬを記憶する。ただし、上述の通り、隣り合う２つのパーソナルコンピュータＴＲのそれぞれの接続テーブルＴＬに互いのノードデータＤＴＮが格納されているとは限らない。
【００９５】
例えば、図１１のパーソナルコンピュータＴＲ２１、パーソナルコンピュータＴＲ２２、およびパーソナルコンピュータＴＲ２３の接続テーブルＴＬ（ＴＬ２１、ＴＬ２２、ＴＬ２３）には、図１３のようなノードデータＤＴＮが格納されている。しかし、接続テーブルＴＬ２２にはパーソナルコンピュータＴＲ２１のノードデータＤＴＮが格納されているが、接続テーブルＴＬ２１にはパーソナルコンピュータＴＲ２２のノードデータＤＴＮは格納されていない。
【００９６】
接続テーブル更新処理部２２１は、第一の実施形態の接続テーブル更新処理部２０１と同様に、自らの接続テーブル記憶部２ＬＡに記憶されている接続テーブルＴＬの内容を、所定のイベントが発生した場合に更新する。
【００９７】
関連付け変更要求部２２２は、第一の実施形態の関連付け変更要求部２０２と同様に、他のパーソナルコンピュータＴＲに対して関連付けの変更を行うように要求する。
【００９８】
ディレクトリ記憶部２ＬＢには、第一の実施形態のディレクトリ記憶部２ＫＢと同様に、ディレクトリ情報が記憶されている。ファイル変化通知部２２３は、第一の実施形態のファイル変化通知部２０３と同様に、そのパーソナルコンピュータＴＲ自身が保存している共有ファイルに関する変化があった場合に、その変化を他のパーソナルコンピュータＴＲに通知するための処理を行う。
【００９９】
ファイル変化通知中継部２２４は、第一の実施形態のファイル変化通知中継部２０４と同様に、隣のパーソナルコンピュータＴＲから受信したファイル変化通知データＤＴＨ（ファイルの変化を通知するデータ）を、自らの接続テーブルＴＬに示される、それ以外の隣のパーソナルコンピュータＴＲに転送する。
【０１００】
ディレクトリ更新処理部２０５は、そのパーソナルコンピュータＴＲ自身が保存している共有ファイルに上記のような変化があった場合に、それに合わせて、自らのディレクトリ記憶部２ＫＢに記憶されているディレクトリ情報を更新する。また、ファイル変化通知データＤＴＨが受信された場合に、それに示される変化の内容に合わせて、自らのディレクトリ記憶部２ＫＢに記憶されているディレクトリ情報を更新する。
【０１０１】
共有ファイルアクセス部２２６は、第一の実施形態の共有ファイルアクセス部２０６と同様に、ユーザが指定した共有ファイルに、ディレクトリ記憶部２ＬＢに記憶されているディレクトリ情報に基づいてアクセスする。
【０１０２】
隣ノード検査開始処理部２２７は、自らの接続テーブルＴＬに示される隣のパーソナルコンピュータＴＲがクリティカルなノードであるか否かを検査するための処理を開始する。検査用データ受信部２２８は、自ら宛ての検査用データＤＴＳ（後述する）を受信する。検査用データ転送部２２９は、検査用データ受信部２２８によって受信された検査用データＤＴＳを、適宜、自らの接続テーブルＴＬに示される隣のパーソナルコンピュータＴＲに転送する。クリティカル判別部２３０は、そのパーソナルコンピュータＴＲ自身がクリティカルなノードであるか否かを判別する。
【０１０３】
図１４は第二の実施形態における検査の処理の流れの例を説明するフローチャート、図１５および図１６は検査用データＤＴＳのリレーの経路の例を示す図である。
【０１０４】
ここで、図１１に示すパーソナルコンピュータＴＲ２２がパーソナルコンピュータＴＲ２１の検査の処理を開始する場合を例に、各パーソナルコンピュータＴＲにおける各部の処理の内容を、図１４のフローチャートを参照しながら詳細に説明する。
【０１０５】
パーソナルコンピュータＴＲ２２の隣ノード検査開始処理部２２７は、検査を開始する旨を検査対象つまりパーソナルコンピュータＴＲ２１に対して通知する（図１４の＃４０１）。さらに、パーソナルコンピュータＴＲ２２自身の接続テーブルＴＬ（図１３（ｂ）参照）に示される、検査対象以外のパーソナルコンピュータＴＲつまりパーソナルコンピュータＴＲ２８に対して、検査用データＤＴＳを発信する（＃４０２）。この検査用データＤＴＳには、検査対象であるパーソナルコンピュータＴＲ２１のノードＩＤおよび他の検査用データＤＴＳと区別するためのＩＤが示される。さらに、次に説明するように、検査用データＤＴＳは、各パーソナルコンピュータＴＲによってリレーされ、リレーしたパーソナルコンピュータＴＲのノードＩＤが書き込まれる。
【０１０６】
なお、図１３（ｂ）の例では、接続テーブルＴＬ２２には、検査対象以外のパーソナルコンピュータＴＲが１つしか示されていないが、複数示されている場合は、それぞれのパーソナルコンピュータＴＲに対して検査用データＤＴＳを発信する。ただし、検査対象であるパーソナルコンピュータＴＲ２１には送信しない。
【０１０７】
検査用データＤＴＳは、各パーソナルコンピュータＴＲの検査用データ受信部２２８によって受信され、次の（Ｓ１）の要件に該当しない限り、検査用データ転送部２２９によって、自らの接続テーブルＴＬに示されるパーソナルコンピュータＴＲに転送される（＃４３１、＃４２１、＃４２２）。
（Ｓ１）  既に同一の検査用データＤＴＳを受信し同一のパーソナルコンピュータＴＲに転送したことがある。
【０１０８】
ただし、各パーソナルコンピュータＴＲは、検査用データＤＴＳに示される検査対象つまりパーソナルコンピュータＴＲ２１に対しては、上記の（Ｓ１）の要件に関わらず、検査用データＤＴＳを転送しない。
【０１０９】
検査用データＤＴＳは、ネットワークＮＳ’の中の検査対象以外のすべてのパーソナルコンピュータＴＲに届くこともあれば、一部のパーソナルコンピュータＴＲのみにしか届かないこともある。
【０１１０】
パーソナルコンピュータＴＲ２１のクリティカル判別部２３０は、検査の開始の通知をパーソナルコンピュータＴＲ２２から受信した後（＃４１１）、所定の時間が経過したら、自らの接続テーブルＴＬ（ＴＬ２１）に示される各パーソナルコンピュータＴＲに対して、検査用データＤＴＳを受信したが否かを問い合せる（＃４１２）。本例では、図１３（ａ）の通り、パーソナルコンピュータＴＲ２３、ＴＲ２４、ＴＲ２５、およびＴＲ２６に問い合せる。これらのパーソナルコンピュータＴＲは、自らの検査用データ受信部２０８による受信の状況に応じて、その問合せに対する回答を行う（＃４２３、＃４２４）。
【０１１１】
パーソナルコンピュータＴＲ２１のクリティカル判別部２３０は、これらのパーソナルコンピュータＴＲからの回答を得ると（＃４１３）、自らがクリティカルなノードであるか否かを、その回答の内容に応じて次のように判別する。
【０１１２】
検査用データＤＴＳを受信していない旨がいずれかの回答に示される場合は（＃４１４でＮｏ）、パーソナルコンピュータＴＲ２１のクリティカル判別部２３０は、自らがクリティカルなノードであると、判別する（＃４１５）。
【０１１３】
一方、検査用データＤＴＳを受信した旨がすべての回答に示される場合は（＃４１４でＹｅｓ）、パーソナルコンピュータＴＲ２１のクリティカル判別部２３０は、パーソナルコンピュータＴＲ２２から自らの接続テーブルＴＬに示される各パーソナルコンピュータＴＲへの方向の通信を中継するためのクリティカルなノードではないと、判別する（＃４１６）。
【０１１４】
すなわち、図１１の例では、パーソナルコンピュータＴＲ２２から発信された検査用データＤＴＳは、図１５で太い実線で示すように、パーソナルコンピュータＴＲ２１を介することなくパーソナルコンピュータＴＲ２３、ＴＲ２４、ＴＲ２５、およびＴＲ２６のすべてに届く。したがって、パーソナルコンピュータＴＲ２１がパーソナルコンピュータＴＲ２２から各パーソナルコンピュータＴＲ２３、ＴＲ２４、ＴＲ２５、およびＴＲ２６への方向の通信を中継するためのクリティカルなノードではないと、判別できる。
【０１１５】
なお、図１１のパーソナルコンピュータＴＲ２１がパーソナルコンピュータＴＲ２６の検査を開始すると、検査用データＤＴＳは、図１６で太い実線で示すように、パーソナルコンピュータＴＲ２２、ＴＲ２７、およびＴＲ２８には届かない。よって、パーソナルコンピュータＴＲ２６がクリティカルなノードであると、判別できる。
【０１１６】
パーソナルコンピュータＴＲ２６をクリティカルなノードでないようにするには、検査の開始元のノード（つまり、パーソナルコンピュータＴＲ２１）に、検査用データＤＴＳが届かなかったノード（つまり、パーソナルコンピュータＴＲ２２、ＴＲ２７、およびＴＲ２８）を関連付ければよい。
【０１１７】
第一および第二の実施形態によると、クリティカルなノードを従来よりも容易に見つけることができる。
【０１１８】
図１７および図１８はネットワークＮＳの変形例を示す図である。第一の実施形態では、図４に示すパーソナルコンピュータＴＲ１のような、複数の他のノードと関連付けられているノードがクリティカルであるか否かを検査する場合を例に説明した。しかし、図１７に示すパーソナルコンピュータＴＲＡのような、他の１つのノードとしか関連付けられていないノードについては、図１０などで説明した処理を行うまでもなく、クリティカルではないと判別すればよい。
【０１１９】
第二の実施形態で説明した検査の方法は、すべての隣り合うパーソナルコンピュータＴＲ同士が互いに関連付けられている場合にも、適用することができる。
【０１２０】
例えば、図１８のようなネットワークにおいて、パーソナルコンピュータＴＲ３２は、検査対象であるパーソナルコンピュータＴＲ３１に対して検査の開始を通知し（丸数字１）、パーソナルコンピュータＴＲ３３に対して検査用データＤＴＳを発信する（丸数字２）。この検査用データＤＴＳは、パーソナルコンピュータＴＲ３３、ＴＲ３４の順にリレーされ、パーソナルコンピュータＴＲ３５に届く（丸数字３）。
【０１２１】
パーソナルコンピュータＴＲ３１は、検査の開始の通知を受けてから所定の時間が経過したら、パーソナルコンピュータＴＲ３５、ＴＲ３６、およびＴＲ３９のそれぞれに対して、検査用データＤＴＳを受信したか否かを問い合せる（丸数字４）。すると、図から明らかなように、パーソナルコンピュータＴＲ３６およびＴＲ３９には届いていないことが分かる。したがって、パーソナルコンピュータＴＲ３１は、自らがクリティカルなノードであると、判別する。
【０１２２】
検査用データＤＴＫ、ＤＴＳに、パーソナルコンピュータＴＲにリレーされた回数を記録してもよい。そして、所定の回数を超えた場合は、検査用データＤＴＫ、ＤＴＳが廃棄されるようにしてもよい。つまり、ホップ数を制限してもよい。
【０１２３】
第一および第二の実施形態では、パーソナルコンピュータがノードである場合を例に説明したが、複合機（いわゆるＭＦＰ）、スキャナ、およびプリンタなどがノードである場合にも、本発明は適用可能である。
【０１２４】
その他、ネットワークＮＳ、ＮＳ’、パーソナルコンピュータＴＲの全体または各部の構成、処理内容、処理順序、テーブルの構成などは、本発明の趣旨に沿って適宜変更することができる。
【図面の簡単な説明】
【０１２５】
【図１】ネットワークの全体的な構成の例を示す図である。
【図２】パーソナルコンピュータのハードウェア構成の例を示す図である。
【図３】パーソナルコンピュータの機能的構成の例を示す図である。
【図４】ネットワークの論理的なトポロジーの例を示す図である。
【図５】接続テーブルの例を示す図である。
【図６】ネットワークへの参加およびネットワークからの離脱の際の処理の流れの例を説明するフローチャートである。
【図７】転送処理の流れの例を説明するフローチャートである。
【図８】検査用データのリレーの経路の例を示す図である。
【図９】パーソナルコンピュータの非クリティカル化の例を示す図である。
【図１０】検査対象であるパーソナルコンピュータにおける全体的な処理の流れの例を説明するフローチャートである。
【図１１】ネットワークの論理的なトポロジーの第二の例を示す図である。
【図１２】パーソナルコンピュータの機能的構成の第二の例を示す図である。
【図１３】接続テーブルＴＬの第二の例を示す図である。
【図１４】第二の実施形態における検査の処理の流れの例を説明するフローチャートである。
【図１５】検査用データのリレーの経路の例を示す図である。
【図１６】検査用データのリレーの経路の例を示す図である。
【図１７】ネットワークの変形例を示す図である。
【図１８】ネットワークの変形例を示す図である。
【図１９】ネットワークの論理的なトポロジーの例を示す図である。
【符号の説明】
【０１２６】
２０７  自検査用データ発信部
２０８  検査用データ受信部
２１０  クリティカル判別部
ＤＴＫ  検査用データ
ＮＳ、ＮＳ’  ネットワーク
ＴＲ  パーソナルコンピュータ
【図１】
0005131007.tif 000002
【図２】
0005131007.tif 000003
【図３】
0005131007.tif 000004
【図４】
0005131007.tif 000005
【図５】
0005131007.tif 000006
【図６】
0005131007.tif 000007
【図７】
0005131007.tif 000008
【図８】
0005131007.tif 000009
【図９】
0005131007.tif 000010
【図１０】
0005131007.tif 000011
【図１１】
0005131007.tif 000012
【図１２】
0005131007.tif 000013
【図１３】
0005131007.tif 000014
【図１４】
0005131007.tif 000015
【図１５】
0005131007.tif 000016
【図１６】
0005131007.tif 000017
【図１７】
0005131007.tif 000018
【図１８】
0005131007.tif 000019
【図１９】
0005131007.tif 000020