(57)【要約】      （修正有）【課題】ネットワークを構成する各ノードの情報を取得する際に生じる特定の装置に掛かる負担を軽減する。【解決手段】ネットワーク内のすべての端末装置２が互いに直接的にまたは間接的に関係するように、各端末装置２を１つ以上の他の端末装置２と直接的に関連付けておく。これらの端末装置２のうちの１台が他のすべての端末装置２に対して所定の処理を実行するように指令する際に、指令元の端末装置２は、所定の処理を実行すべき旨の指令データを、この指令データの識別情報と共に、自らに直接的に関連付けられている他の端末装置２に宛てて送信し、指令データを受信した端末装置２は、指令データと共に受信した識別情報と同じ内容を示す識別情報を以前に受信したことがない場合は、その指令データに従って所定の処理を実行し、かつその端末装置２自身に直接的に関連付けられている他の端末装置２に宛てて、受信した指令データ及び識別情報を転送する。【選択図】図１０
2006319910.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードによって構成されるネットワークにおける通信方法であって、
当該ネットワークを構成するすべてのノードが互いに直接的にまたは間接的に関係するように、各ノードを少なくとも１つの他のノードと直接的に関連付けておき、
当該ネットワークを構成するノードのうちの指令元ノードが他のすべてのノードに対して所定の処理を実行させる際に、
前記指令元ノードは、前記所定の処理を実行すべき旨の指令を、当該指令に対して発行したユニークな識別情報とともに、自らに直接的に関連付けられている他のノードに宛てて送信し、
前記指令を受信したノードは、当該指令とともに受信した前記識別情報と同じ内容を示す識別情報を以前に受信したことがない場合は、当該指令に従って前記所定の処理を実行し、かつ、当該ノードに直接的に関連付けられている他のノードに宛てて、受信した当該指令および当該識別情報を送信する、
ことを特徴とする通信方法。
【請求項２】
複数の端末装置によって構成されるネットワークにおける通信方法であって、
当該ネットワークを構成するすべての端末装置が互いに直接的にまたは間接的に関係するように、各端末装置を少なくとも１つの他の端末装置と直接的に関連付けておき、
当該ネットワークを構成する端末装置のうちの指令元端末装置が他のすべての端末装置に対して所定の処理を実行させる際に、
前記指令元端末装置は、前記所定の処理を実行すべき旨の指令を示す指令情報を、当該指令情報を他の指令情報と識別するための識別情報とともに、自らに直接的に関連付けられている他の端末装置に宛てて送信し、
前記指令情報とともに前記識別情報を受信した端末装置は、当該識別情報と同じ内容を示す識別情報を以前に受信したことがない場合は、当該指令情報に示される前記指令に従って前記所定の処理を実行しかつ受信した当該指令情報および当該識別情報を当該端末装置に直接的に関連付けられている他の端末装置に宛てて送信する送信処理を実行する、
ことを特徴とする通信方法。
【請求項３】
前記指令情報とともに前記識別情報を受信した端末装置は、当該端末装置に直接的に関連付けられている他の端末装置のうち、当該指令情報を当該端末装置に宛てて送信した他の端末装置に宛てては、当該指令情報および当該識別情報を送信しない、
請求項２記載の通信方法。
【請求項４】
前記指令が、前記所定の処理として端末装置の属性を回答すべき旨の指令である場合は、
前記指令情報とともに前記識別情報を受信した端末装置は、当該識別情報と同じ内容を示す識別情報を以前に受信したことがない場合は、当該端末装置の属性を示す属性情報を、当該指令情報、当該識別情報、および両情報とともに受信した他の端末装置の属性を示す属性情報とともに、当該端末装置に直接的に関連付けられている他の端末装置に宛てて送信することによって前記所定の処理および前記送信処理を実行し、当該識別情報と同じ内容を示す識別情報を以前に受信したことがある場合は、当該指令情報、当該識別情報、および両情報とともに受信した他の端末装置の属性を示す属性情報を前記指令元端末装置に宛てて送信する、
請求項２記載の通信方法。
【請求項５】
前記指令情報とともに前記識別情報を受信した端末装置は、当該指令情報を当該端末装置に宛てて送信した他の端末装置のみが当該端末装置に直接的に関連付けられている場合は、当該端末装置の属性を示す属性情報、当該指令情報、当該識別情報、および両情報とともに受信した他の端末装置の属性を示す属性情報を、当該他の端末装置の代わりに前記指令元端末装置に宛てて送信することによって前記所定の処理および前記送信処理を実行する、
請求項４記載の通信方法。
【請求項６】
複数の端末装置によって構成されるネットワークであって、
各端末装置は、
すべての端末装置が互いに直接的にまたは間接的に関係するように、少なくとも１つの他の端末装置と直接的に関連付けてられており、
自らと直接的に関連付けられている他の端末装置ごとのアドレスを記憶するアドレス記憶手段、を有し、
少なくとも１台の端末装置は、
他のすべての端末装置に対して所定の処理を実行させる際に、前記所定の処理を実行すべき旨の指令を示す指令情報を、当該指令情報を他の指令情報と識別するための識別情報とともに、自らに直接的に関連付けられている他の端末装置に宛てて送信する、指令送信手段、を有し、
各端末装置は、
当該端末装置に宛てて送信されて来た前記指令情報および前記識別情報を受信する受信手段と、
受信した前記識別情報と同じ内容を示す識別情報を以前に受信したことがない場合に、当該識別情報とともに受信した前記指令情報に示される前記指令に従って前記所定の処理を実行しかつ当該端末装置に直接的に関連付けられている他の端末装置に宛てて当該指令情報および当該識別情報を送信することによって当該指令に対処する、指令対処手段と、を有する、
ことを特徴とするネットワーク。
【請求項７】
前記指令情報および前記識別情報の最初の送信元でない端末装置の前記指令対処手段は、当該端末装置に直接的に関連付けられている他の端末装置のうち、当該指令情報および当該識別情報を当該端末装置に宛てて送信した他の端末装置に宛てては、当該指令情報および当該識別情報を送信しない、
請求項６記載のネットワーク。
【請求項８】
前記指令が、前記所定の処理として端末装置の属性を回答すべき旨の指令である場合は、
前記指令情報および前記識別情報の最初の送信元でない端末装置の前記指令対処手段は、受信した当該識別情報と同じ内容を示す識別情報を以前に受信したことがない場合は、当該端末装置の属性を示す属性情報を、当該指令情報、当該識別情報、および両情報とともに受信した他の端末装置の属性を示す属性情報とともに、当該端末装置に直接的に関連付けられている他の端末装置に宛てて送信することによって当該指令に対処し、当該識別情報と同じ内容を示す識別情報を以前に受信したことがある場合は、当該指令情報、当該識別情報、および両情報とともに受信した他の端末装置の属性を示す属性情報を当該最初の送信元である端末装置に宛てて送信することによって当該指令に対処する、
請求項６記載のネットワーク。
【請求項９】
前記指令情報および前記識別情報の最初の送信元でない端末装置の前記指令対処手段は、当該指令情報を当該端末装置に宛てて送信した他の端末装置のみが当該端末装置に直接的に関連付けられている場合は、当該端末装置の属性を示す属性情報、当該指令情報、当該識別情報、および両情報とともに受信した他の端末装置の属性を示す属性情報を、当該他の端末装置の代わりに当該最初の送信元である端末装置に宛てて送信することによって当該指令に対処する、
請求項８記載のネットワーク
【請求項１０】
ネットワークのノードとして用いられる情報処理装置であって、
当該情報処理装置に関連付けられている当該ネットワークの１つまたは複数の他の情報処理装置のアドレスを記憶するアドレス記憶手段と、
他のすべての情報処理装置に対して所定の処理を実行させる際に、前記所定の処理を実行すべき旨の指令を示す指令情報を、当該指令情報を他の指令情報と識別するための識別情報とともに、自らに関連付けられている他の情報処理装置に宛てて送信する、指令情報指令送信手段と、
他の情報処理装置から前記指令情報および前記識別情報を受信した場合に、当該識別情報と同じ内容を示すものを以前に受信したことがない場合は、当該指令情報に示される前記指令に従って前記所定の処理を実行しかつ当該情報処理装置に関連付けられている他の端末装置に宛てて当該指令情報および当該識別情報を送信することによって、当該指令に対処する、指令対処手段と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークの構成およびデータ通信の方法などに関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置（ノード）を複数台、通信回線で繋いでネットワークを形成し、これらの情報処理装置同士でデータのやり取りを行う技術が、広く普及している。Ｐ２Ｐ（Peer to Peer）型のネットワークは、クライアントサーバ型のネットワークよりも簡単に構築することができるので、特に小規模のオフィスなどにおいて広く採用されている。
【０００３】
しかし、Ｐ２Ｐ型のネットワークは、ネットワーク内の情報処理装置の台数が増えるほど、構成などに関する情報の管理が煩雑になってしまう。管理用の装置（例えば、ＤＨＣＰ（Dynamic Host Configuration Protocol）サーバなど）が存在しない、ピュアなＰ２Ｐ型のネットワークの場合は、特に煩雑になりやすい。
【０００４】
そこで、必要なノードの情報を入手するために、「フラッディング（Flooding）」と呼ばれる方法が一般的によく用いられる。係る方法によると、ネットワークのすべてのノードに対してデータを洪水のように流す。そして、各ノードは、自分にとって必要なデータであればデータを取得し、不要であればデータを破棄する。
【０００５】
または、すべてのノードの属性（ＩＰアドレスまたはホスト名など）を調べるために、所定のコマンド（命令）を含むデータを、ブロードキャストアドレスを宛先として送信（フラッディング）する方法も、よく用いられている。コマンドのデータを受信したノードは、そのコマンドに従って自分の属性情報を命令元のノードに返信する。
【０００６】
そのほか、特許文献１、２に記載されるような、複数のノード間におけるデータ通信の方法が提案されている。特許文献１に記載される方法によると、ネットワーク上にデータが伝搬された場合は、少なくともデータの転送元、自ノード、およびデータの転送先の３世代にわたって伝搬履歴情報を共有し、各々のノードに格納する。これにより、伝搬履歴情報を用いてデータの伝搬経路を追跡することができる。
【０００７】
特許文献２に記載される方法によると、端末装置ｎは、端末装置ｎの駆動開始時および端末装置ｎ−１から情報要求送信命令とアドレス情報とを受信したときにサーバ５へ情報要求を送信する。サーバ５は、端末装置ｎから情報要求受信したときに、この端末装置ｎを記憶管理するとともに、端末装置ｎに対して、一斉同報情報と端末装置ｎ＋１のアドレス情報とを送信する。端末装置ｎは、サーバ５から一斉同報情報と端末装置ｎ＋１のアドレス情報とを受信したときに、端末装置ｎ＋１に情報要求送信命令と自端末装置のアドレス情報とを送信した後に、情報要求送信命令を受けた端末装置ｎ−１に対してサーバ５から受信した一斉同報情報を送信する。
【特許文献１】特開２００４−１６４６２５号公報
【特許文献２】特開２００４−２６６６２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上に述べたように、Ｐ２Ｐは、インターネットでのコンテンツ交換や小規模なオフィスの簡易的なネットワークの構成のために用いられている。よって、すべてのノードの情報を収集するというシーンはあまり存在しない。しかし、今後、企業や役所などのオフィスでネットワークを導入する際には、セキュリティなどの観点から、すべてのノードをしっかりと管理することが強く求められる。
【０００９】
ところが、従来のフラッディングの方法によると、ある事項（例えば、ＩＰアドレスなど）に関する問合せをすべてのノードに対して行うと、一斉にトラフィックが発生するので、ネットワーク全体において通信の遅延が発生しやすい。また、問合せ元の装置の負担が大きい。特に、ネットワークが大規模になるほど、通信の遅延が大きくなる。また、問合せ元の装置またはハブなどの特定の装置の負担が大きくなる。
【００１０】
特許文献１に記載される方法では、上記の問題点を解決することはできない。特許文献２に記載される方法では、映像コンテンツなどのデータを複数の端末装置に一斉配信する場合には、サーバの負担を軽減することができる。しかし、ＩＰアドレスなどに関する問合せを行う場合のトラフィックおよび問合せ元の負担を軽減することはできない。
【００１１】
本発明は、このような問題点に鑑み、ネットワークを構成する各ノードの情報を取得する際に生じる特定の装置に掛かる負担を従来よりも軽減することを目的とする。さらに、ネットワークを構成する各ノードの情報を取得する際に生じるトラフィックを従来よりも軽減することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る通信方法は、複数のノードによって構成されるネットワークにおける通信方法であって、当該ネットワークを構成するすべてのノードが互いに直接的にまたは間接的に関係するように、各ノードを少なくとも１つの他のノードと直接的に関連付けておき、当該ネットワークを構成するノードのうちの指令元ノードが他のすべてのノードに対して所定の処理を実行させる際に、前記指令元ノードは、前記所定の処理を実行すべき旨の指令を、当該指令に対して発行したユニークな識別情報とともに、自らに直接的に関連付けられている他のノードに宛てて送信し、前記指令を受信したノードは、当該指令とともに受信した前記識別情報と同じ内容を示す識別情報を以前に受信したことがない場合は、当該指令に従って前記所定の処理を実行し、かつ、当該ノードに直接的に関連付けられている他のノードに宛てて、受信した当該指令および当該識別情報を送信する、ことを特徴とする。
【発明の効果】
【００１３】
本発明によると、ネットワークを構成する各ノードの情報を取得する際に特定の装置に掛かる負担を従来よりも軽減することができる。請求項４、５、８、９の発明によると、さらに、ネットワークを構成する各ノードの情報を取得する際に生じるトラフィックを従来よりも軽減することができる。
【発明を実施するための最良の形態】
【００１４】
図１はネットワーク１の全体的な構成の例を示す図、図２は端末装置２のハードウェア構成の例を示す図、図３は端末装置２の機能的構成の例を示す図、図４は端末装置２の論理的なトポロジーの例を示す図である。
【００１５】
本発明に係るネットワーク１は、図１に示すように、複数台の端末装置２（２１、２２、…、２ｎ）、スイッチングハブ３、およびルータ４などのノードによって構成されるＬＡＮ（Local Area Network）である。これらの端末装置２は、スイッチングハブ３にツイストペアケーブルによってスター型に繋がれている。スイッチングハブ３およびルータ４も、ツイストペアケーブルによって繋がれている。以下、これらのノードのうちの端末装置２同士がデータ通信を行う場合について説明する。
【００１６】
端末装置２は、パーソナルコンピュータ、ワークステーション、またはプリンタなどのような、他の装置との間でデータの入出力の処理を実行する装置である。以下、端末装置２としてパーソナルコンピュータが用いられる場合を例に説明する。
【００１７】
端末装置２は、図２に示すように、ＣＰＵ２０ａ、ＲＡＭ２０ｂ、ＲＯＭ２０ｃ、ハードディスク２０ｄ、通信インタフェース２０ｅ、画像インタフェース２０ｆ、入力インタフェース２０ｇ、その他の種々の回路または装置などによって構成される。
【００１８】
通信インタフェース２０ｅは、ＮＩＣ（Network Interface Card）であって、ツイストペアケーブルを介してスイッチングハブ３のいずれかのポートに繋がれている。画像インタフェース２０ｆは、モニタと繋がれており、画面を表示するための映像信号をモニタに送出する。入力インタフェース２０ｇは、キーボードまたはマウスなどの入力装置と繋がれており、これらの入力装置からユーザの操作内容を示す信号を入力する。
【００１９】
ハードディスク２０ｄには、図３に示すようなコマンド受付部２０１、データ受信部２０２、データ解析部２０３、データ生成部２０４、データ更新部２０５、データ送信部２０６、データ操作部２０７、画面出力部２０８、データ保存部２１１、および接続テーブル保存部２１２などの機能を実現するためのプログラムおよびデータが格納されている。これらのプログラムおよびデータは必要に応じてＲＡＭ２０ｂに読み出され、ＣＰＵ２０ａによってプログラムが実行される。
【００２０】
各端末装置２には、それぞれ、他の端末装置と識別するために、ホスト名（マシン名）、ＩＰアドレス、およびＭＡＣアドレスが与えられている。ＩＰアドレスは、ネットワーク１の規則に従って与えられる。ＭＡＣアドレスは、通信インタフェース２０ｅのメーカによって予め設定されている。ホスト名は、ネットワーク１の管理者などが自由に付けることができる。本実施形態では、端末装置２ごとに「ＰＣ０１」、「ＰＣ０２」、…のようなホスト名が付されているものとする。
【００２１】
また、これらの端末装置２は、例えば図４（ａ）および図４（ｂ）のいずれかに示すように、仮想空間に配置されているものと仮定されている。そして、点線で示すように、仮想空間内の近隣の少なくとも１台の他の端末装置２と関連付けられている。かつ、これらの関連付けによって、すべての端末装置２が互いに直接的にまたは間接的に関係するようになっている。なお、「直接的に関係する」とは、図４において１本の点線で繋がれていること（例えば、図４（ａ）のＰＣ０２とＰＣ０３とのような関係）を言い、「間接的に関係する」とは、２本以上の点線および１つ以上のノードで繋がれていること（例えば、図４（ａ）のＰＣ０１とＰＣ０３とのような関係）を言う。端末装置２は、自らに直接的に関連付けられている他の端末装置２に対してデータを送信する。以下、「関連付けられている」とは、特に断りのない限り、直接的に関連付けられていることを言う。
【００２２】
図５は図４（ａ）のように関連付けられたＰＣ０１〜ＰＣ０４の各端末装置２の接続テーブルＴＬの例を示す図、図６は図４（ｂ）のように関連付けられたＰＣ１１〜ＰＣ１８の各端末装置２の接続テーブルＴＬの例を示す図である。
【００２３】
以下、図３に示す端末装置２の各部の処理内容について詳細に説明する。
【００２４】
データ保存部２１１は、ＯＳまたはアプリケーションソフトなどが使用するデータ、ユーザがアプリケーションソフトによって作成したデータ、その他種々のデータを、ファイルとして保存している。そのほか、これまでに受信した指令データＤＴ１の識別情報を記憶する。指令データＤＴ１については、後に説明する。
【００２５】
接続テーブル保存部２１２は、その端末装置２に関連付けられている他の端末装置２のホスト名、ＩＰアドレス、ＭＡＣアドレスなどの属性の一覧を示す接続テーブルＴＬを保存している。例えば、図４（ａ）におけるＰＣ０１〜ＰＣ０４の接続テーブル保存部２１２には、それぞれ、図５（ａ）〜（ｄ）に示すような接続テーブルＴＬ０１〜ＴＬ０４が保存されている。また、図４（ｂ）におけるＰＣ１１〜ＰＣ１８の接続テーブル保存部２１２には、それぞれ、図６（ａ）〜（ｈ）に示すような接続テーブルＴＬ１１〜ＴＬ１８が保存されている。これらの接続テーブルＴＬの内容は、各端末装置２の関連付けに基づいて管理者によって予め作成される、
コマンド受付部２０１は、ユーザがキーボードまたはマウスなどを操作して指定したコマンドを受け付け、そのコマンドに応じた処理を各部に実行させる。
【００２６】
データ受信部２０２は、ネットワーク１を流れるパケットのうち、その端末装置２に必要なものを受信する。
【００２７】
データ解析部２０３は、受信したパケットの中から必要なデータの部分を抽出してデータの内容を解析する。そして、その解析結果に応じた処理を実行するように各部に指令を与える。例えば、データをデータ保存部２１１に保存すべき旨の指令をデータ操作部２０７に与えたり、端末装置２自身の属性（ＩＰアドレスなど）を回答するデータを生成して問合せ元に送信すべき旨の指令をデータ生成部２０４、データ更新部２０５、およびデータ送信部２０６に与えたりする。
【００２８】
データ生成部２０４は、コマンド受付部２０１またはデータ解析部２０３からの指令に基づいてデータを生成する。データ更新部２０５は、コマンド受付部２０１またはデータ解析部２０３からの指令に基づいて既存のデータを更新する。データ送信部２０６は、データ生成部２０４によって生成されまたはデータ更新部２０５によって更新されたデータをパケット化して、コマンド受付部２０１またはデータ解析部２０３からの指令に基づいて他の端末装置２に送信する。
【００２９】
データ操作部２０７は、コマンド受付部２０１またはデータ解析部２０３からの指令に基づいて、その端末装置２のデータ保存部２１１に保存されているファイルに関する処理を行う。
【００３０】
画面出力部２０８は、その端末装置２を操作するユーザに対してメッセージまたは指示を与えるための画面、ユーザが処理の指令を入力するための画面、および処理の結果を示す画面などをモニタに表示するための処理を行う。
【００３１】
図７は指令元端末装置２Ｍの処理の流れの例を説明するフローチャート、図８は指令データＤＴ１のフォーマットの例を示す図、図９は指令元端末装置２Ｍ以外の端末装置２の処理の流れの例を説明するフローチャートである。
【００３２】
次に、ある端末装置２のユーザが、ＩＰアドレスを回答すべき旨のコマンドを指定しかつそのコマンドの実行主体を示すパラメータとしてブロードキャストアドレスを指定した場合を例に、各端末装置２の各部の処理内容を、フローチャートなどを参照してさらに詳細に説明する。以下、ユーザからコマンドを指定され、このコマンドの処理を実行するように指令する端末装置２を、他の端末装置２と区別するために、「指令元端末装置２Ｍ」と記載することがある。
【００３３】
指令元端末装置２Ｍにおいて、コマンド受付部２０１がユーザが指定したコマンドおよびパラメータの内容を受け付けると（図７の＃１１）、データ生成部２０４は、次のようにして指令データＤＴ１を生成する。
【００３４】
まず、図８に示すようなフォーマットの空データを用意する。その指令元端末装置２Ｍ自身の接続テーブル保存部２１２に保存されている接続テーブルＴＬに示される他の端末装置２をチェックする（＃１２）。
【００３５】
そして、チェックした当該他の端末装置２のＭＡＣアドレスまたはホスト名を宛先アドレス部ＦＬ１に書き込む。指令元端末装置２Ｍ自身のＭＡＣアドレスまたはホスト名を送信元アドレス部ＦＬ０および指令元アドレス部ＦＬ３の両方に書き込む。今回の指令データＤＴ１を、以前に生成した指令データＤＴ１と識別するための識別情報（例えば、ユーザの指定を受け付けた日付時刻と指令元端末装置２Ｍの識別情報とを組み合わせた値など）を発行し、これを識別データ部ＦＬ２に書き込む。ユーザによって指定されたコマンドをコマンドデータ部ＦＬ４に書き込む。指令元端末装置２Ｍ自身のＩＰアドレスおよびＭＡＣアドレスまたはホスト名を回答データ部ＦＬ５に書き込む。このようにして、指令データＤＴ１が生成される（＃１３）。
【００３６】
データ送信部２０６は、生成された指令データＤＴ１を、その宛先アドレス部ＦＬ１に示されるアドレスに宛ててパケット化して送信する（＃１４）。
【００３７】
指令元端末装置２Ｍから送信された指令データＤＴ１のパケットは、一旦、スイッチングハブ３に到達する。スイッチングハブ３は、到達したこれらのパケットを、宛先アドレス部ＦＬ１に示される宛先に対応するポートに繋がれている端末装置２に送信する。このように、スイッチングハブ３は、指令データＤＴ１などのデータを宛先の端末装置２のみに中継する役割を果たす。後に説明する２つの端末装置２の間でなされるデータの送受信も同様に、スイッチングハブ３を介して行われる。
【００３８】
指令元端末装置２Ｍ以外の端末装置２では、図９に示すような手順で処理が行われる。図３のデータ受信部２０２が指令データＤＴ１を受信すると（図９の＃２１）、データ保存部２１１は、その指令データＤＴ１の識別データ部ＦＬ２に示される識別情報を記憶し（＃２２）、データ解析部２０３は、その指令データＤＴ１のコマンドデータ部ＦＬ４に示されるコマンドに対応した処理を実行するように、データ更新部２０５およびデータ送信部２０６に対して指令する。
【００３９】
後に図１１で説明するように、同じ識別情報を有する指令データＤＴ１（つまり、同じ指令元端末装置２Ｍから同じ時に発せられた同じコマンド）が端末装置２に複数個届く場合がある。データ更新部２０５は、このような指令データＤＴ１の２つ目以降については（＃２３でＹｅｓ）、ステップ＃２４、＃２５の処理を省略し、宛先アドレス部ＦＬ１の値を、指令元アドレス部ＦＬ３に示される値つまり指令元端末装置２Ｍを示す値に書き換える（＃２９）。そして、データ送信部２０６は、その指令データＤＴ１を、書き換えられた宛先に向けて送信する（＃３０）。
【００４０】
受信した指令データＤＴ１の識別情報が以前に受信したいずれの指令データＤＴ１の識別情報とも重複しない場合は（＃２３でＮｏ）、データ更新部２０５は、受信した指令データＤＴ１の回答データ部ＦＬ５に自らのＩＰアドレスとＭＡＣアドレスまたはホスト名とを書き加える（＃２４）。
【００４１】
さらに、自らの接続テーブルＴＬに、その指令データＤＴ１を送信してきた端末装置２（つまり、その指令データＤＴ１の送信元アドレス部ＦＬ０に示される端末装置２）以外の端末装置２が示されているか否かをチェックする（＃２５）。その結果、端末装置２が見つかった場合は（＃２６でＹｅｓ）、見つかった端末装置２に指令データＤＴ１を転送するために、次のような処理を行う。
【００４２】
すなわち、見つかった端末装置２が１台だけの場合は、その指令データＤＴ１の宛先アドレス部ＦＬ１の値を、その見つかった端末装置２のＭＡＣアドレスまたはホスト名に書き換える。複数台見つかった場合は、その指令データＤＴ１をその台数分になるように複製し、それぞれの宛先アドレス部ＦＬ１の値を、見つかった各端末装置２のＭＡＣアドレスまたはホスト名に書き換える（＃２７）。そして、データ送信部２０６は、これらの指令データＤＴ１を、書き換えられた宛先に向けて送信する（＃２８）。
【００４３】
一方、ステップ＃２５において端末装置２が見つからなかった場合は（＃２６でＮｏ）、データ更新部２０５は、ステップ＃２１で受信した指令データＤＴ１の宛先アドレス部ＦＬ１の値を、指令元アドレス部ＦＬ３に示される値つまり指令元端末装置２Ｍを示す値に書き換える（＃２９）。そして、データ送信部２０６は、その指令データＤＴ１を、書き換えられた宛先に向けて送信する（＃３０）。
【００４４】
図７に戻って、指令元端末装置２Ｍにおいて、他の端末装置２から指令データＤＴ１が戻って来ると（＃１５）、データ解析部２０３は、その指令データＤＴ１の回答データ部ＦＬ５に示される各端末装置２のＩＰアドレスおよびホスト名などを抽出し（＃１６）、画面出力部２０８は、これをモニタに表示する（＃１７）。後に説明するように、複数の指令データＤＴ１が戻って来ることがある。そこで、ステップ＃１４の処理後、所定の時間、指令データＤＴ１が戻って来るのを待ち、これらに示されるＩＰアドレスなどを纏めて表示するようにしてもよい。
【００４５】
なお、指令データＤＴ１が戻って来たものであるか否かは、ステップ＃１５で他の端末装置２から受信した指令データＤＴ１の識別データ部ＦＬ２に示される識別情報とステップ＃１４で指令元端末装置２Ｍ自身が送信した指令データＤＴ１の識別情報とを比較すれば分かる。つまり、両者が一致すれば、指令データＤＴ１が戻って来たものであると判別できる。
【００４６】
図１０は図４（ａ）のような論理的なトポロジーにおける指令データＤＴ１の遷移の例を説明するための図である。
【００４７】
ここで、図４（ａ）に示すような論理的なトポロジーでネットワーク１に４台の端末装置２（ＰＣ０１〜ＰＣ０４）が設けられており、ＰＣ０１が指令元端末装置２Ｍである場合を例に、これらの端末装置２の処理の手順および指令データＤＴ１の遷移を、図１０を参照しながら説明する。
【００４８】
図１０において、ＰＣ０１は、ユーザによってコマンドおよびパラメータ（ブロードキャストアドレス）が入力されると、それに基づいて指令データＤＴ１を作成し、ＰＣ０１自身の接続テーブルＴＬ０１（図５（ａ）参照）に示される、ＰＣ０１自身に関連付けられている端末装置２すなわちＰＣ０２に宛てて、その指令データＤＴ１を送信する。これらの処理は、図７のステップ＃１１〜＃１４の処理に相当する。
【００４９】
ＰＣ０２は、指令データＤＴ１を受信すると、コマンドデータ部ＦＬ４のコマンドに従って処理を実行することによって、その指令データＤＴ１の内容を指令データＤＴ１ｂのように更新する。すなわち、回答データ部ＦＬ５にＰＣ０２自身のＩＰアドレスなどを書き込む。ＰＣ０２自身の接続テーブルＴＬ０２（図５（ｂ）参照）に示される、ＰＣ０２自身に関連付けられている端末装置２をチェックする。ただし、指令データＤＴ１をＰＣ０２に送信した端末装置２すなわち送信元アドレス部ＦＬ０に示される端末装置２はチェック対象から除外する。その結果、本例ではＰＣ０３が見つかる。送信元アドレス部ＦＬ０をＰＣ０２自身のＭＡＣアドレスに書き換え、宛先アドレス部ＦＬ１を、見つかった端末装置２すなわちＰＣ０３のＭＡＣアドレスに書き換える。そして、指令データＤＴ１ｂを宛先のアドレスすなわちＰＣ０３に送信する。これらの処理は、図９のステップ＃２１〜＃２８の処理に相当する。
【００５０】
ＰＣ０３は、指令データＤＴ１ｂを受信すると、ＰＣ０２の場合と同様に、コマンドに従って処理を実行することによって、回答データ部ＦＬ５にＰＣ０３自身のＩＰアドレスなどを書き加え、送信元アドレス部ＦＬ０の値をＰＣ０３自身のＭＡＣアドレスに書き換え、接続テーブルＴＬ０３（図５（ｃ）参照）に基づいて宛先アドレス部ＦＬ１をＰＣ０４のＭＡＣアドレスに書き換える。このようにして、指令データＤＴ１ｂが指令データＤＴ１ｃのように更新される。そして、指令データＤＴ１ｃをＰＣ０４に送信する。これらの処理は、図９のステップ＃２１〜＃２８の処理に相当する。
【００５１】
ＰＣ０４は、指令データＤＴ１ｃを受信すると、コマンドに従って処理を実行することによって、回答データ部ＦＬ５にＰＣ０３自身のＩＰアドレスなどを書き加える。ＰＣ０４の接続テーブルＴＬ０４（図５（ｄ）参照）には、指令データＤＴ１ｃの送信元であるＰＣ０３以外に端末装置２が示されていない。このような場合は、図９で説明したように、指令元端末装置２Ｍに指令データＤＴ１を戻さなければならない（図９の＃２６でＮｏ）。そこで、ＰＣ０４は、宛先アドレス部ＦＬ１の値を指令元アドレス部ＦＬ３に示されるＭＡＣアドレスすなわち指令元端末装置２ＭであるＰＣ０１のＭＡＣアドレスに書き換える（図９の＃２９）。このようにして、指令データＤＴ１ｃが指令データＤＴ１ｄのように更新される。そして、指令データＤＴ１ｄをＰＣ０１に送信する。
【００５２】
ＰＣ０１は、戻ってきた指令データＤＴ１（ＤＴ１ｄ）の回答データ部ＦＬ５からネットワーク１内の各端末装置２のＩＰアドレスおよびホスト名を抽出し、これをモニタに表示する。これらの処理は、図７の＃１５〜＃１７の処理に相当する。
【００５３】
図１１は図４（ｂ）のような論理的なトポロジーにおける指令データＤＴ１の遷移の例を説明するための図である。
【００５４】
次に、図４（ｂ）に示すような論理的なトポロジーでネットワーク１に８台の端末装置２（ＰＣ１１〜ＰＣ１８）が設けられており、ＰＣ１１が指令元端末装置２Ｍである場合を例に、これらの端末装置２の処理の手順および指令データＤＴ１の遷移を、図１１を参照しながら説明する。
【００５５】
図１１において、ＰＣ１１は、ユーザによってコマンドおよびパラメータ（ブロードキャストアドレス）が入力されると、それに基づいて指令データＤＴ１を作成し、ＰＣ１１自身の接続テーブルＴＬ１１（図６（ａ）参照）に示される、ＰＣ１１自身に関連付けられている他の端末装置２すなわちＰＣ１２およびＰＣ１８に宛てて、その指令データＤＴ１を送信する。つまり、図１１の論理的なトポロジーでは、図１０の場合と異なり、２つの指令データＤＴ１が別々の端末装置２に宛てて送信される。これらの処理は、図７のステップ＃１１〜＃１４の処理に相当する。以下、ＰＣ１２宛ての指令データＤＴ１およびＰＣ１８宛てのＤＴ１をそれぞれ「指令データＤＴ１α」および「指令データＤＴ１β」と区別して記載する。指令データＤＴ１α、ＤＴ１βの識別データ部ＦＬ２には、同じ値の識別情報が書き込まれている。
【００５６】
指令データＤＴ１αは、ＰＣ１１、ＰＣ１２、ＰＣ１３、…と、時計回りで各端末装置２を中継して行く。このとき、指令データＤＴ１αの回答データ部ＦＬ５には、端末装置２のＩＰアドレスおよびホスト名が中継順に次々に書き加えられる。送信元アドレス部ＦＬ０ないしコマンドデータ部ＦＬ４の値も、前に図９などで説明したように適宜更新される。一方、指令データＤＴ１βは、ＰＣ１１、ＰＣ１８、ＰＣ１７、…と、反時計回りで各端末装置２を中継して行く。このとき、回答データ部ＦＬ５には、指令データＤＴ１αの場合と同様に、端末装置２のＩＰアドレスおよびホスト名が中継順に次々に書き加えられる。
【００５７】
指令データＤＴ１α、ＤＴ１βは、各端末装置２を中継されているうちに、どこかですれ違う。図１１の例では、ＰＣ１５、ＰＣ１６間ですれ違う。両者がすれ違った後、ＰＣ１５は、指令データＤＴ１βを受信するが、その前に指令データＤＴ１αを受信しているので、指令データＤＴ１を受信するのは２回目となる。また、ＰＣ１５は、指令データＤＴ１αを受信した際に、それに含まれるコマンドに従って処理を実行し、ＰＣ１５自身のＩＰアドレスの回答を指令データＤＴ１αに書き込んで次の端末装置２に転送している。よって、前に図９で説明したように、同じ指令データＤＴ１を受信済であると判別し（図９の＃２３でＹｅｓ）、指令データＤＴ１βを、ＰＣ１６に送信するのではなく、指令元端末装置２ＭすなわちＰＣ１１に送信する（＃２９、＃３０）。同様に、ＰＣ１６は、指令データＤＴ１αを受信したとき、既に指令データＤＴ１βを受信しているので、指令データＤＴ１を受信するのは２回目となる。よって、指令データＤＴ１αを、ＰＣ１５に送信するのではなく、ＰＣ１１に送信する。
【００５８】
このようにして、２つの指令データＤＴ１α、ＤＴ１βがＰＣ１１に戻って来る。そして、ＰＣ１１は、これらの指令データＤＴ１の回答データ部ＦＬ５からネットワーク１内の各端末装置２のＩＰアドレスおよびホスト名を抽出し、これをモニタに表示する。
【００５９】
本実施形態によると、ある端末装置２が他のすべての端末装置２のＩＰアドレスを示す情報を取得する際に、当該端末装置２およびハブ３に掛かる負担を従来よりも軽減することができる。さらに、当該端末装置２とハブ３との間のトラフィックを減らし、ネットワーク全体のトラフィックを従来よりも軽減することができる。
【００６０】
図１２はネットワーク１の論理的なトポロジーの変形例を示す図である。本実施形態では、端末装置２の処理内容を、端末装置２が図４（ａ）または図４（ｂ）のような論理的なトポロジーに配置された場合を例に説明したが、本発明は、これ以外の論理的なトポロジーに配置された場合にも適用可能である。例えば、図１２（ａ）のように、各端末装置２がすべて同じ数の端末装置２と関連付けられている場合（いわゆるレギュラーグラフの場合）にも適用可能である。
【００６１】
図１２（ａ）のようなレギュラーグラフの場合は、閉ループが多数存在する。そうすると、「命令を受け取ったノード（つまり、指令データＤＴ１を送信して来た手前の端末装置２）には返さない」という条件を与えたとしても、これら閉ループによって情報を転送し続けるという不具合が発生する場合がある。そこで、念の為に、端末装置２は、送信されて来た指令データＤＴ１をチェックし、この中に自分の情報が記載されていれば、直ちに指令元端末装置２Ｍにこれを返送するようにしてもよい。その結果、転送を繰り返す不具合をより確実になくすことができる。
【００６２】
または、図１２（ｂ）に示すような、閉ループの区間や行き止まりのある区間が混在するトポロジーの場合にも本発明を適用することができる。
【００６３】
本実施形態によると、指令元端末装置２Ｍは、他の端末装置２を中継して戻って来た指令データＤＴ１に基づいて、端末装置２同士の関連付けすなわちネットワーク１の論理的なトポロジーを推測することができる。さらに、推測結果よりトポロジーを視覚化し、ネットワークから切断したいノードを見つけ出す、不具合が生じているノードを見つけ出す、通信効率の改善のためにトポロジーを再編成する、などといった用途のために利用することが可能になる。
【００６４】
本実施形態では、指令データＤＴ１には、ＩＰアドレスを回答すべき旨のコマンドを含めたが、他のコマンドであってもよい。例えば、ＭＡＣアドレス、ホスト名、オペレーティングシステムのバージョンなどの属性を回答すべき旨のコマンドであってもよい。公開鍵、文書データ、画像データ、または音声データなどを指令元端末装置２Ｍに送信すべき旨のコマンドであってもよい。
【００６５】
または、ウィルスチェックの処理またはバックアップの処理などを実行すべき旨のコマンドであってもよい。または、指令データＤＴ１にファイルを添付し、係るファイルを取得すべき旨のコマンドを含めてもよい。これらの場合は、指令データＤＴ１の回答データ部ＦＬ５（図８参照）には、処理結果を書き込むようにすればよい。処理結果の報告が不要な場合は、指令データＤＴ１を指令元端末装置２Ｍに返送する処理（図９の＃２９、＃３０）は省略すればよい。
【００６６】
本実施形態では、ネットワーク１としてＬＡＮが用いられる場合を例に説明したが、本発明は、複数のＬＡＮまたはインターネットなどのネットワークセグメントを、ルータなどを介して接続して構成したネットワーク（例えば、イントラネットまたは広域イーサネットなど）や、バーチャルＬＡＮなどにも適用可能である。または、無線ＬＡＮにも適用可能である。
【００６７】
その他、ネットワーク１、端末装置２の全体または各部の構成、処理内容、処理順序、テーブルの内容、トポロジーなどは、本発明の趣旨に沿って適宜変更することができる。
【産業上の利用可能性】
【００６８】
本発明は、特に、管理用の装置がないピュアなＰ２Ｐ型のネットワークの管理のために好適に用いられる。
【図面の簡単な説明】
【００６９】
【図１】ネットワークの全体的な構成の例を示す図である。
【図２】端末装置のハードウェア構成の例を示す図である。
【図３】端末装置の機能的構成の例を示す図である。
【図４】端末装置の論理的なトポロジーの例を示す図である。
【図５】図４（ａ）のように関連付けられたＰＣ０１〜ＰＣ０４の各端末装置の接続テーブルの例を示す図である。
【図６】図４（ｂ）のように関連付けられたＰＣ１１〜ＰＣ１８の各端末装置の接続テーブルの例を示す図である。
【図７】指令元端末装置の処理の流れの例を説明するフローチャートである。
【図８】指令データのフォーマットの例を示す図である。
【図９】指令元端末装置以外の端末装置の処理の流れの例を説明するフローチャートである。
【図１０】図４（ａ）のような論理的なトポロジーにおける指令データの遷移の例を説明するための図である。
【図１１】図４（ｂ）のような論理的なトポロジーにおける指令データの遷移の例を説明するための図である。
【図１２】ネットワークの論理的なトポロジーの変形例を示す図である。
【符号の説明】
【００７０】
１  ネットワーク
２  端末装置（ノード）
２０２  データ受信部（受信手段）
２０３  データ解析部（指令対処手段）
２０４  データ生成部（指令対処手段）
２０５  データ更新部（指令対処手段）
２０６  データ送信部（指令送信手段、指令対処手段）
ＦＬ２  識別データ部（識別情報）
ＦＬ４  コマンドデータ部（指令情報）
ＦＬ５  回答データ部（属性情報）
ＴＬ  接続テーブル（アドレス記憶手段）
【図１】
2006319910.tif 000003
【図２】
2006319910.tif 000004
【図３】
2006319910.tif 000005
【図４】
2006319910.tif 000006
【図５】
2006319910.tif 000007
【図６】
2006319910.tif 000008
【図７】
2006319910.tif 000009
【図８】
2006319910.tif 000010
【図９】
2006319910.tif 000011
【図１０】
2006319910.tif 000012
【図１１】
2006319910.tif 000013
【図１２】
2006319910.tif 000014