(57)【特許請求の範囲】
【請求項１】
コンピュータ通信網に第１ルータ装置を介して接続される第１端末装置と、当該コンピュータ通信網に第２ルータ装置を介して接続される第２端末装置と、当該コンピュータ通信網に接続されるサーバ装置と、を有し、前記第１端末装置と、前記第２端末装置と、が、前記第１ルータ装置と、前記コンピュータ通信網と、前記第２ルータ装置と、を介して、互いを通信相手として通信する通信システムであって、
（ａ）前記第１端末装置と、前記第２端末装置と、は、いずれも、
当該端末装置が接続されるルータ装置を介して、当該通信相手との通信を行う相手方通信部、
前記相手方通信部から当該通信相手への通信が成功すると、当該通信相手が接続されるルータ装置の通信識別子を取得するルータ識別子取得部、
前記相手方通信部から当該通信相手への通信が成功した後に失敗すると、前記取得された通信識別子を有するルータ装置への通信を行うルータ通信部、
前記相手方通信部から当該通信相手への通信が成功しているか否か、および、前記ルータ通信部から当該通信相手が接続されるルータ装置への通信が成功しているか否かを指定する接続状況情報を、所定のタイミングで前記サーバ装置に送信する状況送信部
を備え、
（ｂ）前記サーバ装置は、
前記第１端末装置から送信される接続状況情報と、前記第２端末装置から送信される接続状況情報と、を受信する状況受信部、
前記受信された前記第１端末装置からの接続状況情報と、前記第２端末装置からの接続状況情報と、に、より、
（１）前記第１端末装置から前記第２端末装置への通信が成功し、前記第２端末装置から前記第１端末装置への通信が失敗し、前記第２端末装置から前記第１ルータ装置への通信が成功している旨が指定されている場合、前記第１端末装置のユーザに不正行為があったと判定し、
（２）前記第２端末装置から前記第１端末装置への通信が成功し、前記第１端末装置から前記第２端末装置への通信が失敗し、前記第１端末装置から前記第２ルータ装置への通信が成功している旨が指定されている場合、前記第２端末装置のユーザに不正行為があったと判定する
不正判定部
を備えることを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムであって、前記不正判定部は、
（３）前記第１端末装置から送信されるべき接続状況情報が所定の期間受信されず、前記第２端末装置から送信されるべき接続状況情報が当該所定の期間に受信された場合、前記第１端末装置のユーザに不正行為があったと判定し、
（４）前記第２端末装置から送信されるべき接続状況情報が当該所定の期間受信されず、前記第１端末装置から送信されるべき接続状況情報が当該所定の期間に受信された場合、前記第２端末装置のユーザに不正行為があったと判定する
ことを特徴とする通信システム。
【請求項３】
請求項１または２に記載の通信システムであって、
（ｃ）前記第１端末装置と、前記第２端末装置と、において、前記相手方通信部による当該通信相手との通信が失敗しており、前記ルータ通信部による当該通信相手が接続されるルータ装置との通信が成功している場合、前記状況送信部は、前記相手方通信部による当該通信相手との通信が失敗しており、前記ルータ通信部による当該通信相手が接続されるルータ装置との通信が成功している旨に加えて、前記相手方通信部が当該通信相手への送信に失敗した送付情報を、当該接続状況情報に指定して前記サーバ装置に送信し、
（ｄ）前記サーバ装置は、前記（１）の条件が成立する場合、前記第２端末装置からの接続状況情報に指定される送付情報を前記第１端末装置へ送信し、前記（２）の条件が成立する場合、前記第１端末装置からの接続状況情報に指定される送付情報を前記第２端末装置へ送信して、当該送付情報を中継する情報中継部をさらに備え、
（ｅ）前記第１端末装置と、前記第２端末装置と、は、それぞれ、
前記サーバ装置から送信された送付情報を受信する情報受信部をさらに備え、
前記相手方通信部は、前記情報受信部により受信された送付情報を当該通信相手から通信されたものとする
ことを特徴とする通信システム。
【請求項４】
コンピュータ通信網に第１ルータ装置を介して接続される第１端末装置と、当該コンピュータ通信網に第２ルータ装置を介して接続される第２端末装置と、当該コンピュータ通信網に接続されるサーバ装置と、が実行する通信方法であって、前記第１端末装置と、前記第２端末装置と、は、前記第１ルータ装置と、前記コンピュータ通信網と、前記第２ルータ装置と、を介して、互いを通信相手として通信し、
（ａ）前記第１端末装置と、前記第２端末装置と、は、いずれも、相手方通信部、ルータ識別子取得部、ルータ通信部、状況送信部を備え、前記通信方法は、
前記相手方通信部が、当該端末装置が接続されるルータ装置を介して、当該通信相手との通信を行う相手方通信工程、
前記相手方通信工程にて当該通信相手への通信が成功すると、前記ルータ識別子取得部が、当該通信相手が接続されるルータ装置の通信識別子を取得するルータ識別子取得工程、
前記相手方通信工程にて当該通信相手への通信が成功した後に失敗すると、前記ルータ通信部が、前記取得された通信識別子を有するルータ装置への通信を行うルータ通信工程、
前記状況送信部が、前記相手方通信工程にて当該通信相手への通信が成功しているか否か、および、前記ルータ通信工程にて当該通信相手が接続されるルータ装置への通信が成功しているか否かを指定する接続状況情報を、所定のタイミングで前記サーバ装置に送信する状況送信工程
を備え、
（ｂ）前記サーバ装置は、状況受信部、不正判定部を備え、前記通信方法は、
前記状況受信部が、前記第１端末装置から送信される接続状況情報と、前記第２端末装置から送信される接続状況情報と、を受信する状況受信工程、
前記不正判定部が、前記受信された前記第１端末装置からの接続状況情報と、前記第２端末装置からの接続状況情報と、に、より、
（１）前記第１端末装置から前記第２端末装置への通信が成功し、前記第２端末装置から前記第１端末装置への通信が失敗し、前記第２端末装置から前記第１ルータ装置への通信が成功している旨が指定されている場合、前記第１端末装置のユーザに不正行為があったと判定し、
（２）前記第２端末装置から前記第１端末装置への通信が成功し、前記第１端末装置から前記第２端末装置への通信が失敗し、前記第１端末装置から前記第２ルータ装置への通信が成功している旨が指定されている場合、前記第２端末装置のユーザに不正行為があったと判定する
不正判定工程
を備えることを特徴とする通信方法。
【請求項５】
コンピュータ通信網に第１ルータ装置を介して接続される第１端末コンピュータを第１端末装置として機能させ、当該コンピュータ通信網に第２ルータ装置を介して接続される第２端末コンピュータを第２端末装置として機能させる端末プログラムと、当該コンピュータ通信網に接続されるサーバコンピュータをサーバ装置として機能させるサーバプログラムと、を有するプログラムであって、前記第１端末装置と、前記第２端末装置と、が、前記第１ルータ装置と、前記コンピュータ通信網と、前記第２ルータ装置と、を介して、互いを通信相手として通信するように、機能させ、
（ａ）前記端末プログラムは、前記第１端末コンピュータと、前記第２端末コンピュータと、の、それぞれを、
当該端末装置が接続されるルータ装置を介して、当該通信相手との通信を行う相手方通信部、
前記相手方通信部から当該通信相手への通信が成功すると、当該通信相手が接続されるルータ装置の通信識別子を取得するルータ識別子取得部、
前記相手方通信部から当該通信相手への通信が成功した後に失敗すると、前記取得された通信識別子を有するルータ装置への通信を行うルータ通信部、
前記相手方通信部から当該通信相手への通信が成功しているか否か、および、前記ルータ通信部から当該通信相手が接続されるルータ装置への通信が成功しているか否かを指定する接続状況情報を、所定のタイミングで前記サーバコンピュータに送信する状況送信部
として機能させ、
（ｂ）前記サーバプログラムは、前記サーバコンピュータを、
前記第１端末コンピュータから送信される接続状況情報と、前記第２端末コンピュータから送信される接続状況情報と、を受信する状況受信部、
前記受信された前記第１端末コンピュータからの接続状況情報と、前記第２端末コンピュータからの接続状況情報と、に、より、
（１）前記第１端末コンピュータから前記第２端末コンピュータへの通信が成功し、前記第２端末コンピュータから前記第１端末コンピュータへの通信が失敗し、前記第２端末コンピュータから前記第１ルータ装置への通信が成功している旨が指定されている場合、前記第１端末コンピュータのユーザに不正行為があったと判定し、
（２）前記第２端末コンピュータから前記第１端末コンピュータへの通信が成功し、前記第１端末コンピュータから前記第２端末コンピュータへの通信が失敗し、前記第１端末コンピュータから前記第２ルータ装置への通信が成功している旨が指定されている場合、前記第２端末コンピュータのユーザに不正行為があったと判定する
不正判定部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルータ装置を使用するユーザが通信対戦ゲームにおいてルータ装置の設定を変更することで通信対戦の結果を無効にしようとする等の不正行為を検出するのに好適な通信システム、通信方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、インターネットを利用した通信対戦を可能とするネットワーク対戦ゲームの通信システムが提案されている。このような通信システムの多くにおいては、ユーザが利用する端末装置は、まず、ロビーサーバと呼ばれるサーバ装置に接続して対戦相手を紹介してもらう。そして、対戦相手が決まった後は、端末装置同士がピアツーピア通信を行って通信対戦ゲームを行い、勝敗を決して、対戦結果をサーバ装置に報告する。また、家庭内ＬＡＮ（Local Area Network）の普及やネットワークセキュリティの観点から、端末装置がインターネットに接続するにあたっては、ルータ装置やファイアウォール等を介するのが一般的になりつつある。
【０００３】
このような通信対戦ゲームの通信システムにおいては、対戦の結果がプレイヤーの意に合わない場合に、当該ユーザが使用する端末装置に接続されたルータやファイアウォールの設定を変更したり接続を切断したりして、相手先との通信を失敗させることにより、当該対戦結果そのものを無効にする等の、プレイヤーの悪意ある行為が行われることがある。このような行為は「チート行為」とも呼ばれる。
【０００４】
このようなチート行為を検出する技術は、以下のような文献に開示されている。
【特許文献１】特開２００５−１３０１６６号公報
【０００５】
ゲームのプログラムそのものを書き換えることが困難な場合もあるため、ルータ装置との結線を切断したり、ルータ装置の電源を切ったりする等して、インターネットとの接続ができないようにして、チート行為を行うことがありうるが、[特許文献１]は、通信の失敗の原因が対戦中の端末装置のいずれにあるのかを特定して、このような行為に対応するものである。
【０００６】
すなわち、各端末装置は、対戦相手の端末装置との対戦を行っている間に通信が失敗すると、ロビーサーバ等の他の通信装置との通信を試みて、これが成功すれば対戦相手の端末装置に障害があると判定し、失敗すれば自身とコンピュータ通信網との間に障害があると判定するものである。そして、当該技術によれば、当該障害の有無をユーザのチート行為の判定基準とすることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、[特許文献１]等の先行技術では検出できないチート行為の手法、たとえば、ルータ装置のフィルタリングルールを一時的に変更して、対戦相手からの通信のみを拒否する等の手法も存在する。したがって、このような種々のチート行為を、新たな手法により検出する必要がある。また、上記手法に基づく通信断によってチート行為が生じたとしても、その行為を打ち消す処理を行って、チート行為の被害者側のユーザを救済したい、との要望もある。
【０００８】
本発明は、上記のような課題を解決するもので、ルータ装置を使用するユーザが通信対戦ゲームにおいてルータ装置の設定を変更することで通信対戦の結果を無効にしようとする等の不正行為を検出するのに好適な通信システム、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１０】
本発明の第１の観点に係る通信システムは、コンピュータ通信網に第１ルータ装置を介して接続される第１端末装置と、当該コンピュータ通信網に第２ルータ装置を介して接続される第２端末装置と、当該コンピュータ通信網に接続されるサーバ装置と、を有し、第１端末装置と、第２端末装置と、が、第１ルータ装置と、コンピュータ通信網と、第２ルータ装置と、を介して、互いを通信相手として通信し、以下のように構成する。
【００１１】
すなわち、第１端末装置と、第２端末装置と、は、いずれも、相手方通信部、ルータ識別子取得部、ルータ通信部、状況送信部を有する。
【００１２】
ここで、相手方通信部は、当該端末装置が接続されるルータ装置を介して、当該通信相手との通信を行う。典型的には、相手方通信部は、ネットワーク通信対戦ゲームにおけるプレイヤー同士の対戦を実現するための通信処理を担うことになる。
【００１３】
一方、ルータ識別子取得部は、相手方通信部から当該通信相手への通信が成功すると、当該通信相手が接続されるルータ装置の通信識別子を取得する。ここで、通信識別子とは、典型的には、ＩＰアドレスおよびポート番号を意味する。一般に、通信相手から送信されたパケットを受信すると、当該パケットには、当該パケットが経由した経路情報が記載されている。これから、通信相手のルータ装置を知得することができる。
【００１４】
このほか、ロビーサーバを介して通信相手の紹介をされた場合には、当該紹介にかかるＩＰアドレスは、当該通信相手のルータ装置のＩＰアドレスそのものに相当する。この場合は、通信相手との通信が成立している限り、紹介されたＩＰアドレスそのものがルータ装置の通信識別子であり、紹介されたＩＰアドレスおよびポート番号の組は、当該通信相手の端末装置の通信識別子に相当することになる。
【００１５】
さらに、相手方通信部から当該通信相手への通信が成功した後に失敗すると、ルータ通信部は、取得された通信識別子を有するルータ装置への通信を行う。
【００１６】
上記のように、通信相手との通信は、典型的には、ＩＰアドレスおよびポート番号を使用して、所定の通信対戦プロトコルに則って行われる。そして、この通信対戦が、通信タイムアウト等によって不成立となると、ルータ通信部は、ルータ装置への通信が可能であるか否かを判定するのである。
【００１７】
上記のように、通信相手が接続されているルータ装置の通信識別子がＩＰアドレスである場合には、当該ルータ装置に対して、たとえば、ＰＩＮＧプロトコルに基づくパケットを送信してその応答を調べることにより、ルータ装置への通信が可能であるか否かを調べることができる。
【００１８】
さらに、状況送信部は、相手方通信部から当該通信相手への通信が成功しているか否か、および、ルータ通信部から当該通信相手が接続されるルータ装置への通信が成功しているか否かを指定する接続状況情報を、所定のタイミングでサーバ装置に送信する。
【００１９】
通信相手への通信が成功している場合には、当然に、通信相手のルータ装置への通信が成功していることとなるので、接続状況情報にルータ通信部による通信の成功の可否が指定されるのは、通信相手への通信が失敗している場合に限ることとしても良い。なお、所定のタイミングの典型例としては、一定時間おき、通信相手との通信に失敗したとき、通信相手との対戦が終了して対戦結果を報告するとき、またはこれらの適当な組み合わせ等が考えられる。
【００２０】
一方、サーバ装置は、状況受信部、不正判定部を有する。
【００２１】
ここで、状況受信部は、第１端末装置から送信される接続状況情報と、第２端末装置から送信される接続状況情報と、を受信する。当該接続状況情報は、上記のように所定のタイミングで送信されるものであり、状況受信部は、両端末装置から受信した最新の接続状況情報をＲＡＭ（Random Access Memory）等に保存することとするのが典型的である。
【００２２】
一方、不正判定部は、受信された第１端末装置からの接続状況情報と、第２端末装置からの接続状況情報と、に、より、
（１）第１端末装置から第２端末装置への通信が成功し、第２端末装置から第１端末装置への通信が失敗し、第２端末装置から第１ルータ装置への通信が成功している旨が指定されている場合、第１端末装置のユーザに不正行為があったと判定し、
（２）第２端末装置から第１端末装置への通信が成功し、第１端末装置から第２端末装置への通信が失敗し、第１端末装置から第２ルータ装置への通信が成功している旨が指定されている場合、第２端末装置のユーザに不正行為があったと判定する。
【００２３】
サーバ装置へ両端末装置からの接続状況情報が到達している状況を想定すると、第１端末装置と第１ルータ装置とインターネットの間、ならびに、第２端末装置と第２ルータ装置とインターネットの間には、機械的な障害（ケーブルが外れている、電源が切れている等）は存在しないと考えられる。
【００２４】
そこで、上記（１）では、第１ルータ装置を境界として、第２端末装置からのパケットの流入に障害があるか否かを判定し、上記（２）では、第２ルータ装置を境界として、第１端末装置からのパケットの流入に障害があるか否かを判定している。
【００２５】
本発明において、両端末装置のユーザが行う不正行為として想定する典型例は、「通信対戦が不利であると考えたときに、通信相手の端末装置からのパケットの流入を拒否するようなフィルタリングルールを一時的に採用することによって、対戦を不可能とし、対戦結果を無効にする」ようなチート行為である。
【００２６】
このような、[特許文献１]に記載の技術では必ずしも判定できないような不正行為であっても、サーバ装置を介在させることによって、上記（１）（２）のような条件により、不正行為の有無を判定することができる。なお、本発明は[特許文献１]に記載の技術と組み合わせて適用することも可能である。
【００２７】
本発明によれば、ルータ装置を使用するユーザが通信対戦ゲームにおいてルータ装置の設定を変更することで通信対戦の結果を無効にしようとする等の不正行為をできるだけ検出することができるようになる。
【００２８】
また、本発明の通信システムにおいて、不正判定部は、以下のように構成することができる。
（３）第１端末装置から送信されるべき接続状況情報が所定の期間受信されず、第２端末装置から送信されるべき接続状況情報が当該所定の期間に受信された場合、第１端末装置のユーザに不正行為があったと判定し、
（４）第２端末装置から送信されるべき接続状況情報が当該所定の期間受信されず、第１端末装置から送信されるべき接続状況情報が当該所定の期間に受信された場合、第２端末装置のユーザに不正行為があったと判定する。
【００２９】
本発明は上記発明の好適実施形態に係るもので、上記（３）（４）においてユーザが行う不正行為として想定する典型例は「通信対戦が不利であると考えたときに、自身の端末装置の通信を不可能とすることによって、対戦を不可能とし、対戦結果を無効にする」ようなチート行為である。
【００３０】
本発明によれば、ルータ装置を使用するユーザが通信対戦ゲームにおいてルータ装置の設定を変更したり電源を切ったり接続を断つことで、通信対戦の結果を無効にしようとする等の不正行為をできるだけ検出することができるようになる。
【００３１】
また、本発明の通信システムは、以下のように構成することができる。
【００３２】
すなわち、第１端末装置と、第２端末装置と、において、相手方通信部による当該通信相手との通信が失敗しており、ルータ通信部による当該通信相手が接続されるルータ装置との通信が成功している場合、状況送信部は、相手方通信部による当該通信相手との通信が失敗しており、ルータ通信部による当該通信相手が接続されるルータ装置との通信が成功している旨に加えて、相手方通信部が当該通信相手への送信に失敗した送付情報を、当該接続状況情報に指定してサーバ装置に送信する。
【００３３】
すなわち、接続状況情報には、以下の二つの情報が指定されることになる。
（１）相手方通信部による当該通信相手との通信が失敗しており、ルータ通信部による当該通信相手が接続されるルータ装置との通信が成功している旨。
（２）相手方通信部が当該通信相手への送信に失敗した送付情報。すなわち、通信相手に送信しようと試みて、送信に失敗したパケットの内容。
【００３４】
これらの情報は、接続状況情報に埋め込まれて、サーバ装置に送信される。
【００３５】
一方、サーバ装置は、情報中継部をさらに備え、情報中継部は、（１）の条件が成立する場合、第２端末装置からの接続状況情報に指定される送付情報を第１端末装置へ送信し、（２）の条件が成立する場合、第１端末装置からの接続状況情報に指定される送付情報を第２端末装置へ送信して、当該送付情報を中継する。
【００３６】
すなわち、不正行為を行っていると判定された端末装置に対する送信に失敗したパケットの内容を、サーバ装置から送信するのである。
【００３７】
さらに、第１端末装置と、第２端末装置と、は、それぞれ、情報受信部をさらに備え、情報受信部は、サーバ装置から送信された送付情報を受信し、相手方通信部は、情報受信部により受信された送付情報を当該通信相手から通信されたものとする。
【００３８】
通信相手から送信されてくるはずだったパケットが、何らかの事情で（典型的にはチート行為によって）到達せず、サーバ装置から中継され、これが受信されれば、その送付情報に基づいて対戦を続行するのである。
【００３９】
本発明によれば、上記のようなチート行為が生じた場合にも、加害者側の不正行為は検出できる一方で、サーバ装置を経由して通信対戦が継続されるため、被害者側はチート行為が生じなかったものとしてゲームが続行できる。
【００４０】
本発明のその他の観点に係る通信方法は、コンピュータ通信網に第１ルータ装置を介して接続される第１端末装置と、当該コンピュータ通信網に第２ルータ装置を介して接続される第２端末装置と、当該コンピュータ通信網に接続されるサーバ装置と、が実行し、第１端末装置と、第２端末装置と、は、第１ルータ装置と、コンピュータ通信網と、第２ルータ装置と、を介して、互いを通信相手として通信し、第１端末装置と、第２端末装置と、は、いずれも、相手方通信部、ルータ識別子取得部、ルータ通信部、状況送信部を備え、サーバ装置は、状況受信部、不正判定部を備え、当該通信方法は、相手方通信工程、ルータ識別子取得工程、ルータ通信工程、状況送信工程、状況受信工程、不正判定工程を備え、以下のように構成する。
【００４１】
すなわち、第１端末装置と、第２端末装置と、において、相手方通信工程では、相手方通信部が、当該端末装置が接続されるルータ装置を介して、当該通信相手との通信を行い、ルータ識別子取得工程では、相手方通信工程にて当該通信相手への通信が成功すると、ルータ識別子取得部が、当該通信相手が接続されるルータ装置の通信識別子を取得し、ルータ通信工程では、相手方通信工程にて当該通信相手への通信が成功した後に失敗すると、ルータ通信部が、取得された通信識別子を有するルータ装置への通信を行い、状況送信工程では、相手方通信工程にて当該通信相手への通信が成功しているか否か、および、ルータ通信工程にて当該通信相手が接続されるルータ装置への通信が成功しているか否かを指定する接続状況情報を、所定のタイミングでサーバ装置に送信する。
【００４２】
一方、サーバ装置において、状況受信工程では、状況受信部が、第１端末装置から送信される接続状況情報と、第２端末装置から送信される接続状況情報と、を受信し、不正判定工程では、不正判定部が、受信された第１端末装置からの接続状況情報と、第２端末装置からの接続状況情報と、に、より、
（１）第１端末装置から第２端末装置への通信が成功し、第２端末装置から第１端末装置への通信が失敗し、第２端末装置から第１ルータ装置への通信が成功している旨が指定されている場合、第１端末装置のユーザに不正行為があったと判定し、
（２）第２端末装置から第１端末装置への通信が成功し、第１端末装置から第２端末装置への通信が失敗し、第１端末装置から第２ルータ装置への通信が成功している旨が指定されている場合、第２端末装置のユーザに不正行為があったと判定する。
【００４３】
本発明のその他の観点に係るプログラムは、第１端末コンピュータを上記の通信システムの第１端末装置として機能させ、第２端末コンピュータを上記の通信システムの第２端末装置として機能させる端末プログラムと、サーバコンピュータを上記の通信システムのサーバ装置として機能させるサーバプログラムと、を有するように構成する。
【００４４】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００４５】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００４６】
本発明によれば、ルータ装置を使用するユーザが通信対戦ゲームにおいてルータ装置の設定を変更することで通信対戦の結果を無効にしようとする等の不正行為を検出するのに好適な通信システム、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００４７】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００４８】
本実施形態に係る通信システムは、インターネット等のコンピュータ通信網に接続されたサーバコンピュータにおいて所定のプログラムを動作させてサーバ装置として機能させ、携帯電話や携帯ゲーム装置などの端末装置と通信可能に設定することによって、実現される。
【００４９】
ここで、端末装置とサーバ装置とは、処理能力等に相違はあるものの、その根本的な動作原理や構成は共通する。そこで、以下では、情報処理装置の概要を説明した上で、端末装置とサーバ装置に適用した場合の違いについては、それに応じて適宜説明することとする。
【００５０】
図１は、プログラムを実行することにより、本実施形態のサーバ装置や端末装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００５１】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、マイク１１１と、を備えるように構成することができる。各種の入出力装置は、適宜省略することができる。
【００５２】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態のサーバ装置が実現される。
【００５３】
また、携帯ゲーム装置においては、携帯可能とするために、ＤＶＤ−ＲＯＭドライブ１０８を利用するのではなく、ＲＯＭカセット用スロットを利用することも可能である。この場合、プログラムが記録されたＲＯＭカセットを挿入して、当該プログラムを実行することで、本実施形態の端末装置が実現される。
【００５４】
また、ＮＩＣ  １０９は、家庭内無線ＬＡＮが設定されている状況では、無線ＬＡＮカードとなる。一方、サーバ装置においては、有線ＬＡＮカードとしてインターネットに接続するのが典型的である。端末装置が有する無線ＬＡＮカードがアクセスするアクセスポイント装置は、ルータ機能を有し、もしくは、他のルータ装置を介して、インターネットに接続され、端末装置とサーバ装置との通信が可能となる。
【００５５】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００５６】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００５７】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００５８】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００５９】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００６０】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００６１】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００６２】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００６３】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００６４】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００６５】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮを構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００６６】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン（図示せず）、イヤフォン（図示せず）から出力させる。
【００６７】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００６８】
さらに、情報処理装置１００には、インターフェイス１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００６９】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００７０】
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置１００にかえて、汎用のパーソナルコンピュータを利用することもできる。
【００７１】
上記のように、サーバ装置や端末装置は、情報処理装置１００でプログラムを実行することで実現されるが、一般的なコンピュータ上に実現することとしても良い。情報処理装置１００と一般的なコンピュータとは、その構成や機能に大きな相違はないからである。上記のように、本願では、一般的なコンピュータと情報処理装置１００とを同じように扱って説明する。
【００７２】
たとえば、一般的なコンピュータは、いわゆるコンシューマ向けゲーム装置に相当する情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用する。
【００７３】
また、携帯電話、携帯ゲーム機器、カラオケ装置なども、一般的なコンピュータと同等の機能を有するため、これら種々の機器を、適宜端末装置やサーバ装置を実現するプラットフォームとして利用することにより、本発明を実現することが可能である。
【００７４】
（通信システム）
図２は、本実施形態に係る通信システムの概要構成を示す説明図である。以下、本図を参照して説明する。
【００７５】
通信システム２０１は、インターネット２４１を介して相互に通信可能な第１端末装置２１１、第２端末装置２２１、サーバ装置２３１から構成される。
【００７６】
ここで、第１端末装置２１１は、第１ルータ装置２１２を介してインターネット２４１に接続され、第２端末装置２２１は、第２ルータ装置２２２を介してインターネット２４１に接続されている。
【００７７】
第１ルータ装置２１２は、インターネット２４１と、第１端末装置２１１が存在する家庭内ＬＡＮとの境界となり、ゲートウェイ／ファイアウォール／アドレス・ポート番号変換装置として機能する。
【００７８】
また、第２ルータ装置２２２は、インターネット２４１と、第２端末装置２２１が存在する家庭内ＬＡＮとの境界となり、ゲートウェイ／ファイアウォール／アドレス・ポート番号変換装置として機能する。
【００７９】
第１端末装置２１１、および、第２端末装置２２１では、所定の端末プログラムが動作する。この端末プログラムは、通信対戦ゲームを実現するものである。
【００８０】
本実施形態では、通信対戦ゲームは、以下の手順で進行される。
【００８１】
すなわち、第１端末装置２１１が、ロビーサーバであるサーバ装置２３１に、対戦相手の紹介を申し込む。以下、サーバ装置２３１のＩＰアドレスを「Ｓ」、紹介申込のためのポート番号を「Ｖ」とし、通信の宛先を「Ｓ／Ｖ」のように表記する。
【００８２】
Ｓ／Ｖ宛の申し込みにおいて、第１端末装置２１１からサーバ装置２３１への通信は、第１ルータ装置２１２に中継されることとなる。
【００８３】
したがって、サーバ装置２３１では、対戦相手を求めている第１端末装置２１１の識別情報として、第１ルータ装置２１２のＩＰアドレス（以下「Ｒ１」という。）を取得する。
【００８４】
同様に、第２端末装置２２１からの対戦相手の紹介の申し込みがあると、サーバ装置２３１は、第２ルータ装置２２２のＩＰアドレス（以下「Ｒ２」という。）を取得する。
【００８５】
そして、この２つの申し込みに対して、両者を紹介する。この際に、当該ＩＰアドレスの、あらかじめ定めたサーバ通信用ポート番号（以下「Ｐ」という。）に対して、紹介通知を行うのが典型的である。すなわち、Ｒ１／Ｐに対しては、Ｒ２を紹介する通知を行い、Ｒ２／Ｐに対しては、Ｒ１を紹介する通知を行うのである。
【００８６】
Ｒ１およびＲ２は、第１ルータ装置２１２および第２ルータ装置２２２のＩＰアドレスであるから、アドレス変換がされて、当該通知が第１端末装置２１１および第２端末装置２２１に中継される。すなわち、第１端末装置２１１のポート番号Ｐに対して、Ｒ２を紹介する通知が到達し、第２端末装置２２１のポート番号Ｐに対して、Ｒ１を紹介する通知が到達する。これらのアドレス変換ルールは、第１ルータ装置２１２および第２ルータ装置２２２のフィルタリングルールの一部として記憶される。
【００８７】
さて、通信対戦ゲームでは、対戦を行う端末装置同士が対戦通信に使用するために、あらかじめ定めた対戦用ポート番号（以下「Ｑ」という。）を用いてピアツーピアの通信を行う。
【００８８】
そこで、第１端末装置２１１は、ＩＰアドレスＲ２のあらかじめ定めた対戦用ポート番号Ｑに対して、通信を開始し、第２端末装置２２１は、ＩＰアドレスＲ１のあらかじめ定めた対戦用ポート番号Ｑに対して、通信を開始する。
【００８９】
すると、Ｒ１／Ｑに対する通信は、第１ルータ装置２１２のアドレス変換により、第１端末装置２１１のポートＱに到達し、Ｒ２／Ｑに対する通信は、第２ルータ装置２２２のアドレス変換により、第２端末装置２２１のポートＱに到達する。
【００９０】
このようにして、ポートＱ同士を介したピアツーピアの通信対戦が行われるのである。
【００９１】
また、第１ルータ装置２１２や第２ルータ装置２２２そのものがインターネット２４１に接続されていることを確認するため、ping/icmpプロトコル（ポート番号の既定値は１）に応答するように構成するのが典型的である。この場合、Ｑの値としては、１以外を採用する。
【００９２】
この場合、第２端末装置２２１において、第１端末装置２１１宛のパケットの宛先はＲ１／Ｑとなり、第１ルータ装置２１２宛のパケットの宛先はＲ１／１となる。これらのパケットの送付に対して、ＡＣＫが返ってきたら、第１端末装置２１１への通信ならびに第１ルータ装置２１２宛への通信が成功したことになる。
【００９３】
また、第１端末装置２１１において、第２端末装置２２１宛のパケットの宛先はＲ２／Ｑとなり、第２ルータ装置２２２宛のパケットの宛先はＲ２／１となる。これらのパケットの送付に対して、ＡＣＫが返ってきたら、第２端末装置２２１への通信ならびに第２ルータ装置２２２宛への通信が成功したことになる。
【００９４】
なお、ポート番号Ｐ、Ｑについては、必ずしも定数とする必要はない。また、ping/icmpプロトコル以外のプロトコルやポート番号を使用して、ルータ装置の接続確認を行うことも可能である。これらの第１端末装置２１１や第２端末装置２２１が家庭内ＬＡＮで利用するポート番号と、第１ルータ装置２１２や第２ルータ装置２２２がインターネット２４１で利用するポート番号との対応関係が、何らかの手法で、サーバ装置２３１に伝達され、第１端末装置２１１と第２端末装置２２１への紹介の際に伝えられて、相互に知得できるようになっていれば、上記のような五者の通信を構成することができる。したがって、これらの実施形態も本発明の範囲に含まれる。
【００９５】
図３は、第１端末装置２１１、第１ルータ装置２１２、第２端末装置２２１、第２ルータ装置２２２、ならびに、サーバ装置２３１の間で、正常に通信が可能となっている様子を示す説明図である。以下、本図を参照して説明する。
【００９６】
本図においては、ＡからＢへパケットの送信を試みたところＢからＡへＡＣＫが返ってきた、すなわち、ＡからＢへの通信が成功したということを、A―○→Bのように○印を付した矢印で表記している。
【００９７】
通信対戦ゲームにおいて、主体的に通信を行うのは、第１端末装置２１１、第２端末装置２２１、サーバ装置２３１の３つであり、第１ルータ装置２１２と第２ルータ装置２２２の２つは、他者から通信されることによって処理を行うから、本図における矢印の始点は、第１端末装置２１１、第２端末装置２２１、サーバ装置２３１となっている。
【００９８】
さて、第１端末装置２１１のユーザが通信対戦ゲームにおいて、ある対戦結果を無効にするために、通信を不可能にするための方策としては、上記のように、以下の方策が考えられる。
（１）第１端末装置２１１の電源を切る。
（２）第１ルータ装置２１２の電源を切る。
（３）第１端末装置２１１と第１ルータ装置２１２の間の通信ケーブルを抜く。
（４）第１ルータ装置２１２とインターネット２４１の間の通信ケーブルを抜く。
（５）第１ルータ装置２１２のゲートウェイ／ファイアウォール設定を一時的に変更して、第１ルータ装置２１２とインターネット２４１との間の通信をすべて遮断する。
（６）第１ルータ装置２１２のゲートウェイ／ファイアウォール設定を一時的に変更して、第２端末装置２２１から第１端末装置２１１への通信を遮断する。
【００９９】
上記（１）〜（５）の方策に対しては、[特許文献１]に開示する技術等によって対応が可能である。本実施形態においては、上記（６）の不正行為に対して対応しようとするものである。
【０１００】
図４は、第１端末装置２１１、第１ルータ装置２１２、第２端末装置２２１、第２ルータ装置２２２、サーバ装置２３１の間で、上記のような不正な設定を行うことにより、一部で通信が不可能となっている様子を示す説明図である。以下、本図を参照して説明する。
【０１０１】
本図と前図とを対比すると、第２端末装置２２１から第１端末装置２１１への矢印は、×印を付してある（「←×―」）が、それ以外の矢印は、○印が付されたままで通信可能な状態で残っている。そして、前図では、第１端末装置２１１と第２端末装置２２１とで対称だった矢印の配置が、本図では非対称になっている。本実施形態では、この非対称性を用いて、第１端末装置２１１のユーザの不正行為を検出する。
【０１０２】
図５は、本実施形態の第１端末装置２１１および第２端末装置２２１として機能する端末装置の概要構成を示す模式図である。図６は、当該端末装置にて実行される端末処理の制御の流れを示すフローチャートである。以下、これらの図を参照して説明する。
【０１０３】
端末装置５０１は、相手方通信部５０２、ルータ識別子取得部５０３、ルータ通信部５０４、状況送信部５０５、情報受信部５０６を有する。
【０１０４】
端末処理が開始されると、上記のように、端末装置５０１は、ロビーサーバとして機能するサーバ装置２３１にアクセスして通信相手がインターネットに公開するＩＰアドレスおよびポート番号の紹介を受け、相手方通信部５０２においてピアツーピア通信の初期設定を行う（ステップＳ６０１）。ここで知得されるＩＰアドレスおよびポート番号は、相手方の端末装置５０１がインターネット２４１に直接接続されている場合には、相手方の端末装置５０１が直接使用するものである。
【０１０５】
しかし、多くの場合、相手方の端末装置５０１はルータ装置を介してインターネット２４１に接続されている。したがって、相手方の端末装置５０１が使用するルータ装置のＩＰアドレスであり、当該相手方のルータ装置において、ステップＳ６０１で知得されるポート番号にパケットが到着すると、そのパケットは、当該相手方の端末装置５０１へ中継される。
【０１０６】
ここで得られる相手方のＩＰアドレスおよびポート番号は、ＲＡＭ  １０３等に一時的に記憶される。したがって、ＣＰＵ  １０１は、ＮＩＣ  １０９やＲＡＭ  １０３と共働して、ルータ識別子取得部５０３として機能する。
【０１０７】
ついで、端末装置５０１は、相手方の端末装置５０１やサーバ装置２３１からパケットが到着していれば（ステップＳ６０２；Ｙｅｓ）、これを受信してから（ステップＳ６０３）、到着していなければ（ステップＳ６０２；Ｎｏ）そのまま、通信対戦ゲームの計算処理を行う（ステップＳ６０４）。通信対戦ゲームの計算処理内容は、各種のゲーム技術をそのまま適用することができる。
【０１０８】
多くの場合、通信対戦が継続している間はパケットは相手方の端末装置５０１との間でやりとりされ、通信対戦が終了して対戦結果を報告する段階になると、パケットはサーバ装置２３１との間でやりとりされる。したがって、この場合には、ＣＰＵ  １０１は、ＮＩＣ  １０９やＲＡＭ  １０３と共働して、相手方通信部５０２として機能する。
【０１０９】
また、後述するように、相手方の端末装置５０１からサーバ装置２３１を中継して到着したパケットを、相手方の端末装置５０１から直接到着したパケットとして、通信対戦ゲームの対戦を進める計算処理も行う。この場合には、ＣＰＵ  １０１は、ＮＩＣ  １０９やＲＡＭ  １０３と共働して、情報受信部５０６として機能する。
【０１１０】
そして、通信対戦ゲームの計算処理によって相手方にパケットを送信すべき状況となったら（ステップＳ６０５；相手方）、相手方通信部５０２は、ステップＳ６０１にて紹介されたＩＰアドレスおよびポート番号へ、そのパケットの送信を試みる（ステップＳ６０６）。この場合も、ＣＰＵ  １０１は、ＮＩＣ  １０９やＲＡＭ  １０３と共働して、相手方通信部５０２として機能する。
【０１１１】
パケット送信に対してタイムアウトが生じるまでにＡＣＫが返送されてきて、送信が成功したら（ステップＳ６０７；Ｙｅｓ）、成功した旨をサーバ装置２３１に通知するか否かを判断する（ステップＳ６０８）。サーバ装置２３１への通知は、一定期間おき、あるいは、一定個数のパケット送信が行われたときのほか、通信対戦が終了した際等、適宜間引きして行うのが典型的であるが、両者の対戦の様子をインターネット２４１の他の端末装置５０１に放送する場合には、通信対戦ゲームの様子を表す情報とともに、毎回行うのが典型的である。
【０１１２】
通知することとなったら（ステップＳ６０８；Ｙｅｓ）、相手方への通信が成功した旨を指定する接続状況パケットをサーバ装置２３１へ送信して（ステップＳ６０９）ステップＳ６０２に戻り、そうでなければ（ステップＳ６０８；Ｎｏ）、そのままステップＳ６０２に戻る。
【０１１３】
一方、相手方への通信においてタイムアウトが発生して、送信が失敗したら（ステップＳ６０７；Ｎｏ）、ステップＳ６０１にて紹介されたＩＰアドレスのping/icmpプロトコル用ポートに、当該プロトコルに基づいたパケット送信を試みて、相手方のルータ装置への通信が可能であるかを調べる（ステップＳ６１０）。
【０１１４】
ping/icmpの問い合わせを相手方のルータ装置が受信すると、相手方のルータ装置は、ＬＡＮ内にパケットを流入させることなく、ＡＣＫや応答パケットを返送してくる。したがって、上記（６）のような不正設定を行った場合であっても、相手方のルータ装置からのＡＣＫや応答パケットは得られるはずである。
【０１１５】
そして、
（１）当該パケット送信が成功したか否かの結果、および、
（２）ステップＳ６０６、Ｓ６０７で送信に失敗した不達パケットの内容を送付情報として
指定する接続情報パケットを生成してサーバ装置２３１に送信し（ステップＳ６１１）、ステップＳ６０２に戻る。
【０１１６】
なお、ステップＳ６１０におけるパケット送信が成功したか否かは、相手方のルータ装置への通信が成功したか否かを表す。また、ステップＳ６１１にて生成される接続状況パケットに不達パケットが含まれていれば、相手方端末装置５０１への通信が失敗したこととなる。したがって、相手方端末装置５０１への通信が失敗したことを、明示的に接続情報パケットに指定する必要性はない。
【０１１７】
また、送信に失敗したパケットの内容をサーバ装置２３１に送信するのは、サーバ装置２３１を介して相手方端末装置５０１に当該パケットの内容を通知するためである。これによって、一時的なネットワーク不調に対応することや、相手方の不正行為を事実上無意味にすることが可能となる。
【０１１８】
したがって、ＣＰＵ  １０１は、ＲＡＭ  １０３やＮＩＣ  １０９と共働して、状況送信部５０５として機能する。
【０１１９】
相手方通信部５０２から当該通信相手への通信が成功しているか否か、および、ルータ通信部５０４から当該通信相手が接続されるルータ装置への通信が成功しているか否かを指定する接続状況情報を、所定のタイミングでサーバ装置に送信する。
【０１２０】
通信相手への通信が成功している場合には、当然に、通信相手のルータ装置への通信が成功していることとなるので、接続状況情報にルータ通信部５０４による通信の成功の可否が指定されるのは、通信相手への通信が失敗している場合に限ることとしても良い。なお、所定のタイミングの典型例としては、一定時間おき、通信相手との通信に失敗したとき、通信相手との対戦が終了して対戦結果を報告するとき、またはこれらの適当な組み合わせ等が考えられる。
【０１２１】
このようにして端末装置５０１では、通信対戦ゲームが行われる一方で、サーバ装置２３１は、端末装置５０１（第１端末装置２１１、第２端末装置２２１）から送信される接続状況パケットの内容を見て、不正行為が生じているか否かを判定する処理を行う。
【０１２２】
図７は、サーバ装置２３１の概要構成を示す模式図であり、図８は、サーバ装置２３１にて実行されるサービス処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。なお、以下では理解を容易にするため、接続状況パケットの処理に着目して説明を行う。対戦相手を紹介したり、対戦結果を蓄積してランキングを生成する等のロビーサーバとしての機能については、各種の公知技術を適用することができる。
【０１２３】
さて、サーバ装置２３１は、状況受信部７０１、不正判定部７０２、情報中継部７０３を備える。
【０１２４】
本サービス処理が開始されると、サーバ装置２３１のＣＰＵ  １０１はＮＩＣ  １０９を監視して、第１端末装置２１１や第２端末装置２２１等の各種の外部装置からパケットが到着しているか否か調べ（ステップＳ８０１）、到着していなければ（ステップＳ８０１；Ｎｏ）、一定時間待機して、あるいは、他の処理を適宜コルーチン的に行ってから（ステップＳ８０２）、ステップＳ８０１に戻る。
【０１２５】
一方、パケットが到着していれば（ステップＳ８０１；Ｙｅｓ）、当該パケットを受信する（ステップＳ８０３）。そして、そのパケットの種類を調べ（ステップＳ８０４）、これが第１端末装置２１１から送信された接続状況パケットであれば（ステップＳ８０４；第１端末より）、第１端末装置２１１からの最新の接続状況パケットとして、ＲＡＭ  １０３内に記憶して（ステップＳ８０５）、ステップＳ８１１に進む。
【０１２６】
また、これが第２端末装置２２１から送信された接続状況パケットであれば（ステップＳ８０４；第２端末より）、第２端末装置２２１からの最新の接続状況パケットとして、ＲＡＭ  １０３内に記憶して（ステップＳ８０６）、ステップＳ８１１に進む。
【０１２７】
これが、その他の種類のパケットであれば（ステップＳ８０４；その他）、当該パケットに対応する処理を実行して（ステップＳ８０７）、ステップＳ８０１に戻る。ここで行う処理には、たとえば、ロビーサーバとしての処理等が含まれる。
【０１２８】
さて、第１端末装置２１１からの最新の接続状況パケットと、第２端末装置２２１からの最新の接続状況パケットと、が、揃ったら（ステップＳ８１１；Ｙｅｓ）、これらの接続状況パケットを吟味する（ステップＳ８１２）。
【０１２９】
なお、ここでの処理は、両者からの接続状況パケットを１対１に対応付けて、到着順に吟味しても良いが、新たな接続状況パケットが到着するごとに過去のものは破棄して、最新のものを参照するとともに、下記の判断過程において判断の対象となった接続状況パケットは破棄して、判断がされた後に初めて両者からの接続状況パケットが揃ってから次の判断を行うのが典型的である。
【０１３０】
すなわち、第１端末装置２１１から第２端末装置２２１への通信が成功し、第２端末装置２２１から第１端末装置２１１への通信が失敗し、第２端末装置２２１から第１ルータ装置２１２への通信が成功している旨が指定されている場合、（ステップＳ８１２；第１端末―○→第２端末，第１端末←×―第２端末，第１ルータ←○―第２端末）第１端末装置２１１のユーザに不正行為があったと判定し（ステップＳ８２１）、その旨をＲＡＭ  １０３内に記録する（ステップＳ８２２）。
【０１３１】
そして、ＣＰＵ  １０１は、ＮＩＣ  １０９を介して、第２端末装置２２１からの接続状況パケットに指定されている不達パケットを、第１端末装置２１１に送信して（ステップＳ８２３）、ステップＳ８７１に進む。
【０１３２】
一方、第２端末装置２２１から第１端末装置２１１への通信が成功し、第１端末装置２１１から第２端末装置２２１への通信が失敗し、第１端末装置２１１から第２ルータ装置２２２への通信が成功している場合（ステップＳ８１２；第１端末←○―第２端末，第１端末―×→第２端末，第１端末―○→第２ルータ）第２端末装置２２１のユーザに不正行為があったと判定し（ステップＳ８３１）、その旨をＲＡＭ  １０３内に記録する（ステップＳ８３２）。
【０１３３】
そして、ＣＰＵ  １０１は、ＮＩＣ  １０９を介して、第１端末装置２１１からの接続状況パケットに指定されている不達パケットを、第２端末装置２２１に送信して（ステップＳ８３３）、ステップＳ８７１に進む。
【０１３４】
したがって、サーバ装置２３１は、ステップＳ８２３およびステップＳ８３３で不達パケットの中継を行うため、ＣＰＵ  １０１は、ＮＩＣ  １０９と共働して、情報中継部７０３として機能する。
【０１３５】
このほかの接続状況が発見された場合（ステップＳ８１２；その他）、たとえば[特許文献１]に開示される判断基準等を適用して不正行為の原因側を判定し（ステップＳ８３４）、その結果をＲＡＭ  １０３内に記録して（ステップＳ８３５）、ステップＳ８７１に進む。
【０１３６】
一方、第１端末装置２１１からの最新の接続状況パケットと、第２端末装置２２１からの最新の接続状況パケットと、が揃っていない場合（ステップＳ８１１；Ｎｏ）、揃わない原因がいずれにあるかを調べる。すなわち、第１端末装置２１１から接続状況パケットが一定期間到着していなければ（ステップＳ８４１；第１端末）、第１端末装置２１１いのユーザに不正行為があったと判定し（ステップＳ８５１）、その旨をＲＡＭ  １０３に記録して（ステップＳ８５２）、ステップＳ８７１に進む。
【０１３７】
また、第２端末装置２２１から接続状況パケットが一定期間到着していなければ（ステップＳ８４１；第２端末）、第２端末装置２２１のユーザに不正行為があったと判定し（ステップＳ８５３）、その旨をＲＡＭ  １０３に記録して（ステップＳ８５４）、ステップＳ８７１に進む。
【０１３８】
また、最後に接続状況パケットを受信してから、第１端末装置２１１についても第２端末装置２２１についてもまだ当該一定期間が経過していなければ（ステップＳ８４１；猶予期間）、ステップＳ８０１に戻る。
【０１３９】
さて、不正行為が検出された後は、ＲＡＭ  １０３に記録された不正行為者のユーザの成績にペナルティを課す等、ゲーム成績の計算処理を行って（ステップＳ８７１）、ステップＳ８０１に戻る。
【０１４０】
なお、サーバ装置２３１による通信性能、処理性能に制限がある場合には、不達パケットの中継処理は、適宜省略することとしても良い。
【０１４１】
このような処理を行うことで、対戦相手からのパケット流入を一時的に遮断するような方策による不正行為があってもこれを検出してペナルティを課すとともに、そのような不正行為があっても不達パケットをサーバで中継することによって、不正行為そのものを無意味と化し、公平な通信対戦環境の維持に寄与することができるようになる。
【産業上の利用可能性】
【０１４２】
以上説明したように、本発明によれば、ルータ装置を使用するユーザが通信対戦ゲームにおいてルータ装置の設定を変更することで通信対戦の結果を無効にしようとする等の不正行為を検出するのに好適な通信システム、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０１４３】
【図１】典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態に係る通信システムの概要構成を示す説明図である。
【図３】正常に通信が可能となっている様子を示す説明図である。
【図４】不正な設定を行うことにより、一部で通信が不可能となっている様子を示す説明図である。
【図５】本実施形態の端末装置の概要構成を示す模式図である。
【図６】当該端末装置にて実行される端末処理の制御の流れを示すフローチャートである。
【図７】サーバ装置の概要構成を示す模式図である。
【図８】サーバ装置にて実行されるサービス処理の制御の流れを示すフローチャートである。
【符号の説明】
【０１４４】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
２０１  通信システム
２１１  第１端末装置
２１２  第１ルータ装置
２２１  第２端末装置
２２２  第２ルータ装置
２３１  サーバ装置
２４１  インターネット
５０１  端末装置
５０２  相手方通信部
５０３  ルータ識別子取得部
５０４  ルータ通信部
５０５  状況送信部
５０６  情報受信部
７０１  状況受信部
７０２  不正判定部
７０３  情報中継部
【図１】
0004690432.tif 000002
【図２】
0004690432.tif 000003
【図３】
0004690432.tif 000004
【図４】
0004690432.tif 000005
【図５】
0004690432.tif 000006
【図６】
0004690432.tif 000007
【図７】
0004690432.tif 000008
【図８】
0004690432.tif 000009