(57)【特許請求の範囲】
【請求項１】
アンテナと、
上記アンテナに接続され、該アンテナによって提供される無線接続を介した無線通信をサポートする無線通信インタフェースと、
データの保存をサポートする記憶装置と、
上記無線通信インタフェース及び上記記憶装置に接続され、アプリケーションサービスと、メッセージサービスと、中継メッセージ用の中継サービスとをサポートするコントローラとを備え、
上記無線通信インタフェースは、該無線通信インタフェースを介して送信側機器の範囲内にあるローカル機器に接続して、利用可能な機器の識別子を要求し、
上記コントローラは、
（１）上記ローカル機器によって、上記利用可能な機器の識別子の要求をピアツーピアネットワークを介して伝播させ、
（２）上記利用可能な機器の識別子を、上記送信側機器に受信させ、
（３）ローカル機器リスト内の上記ローカル機器の識別子を含む利用可能な機器のリストを作成し、
上記アプリケーションサービスは、上記記憶装置に保存されたアプリケーションデータを用いて、上記コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、
上記メッセージサービスは、メッセージを作成するとともに、受信されたメッセージを処理し、
上記中継サービスは、当該無線機器が直接無線接続を有さない選択された受信側機器を示す新たな中継メッセージを作成し、該作成された新たな中継メッセージを送信するとともに、当該無線機器以外の受信側機器を示す受信された中継メッセージを送信し、
上記選択された受信側機器がローカル機器であるとき、当該無線機器からの該選択された受信側機器宛の受信された中継メッセージだけを、上記無線通信インタフェースを介して送信し、他のローカル機器宛の受信された中継メッセージは送信しないことを特徴とする無線機器。
【請求項２】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、
少なくとも１つの受信側機器のリストを作成し、
上記リストから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１記載の無線機器。
【請求項３】
上記受信側機器選択サービスは、上記リストを、要求側機器に送信することを特徴とする請求項２記載の無線機器。
【請求項４】
上記受信側機器選択サービスは、伝播を用いて、上記リストの作成をサポートすることを特徴とする請求項２記載の無線機器。
【請求項５】
上記受信側機器選択サービスは、他の機器からのマップ要求に、少なくとも１つの他の機器に要求を送信することによって、応じることを特徴とする請求項２記載の無線機器。
【請求項６】
上記マップ要求は、ホップカウントを示し、上記受信側機器選択サービスは、該ホップカウントが閾値に達した場合、該マップ要求を送信しないことを特徴とする請求項５記載の無線機器。
【請求項７】
上記マップ要求は、ネットワーク識別子を示し、上記受信側機器選択サービスは、当該無線機器によって保存されている識別子に一致しない該ネットワーク識別子を送信しないことを特徴とする請求項５記載の無線機器。
【請求項８】
上記受信側機器選択サービスは、上記リストを定期的に更新することを特徴とする請求項２記載の無線機器。
【請求項９】
上記受信側機器選択サービスは、上記リストを、１つ以上の更新規則を用いて更新することを特徴とする請求項２記載の無線機器。
【請求項１０】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、
少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と当該無線機器間の接続とのマップを作成し、
上記マップから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１記載の無線機器。
【請求項１１】
上記作成された新たな中継メッセージは、上記選択された受信側機器と当該無線機器間の間接接続を提供する少なくとも１つの中間機器を示すことを特徴とする請求項１０記載の無線機器。
【請求項１２】
上記アプリケーションサービスによって実行及び管理される上記１つ以上のアプリケーションプログラムの少なくとも１つは、ゲームアプリケーションプログラムであることを特徴とする請求項１記載の無線機器。
【請求項１３】
上記無線通信インタフェースは、Ｗｉ−Ｆｉインタフェースであることを特徴とする請求項１記載の無線機器。
【請求項１４】
ネットワーク接続を介したネットワーク通信をサポートするネットワーク通信インタフェースと、
データの保存をサポートする記憶装置と、
上記ネットワーク通信インタフェース及び上記記憶装置に接続され、アプリケーションサービスと、メッセージサービスと、中継メッセージ用の中継サービスとをサポートするコントローラとを備え、
上記ネットワーク通信インタフェースは、該ネットワーク通信インタフェースを介して送信側機器の範囲内にあるローカル機器に接続して、利用可能な機器の識別子を要求し、
上記コントローラは、
（１）上記ローカル機器によって、上記利用可能な機器の識別子の要求をピアツーピアネットワークを介して伝播させ、
（２）上記利用可能な機器の識別子を、上記送信側機器に受信させ、
（３）ローカル機器リスト内の上記ローカル機器の識別子を含む利用可能な機器のリストを作成し、
上記アプリケーションサービスは、上記記憶装置に保存されたアプリケーションデータを用いて、上記コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、
上記メッセージサービスは、メッセージを作成するとともに、受信されたメッセージを処理し、
上記中継サービスは、当該ネットワーク機器が直接無線接続を有さない選択された受信側機器を示す新たな中継メッセージを作成し、該作成された新たな中継メッセージを送信するとともに、当該ネットワーク機器以外の受信側機器を示す受信された中継メッセージを送信し、
上記選択された受信側機器がローカル機器であるとき、当該無線機器からの該選択された受信側機器宛の受信された中継メッセージだけを、上記ネットワーク通信インタフェースを介して送信し、他のローカル機器宛の受信された中継メッセージは送信しないことを特徴とするネットワーク機器。
【請求項１５】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、
少なくとも１つの受信側機器のリストを作成し、
上記リストから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１４記載のネットワーク機器。
【請求項１６】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、
少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と当該ネットワーク機器間の接続とのマップを作成し、
上記マップから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１４記載のネットワーク機器。
【請求項１７】
上記作成された新たな中継メッセージは、上記選択された受信側機器と当該ネットワーク機器間の間接接続を提供する少なくとも１つの中間機器を示すことを特徴とする請求項１６記載のネットワーク機器。
【請求項１８】
上記アプリケーションサービスによって実行及び管理される上記１つ以上のアプリケーションプログラムの少なくとも１つは、ゲームアプリケーションプログラムであることを特徴とする請求項１４記載のネットワーク機器。
【請求項１９】
アンテナと、
上記アンテナに接続され、該アンテナによって提供される無線接続を介した無線通信をサポートする無線通信インタフェースと、
データの保存をサポートする記憶装置と、
上記記憶装置に接続され、リムーバブル媒体からのゲームアプリケーションプログラムの読出をサポートするメディアインタフェースと、
上記無線通信インタフェースと、上記記憶装置と、上記メディアインタフェースとに接続され、アプリケーションサービスと、メッセージサービスと、中継メッセージ用の中継サービスと、受信側機器選択サービスとをサポートするコントローラとを備え、
上記無線通信インタフェースは、該無線通信インタフェースを介して送信側機器の範囲内にあるローカル機器に接続して、利用可能な機器の識別子を要求し、
上記コントローラは、
（１）上記ローカル機器によって、上記利用可能な機器の識別子の要求をピアツーピアネットワークを介して伝播させ、
（２）上記利用可能な機器の識別子を、上記送信側機器に受信させ、
（３）ローカル機器リスト内の上記ローカル機器の識別子を含む利用可能な機器のリストを作成し、
上記アプリケーションサービスは、上記記憶装置に保存されたアプリケーションデータを用いて、上記コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、
上記メッセージサービスは、メッセージを作成するとともに、受信されたメッセージを処理し、
上記中継サービスは、当該無線ゲーム機器が直接無線接続を有さない選択された受信側機器を示す新たな中継メッセージを作成し、該作成された新たな中継メッセージを送信するとともに、当該無線ゲーム機器以外の受信側機器を示す受信された中継メッセージを送信し、
上記受信側機器選択サービスは、少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と当該無線ゲーム機器間の接続とのマップを作成し、該マップから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であり、
上記無線通信インタフェースは、Ｗｉ−Ｆｉインタフェースであり、
上記選択された受信側機器がローカル機器であるとき、当該無線ゲーム機器からの該選択された受信側機器宛の受信された中継メッセージだけを、上記無線通信インタフェースを介して送信し、他のローカル機器宛の受信された中継メッセージは送信しないことを特徴とする無線ゲーム機器。
【請求項２０】
中継メッセージを送信する中継メッセージ送信方法において、
無線インタフェースを介して送信側機器の範囲内にあるローカル機器に接続して、利用可能な機器の識別子を要求するステップと、
上記ローカル機器によって、上記利用可能な機器の識別子の要求をピアツーピアネットワークを介して伝播させるステップと、
上記利用可能な機器の識別子を、上記送信側機器に返すステップと、
ローカル機器リスト内の上記ローカル機器の識別子を含む利用可能な機器のリストを作成するステップと、
上記送信側機器において、上記中継メッセージの受信側機器を選択するステップと、
上記選択された受信側機器を示す受信側機器識別子を含む上記中継メッセージを作成するステップと、
上記中継メッセージを、上記無線インタフェースを介して少なくとも１つのローカル機器に送信するステップとを有し、
上記送信側機器は、上記少なくとも１つのローカル機器のそれぞれに対する直接接続を有し、
上記送信側機器は、上記受信側機器に対する直接接続を有さず、
上記受信側機器は、サーバによって提供されるリストから選択されることを特徴とする中継メッセージ送信方法。
【請求項２１】
少なくとも１つの受信側機器のリストを作成するステップを更に有し、
上記受信側機器を選択するステップは、
上記リストから上記受信側機器を選択するステップを含むことを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項２２】
上記少なくとも１つの受信側機器のリストを作成するステップは、
サーバから少なくとも１つの機器のリストを受信するステップを含むことを特徴とする請求項２１記載の中継メッセージ送信方法。
【請求項２３】
上記少なくとも１つの受信側機器のリストを作成するステップは、
リスト要求を、少なくとも１つのローカル機器に送信するステップを含むことを特徴とする請求項２１記載の中継メッセージ送信方法。
【請求項２４】
少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と上記送信側機器間の接続とのマップを作成するステップを更に有し、
上記受信側機器を選択するステップは、
上記マップから受信側機器を選択するステップを含むことを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項２５】
上記少なくとも１つの受信側機器のマップを作成するステップは、
サーバからマップを受信するステップを含むことを特徴とする請求項２４記載の中継メッセージ送信方法。
【請求項２６】
上記少なくとも１つの受信側機器のマップを作成するステップは、
マップ要求を、少なくとも１つのローカル機器に送信するステップを含むことを特徴とする請求項２４記載の中継メッセージ送信方法。
【請求項２７】
上記中継メッセージを送信するステップは、
上記中継メッセージを、上記無線インタフェースを介してブロードキャストするステップを含むことを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項２８】
上記中継メッセージは、上記送信側機器と上記選択された受信側機器間の少なくとも１つの中間機器を示すパス情報を含むことを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項２９】
上記中継メッセージは、複数の受信側機器を示すことを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項３０】
少なくとも１つのローカル機器を示すローカル機器リストを調べて、上記選択された受信側機器がローカル機器であるかを判定するステップを更に有する請求項２０記載の中継メッセージ送信方法。
【請求項３１】
上記中継メッセージは、ゲームアプリケーションデータを含むことを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項３２】
中継メッセージを送信する中継メッセージ送信方法において、
無線インタフェースを介して送信側機器の範囲内にあるローカル機器に接続して、利用可能な機器の識別子を要求するステップと、
上記ローカル機器によって、上記利用可能な機器の識別子の要求をピアツーピアネットワークを介して伝播させるステップと、
上記利用可能な機器の識別子を、上記送信側機器に返すステップと、
ローカル機器リスト内の上記ローカル機器の識別子を含む利用可能な機器のリストを作成するステップと、
上記送信側機器から上記無線インタフェースを介して中継機器において、受信側機器を示す受信側機器識別子を含むとともに、アプリケーションプログラムのアプリケーションデータを含む中継メッセージを受信するステップと、
上記中継メッセージを調べて、上記中継機器が上記受信側機器であるかを判定し、該中継機器が該受信側機器であるとき、該中継機器は、該中継メッセージを送信しないステップと、
上記中継機器が上記受信側機器でないとき、少なくとも１つのローカル機器を示す上記ローカル機器リストを調べて、上記受信側機器がローカル機器であるかを判定するステップと、
上記受信側機器がローカル機器であるとき、上記中継機器からの該受信側機器宛の中継メッセージだけを、上記無線インタフェースを介して該受信側機器に送信するステップと、
上記受信側機器がローカル機器でないとき、上記中継機器からの上記ローカル機器リストに含まれている少なくとも１つのローカル機器宛の中継メッセージを、上記無線インタフェースを介して送信するステップとを有し、
上記送信側機器は、上記中継機器に対する直接接続を有し、
上記中継機器は、上記ローカル機器リストに示された各ローカル機器に対する直接接続を有し、
上記送信側機器は、上記受信側機器に対する直接接続を有さないことを特徴とする中継メッセージ送信方法。
【請求項３３】
上記中継機器からの受信側機器宛の中継メッセージを送信するステップは、
上記中継メッセージを、上記無線インタフェースを介してブロードキャストするステップを含むことを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３４】
上記中継機器からの少なくとも１つのローカル機器宛の中継メッセージを送信するステップは、
上記中継メッセージを、上記送信側機器を除く、上記ローカル機器リスト内の各ローカル機器に送信するステップを含むことを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３５】
上記中継メッセージは、少なくとも１つの中間機器を含むパスを示し、
上記中継機器からの少なくとも１つのローカル機器宛の中継メッセージを送信するステップは、
上記中継メッセージを、上記パスによって示される中間機器に送信するステップを含むことを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３６】
上記アプリケーションデータは、ゲームアプリケーションデータであることを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３７】
上記中継機器は、上記中継メッセージに含まれる上記アプリケーションデータに対応する上記アプリケーションプログラムのローカルコピーを実行しないことを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３８】
上記中継機器は、上記中継メッセージに含まれる上記アプリケーションデータに対応する上記アプリケーションプログラムとは異なるアプリケーションのローカルコピーを実行することを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３９】
中継メッセージを送信する中継メッセージ送信システムにおいて、
無線インタフェースを介して送信側機器の範囲内にあるローカル機器に接続して、利用可能な機器の識別子を要求する手段と、
上記ローカル機器によって、上記利用可能な機器の識別子の要求をピアツーピアネットワークを介して伝播させる手段と、
上記利用可能な機器の識別子を、上記送信側機器に返す手段と、
ローカル機器リスト内の上記ローカル機器の識別子を含む利用可能な機器のリストを作成する手段と、
上記送信側機器において、上記中継メッセージの受信側機器を選択する手段と、
上記選択された受信側機器を示す受信側機器識別子を含む上記中継メッセージを作成する手段と、
上記中継メッセージを、上記無線インタフェースを介して少なくとも１つのローカル機器に送信する手段とを備え、
上記送信側機器は、上記少なくとも１つのローカル機器のそれぞれに対する直接接続を有し、
上記選択された受信側機器がローカル機器であるとき、上記送信側機器からの該選択された受信側機器宛の中継メッセージだけを、上記無線インタフェースを介して送信し、他のローカル機器宛の中継メッセージを送信しないことを特徴とする中継メッセージ送信システム。
【請求項４０】
コンピュータで実行可能なインストラクションからなるプログラムを記録したコンピュータで読取り可能な媒体において、
上記プログラムは、上記コンピュータに、
無線インタフェースを介して送信側機器の範囲内にあるローカル機器に接続して、利用可能な機器の識別子を要求するステップと、
上記ローカル機器によって、上記利用可能な機器の識別子の要求をピアツーピアネットワークを介して伝播させるステップと、
上記利用可能な機器の識別子を、上記送信側機器に返すステップと、
ローカル機器リスト内の上記ローカル機器の識別子を含む利用可能な機器のリストを作成するステップと、
上記送信側機器において、上記中継メッセージの受信側機器を選択するステップと、
上記選択された受信側機器を示す受信側機器識別子を含む上記中継メッセージを作成するステップと、
上記中継メッセージを、上記無線インタフェースを介して少なくとも１つのローカル機器に送信するステップとを実行させ、
上記送信側機器は、上記少なくとも１つのローカル機器のそれぞれに対する直接接続を有し、
上記受信側機器がローカル機器であるとき、上記送信側機器からの該受信側機器宛の中継メッセージだけを、上記無線インタフェースを介して送信し、他のローカル機器宛の中継メッセージを送信しないことを特徴とする媒体。
【請求項４１】
中継メッセージを送信する中継メッセージ送信システムにおいて、
無線インタフェースを介して送信側機器の範囲内にあるローカル機器に接続して、利用可能な機器の識別子を要求する手段と、
上記ローカル機器によって、上記利用可能な機器の識別子の要求をピアツーピアネットワークを介して伝播させる手段と、
上記利用可能な機器の識別子を、上記送信側機器に返す手段と、
ローカル機器リスト内の上記ローカル機器の識別子を含む利用可能な機器のリストを作成する手段と、
上記送信側機器から上記無線インタフェースを介して中継機器において、受信側機器を示す受信側機器識別子を含むとともに、アプリケーションプログラムのアプリケーションデータを含む中継メッセージを受信する手段と、
上記中継メッセージを調べて、上記中継機器が上記受信側機器であるかを判定し、該中継機器が該受信側機器であるとき、該中継機器は、該中継メッセージを送信しない手段と、
上記受信側機器がローカル機器でないとき、少なくとも１つのローカル機器を示す上記ローカル機器リストを調べて、上記受信側機器がローカル機器であるかを判定する手段と、
上記受信側機器がローカル機器であるとき、上記中継機器からの該受信側機器宛の中継メッセージだけを、上記無線インタフェースを介して送信し、他のローカル機器宛の中継メッセージは送信しない手段と、
上記受信側機器がローカル機器でないとき、上記中継機器からの上記ローカル機器リストに含まれている少なくとも１つのローカル機器宛の中継メッセージを、上記無線インタフェースを介して送信する手段とを備え、
上記送信側機器は、上記中継機器に対する直接接続を有し、
上記中継機器は、上記ローカル機器リストに示された各ローカル機器に対する直接接続を有し、
上記送信側機器は、上記受信側機器に対する直接接続を有さないことを特徴とする中継メッセージ送信システム。
【請求項４２】
コンピュータで実行可能なインストラクションからなるプログラムを記録したコンピュータで読取り可能な媒体において
上記プログラムは、上記コンピュータに、
無線インタフェースを介して送信側機器の範囲内にあるローカル機器に接続して、利用可能な機器の識別子を要求するステップと、
上記ローカル機器によって、上記利用可能な機器の識別子の要求をピアツーピアネットワークを介して伝播させるステップと、
上記利用可能な機器の識別子を、上記送信側機器に返すステップと、
ローカル機器リスト内の上記ローカル機器の識別子を含む利用可能な機器のリストを作成するステップと、
上記送信側機器から上記無線インタフェースを介して受信された、受信側機器を示す受信側機器識別子を含むとともに、アプリケーションプログラムのアプリケーションデータを含む中継メッセージを、中継機器で処理するステップと、
上記中継メッセージを調べて、上記中継機器が上記受信側機器であるかを判定し、該中継機器が該受信側機器であるとき、該中継機器は、該中継メッセージを送信しないステップと、
上記受信側機器がローカル機器でないとき、少なくとも１つのローカル機器を示す上記ローカル機器リストを調べて、上記受信側機器がローカル機器であるかを判定するステップと、
上記受信側機器がローカル機器であるとき、上記中継機器からの該受信側機器宛の中継メッセージを、上記無線インタフェースを介して送信し、他のローカル機器宛の中継メッセージは送信しないステップと、
上記受信側機器がローカル機器でないとき、上記中継機器からの上記ローカル機器リストに含まれている少なくとも１つのローカル機器宛の中継メッセージを、上記無線インタフェースを介して送信するステップとを実行させ、
上記送信側機器は、上記中継機器に対する直接接続を有し、
上記中継機器は、上記ローカル機器リストに示された各ローカル機器に対する直接接続を有し、
上記送信側機器は、上記受信側機器に対する直接接続を有さないことを特徴とする媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、引用によって本願に援用される、２００３年１０月２０日に出願された米国仮特許出願番号第６０／５１３，０９８号の優先権を主張する。また、本出願は、引用によって本願に援用される、２００３年１１月３日に出願された米国特許出願番号第１０／７００，７９８号の一部継続出願である。
【背景技術】
【０００２】
典型的なピアツーピアネットワーク（又は「Ｐ２Ｐネットワーク」）において、ピアツーピアネットワーク内の各メンバ（又はピア）は、他のメンバのそれぞれと接続を確立する。メンバは、（例えば、メンバがサーバを介してインタラクトする典型的なクライアント−サーバネットワークのように）集中型サーバを用いるのではなく、ピアツーピア接続を用いて、他のメンバにデータを直接送信し、他のメンバからデータを直接要求し、データは、他のネットワーク機器、例えばルータ又はアクセスポイントを通過することができる。この場合の接続は、有線接続（例えば、ピア又はネットワークに接続するためのネットワークケーブルを用いた接続）であっても、無線接続（例えばＩＥＥＥ８０２．１１又は「Ｗｉ−Ｆｉ」プロトコルをサポートするインタフェースを用いた接続）であってもよい。通常、ネットワークの各メンバは、ネットワークにおいて、互いに類似する責任を有し、各メンバは、多くの場合、（ネットワークメンバとして）同等であるとみなされる。例えば、Ｎ個のピアを含むピアツーピアネットワークでは、各ピアは、他のピアまでのＮ−１個の接続を有する。
【０００３】
また、幾つかのピアツーピアネットワークでは、サーバは、幾つかの集中型サービスのメンバによって、例えばアドレスを発見するために（例えば、ピアツーピアネットワークを構成する接続を確立するために）用いられる。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明は、ピアツーピアネットワークにおいて、データを中継する中継データ送信方法及び中継データ送信装置を提供する。一実施の形態においては、無線機器は、アンテナと、アンテナに接続され、アンテナによって提供される無線接続に亘る無線通信をサポートする無線通信インタフェースと、データの保存をサポートする記憶装置と、無線通信インタフェース及び記憶装置に接続され、アプリケーションサービスと、メッセージサービスと、中継メッセージ用の中継サービスとをサポートするコントローラとを備え、アプリケーションサービスは、記憶装置に保存されたアプリケーションデータを用いて、コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、メッセージサービスは、メッセージを作成するとともに、受信されたメッセージを処理し、中継サービスは、無線機器が直接無線接続を有さない選択された受信側機器を示す新たな中継メッセージを作成し、作成された新たな中継メッセージを送信し、無線機器以外の受信側機器を示す受信された中継メッセージを送信する。
【０００５】
他の実施の形態として、中継メッセージを送信する中継メッセージ送信方法は、送信側機器において、中継メッセージの受信側機器を選択するステップと、選択された受信側機器を示す受信側機器識別子を含む中継メッセージを作成するステップと、無線インタフェースを介して少なくとも１つのローカル機器に中継メッセージを送信するステップとを有し、送信側機器は、少なくとも１つのローカル機器のそれぞれに直接接続を有し、送信側機器は、受信側機器に直接接続を有さない。
【０００６】
他の実施の形態においては、中継メッセージを送信する中継メッセージ送信方法は、送信側機器から無線インタフェースを介して中継機器において、受信側機器を示す受信側機器識別子を含むとともに、アプリケーションプログラムのアプリケーションデータを含む中継メッセージを受信するステップと、中継メッセージを調べて、中継機器が受信側機器であるかを判定するステップと、少なくとも１つのローカル機器を示すローカル機器リストを調べて、受信側機器がローカル機器であるかを判定するステップと、受信側機器がローカル機器であるとき、中継機器からの受信側機器宛の中継メッセージを、無線インタフェースを介して送信するステップと、受信側機器がローカル機器でないとき、中継機器からのローカル機器リストに含まれている少なくとも１つのローカル機器宛の中継メッセージを、無線インタフェースを介して送信するステップとを有し、送信側機器は、中継機器に対する直接接続を有し、中継機器は、ローカル機器リストに示された各ローカル機器に対する直接接続を有し、送信側機器は、受信側機器に対する直接接続を有さない。
【発明を実施するための最良の形態】
【０００７】
本発明は、ピアツーピアネットワークにおいて、データを中継する方法及び装置を提供する。一実施の形態においては、第１の無線機器及び第２の無線機器は、拡張ピアツーピアネットワークに属し、各機器上で実行されるアプリケーションプログラムをサポートするデータを交換する。なお、第１の無線機器及び第２の無線機器は、ピアツーピアネットワークにおいて、直接接続を有さない。第１及び第２の無線機器は、他の１つ以上の無線機器（ローカル機器）に対する直接接続を有し、中間機器を介して互いに到達するまでの経路を検索する。第１の無線機器は、通信のために、中継メッセージの予定受信側機器として第２の無線機器を示す中継メッセージを作成する。第１の無線機器は、そのローカル機器のそれぞれに、中継メッセージを送信する。ローカル機器は、中継メッセージを受信し、一組の中継規則に従って、それ自体のローカル機器のそれぞれに中継メッセージを渡す。中継メッセージは、ピアツーピアネットワークを介して伝播され、第２の無線機器に到達する。同様に、第２の無線機器は、中継メッセージを用いて、第１の無線機器にデータを送信する。
【０００８】
以下では、一実施の形態を説明する。この実施の形態は、限定的なものではなく、更なる実施の形態及び変形例については、後に説明する。
【０００９】
一実施の形態においては、無線ゲーム機器のユーザが、無線ゲーム機器を、他の無線ゲーム機器を含む拡張無線ピアツーピアネットワークが有効なエリア（例えば店）に持ち込む。拡張ピアツーピアネットワークでは、幾つかの無線ゲーム機器は、互いに直接接続を確立することができない。無線ゲーム機器は、例えばＷｉ−Ｆｉプロトコルをサポートするインタフェースを用いて、限られた範囲の無線接続をサポートする。範囲外にある２つの無線ゲーム機器は、直接接続を確立することができない。なお、このような２つの無線ゲーム機器は、中継メッセージを双方向に送信する経路として、他の中間機器（又は一連の機器）を用いることができる。
【００１０】
ユーザは、自らの無線ゲーム機器を起動し、マルチプレーヤゲームを行うために利用可能な機器のリストを要求する。ユーザの無線ゲーム機器は、ユーザ名又は識別子、若しくは機器識別子によって、各受信側機器を示す利用可能な受信側機器のリストを作成する。ユーザの無線ゲーム機器は、範囲内にある他の無線ゲーム機器と接続することによって、受信側機器リストを作成する。範囲内にあるこれらの機器は、ユーザの無線ゲーム機器にとって、ローカル機器である。ローカル機器は、ピアツーピアネットワークを介してリスト要求を伝播し、利用可能な機器を示す情報を蓄積し、この情報をリスト要求の発信元、すなわち、ユーザの無線ゲーム機器に返す（リストの作成の実施の形態については、後に説明する）。
【００１１】
ユーザは、受信側機器リストから受信側機器を選択し、無線ゲーム機器が選択された受信側機器と通信し、ゲームに招待することを要求する。ユーザの無線ゲーム機器は、選択された受信側機器がローカル機器であるかを調べる。選択された受信側機器がローカル機器である場合、ユーザの無線ゲーム機器と、受信側機器との間で直接接続が利用できるので、ユーザの無線ゲーム機器は、選択された受信側機器との直接通信を使用する。この場合、ユーザの無線ゲーム機器は、（他のローカル機器を介することなく）受信側機器に招待メッセージを送信して、直接接続を介して直接通信を行う。選択された受信側機器がローカル機器でない場合、直接接続が利用できないので、ユーザの無線ゲーム機器は、選択された受信側機器との中継通信のために、中継メッセージを用いる。
【００１２】
中継通信においては、無線ゲーム機器は、選択された受信側機器を示し、選択された受信側機器によって使用されるデータを含む中継メッセージを作成する。また、中継メッセージは、受信側機器によって使用されるデータと、中継メッセージを識別する中継メッセージ識別子とを含む。選択された受信側機器に招待を送信するために、無線ゲーム機器は、中継メッセージに、ゲーム送信側機器及びユーザ等を示す適切な情報を含める。ゲームのために用いられる中継メッセージでは、無線ゲーム機器は、適切なアプリケーション情報を、中継メッセージに入れる。ユーザの無線ゲーム機器は、招待のための中継メッセージを作成し、直接無線接続を介して、無線ゲーム機器のローカル機器のそれぞれに中継メッセージを送信する。ローカル機器のいずれも、中継メッセージの予定受信側機器でないので、これらのローカル機器は、この中継通信における中間機器又は中継機器である。中間機器は、中継メッセージを受信すると、ローカル機器のリストを用いて、指示された受信側機器が中間機器のローカル機器であるか否かを調べる。受信側機器がローカル機器である場合、中間機器は、この受信側機器に中継メッセージを送信する。受信側機器がローカル機器でない場合、中間機器は、一組の中継規則に基づいて、全てのローカル機器に中継メッセージを送信する。この実施の形態では、１つの中継規則として、中間機器は、中継メッセージを受信したローカル機器には、中継メッセージを送信しない。他の規則として、中間機器は、同じ中継メッセージ（同じ中継メッセージ識別子によって示される）を再び送信しない。中間機器は、中継メッセージを送信した後は、中継メッセージを保持しないが、同じ中継メッセージの再送信を避けるために、中継メッセージ識別子を記録する。
【００１３】
中継メッセージは、ピアツーピアネットワークを伝播し、受信側機器として示されている無線ゲーム機器は、最終的に、中継メッセージを受信する。受信側機器は、それ自体が受信側機器であることを認識し、中継メッセージに含まれているデータを適切に使用する。受信側機器がユーザの無線ゲーム機器から招待を受信したとき、受信側機器は、受信側機器のユーザに招待を表示し、適切な指示を受ける。受信側機器は、この中継メッセージの受信側機器として、ユーザの無線ゲーム機器を示し、招待に対する応答を示す情報を含む中継メッセージを作成する。受信側機器は、ピアツーピアネットワークを介して、ユーザの無線ゲーム機器に中継メッセージを返信する。そして、２つの機器は、このような中継通信を用いて、通信を継続することができる。
【００１４】
この実施の形態では、２つの無線機器は、直接無線接続を有さず、他の無線機器を中間機器として用いて、間接接続又は中継接続を確立する。無線機器は、中継通信を用いることによって、通信範囲の限界を解決し、エリアを拡張し、通信に利用できる機器を増やすことができる。更に、２つの無線機器は、中間にサーバシステムを介在させることなく、一連のピアツーピア接続を介して通信することができる。２つの無線機器は、データを交換でき、中間機器を連携動作に参加させることなく、アプリケーションプログラム（例えばマルチプレーヤゲームアプリケーション）の連携動作を実現することができる。例えば、２つの無線機器が、第３の無線機器を中継機器として用いて、１つのゲームを共同でプレーでき、この第３の機器は、更に他の機器と他のゲームをプレーしていてもよい。異なる実施例及びアプリケーションによって、更に他の効果を得ることができる。
【００１５】
図１Ａは、それぞれ無線アンテナ１０７、１１２、１１７を有し、ピアツーピアネットワークにおいて通信を行う３つの無線機器１０５、１１０、１１５を示している。無線機器１０５、１１０、１１５は、サーバを介さず、ピアとして通信する。一実施の形態では、無線機器１０５、１１０、１１５は、無線対応ゲーム機機器又は汎用コンピュータ（例えば、ゲーム機器、ＰＤＡ、Ｗｉ−Ｆｉインタフェースをサポートするラップトップコンピュータ、携帯電話機等）である。無線機器１０５は、無線アンテナ１０７を用いて、無線機器１１０と直接無線接続を確立する。無線機器１１０、１１５も、同様に、直接無線接続を確立する。図１Ａに示す構成では、無線機器１０５及び無線機器１１５は、例えば互いにそれぞれの無線インタフェースの通信範囲内にないので、直接接続を有さない。
【００１６】
無線機器１０５、１１０、１１５は、無線接続を介して、データ（例えばメッセージ）を交換する。無線機器１０５は、無線機器１１０と直接通信する。無線機器１１０は、無線機器１０５、１１５の両方と直接通信する。無線機器１１５は、無線機器１１０と直接通信する。後述するように、無線機器１０５は、中間機器又は中継機器としての無線機器１１０を介する中継通信を用いて、無線機器１１５と間接的に通信することができる。このように、無線機器１１０は、拡張ネットワークのピアとして機能しながら、中継機器として、通信を補助することができる。
【００１７】
図１Ｂは、２つの無線機器１２０、１２５と、ネットワーク機器１３０と、サーバシステム１３５とが、直接通信及び中継通信を用いて通信する他のネットワーク環境を示している。無線機器１２０、１２５は、それぞれの無線アンテナ１２２、１２７を用いて、直接無線接続を確立する。また、無線機器１２５は、無線接続を介してネットワーク１４０と通信する。ネットワーク機器１３０及びサーバシステム１３５は、それぞれのネットワークインタフェース１３２、１３７を用いて、有線接続を介してネットワーク１４０と通信する。一実施の形態では、ネットワーク機器１３０は、ネットワーク対応コンピュータ、例えばネットワークインタフェースを有するラップトップコンピュータ又はゲーム機である。一実施の形態では、サーバシステム１３５は、クライアント（例えば無線機器１２０、１２５、ネットワーク機器１３０）を接続するデータ及び／又はアプリケーションを提供するコンピュータシステムである。一実施の形態では、ネットワーク１４０は、ローカルエリアネットワーク（local area network：ＬＡＮ）である。他の実施の形態では、ネットワーク１４０は、広域ネットワーク、例えばインターネット又は個人的なイントラネットである。
【００１８】
無線機器１２５は、ネットワーク機器１３０及びサーバシステム１３５に対する直接接続を、ネットワーク１４０（データは、他のネットワーク設備、例えば基地局及びルータを通過することができる）を介して、確立することができる。この構成では、直接接続は、ピアツーピア接続であるので、第１の機器は、第２の機器宛のメッセージを、（例えばＴＣＰ／ＩＰを用いて）第２の機器に対する直接接続を介して送信するという意味で、「直接」接続は、「間接」接続と区別される。間接接続は、一連の２つ以上の直接接続を含む接続である。例えば、無線機器１２５は、無線機器１２０に対する直接接続を有するとともに、ネットワーク機器１３０に対する直接接続を有する。したがって、無線機器１２５がネットワーク機器１３０にメッセージを送信するとき、これらのメッセージは、ピアとしてのネットワーク機器１３０宛である。また、無線機器１２０は、無線機器１２０と無線機器１２５間の第１の直接接続と、無線機器１２５とネットワーク機器１３０間の第２の直接接続とを介するネットワーク機器１３０に対する間接接続を有する。無線機器１２０がネットワーク機器１３０にメッセージを送信するとき、これらのメッセージは、無線機器１２５宛の中継メッセージであり、ネットワーク機器１３０を予定受信側機器として示している。次に、無線機器１２５は、受信中継メッセージと同じペイロードデータ（例えば、アドレスがないデータ）を含むネットワーク機器１３０宛の新たな中継メッセージを、直接接続を用いてネットワーク機器１３０に送信することによって、無線機器１２０からのこれらの中継メッセージを、ネットワーク機器１３０に中継する。これに代えて、無線機器１２５は、アドレス指定情報を変更して、同じ中継メッセージを送信する。
【００１９】
一実施の形態では、サーバシステム１３５は、情報の集中型記憶装置として機能するので、各機器は、（例えば、定期的に又は要求に応じて）サーバシステム１３５に／から情報を供給及び要求する。一実施の形態において、例えば、サーバシステム１３５は、ピアツーピアネットワークに参加する機器のリストを保存している。他の実施の形態では、サーバシステム１３５は、ピアツーピアネットワークの各参加者に対するローカル機器のリストを保存している。これに代えて、サーバシステム１３５は、機器間の通信を補足する異なる情報を供給する。例えば、サーバシステム１３５は、機器識別子によってインデックスが付された機器のユーザのユーザプロファイルを保存している。
【００２０】
無線機器１２０、１２５、ネットワーク機器１３０、サーバシステム１３５は、役割を柔軟に変更することができる。これらの機器は、必要に応じて、ピア、クライアント又はサーバとして機能することができる。例えば、サーバシステム１３５は、無線機器１２０対して集中型記憶装置として機能し、そして、無線機器１２５に対してはピアとしてインタラクトする。
【００２１】
図１Ａ及び図１Ｂに２つのネットワーク構成を示したが、他の実施の形態として、（例えば図５に示すような）他のネットワーク構成を用いてもよい。例えば、一実施の形態においては、複数の有線ネットワーク機器は、無線接続を用いることなく、ＬＡＮ又は広域ネットワークを介して、情報を交換する。有線接続された機器を用いる一実施の形態では、参加者制限を用いて、ピアツーピアネットワークに参加している機器の数を制御し、ローカル機器制限を用いて、（直接接続された機器に対して利用可能な）ローカル機器とみなされる機器の数を制御する。他の実施の形態では、様々な種類の無線機器、例えば携帯電話機及びＰＤＡが用いられる。
【００２２】
図２は、ピアツーピア中継通信をサポートする例示的な無線機器２０５の内部のブロック図を示している。無線機器２０５は、無線アンテナ２１５に接続された無線インタフェース２１０を備える。無線インタフェース２１０は、無線アンテナ２１５を用いて、他の無線機器までの無線接続の確立をサポートし、確立された接続を介して、データを交換する。一実施の形態では、無線インタフェース２１０は、エアーインタフェース、例えばＷｉ−Ｆｉ又はブルートゥースのようなローカル無線プロトコルをサポートする一般的な無線インタフェースである。無線インタフェース２１０のコンポーネントは、図２には示していないが、これらのコンポーネント（例えば適切なフィルタ、増幅器等）及びその動作は、当業者にとって明らかである。他の実施の形態においては、異なるエアーインタフェース、例えば符号分割多元接続（ＣＤＭＡ）を、あるいは非無線インタフェース、例えば赤外線をサポートすることができる。他の実施の形態として、複数の無線インタフェース及び／又は１つ以上の有線インタフェース（例えばＩＥＥＥ−１３９４又はイーサネット（登録商標））をサポートする。
【００２３】
無線インタフェース２１０には、コントローラ２２０が接続されている。コントローラ２２０は、無線機器２０５及びそのコンポーネントの動作を制御する。一実施の形態では、コントローラ２２０は、マイクロプロセッサ及び関連するサブシステムである。コントローラ２２０は、アプリケーションサービス２２５と、メッセージサービス２３０と、中継サービス２３５と、受信側機器選択サービス２４０とを提供する。コントローラ２２０のサービスは、記憶装置２５５に記憶されたソフトウェアプログラムとして実装されており、コントローラ２２０によって実行される。これに代えて、サービスの１つ以上は、部分的又は完全に、ハードウェア又は無線機器２０５の別のサブシステムとして実装することができる。他の実施の形態では、コントローラ２２０は、これらのサービスのいずれも提供せず、これに代えて、無線機器２０５の動作は、無線機器２０５のユーザインタフェースを介して、ユーザによって手動で制御される（例えば、コントローラ２２０は、メッセージを送信する自動動作のサービスを提供するのではなく、制御プロセッサとして、ユーザコマンドに基づいてコンポーネントの動作を制御する）。アプリケーションサービス２２５は、無線機器２０５がアクセス可能なアプリケーションプログラムの実行及び対応するアプリケーションデータの管理をサポートする。一実施の形態では、アプリケーションサービス２２５は、ゲームアプリケーションプログラムの実行をサポートする。
【００２４】
メッセージサービス２３０は、メッセージの作成と、無線インタフェース２１０を介するメッセージの送信と、無線インタフェース２１０を介して受信されたメッセージの処理とをサポートする。メッセージサービス２３０は、主に、直接通信で用いられるメッセージのためのサービスである。
【００２５】
中継サービス２３５は、（例えば図３及び図６を用いて）後述するように、中継メッセージの作成と、中継メッセージの送信と、受信された中継メッセージの処理とをサポートする。中継サービス２３５は、主に、中継通信で用いられるメッセージのためのものであり、メッセージサービス２３０（例えば、サブサービス、例えばアドレス挿入又は下位プロトコル層の機能の共用）と連携して動作する。一実施の形態では、中継サービス２３５は、無線機器２０５が直接接続を確立することができる機器を示すローカル機器リストを作成及び保守する。
【００２６】
受信側機器選択サービス２４０は、（例えば図４及び図５を用いて）後述するように、通信に利用可能な受信側機器のリスト又はマップの作成と、通信する受信側機器の選択とをサポートする。一実施の形態では、受信側機器リストは、（ローカル機器リストによって示されている）ローカル機器のための対応するアドレス指定情報を含む機器のリストである。また、受信側機器リストは、受信側機器に関する追加情報（例えばユーザ名）を指示（又は参照）することができる。他の実施の形態では、受信側機器選択サービス２４０は、利用可能な受信側機器と、ローカル機器ではない各受信側機器に対して、その受信側機器に到達するために用いられる１つ以上の中間機器（又は接続）との両方を示す利用可能な受信側機器のマップを作成する。受信側機器選択サービス２４０は、ローカル機器に問い合わせることによって、受信側機器リスト又はマップを作成する。受信側機器リスト又はマップの作成については、後に更に詳細に説明する。他の実施の形態では、受信側機器選択サービス２４０は、サーバから受信した情報を用いて、リスト又はマップを作成し、又はサーバからリスト又はマップを取得する。
【００２７】
また、無線機器２０５は、ユーザインタフェース２４５と、メディアインタフェース２５０よ、記憶装置２５５と、電源２６０とを備える。ユーザインタフェース２４５は、ユーザコマンドを受信する入力操作子（例えばキーパッド、ボタン、方向指示パッド又はジョイスティック等）と、ユーザにデータを提示する出力装置（例えばディスプレイ及びオーディオスピーカ）とを備える。メディアインタフェース２５０は、メディアの種類に基づいて、メディアに接続し、又はメディアが挿入されて、メディアとデータを交換するコンポーネントを備える。一実施の形態では、メディアインタフェース２５０は、光ディスクが着脱可能に挿入され、光ディスクからデータを読み出すインタフェース（例えばＣＤ−ＲＯＭドライブ）と、リムーバブルメモリコンポーネントに接続し、このリムーバブルメモリコンポーネントに／からデータを書き込み／読み出す他のインタフェース（例えば、ＵＳＢメモリカードが挿入されるＵＳＢポート、リムーバブルハードディスクドライブインタフェース、又はメモリスティック（商標）インタフェース）とを備える。記憶装置２５５は、無線機器２０５の動作及びアプリケーションの実行に用いられるデータを保存する。例えば、一実施の形態では、中継メッセージ及び受信側機器リストは、記憶装置２５５に保存される。一実施の形態では、記憶装置２５５は、ＲＡＭ及びフラッシュメモリの組合せである。また、他の実施の形態では、記憶装置２５５は、データ、例えばユーザデータ、アプリケーションデータ、ファイルをより長い期間記憶する適切な永続的な記憶装置、例えばフラッシュメモリ及び／又はハードディスクドライブを備える。電源２６０は、無線機器２０５のコンポーネントに電力を供給する。一実施の形態では、電源２６０は、着脱可能なバッテリ、及び対応する外部電源接続を有する充電式の内部の電源から電力が供給されるインタフェースを備える。図２では、ユーザインタフェース２４５と、メディアインタフェース２５０と、記憶装置２５５と、電源２６０との間の内部接続、及び無線機器２０５の他のコンポーネントとの内部接続を明示的に示していないが、これらの接続は、当業者にとって明らかである。
【００２８】
他の実施の形態では、無線通信に対応しておらず、他の機器と通信するためのインタフェースをサポートするネットワーク機器は、図２に示す無線機器２０５と同様のコンポーネントを備える。ネットワーク機器は、アプリケーション、メッセージ、中継、受信側機器選択サービスを提供し、また、後述する中継通信をサポートするコントローラを備える。図１Ｂを用いて上述したように、無線機器とネットワーク機器との組合せを用いて、中継通信を行うことができる。
【００２９】
図３は、中継メッセージを送信する処理の一例のフローチャート３００を示している。まず、中継通信をサポートする無線機器は、ピアツーピアネットワークに参加している。無線機器は、（例えばビーコンを用いて）ローカル機器のリストを作成しているとともに、これらのローカル機器に対して直接接続を開始している。無線機器は、ユーザから、受信側機器を選択する要求を受信する。
【００３０】
ブロック３０５において、無線機器は、通信する受信側機器を選択する。無線機器は、例えば、図４を参照して後述する手法を用いて、利用可能な受信側機器と、対応する接続パスとを示す受信側機器マップを作成する。他の実施の形態では、無線機器は、マップではなく、接続を示さないリストを作成する。一実施の形態では、無線機器が受信側機器マップを既に有しており、この受信側機器マップが現在有効である（例えば、有効期限閾値及びマップの作成又は更新のタイムスタンプによって判定され、又はローカル機器に問い合わせることによって判定される）場合、無線機器は、新たな受信側機器マップ（又はリスト）を作成しない。他の実施の形態では、無線機器は、サーバから供給されるリスト又はマップから受信側機器を選択し、又はサーバによって受信側機器を選択する（オプションとして、受信側機器までのパスをサーバから受信する）。
【００３１】
無線機器は、ユーザに受信側機器マップを表示し、受信側機器を示す選択肢を受信する。無線機器は、ローカル機器リストを調べることによって、選択された受信側機器がローカル機器であるかを判定する。他の実施の形態では、受信側機器リストは、また、（特定の受信側機器リストを保存する無線機器に対して）各受信側機器がローカル機器であるか否かを示している。選択された受信側機器がローカル機器である場合、無線機器は、直接通信を用いて、選択された受信側機器とデータを交換する。選択された機器がローカル機器でない場合、無線機器は、中継通信を用いる。
【００３２】
ローカル機器でない受信側機器を選択した後、ブロック３１０において、無線機器は、中継メッセージを作成する。中継メッセージは、選択された受信側機器、例えば受信側機器リストからの受信側機器識別子を示す情報を含んでいる。受信側機器リストが受信側機器までの完全な又は部分的なパスを示す一実施の形態では、無線機器は、パス情報を、中継メッセージに入れる。他の実施の形態では、受信側機器リストから受信側機器を選択した後、無線機器は、選択された機器までのパスを発見し、このパス情報を、中継メッセージに入れる。他の実施の形態では、中継メッセージは、複数の受信側機器を示す情報（例えばリスト）を含んでいる。中継メッセージは、中継メッセージを中継メッセージとして識別する中継メッセージコードを含んでいる。無線機器は、（他の中継メッセージに対して特定の中継メッセージを識別するために）中継メッセージをピアツーピアネットワークを介して送信するメッセージとして識別する中継メッセージ識別子を、中継メッセージに割り当てる。無線機器は、中継メッセージ識別子を、中継メッセージに入れる。また、一実施の形態では、無線機器は、中継メッセージがネットワークを介して伝播される距離を制限するホップカウント制限を入れる（ホップカウントについては、後述する）。無線機器は、受信側機器に送信する適切な追加データを生成し、追加データを、中継メッセージのペイロードデータとして入れる。例えば、無線機器が受信側機器とゲームをプレーするとき、無線機器は、適切なゲームデータを、中継メッセージに入れる。
【００３３】
ブロック３１５において、無線機器は、作成した中継メッセージを送信する。一実施の形態では、無線機器は、中継メッセージを、無線機器の無線インタフェースを介してブロードキャストして、中継メッセージを、無線機器のローカル機器リスト内の全ての機器に送信する。他の実施の形態では、無線機器は、中継メッセージのパス情報に基づいて、中継メッセージを、１つのローカル機器又は選択されたローカル機器に送信する。
【００３４】
無線機器が受信側機器と中継通信を開始した後、無線機器は、ブロック３１０、３１５で上述したように、中継メッセージの作成及び受信側機器への送信を継続する。
【００３５】
有線機器、又は有線インタフェースを有する無線機器は、同様の技術を用いて、中継メッセージを送信し、すなわち、適切なインタフェースを選択し、対応するローカル機器の中継メッセージを送信する。
【００３６】
一実施の形態では、無線機器は、受信側機器として選択するのに利用できることを表す、又は中間機器として用いるローカル機器の数を制限する最大ピアカウント値を有する。無線機器は、利用可能な全てのローカル機器（例えば、ビーコンに対する応答によって判定される）を示す第１のローカル機器リストを作成する。無線機器は、利用可能なローカル機器から、最大ピアカウント値以下の数の機器を選択することによって、第２のローカル機器リストを作成する。無線機器は、様々な基準条件、例えば応答時間又は信号強度を用いて、第２のローカル機器リストの機器を選択する。一実施の形態では、最大ピアカウント値は、動的である。無線機器は、最大ピアカウント値を、無線機器の現在の性能負荷に基づいて（例えば、機器がアイドル状態にあるときは、最大ピアカウント値を大きくして）、又はネットワークトラヒックに基づいて（例えば、トラヒックが非常に混んでいるときは、最大ピアカウント値を小さくして）調整する。他の実施の形態では、無線機器は、最大ピアカウント値を、ユーザ又はサーバからの情報に基づいて設定する。
【００３７】
図４は、例えば、図３のブロック３０５において、受信側機器マップを用いて、受信側機器を選択する処理の実施の形態のフローチャート４００を示している。まず、中継通信をサポートする無線機器は、ピアツーピアネットワークに参加している。無線機器は、（例えばビーコンを用いて）ローカル機器のリストを作成しているとともに、これらのローカル機器との間に直接接続を開始している。無線機器は、ユーザから受信側機器を選択する要求を受け取っている。
【００３８】
ブロック４０５において、無線機器は、各ローカル機器に受信側機器マップを要求する。受信側機器マップは、１つ以上の機器と、受信側機器マップのオーナに対してローカルではない各機器までの完全なパス又は部分的なパスとを示している。受信側機器マップのオーナは、パスに基づいて、受信側機器マップを作成した機器である。したがって、パスは、受信側機器マップのオーナと、そのパスにおける特定の受信側機器との間の１つ以上の対応する接続又は中間機器を示している。完全なパスは、全ての中間接続、すなわち全ての中間機器を示し、部分的なパスは、１つ以上の中間接続、すなわち１つ以上の中間機器、例えば最後の１つの機器を示す。一実施の形態では、受信側機器マップは、機器を示すノードと、接続を示すリンクとを有するグラフである。グラフを用いる一実施の形態では、受信側機器マップは、オーナは示していない。他の実施の形態では、受信側機器マップは、各受信側機器毎の１つのエントリと、オーナから対応する受信側機器までのパスを示すフィールドとを有するテーブルである。各ローカル機器は、それらの受信側機器マップを無線機器に返す。一実施の形態では、各ローカル機器は、それらの受信側機器マップを返す前に、受信側機器マップを更新する。一実施の形態では、マップ要求は、受信側機器マップの要求、あるいは現在の受信側機器マップが古い場合における新たな受信側機器マップを作成する要求である。他の実施の形態では、マップ要求を、特定のローカル機器宛ではなく、ブロードキャストとして送信する。受信側機器マップの作成の実施の形態については、後に詳細に説明する。
【００３９】
ブロック４１０において、無線機器は、マップ要求により受信した応答に基づいて、受信側機器マップを作成する。無線機器は、受信した受信側機器マップをそれ自体のローカル機器リストに結合して、無線機器をオーナとして有する受信側機器マップを作成する（これにより、無線機器に対するパスが定義される）。他の実施の形態では、無線機器が受信側機器マップを既に有しており、この受信側機器マップが現在有効である（例えば、有効期限閾値及び受信側機器マップの作成又は更新のタイムスタンプを用いて判定される）場合、無線機器は、マップ要求を送信せず、又は新たな受信側機器マップを作成しない。
【００４０】
ブロック４１５において、無線機器は、受信側機器マップから受信側機器を選択する。無線機器は、無線機器のユーザインタフェースを介してユーザに受信側機器マップを表示する。ユーザは、受信側機器を選択し、無線機器は、ユーザ選択に対応する受信側機器を選択する。
【００４１】
受信側機器マップ又はリストの作成には、様々な手法を用いることができる（これらの手法は、適宜、受信側機器リストと受信側機器マップのいずれか一方又は両方に適用することができる）。これらの手法には、後述する伝播、ホップカウント、ネットワーク識別子、定期的更新等に基づく手法が含まれる。また、これらの手法又は他の手法を組み合わせて用いてもよい。
【００４２】
一実施の形態では、無線機器は、１つ以上の更新規則を用いて、受信側機器マップを更新する。１つの規則は、環境を結合することによって受信側機器マップを更新することである。他の規則は、受信側機器マップを定期的に更新することである。無線機器は、受信側機器マップの最後の更新からの経過時間の比較に基づいて、受信側機器マップの期限が切れたときに、マップ要求を送信する。他の規則は、ローカル機器が利用できなくなったときに、受信側機器マップを更新することである。無線機器が、（例えば、定期的なポーリング、又は要求に対する応答がなかったことに基づいて）ローカル機器が利用可能なでなくなったことを検出したとき、無線機器は、マップ要求を送信する。他の規則は、新たなローカル機器が利用可能になったとき、受信側機器マップを更新することである。他の規則は、無線機器が、ローカル機器がその受信側機器マップを更新したことを示す更新メッセージをローカル機器から受信したとき、受信側機器マップを更新することである。機器がその受信側機器マップを変更したとき、機器は、更新メッセージを各ローカル機器に送信する。そして、更新メッセージを受信した各機器は、それらの受信側機器マップを更新するためにマップ要求を送信する。これらの又は様々な他の規則の１つ以上を用いて、受信側機器マップを作成し、更新し、維持管理することができる。
【００４３】
図５は、１つのネットワーク構成５００の実施の形態を、ノード及びリンクのグラフとして示している。マップの作成の実施の形態については、この図５を参照して、後に説明する。各ノードは、機器を表しており、ノード間の各リンクは、２つの機器間の直接接続を表している。ノードのそれぞれには、対応する機器を表す文字のラベルを付している。例えば、機器Ｘは、Ｘのラベルが付されたノードに対応している。図５において、機器Ｘは、３つの機器Ａ、Ｂ、Ｃに対する直接接続を有している。機器Ｘは、無線機器であり、機器Ｘの通信範囲は、ノードＸを中心とする破線の円５１０によって示されている。機器Ｘは、通信範囲外にある機器とは、直接無線接続を確立することができない。例えば、機器Ｘの通信範囲外には、機器Ｄがある（破線の円５１０の外側にあるノードＤによって示されている）。同様にまた、他の機器は、通信範囲内にある機器と直接接続を確立している。他の構成では、機器の幾つか又は全ては、有線機器であり、他の基準（例えば人為的制限、例えばユーザによって設定されるローカル機器制限）に基づいて、直接接続が制限されている。
【００４４】
伝播
マップの作成の一実施の形態では、ピアツーピアネットワーク内の機器は、伝播（propagation）を用いて、マップを作成及び更新する。まず、機器は、マップ要求を生成し、マップ要求を各ローカル機器に送信する。マップ要求は、利用可能な機器のマップを要求するものであり、要求を識別する識別子を含んでいる。次に、マップ要求を受信した各ローカル機器は、同じマップ要求識別子を用いたマップ要求を、それら自体のローカル機器に送信し、一方、マップ要求の送信側機器には、このマップ要求を返すことはなく、また、同じマップ要求識別子を有するマップ要求を既に送信しているときも、このマップ要求を送信しない。このマップ要求を受信した機器は、同様の処理を繰り返し、マップ要求を送信する。マップ要求の送信側機器にマップを返すために、機器は、機器がマップ要求を送信したローカル機器のそれぞれからの応答を待つ。機器が、以前に受信したマップ要求と同じマップ要求識別子を有するマップ要求を受信した場合、機器は、失敗メッセージを返信する。機器がマップ要求を送信できる利用可能なローカル機器を有していない場合（例えば、唯一のローカル機器がマップ要求の送信側である場合）、機器は、その機器のローカル機器リストを、マップ要求の送信側機器に返し、又はローカル機器リストに基づいたマップを返す。マップ要求を送信したローカル機器のそれぞれから応答を受信した後（失敗メッセージを返した機器を除く）、機器は、そのマップを作成（又は更新）するために、（存在する場合）受信したマップの情報を、その機器のローカル機器リストに結合する。そして、機器は、マップ要求の送信側機器に新たなマップを返す。この処理は、マップ要求の最初の送信側機器が、そのローカル機器からマップを受信し、それ自体のマップを作成するまで繰り返される。
【００４５】
図５を用いて、上述した伝播手法を用いてマップを作成する実施の形態を説明する。機器Ｘは、マップ要求を、そのローカル機器である機器Ａ、Ｂ、Ｃのそれぞれに送信する。機器Ａは、マップ要求を、マップ要求の送信側機器である機器Ｘを除く、そのローカル機器である機器Ｄ、Ｅに送信する。機器Ａによって送信されるマップ要求は、機器Ｘによって送信されたマップ要求と同じマップ要求識別子を有するので、全てのマップ要求は、機器Ｘによって送信された最初のマップ要求から伝播されている。機器Ｄは、機器Ａからマップ要求を受信し、マップ要求を機器Ｅに送信する（機器Ｄは、機器Ａからマップ要求を受信しているので、機器Ａにはマップ要求を送信しない）。同様に、機器Ｅは、マップ要求を機器Ｄに送信する。機器Ｄが機器Ｅからマップ要求を受信したとき、機器Ｄは、（マップ要求識別子を突き合わせることによって）このマップ要求は、機器Ａから受信し、機器Ｅに送信したマップ要求と同じであることを認識する。したがって、機器Ｄは、失敗メッセージ（又はマップ要求が既に送信されていることを示す他のメッセージ）を、機器Ｅに送信する。同様に、機器Ｅは、機器Ｄに失敗メッセージを送信する。機器Ｄは、機器Ｅから失敗メッセージを受信したとき、（機器Ｄは、機器Ｅだけにマップ要求を送信しているので）これ以上未解決の応答（pending responses）がないと認識する。機器Ｄは、応答として如何なるマップも受信していないので、そのローカル機器リスト（機器Ａ、Ｅを示す）を、機器Ａからのマップ要求に対する応答として、機器Ａに返信する。同様に、機器Ｅは、そのローカル機器リスト（機器Ｄ、Ａを示す）を機器Ａに返信する。機器Ａは、その未解決の全ての応答を受信したことを認識し、受信した応答及びそのローカル機器リストからマップを作成する。機器Ａが作成するマップは、機器Ｄが、機器Ａから機器Ｄまでの接続を介する受信側機器として、利用可能であり、機器Ｅが、機器Ａから機器Ｅまでの接続を介する受信側機器として、利用可能であり、機器Ａが、受信側機器として（例えばＤ−Ａ、Ｅ−Ａ、Ａとして）、利用可能であることを示す。２つのマップが同じ機器までの代替パスを提供するとき、より短いパスが使用さる（中間機器の数が多い方が距離が長いとみなされる）。２つのパスが同じ長さのとき、いずれかのパスが選択され、又は両方のパスがマップに入れられる。したがって、機器Ａから機器Ｅまでには直接パスがあるので、機器Ａは、機器Ｄから機器Ｅまでのパスが利用可能であることを、機器Ｘに返すそのマップには入れない。
【００４６】
機器Ｂは、機器Ｘからマップ要求を受信し、マップ要求を機器Ｃに送信する。しかしながら、機器Ｃは、既に機器Ｘからマップ要求を受信しているので、失敗メッセージを機器Ｂに返信する。機器Ｂは、これ以上未解決の応答がなく、如何なるマップも受信していないので、機器Ｘ、Ｃを含むローカル機器リストを機器Ｘに返す。これに代えて、機器Ｂは、ローカル機器リストを返信するのではなく、機器Ｃが、機器Ｂから機器Ｃまでの接続を介する受信側機器として、利用可能であり、機器Ｂが、受信側機器として（例えばＣ−Ｂ、Ｂとして）、利用可能であることを示すマップを返信する。
【００４７】
機器Ｃは、機器Ｘからマップ要求を受信し、マップ要求を、機器Ｘ以外のそのローカル機器である機器Ｂ、Ｆ、Ｇに送信する。機器Ｂは、失敗メッセージを返す。次に、機器Ｆは、マップ要求を、そのローカル機機器である機器Ｈ、Ｉ、Ｇに送信する。機器Ｇは、マップ要求を、そのローカル機器である機器Ｆ、Ｉ、Ｊ、Ｋに送信する。このように、機器は、マップ要求を伝播することを続け、マップを作成し、返信する。機器Ｃが、送信したマップ要求に対するその未解決の応答を受信したとき、機器Ｃは、（上述した記号を用いて表現すると）Ｌ−Ｈ−Ｆ−Ｃ、Ｍ−Ｈ−Ｆ−Ｃ、Ｈ−Ｆ−Ｃ、Ｉ−Ｆ−Ｃ、Ｊ−Ｇ−Ｃ、Ｋ−Ｇ−Ｃ、Ｆ−Ｃ、Ｇ−Ｃ、Ｃを示すマップを作成する。
【００４８】
機器Ｘが、機器Ａ、Ｂ、Ｃから未解決の応答を受信したとき、機器Ｘは、応答と、そのローカル機器リストとを結合して、これらの受信側機器と、パスＡ、Ｂ、Ｃ、Ｄ−Ａ、Ｅ−Ａ、Ｆ−Ｃ、Ｇ−Ｃ、Ｈ−Ｆ−Ｃ、Ｉ−Ｆ−Ｃ、Ｊ−Ｇ−Ｃ、Ｋ−Ｇ−Ｃ、Ｌ−Ｈ−Ｆ−Ｃ、Ｍ−Ｈ−Ｆ−Ｃとを示すマップを作成する。このマップを用いて、機器Ｘは、利用可能な受信側機器を様々な方法、グラフィカルなマップ（例えば接続を示す）として、リスト又は受信側機器として、距離指標を有するリスト（例えば、到達するまでの接続の数又はカラーコード）として表示することができる。ユーザが受信側機器として機器Ｈを選択した場合、例えば、機器Ｘは、機器ＨまでのパスＸ−Ｃ−Ｆ−Ｈを、機器Ｈに対する中継メッセージに入れることができる。機器Ｘが中継メッセージを送信するとき、機器Ｘは、パス情報を用いて、中継メッセージを機器Ｃに送信し、他のローカル機器Ａ、Ｂには送信しない。同様に、機器Ｃは、（機器Ｂ、Ｇではなく）機器Ｆに中継メッセージを渡す。
【００４９】
他の実施の形態では、無線機器は、マップの代わりに、受信側機器リストを用いる。受信側機器リストは、利用可能な受信側機器を示し、パス情報を（明示的には）示さない。ある種類の受信側機器リストは、受信側機器が、受信側機器リストのオーナに対してローカル機器であるか否かを示す。機器は、上述した伝播手法を用いて、マップではなく、受信側機器リストを返信し、機器Ｘは、機器Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍを示す受信側機器リストを作成する。
【００５０】
他の実施の形態では、機器は、冗長なパス情報を維持している。機器は、利用可能なパスを示す受信側機器マップを保存し、選択のために受信側機器マップを表示するとき、受信側機器マップにフィルタをかけて、冗長なパスを取り除く。受信側機器マップ内の他の機器が利用できなくなった場合、機器は、冗長なパス情報を用いて、利用できなくなった機器を介して接続されると示されていた機器までの他のパスを識別する。例えば、図５に示す実施の形態では、機器Ｉから機器Ｘまでには、パスＩ−Ｆ−Ｃ−ＸとパスＩ−Ｇ−Ｃ−Ｘの２つのパスがある。受信側機器を選択するために表示する際に、機器Ｘのフィルタが機器Ｆを介する第１のパスを選択した場合、機器Ｇを介する第２のパスは冗長であるので、表示されない。機器Ｘは、冗長なパス情報を保守しているので、機器Ｆが利用できなくなった場合、機器Ｘは、利用可能な機器Ｇを介する第２のパスを表示することができる。
【００５１】
ホップカウント
他の実施の形態では、機器は、マップ要求又はリスト要求をどこまで（幾つの接続を経由して）伝播するかを制限するために、ホップカウントを用いる。「ホップ」には、様々な定義を用いることができる。１つの定義では、ホップは、２つの機器間の接続又はリンクである。図５に示す構成では、機器Ｘと機器Ｃ間の接続は、１ホップである。機器Ｘと機器Ｈ間のパスは、３ホップである。他の定義では、ホップは、パスに沿った２つの中間機器間の接続である。図５に示す構成では、機器Ｘと機器Ｈ間のパスには、１ホップが存在する。機器Ｘと機器Ｃ間には、機器Ｘが中間機器ではないので、ホップは存在しない。機器Ｃと機器Ｆ間の接続は、機器Ｃ及び機器Ｆが中間機器であるので、ホップである。機器Ｆと機器Ｈ間の接続は、機器Ｈが受信側機器であり、中間機器でないので、ホップではない。したがって、機器Ｘと機器Ｈ間のパスのホップカウントは、１である。他の実施の形態では、ホップカウントの異なる定義、例えばホップとして最初にカウントした後の全ての接続を用いることができる（この場合、機器Ｘと機器Ｈ間のホップカウントは、２となる）。
【００５２】
ホップカウントが閾値に達したとき、機器は、マップ又はリスト要求を更に送信しない。ホップカウントが３に制限されたリスト要求を用いる実施の形態では、機器は、ホップカウントが３に達したとき、リスト要求を送信しない。この３の制限によって、３ホップ以下の全ての受信側機器のリストが作成される。ホップカウントは、リスト要求に入れられる。各リンクがホップであるホップの定義を用いる場合、ホップカウントの初期値は１であり、ホップカウントは、機器が他の機器にリスト要求を送信したとき、１インクリメントされる（例えば、送信側機器によってインクリメントされる）。図５に示す実施の形態では、機器Ｘが機器Ｃにリスト要求を送信したとき、ホップカウントは、１から２にインクリメントされる。また、機器Ｃが機器Ｆにリスト要求を送信したとき、ホップカウントは、３にインクリメントされる。ここで、ホップカウントは、制限値である３に達する。したがって、機器Ｆは、そのローカル機器（機器Ｇ、Ｈ、Ｉ）にリスト要求を送信せず、代わりに、機器Ｃにローカル機器リストを返す。このパターンに従えば、機器Ｘが、機器Ａ、Ｂ、Ｃに送信したリスト要求Ｎ対する未解決の応答を受信したとき、機器Ｘは、機器Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋを示すリストを作成する。このリストは、機器Ｈがリスト要求を受信しないので、機器Ｌ、Ｍを含んでいない。
【００５３】
ネットワーク識別子
受信側機器マップ又はリストの作成を制御する他の実施の形態では、ネットワーク識別子を、マップ又はリスト要求に入れる。ネットワークに参加するそれぞれの機器は、同じネットワーク識別子を保存する。機器がマップ又はリスト要求を送信するとき、機器は、ネットワーク識別子を、マップ又はリスト要求に入れる。機器が、それ自体のネットワーク識別子とは異なるネットワーク識別子を示すマップ又はリスト要求を受信した場合、機器は、機器がそのネットワークに参加していないことを示す辞退メッセージ（decline message）を、送信側機器に返す。機器が辞退メッセージを受信したとき、機器は、辞退メッセージを送信した機器を、利用可能な受信側機器のリスト又はマップに入れない。ネットワークへの参加は、サーバによって、又は参加機器の自己調整（例えば、招待又は要求と、受諾と）によって管理される。
【００５４】
定期的更新
受信側機器マップ又はリストを作成する他の実施の形態では、機器は、定期的更新を用いて、各ローカル機器に定期的に（又は必要に応じて）それぞれのリストを要求することによって、受信側機器マップ又はリストを作成する。機器は、リスト要求を伝播しない。機器は、その現在の受信側機器リストを、要求側機器に返す。機器は、応答を受信したとき、応答をローカル機器リストに結合することによって、それ自体の受信側機器リストを更新する。この後に、機器がローカル機器からリスト要求を受信したとき、機器は、更新した受信側機器リストを返す。このように、各機器の受信側機器リストは、徐々に発達し、利用可能な機器の全てを含むようになる。受信側機器マップについても、同様の手法を用いることができる。受信側機器マップのパス情報を用いて、利用可能な機器の変化を、受信側機器マップに適用することができる。図５に示す実施の形態では、機器Ｘが完全な受信側機器リスト（機器Ａ〜Ｍを含む）を有し、機器Ｃが利用可能ではなくなったことを示す更新を受信した場合、機器Ｘは、パス情報を用いて、機器Ｃが機器Ｆ〜Ｍまでのリンクを提供しているので、機器Ｆ〜Ｍも利用できなくなったと判定することができる。一実施の形態では、接続された機器を取り外すことにより、機器が新たなマップ要求を送信するようにすることができる（例えば伝播手法を用いて）。
【００５５】
他の様々な技術を用いて、受信側機器マップ及びリストを作成及び更新することができる。例えば、他の手法では、無線機器は、定期的に、それ自体のローカル機器リスト又は受信側機器リスト（又はマップ）をブロードキャストし、これに応じて、他の機器が、それぞれの受信側機器リスト及びマップを更新する。他の実施の形態では、サーバは、リスト、マップ及び／又はパスを、ピアツーピア（直接又は中継）である機器間の通信を介して提供する。
【００５６】
図６は、中間機器又は中継機器から中継メッセージを送信する処理の実施の形態のフローチャート６００を示している。まず、中継通信をサポートする無線機器は、ピアツーピアネットワークに参加している。無線機器は、アプリケーションプログラムを実行していてもよく、実行していなくてもよい。無線機器は、（例えばビーコンを用いて）ローカル機器のリストを作成しているとともに、これらのローカル機器に対して直接接続を開始している。
【００５７】
ブロック６０５において、無線機器は、無線機器のローカル機器の１つから中継メッセージを受信する。無線機器は、中継メッセージを、無線機器の無線インタフェースを介して受信する。中継メッセージは、中継メッセージコードを含んでいるので、無線機器は、受信した中継メッセージが中継メッセージであることを認識する。アプリケーションデータを含む中継メッセージの場合、無線機器は、中継メッセージのアプリケーションデータに対応するアプリケーションプログラムのローカルコピー又はローカルバージョンを必ずしも実行せずに、中継メッセージに含まれているアプリケーションデータに対応するアプリケーションプログラムとは異なるアプリケーションプログラムを実行してもよい。なお、適切なときに（例えば、無線機器がそのアプリケーションプログラム又は関連するアプリケーションプログラムを実行している場合）、無線機器は、中継メッセージのアプリケーションデータを保存又は使用することができる。
【００５８】
ブロック６１０において、無線機器は、既に中継メッセージを受信しているか調べる。無線機器は、中継メッセージから中継メッセージ識別子を読み出して、読み出した中継メッセージ識別子を、（前に受信された中継メッセージから保存されていた）保存されていた中継メッセージ識別子からなる受信中継メッセージリストと比較する。読み出した中継メッセージ識別子が、受信中継メッセージリストに保存されている中継メッセージ識別子と一致する場合、無線機器は、中継メッセージを前に受信していると判定し、中継メッセージを破棄する。一方、受信された中継メッセージ識別子が、受信中継メッセージリスト内のいずれの中継メッセージ識別子とも一致しない場合、無線機器は、この中継メッセージが新たな中継メッセージであると判定し、中継メッセージ識別子を受信中継メッセージリストに追加する。
【００５９】
中継メッセージが新たな中継メッセージである場合、ブロック６１５において、無線機器は、無線機器が中継メッセージにおいて指示されている受信側機器であるかを調べる。この場合、無線機器は、中継メッセージから受信側機器情報を読み出して、受信側機器情報を、無線機器を識別する情報と比較する。無線機器が指示されている受信側機器である場合、無線機器は、中継メッセージを中継せず、中継メッセージのペイロードデータを呼び出して、処理する（例えば、ペイロードデータをアプリケーションデータとして用いて、ゲームアプリケーションプログラムを実行する）。中継メッセージが複数の受信側機器（例えば、無線機器と、少なくとも１つの更なる機器と）を示している場合、無線機器は、ペイロードデータを処理して、中継メッセージを送信し、ブロック６２０に進む。
【００６０】
無線機器が、中継メッセージにおいて指示されている受信側機器ではない場合、ブロック６２０において、無線機器は、指示されている受信側機器が無線機器のローカル機器であるか否かを調べる。無線機器は、受信側機器情報を、無線機器のローカル機器リストと比較する。
【００６１】
受信側機器がローカル機器の１つである場合、ブロック６２５において、無線機器は、中継メッセージを、無線インタフェースを介して受信側機器に送信する。受信側機器が無線機器のローカル機器の１つでない場合、ブロック６３０において、無線機器は、中継メッセージを、中継メッセージを無線機器に送信してきたローカル機器を除いて、ローカル機器のそれぞれに送信する。パスを用いる実施の形態では、中継メッセージが、次の中間機器を示すパス情報、したがって、無線機器がどのローカル機器に中継メッセージを送信するかを含む場合、無線機器は、これによって示されている中間機器に中継メッセージを送信する。
【００６２】
図６に示す処理は、一組の中継規則（例えば、同じ中継メッセージを２回送信しない）に従って実行される。他の規則の組を用いる（又は１つの規則だけを用いる、又は規則を用いない）実施の形態では、中継メッセージをどのように扱うかを決定する処理は、異なっていてもよい。例えば、一実施の形態においては、中間機器は、中継メッセージを送信する前に、更新された受信側機器マップ又はリストを調べて、示されている受信側機器が現在も利用可能であるかを確認する。他の実施の形態では、中間機器が同じ中継メッセージをまだ送信していない場合、中継メッセージは、常に、（例えば、特定の機器ではなく、通信範囲内の全ての機器に）ブロードキャストされる。
【００６３】
本発明は、電気的なハードウェア、コンピュータソフトウェア、又はこれらの組合せによって、様々に実現することができる。多くの実施の形態は、プログラミング可能なプロセッサ又はコンピュータによって実行される１つ以上のコンピュータプログラムを含む。例えば、図１Ａに示すように、一実施の形態において、無線機器１０５は、１つ以上のプログラミング可能なプロセッサ（例えば図２に示すコントローラ２２０）を備える。通常、各コンピュータは、１つ以上のプロセッサと、１つ以上のデータ記憶装置（例えば、揮発性又は不揮発性のメモリモジュール、永続的な光及び磁気記録装置、例えばハードディスクドライブ、フロッピディスクドライブ、ＣＤ−ＲＯＭドライブ、磁気テープドライブ）と、１つ以上の入力装置（例えばマウス、キーボード）と、１つ以上の出力装置（例えばディスプレイ、プリンタ）とを備える。
【００６４】
コンピュータプログラムは、通常、永続的な記録媒体（persistent storage medium）に記録されており、実行時にメモリにコピーされる実行可能なコードを含む。プロセッサは、所定の順序で、メモリからプログラム命令を読み出すことにより、プログラムコードを実行する。プログラムコードを実行するとき、コンピュータは、入力装置及び／又は記憶装置からデータを受け取り、データを処理し、処理されたデータを出力装置及び／又は記憶装置に供給する。
【００６５】
本発明の様々な実施の形態について説明したが、当業者は、本発明の範囲を逸脱することなく、上述した以外の実施の形態を想到することができる。例えば、無線機器を用いた実施の形態を中心に本発明を説明したが、無線機器又はマルチインタフェース（例えば有線及び無線）機器を用いることができる。
【００６６】
更に、ゲームアプリケーションプログラムではなく、他のアプリケーションプログラム、例えば科学的プログラム、通信プログラム等をサポートする中継メッセージを交換することができる。この場合、中継メッセージのペイロードデータは、目的のアプリケーションプログラムの性質（例えば、ネットワーク解析アプリケーションプログラムの最新のネットワーク試験結果）を反映している。
【００６７】
したがって、本発明は、上述した実施の形態のみに限定されるわけではない。
【図面の簡単な説明】
【００６８】
【図１Ａ】ピアツーピアネットワークにおいて通信を行う３つの無線機器を示す図である。
【図１Ｂ】２つの無線機器、ネットワーク機器及びサーバシステムが直接通信及び中継通信を用いて通信を行う他のネットワーク環境を示す図である。
【図２】ピアツーピア中継通信をサポートする無線機器の実施の形態のブロック図である。
【図３】中継メッセージを送信する処理の一例のフローチャートである。
【図４】受信側機器マップを用いて受信側機器を選択する処理の実施の形態のフローチャートである。
【図５】ノード及びリンクのグラフとして、１つのネットワーク構成の実施の形態を示す図である。
【図６】中間機器又は中継機器から中継メッセージを送信する処理の実施の形態のフローチャートである。
【図１Ａ】
0004856084.tif 000002
【図１Ｂ】
0004856084.tif 000003
【図２】
0004856084.tif 000004
【図３】
0004856084.tif 000005
【図４】
0004856084.tif 000006
【図５】
0004856084.tif 000007
【図６】
0004856084.tif 000008