(57)【要約】 【課題】コンピュータ通信網にルータを介して間接的に接続されて通信対戦を行うのに好適なゲーム端末等を提供する。【解決手段】ゲーム端末２２１ａは、ゲーム端末２２１ｂ宛、ダミー接続要求３０３ａとダミー接続応答３０４ａを繰り返し送信する。ゲーム端末２２１ｂは、ゲーム端末２２１ａ宛、ダミー接続要求３０３ｂとダミー接続応答３０４ｂを繰り返し送信する。ルータ２４１ａにおいて、ダミー接続要求３０３ａの後にダミー接続応答３０４ｂが到着すると、ルータ２４１ａは、ゲーム端末２２１ａからゲーム端末２２１ｂへの中継を開始する。ルータ２４１ｂにおいて、ダミー接続要求３０３ｂの後にダミー接続応答３０４ａが到着すると、ルータ２４１ｂは、ゲーム端末２２１ｂからゲーム端末２２１ａへの中継を開始する。この後、ゲーム端末２２１ａ、２２１ｂは、通信を確立し、対戦ゲームを開始する。【選択図】図３
2012038119.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ通信網に直接接続され、もしくは、ルータを介して間接的に接続されるゲーム端末であって、
前記ゲーム端末は、前記コンピュータ通信網内の他のゲーム端末からなる相手方端末と通信することによりゲームを進行させ、
前記ルータは、前記ゲーム端末から前記コンピュータ通信網内の他の機器宛の接続要求パケットを中継した後、当該他の機器から前記ゲーム端末宛の接続応答パケットが到着すると、当該接続応答パケットを前記ゲーム端末に中継するとともに、当該他の機器から前記ゲーム端末宛のパケットの中継を開始し、
前記ゲーム端末は、
前記相手方端末宛のダミー接続要求パケットを、繰り返し送信するダミー要求送信部、
前記相手方端末宛のダミー接続応答パケットを、繰り返し送信するダミー応答送信部、
前記相手方端末から送信されたダミー接続要求パケットを受信するダミー要求受信部、
前記相手方端末から送信されたダミー接続応答パケットを受信するダミー応答受信部、
前記ダミー接続要求パケットならびに前記ダミー接続応答パケットが受信されると、前記相手方端末宛の真正接続要求パケットを送信する真正要求送信部、
前記相手方端末から送信された真正接続要求パケットを受信する真正要求受信部、
前記真正接続要求パケットが受信されると、前記相手方端末宛の真正接続応答パケットを送信する真正応答送信部、
前記相手方端末から送信された真正接続応答パケットを受信する真正応答受信部、
前記真正応答パケットが受信されると、前記相手方端末との間で、前記ゲームを進行させるための通信を開始する通信部
を備えることを特徴とするゲーム端末。
【請求項２】
請求項１に記載のゲーム端末であって、
前記ゲーム端末は、前記コンピュータ通信網に前記ルータを介して間接的に接続され、
前記ルータは、アドレス変換もしくはアドレス・ポート変換により、前記ゲーム端末を前記コンピュータ通信網に通信可能に接続し、
前記接続要求パケットは、ＳＹＮパケットであり、
前記接続応答パケットは、ＳＹＮ／ＡＣＫパケットである
ことを特徴とするゲーム端末。
【請求項３】
請求項１または２に記載のゲーム端末であって、
当該相手方端末宛の前記ダミー接続要求パケットおよび前記ダミー接続応答パケットの送信を開始してから、前記ゲームを進行させるための通信が開始されるまでの経過時間の履歴に基づいて、次に当該相手方端末宛の前記ダミー接続要求パケットおよび前記ダミー接続応答パケットを繰り返し送信する際の繰り返し周期が更新される
ことを特徴とするゲーム端末。
【請求項４】
請求項１から３のいずれか１項に記載のゲーム端末であって、
前記ゲーム端末が前記コンピュータ通信網に直接接続されている場合、前記真正要求送信部は、前記ダミー接続要求パケットならびに前記ダミー接続応答パケットが受信されるのを待たずに、前記真正接続要求パケットを送信する
ことを特徴とするゲーム端末。
【請求項５】
コンピュータ通信網に直接接続され、もしくは、ルータを介して間接的に接続されるゲーム端末を制御する制御方法であって、
前記制御方法は、前記ゲーム端末を前記コンピュータ通信網内の他のゲーム端末からなる相手方端末と通信させることによりゲームを進行させ、
前記ゲーム端末は、ダミー要求送信部、ダミー応答送信部、ダミー要求受信部、ダミー応答受信部、真正要求送信部、真正要求受信部、真正応答送信部、真正応答受信部、通信部を備え、
前記ゲーム方法は、
前記ダミー要求送信部が、前記相手方端末宛のダミー接続要求パケットを、繰り返し送信するダミー要求送信工程、
前記ダミー応答送信部が、前記相手方端末宛のダミー接続応答パケットを、繰り返し送信するダミー応答送信工程、
前記ダミー要求受信部が、前記相手方端末から送信されたダミー接続要求パケットを受信するダミー要求受信工程、
前記ダミー応答受信部が、前記相手方端末から送信されたダミー接続応答パケットを受信するダミー応答受信工程、
前記ダミー接続要求パケットならびに前記ダミー接続応答パケットが受信されると、前記真正要求送信部が、前記相手方端末宛の真正接続要求パケットを送信する真正要求送信工程、
前記真正要求受信部が、前記相手方端末から送信された真正接続要求パケットを受信する真正要求受信工程、
前記真正接続要求パケットが受信されると、前記真正応答送信部が、前記相手方端末宛の真正接続応答パケットを送信する真正応答送信工程、
前記真正応答受信部が、前記相手方端末から送信された真正接続応答パケットを受信する真正応答受信工程、
前記真正応答パケットが受信されると、前記通信部が、前記相手方端末との間で、前記ゲームを進行させるための通信を開始する通信工程
を備えることを特徴とする制御方法。
【請求項６】
コンピュータ通信網に直接接続され、もしくは、ルータを介して間接的に接続されるコンピュータをゲーム端末として機能させるプログラムであって、
前記プログラムは、前記コンピュータを、前記コンピュータ通信網内の他のゲーム端末からなる相手方端末と通信することによりゲームを進行させるゲーム端末として機能させ、
前記プログラムは、前記コンピュータを、
前記相手方端末宛のダミー接続要求パケットを、繰り返し送信するダミー要求送信部、
前記相手方端末宛のダミー接続応答パケットを、繰り返し送信するダミー応答送信部、
前記相手方端末から送信されたダミー接続要求パケットを受信するダミー要求受信部、
前記相手方端末から送信されたダミー接続応答パケットを受信するダミー応答受信部、
前記ダミー接続要求パケットならびに前記ダミー接続応答パケットが受信されると、前記相手方端末宛の真正接続要求パケットを送信する真正要求送信部、
前記相手方端末から送信された真正接続要求パケットを受信する真正要求受信部、
前記真正接続要求パケットが受信されると、前記相手方端末宛の真正接続応答パケットを送信する真正応答送信部、
前記相手方端末から送信された真正接続応答パケットを受信する真正応答受信部、
前記真正応答パケットが受信されると、前記相手方端末との間で、前記ゲームを進行させるための通信を開始する通信部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ通信網に直接的にあるいはルータを介して間接的に接続されて通信対戦を行うのに好適なゲーム端末、ゲーム端末の制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、インターネット等のコンピュータ通信網を介してコンピュータ同士を通信可能に接続する技術が提案されている。このような技術を応用すれば、各種のコンピュータがゲームソフトウェアを実行することにより、ユーザに通信対戦ゲームを提供することができるようになる。
【０００３】
通信対戦ゲームでは、ゲームソフトウェアを実行するコンピュータがゲーム端末として機能し、ロビーサーバに、対戦相手の紹介を求めるのが一般的である。ロビーサーバは、コンピュータ通信網内に配置され、対戦相手を求めるゲーム端末同士を互いに紹介する。
【０００４】
ここで、コンピュータをコンピュータ通信網に接続する際には、ルータと呼ばれる機器を利用することが広く行われている。
【０００５】
ルータは、ＬＡＮ（Local Area Network）内のコンピュータのＩＰ（Internet Protocol）アドレスやポート番号を、外部のコンピュータ通信網内のＩＰアドレスやポート番号に変換する機能を有する。ルータやファイアウォールは、この機能によって、ＬＡＮと外部のコンピュータ通信網との間の通信の仲立ちを行う。
【０００６】
さらに、ルータに対してパケットのフィルタリング規則を設定して、ファイアウォールとして機能させることも広く行われている。ファイアウォールを利用すると、ＬＡＮからコンピュータ通信網への適正なアクセスは可能としつつ、コンピュータ通信網からの第三者による攻撃や侵入を防止することもできる。
【０００７】
攻撃や侵入を防止するためのフィルタリング規則としては、以下のようなものがある。すなわち、ルータが、ＬＡＮ内のコンピュータＡから外部のコンピュータＢへパケットが送信されたことを検知して初めて、コンピュータＢからコンピュータＡへ送信されたパケットをコンピュータＡに中継することとする規則である。
【０００８】
一方で、ルータがこのようなフィルタリングを採用していると、コンピュータＡとコンピュータＢとの通信接続が不可能になってしまうことがある。特に、コンピュータＡとコンピュータＢとが異なるＬＡＮ内に配置され、両者が上記のフィルタリング規則を採用する異なるルータを介してコンピュータ通信網に接続される場合である。
【０００９】
このような状況に対しては、ホール・トリック、あるいは、ＵＤＰ（User Datagram Protocol）ホール・パンチングと呼ばれる技術が提案されている。ホール・トリックを採用すれば、上記のようなフィルタリング規則を採用しているルータ同士を介してコンピュータが接続されている場合であっても、両コンピュータの間で通信が可能となる（非特許文献１参照）。
【００１０】
一方で、ＴＣＰ／ＩＰ（Transfer Control Protocol／ＩＰ）通信のようなコネクション型の通信では、以下のような理由で、ＵＤＰホール・パンチングでは通信接続が可能とならない場合がある。これは、ルータが、以下のようなフィルタリング規則を採用している場合である。
【００１１】
理解を容易にするため、コンピュータＡからコンピュータＢへのＴＣＰ／ＩＰ通信の開始を持ち掛ける場合を考える。
【００１２】
ＴＣＰ／ＩＰ通信では、まず、コンピュータＡからコンピュータＢへ、ヘッダ情報のＳＹＮビットが立ったパケットＸ（ＳＹＮパケット）が送信される。
【００１３】
これに対して、コンピュータＢが、ヘッダ情報のＳＹＮビットとＡＣＫビットを立てたパケットＹ（ＳＹＮ／ＡＣＫパケット）を、コンピュータＡに送信する。
【００１４】
これを受信したコンピュータＡは、ヘッダ情報のＡＣＫビットを立てたパケットＺ（ＡＣＫパケット）を、コンピュータＢに送信する。
【００１５】
このようにしてコネクションを確立する処理は、３ウェイ・ハンドシェイクと呼ばれる。
【００１６】
このようなＴＣＰ／ＩＰ通信に対して、ルータが、「ＬＡＮ内のコンピュータＡからＬＡＮ外のコンピュータＢへＳＹＮパケットが送信されたときは、コンピュータＢからコンピュータＡへのＳＹＮ／ＡＣＫパケットが受信されない限り、コンピュータＢからコンピュータＡへのその他のパケットは通過させない」というフィルタリング規則を採用している場合には、ＬＡＮ内のコンピュータＡから外部のコンピュータＢへ通信を持ち掛けた場合には接続がなされるが、外部のコンピュータＢからＬＡＮ内のコンピュータＡからへ通信を持ち掛けた場合には接続ができないこととなる。
【先行技術文献】
【非特許文献】
【００１７】
【非特許文献１】Jurgen Schmidt，The hole trike，How Skype & Co.get round firewalls，The H Security，http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html，２００６年１２月１５日
【発明の概要】
【発明が解決しようとする課題】
【００１８】
上記のような理由から、互いに通信を行いたいコンピュータ同士が、異なるＬＡＮ内に配置され、しかもそのＬＡＮとコンピュータ通信網とが、いずれも、上記のようなパケット監視を行うルータ装置によって中継されている場合には、両者の通信はできないことになってしまう。
【００１９】
しかしながら、このような状況であっても、２つのコンピュータの通信を可能として、通信対戦ゲームを提供できるようにしたい、という要望は強い。
【００２０】
また、非特許文献１に開示される技術や従来のロビーサーバ技術では、動作の冒頭で必ず所定のサーバ装置に通信相手の問い合わせを行わなければならないが、過去の通信の履歴やその他の通信手段によって通信相手がわかる場合には、問い合わせを不要としたい、という要望もある。
【００２１】
本発明は、上記のような課題を解決するもので、コンピュータ通信網に直接的にあるいはルータを介して間接的に接続されて通信対戦を行うのに好適なゲーム端末、ゲーム端末の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２２】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００２３】
本発明の第１の観点に係るゲーム端末は、コンピュータ通信網に直接接続され、もしくは、ルータを介して間接的に接続される。そして、ゲーム端末は、コンピュータ通信網内の他のゲーム端末からなる相手方端末と通信することによりゲームを進行させる。
【００２４】
典型的な態様は、ゲーム端末がコンピュータ通信網にルータを介して間接的に接続される態様である。たとえば、ゲーム端末が家庭内ＬＡＮ内で利用される場合には、ルータを介して、コンピュータ通信網であるインターネットに接続されることが多い。無線ＬＡＮ機能を有するゲーム端末が、無線ＬＡＮ機能を有するルータによって管理される態様も広く利用されている。
【００２５】
ただし、ゲーム端末にグローバルなＩＰアドレスが割り振られるような接続態様を採用することもできる。この場合、ゲーム端末は、コンピュータ通信網に直接的に接続されることになる。
【００２６】
ここで、ルータは、ゲーム端末からコンピュータ通信網内の他の機器宛の接続要求パケットを中継した後、当該他の機器からゲーム端末宛の接続応答パケットが到着すると、当該接続応答パケットをゲーム端末に中継するとともに、当該他の機器からゲーム端末宛のパケットの中継を開始する。
【００２７】
すなわち、本発明で想定するルータは、パケットの発信元と送信先だけを見てパケットのフィルタリングをするものではなく、パケットの種類、典型的には、パケットの各種のヘッダ情報を監視して、フィルタリングを行うのである。
【００２８】
典型的には、ヘッダ情報から、パケットの種類が接続要求パケットなのか、接続応答パケットなのか、それ以外のパケットなのかが判定できるように構成する。
【００２９】
そして、ゲーム端末は、ダミー要求送信部、ダミー応答送信部、ダミー要求受信部、ダミー応答受信部、真正要求送信部、真正要求受信部、真正応答送信部、真正応答受信部、通信部を備え、以下のように構成する。
【００３０】
ここで、ゲーム端末は、通信対戦を行う相手方端末の通信に必要な情報、たとえば、そのＩＰアドレスやポート番号などを、事前に知得しているものとする。
【００３１】
通信対戦ゲームが開始される前に、ゲーム端末と相手方端末とは、いずれも、接続要求パケットと接続応答パケットをやりとりする。
【００３２】
ここで、本発明では、パケットの種類が接続要求パケットであることや、接続応答パケットであることは、パケットのヘッダ情報からわかるものとするのが典型的である。
【００３３】
一方、そのパケットが、ダミーのパケットであることや、真正のパケットであることは、パケットのデータ情報からわかるものとするのが典型的である。
【００３４】
ここで、ダミー要求送信部は、相手方端末宛のダミー接続要求パケットを、繰り返し送信する。一方、ダミー応答送信部は、相手方端末宛のダミー接続応答パケットを、繰り返し送信する。
【００３５】
すなわち、本発明では、通信対戦をしようとするゲーム端末と相手方端末のそれぞれが、ダミーの接続要求パケットとダミーの接続応答パケットとを何度も送信するのである。
【００３６】
このように構成すると、たまたま、「ルータ装置が、ゲーム端末が送信した相手方端末宛のダミー接続要求を中継し、その後に、相手方端末からゲーム端末宛のダミー接続応答がルータ装置に到着する」事象が生ずるものと期待される。
【００３７】
このような事象が生じると、上記のようなフィルタリング規則を採用するルータは、ゲーム端末と相手方端末との通信の中継を開始するようになる。
【００３８】
さて、ダミー要求受信部は、相手方端末から送信されたダミー接続要求パケットを受信する。そして、ダミー応答受信部は、相手方端末から送信されたダミー接続応答パケットを受信する。
【００３９】
したがって、ルータが、ゲーム端末と相手方端末との通信の中継を開始した後は、ダミーの接続要求パケットとダミーの接続応答パケットの両方が、ゲーム端末で受信されるようになるのである。
【００４０】
ダミー接続要求パケットならびにダミー接続応答パケットが受信されると、真正要求送信部は、相手方端末宛の真正接続要求パケットを送信する。
【００４１】
上記のように、ダミーの接続要求パケットとダミーの接続応答パケットの両方がゲーム端末に到着した、ということは、ゲーム端末が接続されているルータが、相手方端末からゲーム端末宛のパケットを中継しても良いと判断したことを意味する。
【００４２】
そこで、ダミーではなく、真正の接続要求パケットを、ゲーム端末から相手方端末に送信するのである。
【００４３】
相手方端末が接続されるルータにおいても、当該ゲーム端末と同様に、パケットの中継が開始されると、当該ゲーム端末と同様に、相手方端末は、真正の接続要求パケットを送信することになる。
【００４４】
そこで、真正要求受信部は、相手方端末から送信された真正接続要求パケットを受信する。
【００４５】
すなわち、真正接続要求パケットが受信された、ということは、相手方端末から当該ゲーム端末への中継がすでに開始されている、ということを意味する。
【００４６】
そこで、真正接続要求パケットが受信されると、真正応答送信部は、相手方端末宛の真正接続応答パケットを送信する。
【００４７】
同様に、相手方端末においても、同様に、真正接続応答パケットが送信されることになる。
【００４８】
そこで、真正応答受信部が、相手方端末から送信された真正接続応答パケットを受信する。
【００４９】
ここで、真正接続応答パケットがゲーム端末に到着した、ということは、「ゲーム端末から相手方端末への中継がすでに開始されている、と、相手方端末が判断した」ということを意味する。
【００５０】
そこで、真正応答パケットが受信されると、通信部は、相手方端末との間で、ゲームを進行させるための通信を開始する。
【００５１】
このように、本発明のゲーム端末は、相手方端末と一緒にダミーのパケットを繰り返し送信することで、ルータのフィルタリング規則に適合した状況を作り出し、ルータに中継を開始させるのである。
【００５２】
本発明によれば、ゲーム端末をＬＡＮ内で管理するルータがパケットの種類を監視するフィルタリング規則を採用している場合であっても、ルータを介した相手方端末との通信を開始して、プレイヤーに通信対戦ゲームを提供することができるようになる。
【００５３】
また、本発明のゲーム端末は、コンピュータ通信網にルータを介して間接的に接続され、ルータは、アドレス変換もしくはアドレス・ポート変換により、ゲーム端末をコンピュータ通信網に通信可能に接続し、接続要求パケットは、ＳＹＮパケットであり、接続応答パケットは、ＳＹＮ／ＡＣＫパケットであるように構成することができる。
【００５４】
本発明は上記発明の好適実施形態に係るものである。すなわち、接続要求パケットは、ＴＣＰ／ＩＰ通信におけるＳＹＮパケットであり、接続応答パケットは、ＴＣＰ／ＩＰ通信におけるＳＹＮ／ＡＣＫパケットである。
【００５５】
なお、ダミーのパケットか真正のパケットかは、パケットのデータ部に格納されるデータによって区別するのが典型的である。
【００５６】
本発明によれば、ＴＣＰ／ＩＰ通信のヘッダ情報を参照したフィルタリング規則を採用するルータにゲーム端末が接続されている場合であっても、ルータを介した相手方端末との通信を開始して、プレイヤーに通信対戦ゲームを提供することができるようになる。
【００５７】
また、本発明のゲーム端末において、当該相手方端末宛のダミー接続要求パケットおよびダミー接続応答パケットの送信を開始してから、ゲームを進行させるための通信が開始されるまでの経過時間の履歴に基づいて、次に当該相手方端末宛のダミー接続要求パケットおよびダミー接続応答パケットを繰り返し送信する際の繰り返し周期が更新されるように構成することができる。
【００５８】
ルータは、特定の相手との間のパケットが頻繁に送受されることを理由に、当該相手から攻撃がなされていると判断することもある。そこで、ダミー接続要求パケットやダミー接続応答パケットの送信の頻度は、できるだけ低くすることが望ましい。すなわち、送信の繰り返し周期は、できるだけ長くすることが望ましい。
【００５９】
そこで、ダミーのパケットの送信を開始してから通信対戦ゲーム本来の通信が開始されるまでの経過時間に応じて、繰り返し周期を調整するのである。
【００６０】
たとえば、経過時間が短縮傾向にある場合には、繰り返し周期を長くしても良いことになる。経過時間が延長傾向にある場合には、繰り返し周期は短くした方が良いことになる。
【００６１】
本発明によれば、ダミーの接続要求パケットや接続応答パケットを送信する繰り返し周期を、適切に自動調整することが可能となる。
【００６２】
また、本発明のゲーム端末において、ゲーム端末がコンピュータ通信網に直接接続されている場合、真正要求送信部は、ダミー接続要求パケットならびにダミー接続応答パケットが受信されるのを待たずに、真正接続要求パケットを送信するように構成することができる。
【００６３】
ゲーム端末がルータを介さずに、直接的にインターネットに接続されているか否かは、たとえば、ゲーム端末が既知のＳＴＵＮ（Simple Traversal of UDP through NATs）サーバに問い合わせを行ったり、既知の通信機器に対してtracerouteを実行することによって判定することができる。
【００６４】
ゲーム端末がコンピュータ通信網に直接接続されている場合には、相手方端末から送信されたパケットは何らフィルタリングの影響を受けずに到着することになる。これは、相手方端末からゲーム端末宛のパケットのルータ装置による中継がすでに開始されている状況に相当する。
【００６５】
そこで、本発明では、直ちに真正接続要求パケットを、相手方端末に送信することとしているのである。
【００６６】
本発明によれば、ゲーム端末と相手方端末との通信ができるだけ早期に開始されるようにすることができる。
【００６７】
本発明のその他の観点に係るゲーム端末の制御方法は、コンピュータ通信網に直接接続され、もしくは、ルータを介して間接的に接続されるゲーム端末を制御する。
【００６８】
ここで、制御方法は、ゲーム端末を、コンピュータ通信網内の他のゲーム端末からなる相手方端末と通信することによりゲームを進行させる。
【００６９】
そして、ゲーム端末は、ダミー要求送信部、ダミー応答送信部、ダミー要求受信部、ダミー応答受信部、真正要求送信部、真正要求受信部、真正応答送信部、真正応答受信部、通信部を備える。
【００７０】
一方、制御方法は、ダミー要求送信工程、ダミー応答送信工程、ダミー要求受信工程、ダミー応答受信工程、真正要求送信工程、真正要求受信工程、真正応答送信工程、真正応答受信工程、通信工程を備える。
【００７１】
ここで、ダミー要求送信工程では、ダミー要求送信部が、相手方端末宛のダミー接続要求パケットを、繰り返し送信する。
【００７２】
一方、ダミー応答送信工程では、ダミー応答送信部が、相手方端末宛のダミー接続応答パケットを、繰り返し送信する。
【００７３】
さらに、ダミー要求受信工程では、ダミー要求受信部が、相手方端末から送信されたダミー接続要求パケットを受信する。
【００７４】
そして、ダミー応答受信工程では、ダミー応答受信部が、相手方端末から送信されたダミー接続応答パケットを受信する。
【００７５】
一方、ダミー接続要求パケットならびにダミー接続応答パケットが受信されると、真正要求送信工程では、真正要求送信部が、相手方端末宛の真正接続要求パケットを送信する。
【００７６】
さらに、真正要求受信工程では、真正要求受信部が、相手方端末から送信された真正接続要求パケットを受信する。
【００７７】
そして、真正接続要求パケットが受信されると、真正応答送信工程では、真正応答送信部が、相手方端末宛の真正接続応答パケットを送信する。
【００７８】
一方、真正応答受信工程では、真正応答受信部が、相手方端末から送信された真正接続応答パケットを受信する。
【００７９】
さらに、真正応答パケットが受信されると、通信工程では、通信部が、相手方端末との間で、ゲームを進行させるための通信を開始する。
【００８０】
本発明のその他の観点に係るプログラムは、コンピュータを上記のゲーム端末の各部として機能させるように構成する。
【００８１】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００８２】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００８３】
本発明によれば、コンピュータ通信網に直接的にあるいはルータを介して間接的に接続されて通信対戦を行うのに好適なゲーム端末、ゲーム端末の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【００８４】
【図１】典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態に係るゲーム端末を含む通信システムの概要構成を示す模式図である。
【図３】通信システムにてパケットの送受が行われる様子を示す説明図である。
【図４】本実施形態に係るゲーム端末の概要構成を示す模式図である。
【図５】本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。
【図６】本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。
【図７】本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。
【図８】本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。
【図９】本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。
【図１０】本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。
【発明を実施するための形態】
【００８５】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００８６】
（情報処理装置）
図１は、プログラムを実行することにより、本実施形態のゲーム端末として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００８７】
本図に示す情報処理装置１０１は、携帯可能なマルチメディアゲーム端末であり、ＣＰＵ（Central Processing Unit）１０２、ＲＡＭ（Random Access Memory）１０３、ＲＯＭ（Read Only Memory）１０４、入力装置１０５、画像処理部１０６、液晶ディスプレイ１０７、音声処理部１０８、ヘッドホン１０９、カセットリーダ１１０、ＲＯＭカセット１１１、外部メモリ１１２、ＲＴＣ（Real Time Clock）１１３、無線ＬＡＮ（Local Area Network）インターフェース１１４、カメラ１１５を備える。
【００８８】
本実施形態に係るプログラムが記録されたＲＯＭカセット１１１を、情報処理装置１０１のカセットリーダ１１０に装着することによって、本実施形態に係るゲーム端末が実現される。
【００８９】
ここで、ＣＰＵ  １０２は、情報処理装置１０１の各部を制御するとともに、各種の演算処理や判断処理を行う。
【００９０】
情報処理装置１０１に電源が投入されると、ＣＰＵ  １０２は、ＲＯＭ  １０４に記録されたＩＰＬ（Initial Program Loader）を実行し、その処理の過程で、カセットリーダ１１０を介して接続されたＲＯＭカセット１１１に記録されたプログラムに処理を移行する。
【００９１】
情報処理装置１０１で実行されるゲームプログラムやマルチメディア情報再生プログラムは、ＲＯＭカセット１１１によって提供されるのが一般的であるが、ＲＯＭ  １０４内にあらかじめ用意しておくことも可能である。
【００９２】
また、ＲＯＭ  １０４内には、ＢＩＯＳ（Basic Input Output System）と呼ばれるプログラム群が用意されており、入力装置１０５や画像処理部１０６、音声処理部１０８の制御を行うことができる。
【００９３】
ＲＡＭ  １０３は、一時的な情報を記憶するための領域であり、外部メモリ１１２は、不揮発な情報を記憶するための領域である。外部メモリ１１２としては、ハードディスクなど、主として情報処理装置１０１に内蔵されるもののほか、各種のメモリカードなど、情報処理装置１０１に抜挿されるものを利用しても良い。
【００９４】
入力装置１０５は、各種のボタンやキーボード、マウス、ジョイスティック等により実現されるのが一般的であるが、液晶ディスプレイ１０７と一体に形成されたタッチスクリーンを入力装置１０５として利用することも可能である。
【００９５】
画像処理部１０６は、ＣＰＵ  １０２の制御の下、各種の文字情報や画像情報を液晶ディスプレイ１０７に表示させるものであり、一般には、垂直同期割込周期（典型的には、３０分の１秒や６０分の１秒程度である。）ごとに、ＲＡＭ  １０３内に用意されたフレームバッファに記憶された画素情報を液晶ディスプレイ１０７の各画素に反映させる。
【００９６】
ユーザからの指示入力は、液晶ディスプレイ１０７に表示されたカーソルを入力装置１０５の移動ボタン操作により移動して、所望のメニュー項目にカーソルを合わせ、決定ボタン操作によって当該メニュー項目を選択するのが一般的であるが、タッチスクリーンを利用する場合にはカーソルは不要である。また、入力装置１０５の各ボタンに割り当てられる機能があらかじめ決まっている場合には、液晶ディスプレイ１０７に対する表示は、必ずしも必要ない。
【００９７】
音声処理部１０８は、ＲＡＭ  １０３やＲＯＭ  １０４、ＲＯＭカセット１１１、外部メモリ１１２に用意された音声データをヘッドホン１０９に出力する。音声データとしては、音声の波形データをディジタル化したＰＣＭ（Pulse Code Modulation）データや、ＰＣＭデータを圧縮してサイズを小さくしたＭＰ３（MPeg audio layer-3）データ等を利用することが可能であるほか、ＭＩＤＩ（Music Instruction Data Interface）データのように、音高、音長、音量、音色の種類を定義するデータを用意し、これにしたがって、あらかじめ用意された音源波形データを適宜選択・変形して再生する手法を採用しても良い。
【００９８】
ＲＴＣ  １１３は、現在の日時を計測するもので、情報処理装置１０１を初めて利用する際に時刻合わせを行うのが一般的であるが、無線ＬＡＮインターフェース１１４を介してＮＴＰ（Network Time Protocol）サーバに接続することで、自動的に時刻合わせを行うような態様を採用することも可能である。
【００９９】
また、アラーム割込を発生させる機能を持つＲＴＣ  １１３もある。設定された時刻になるとアラーム割込が発生して、ＣＰＵ  １０２は、現在実行中のプログラムを一時中断し、あらかじめ設定された割込ハンドラを実行してから、中断したプログラムを再開する。
【０１００】
無線ＬＡＮインターフェース１１４は、自宅や会社、街角に用意された無線ＬＡＮアクセスポイントを介してインターネットに接続したり、近傍に配置された他の情報処理装置１０１と、アドホックに通信路を確立し、１対１で通信を行うなどが可能である。
【０１０１】
カメラ１１５は、情報処理装置１０１によってディジタルカメラの機能を実現するものであり、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）撮像素子などの技術を適用することが可能である。撮影された画像は、一時的にＲＡＭ  １０３に展開された後、外部メモリ１１２等に保存される。
【０１０２】
このほか、ビジネス用コンピュータ、携帯電話、ＰＤＡ（Personal Data Assistant）、携帯ゲーム端末、多機能テレビジョン装置、ＤＶＤ（Digital Versatile Disc）プレイヤー、携帯音楽プレイヤーなどを、本発明のゲーム端末が実現される情報処理装置として採用することもできる。
【０１０３】
たとえば、無線ＬＡＮインターフェース１１４にかえて、有線ＬＡＮインターフェースを利用することとしたり、外部メモリ１１２のほか、ハードディスクやＥＥＰＲＯＭ等のメモリカードを利用して、各種のデータを読み書きすることとしても良い。また、ＲＯＭカセット１１１内に、ＥＥＰＲＯＭ等により実現された記憶領域を設けて、ゲームの状態等各種の設定情報を記憶させることとしても良い。
【０１０４】
さらに、ＲＯＭカセット１１１によりプログラムを提供するのではなく、ＤＶＤ−ＲＯＭやＣＤ−ＲＯＭにより提供しても良いし、通信回線を利用してプログラムがダウンロードされるような態様を採用しても良い。
【０１０５】
（通信システム）
図２は、本実施形態に係るゲーム端末を含む通信システムの概要構成を示す模式図である。以下、本図を参照して説明する。
【０１０６】
本実施形態に係る通信システム２０１では、ゲーム端末２２１ａ、２２１ｂが通信対戦ゲームのための通信を確立しようとしている。ゲーム端末２２１ａ、２２１ｂに共通する機能を添字の「ａ」や「ｂ」を適宜省略するものとする。その他の機器の符号についても同様である。
【０１０７】
ゲーム端末２２１ａ、２２１ｂは、上記の情報処理装置１０１にてＲＯＭカセット１１１に記録されているプログラムをＣＰＵ  １０２が実行することによって実現される。
【０１０８】
また、ルータ２４１ａ、２４１ｂは、家庭内ＬＡＮを管理している。ゲーム端末２２１ａ、２２１ｂは、それぞれ、ルータ２４１ａ、２４１ｂが管理する無線ＬＡＮ経由でインターネット２６１に接続される。
【０１０９】
図２に示す例では、ゲーム端末２２１がインターネット２６１にルータ２４１を介して間接的に接続されている。また、ロビーサーバ２８１もインターネット２６１を介して、各ゲーム端末２２１と通信可能である。
【０１１０】
ここで、ルータ２４１は、ゲーム端末２２１からインターネット２６１等の他の機器宛の接続要求パケットを中継した後、当該他の機器からゲーム端末２２１宛の接続応答パケットが到着すると、当該接続応答パケットをゲーム端末２２１に中継するとともに、当該他の機器からゲーム端末２２１宛のパケットの中継を開始する。
【０１１１】
すなわち、本実施形態で想定するルータ２４１は、パケットの発信元と送信先だけを見てパケットのフィルタリングをするものではなく、パケットの種類、典型的には、パケットの各種のヘッダ情報を監視して、フィルタリングを行うのである。
【０１１２】
典型的には、ヘッダ情報から、パケットの種類が接続要求パケットなのか、接続応答パケットなのか、それ以外のパケットなのかが判定できるように構成する。
【０１１３】
広く利用されているＴＣＰ／ＩＰ通信に対してこのフィルタリング規則を適用する場合には、接続要求パケットとして、ＳＹＮパケットを利用し、接続応答パケットとして、ＳＹＮ／ＡＣＫパケットを利用することができる。ＳＹＮならびにＡＣＫは、ＴＣＰ／ＩＰパケットのヘッダ内のビットによって表現される。
【０１１４】
また、本実施形態では、接続要求パケットならびに接続応答パケットに対して、ダミーと真正の２種類を用意する。これらの種類は、ＴＣＰ／ＩＰパケットのデータ部に格納される情報によって区別するものとする。
【０１１５】
また、ロビーサーバ２８１は、ゲーム端末２２１が通信相手の情報をまったく持っていない場合等に、当該ゲーム端末２２１からの要求に応じて、他のゲーム端末２２１を紹介する機能を果たす。
【０１１６】
図３は、通信システム２０１にてパケットの送受が行われる様子を示す説明図である。以下、本図を参照して説明する。
【０１１７】
本図においては、要求に相当するパケットは実線の矢印で、応答に相当するパケットは実線の矢印で、それぞれ表記している。
【０１１８】
さて、ゲーム端末２２１ａは、初めてゲームを開始する際には、対戦相手を紹介してもらうために、ルータ２４１経由でロビーサーバ２８１に紹介要求３０１ａを送信する。同様に、ゲーム端末２２１ｂは、ロビーサーバ２８１にルータ２４１ｂ経由で紹介要求３０１ｂを送信する。
【０１１９】
したがって、紹介要求３０１ａを送信したゲーム端末２２１ａからは、ロビーサーバ２８１に対して、「ルータ２４１ａのＩＰアドレス、および、ゲーム端末２２１ａとの通信が中継されるべきルータ２４１ａのポート番号」が通知されることになる。
【０１２０】
また、紹介要求３０１ｂを送信したゲーム端末２２１ｂからは、ロビーサーバ２８１に対して、「ルータ２４１ｂのＩＰアドレス、および、ゲーム端末２２１ｂとの通信が中継されるべきルータ２４１ｂのポート番号」が通知されることになる。
【０１２１】
各ルータ２４１から見ると、各紹介要求３０１は、自身が管理しているＬＡＮ内から外へ送信されるパケットである。また、ロビーサーバ２８１は、各紹介要求３０１に対して返答ができるようにフィルタリング設定等がされている。
【０１２２】
したがって、各ルータ２４１は紹介要求３０１に係る各ゲーム端末２２１とロビーサーバ２８１との通信を、そのまま中継することになる。本図では、ルータ２４１が中継を行っていることを、丸印で標記している。
【０１２３】
さて、紹介要求３０１ａ、３０１ｂを受信したロビーサーバ２８１が、ゲーム端末２２１ａ、２２１ｂのそれぞれに、通信対戦ゲームの対戦相手として相手方を紹介することに決めたものとする。
【０１２４】
すると、ロビーサーバ２８１から、ゲーム端末２２１ａへ、「ルータ２４１ｂのＩＰアドレス、および、ゲーム端末２２１ｂとの通信が中継されるべきルータ２４１ｂのポート番号」を通知するための紹介応答３０２ａが送信される。
【０１２５】
また、ロビーサーバ２８１から、ゲーム端末２２１ｂへ、「ルータ２４１ａのＩＰアドレス、および、ゲーム端末２２１ａとの通信が中継されるべきルータ２４１ａのポート番号」を通知するための紹介応答３０２ｂが送信される。
【０１２６】
上記のように、各ルータ２４１は、各ゲーム端末２２１とロビーサーバ２８１との通信を中継するので、各紹介応答３０２は、各ルータ２４１に中継されて、各ゲーム端末２２１に到達する。
【０１２７】
これにより、ゲーム端末２２１ａは、「ルータ２４１ｂのＩＰアドレス、および、ゲーム端末２２１ｂとの通信が中継されるべきルータ２４１ｂのポート番号」を知得することができる。
【０１２８】
また、ゲーム端末２２１ｂは、「ルータ２４１ａのＩＰアドレス、および、ゲーム端末２２１ａとの通信が中継されるべきルータ２４１ａのポート番号」を知得することができる。
【０１２９】
すると、ゲーム端末２２１ａは、相手方端末であるゲーム端末２２１ｂ宛のダミー接続要求３０３ａと、ダミー接続応答３０４ａと、を、ルータ２４１ａ経由で、繰り返し送信する。これらのパケットは、ルータ２４１ｂに到着し、ルータ２４１ｂにおけるフィルタリングの対象となるか否かが吟味される。
【０１３０】
また、ゲーム端末２２１ｂは、相手方端末であるゲーム端末２２１ａ宛のダミー接続要求３０３ｂと、ダミー接続応答３０４ｂと、を、ルータ２４１ｂ経由で、繰り返し送信する。これらのパケットは、ルータ２４１ａに到着し、ルータ２４１ｂにおけるフィルタリングの対象となるか否かが吟味される。
【０１３１】
さて、パケットのヘッダを監視する規則を採用している場合、ルータ２４１ａにおけるフィルタリングの判断は、以下のように行われる。
【０１３２】
まず、ルータ２４１ａに、インターネット２６１側から、ゲーム端末２２１ｂ発のダミー接続要求３０３ｂが初めて到着したときには、ルータ２４１ａは、殆どの場合、このダミー接続要求３０３ｂの中継を拒否するものと考えられる。
【０１３３】
本図では、ルータ２４１が中継を拒否する旨を、バツ印で標記している。
【０１３４】
これは、ルータ２４１ａには、「ゲーム端末２２１ｂは、ルータ２４１ａが管理するＬＡＮ内のゲーム端末２２１ａの通信相手である」ということがわからないからである。
【０１３５】
同様に、ルータ２４１ａに、インターネット２６１側から、ゲーム端末２２１ｂ発のダミー接続応答３０４ｂが初めて到着したときには、ルータ２４１ａは、このダミー接続要求３０３ｂの中継を拒否する。拒否の際には、単にパケットを廃棄するだけの処理が行われ、発信元であるゲーム端末２２１ｂ対しては、何の通知もされないのが一般的である。
【０１３６】
しかしながら、ルータ２４１ａが管理するＬＡＮ内のゲーム端末２２１ａからは、ゲーム端末２２１ｂ宛のダミー接続要求３０３ａが繰り返し送信され、ルータ２４１ａに到着している。
【０１３７】
一方で、外部のゲーム端末２２１ｂからは、ゲーム端末２２１ａ宛のダミー接続応答３０４ｂが繰り返し送信され、ルータ２４１ａに到着している。
【０１３８】
このため、ルータ２４１ａに、
（ａ）ゲーム端末２２１ａからの、ゲーム端末２２１ｂ宛のダミー接続要求３０３ａ
が到着してから時間をおかずに、ルータ２４１ａに、
（ｂ）ゲーム端末２２１ｂからの、ゲーム端末２２１ａ宛のダミー接続応答３０４ｂ
が到着する事象が、いつか生じることとなる。
【０１３９】
このような事象を生じさせることによって、ルータ２４１ａに、上記（ａ）ダミー接続要求３０３ａの送信に対して上記（ｂ）ダミー接続応答３０４ｂが返信されたものと推測させることができる。
【０１４０】
このように推測したルータ２４１ａは、フィルタリング規則に基づいて、自身が管理するゲーム端末２２１ａと、外部に配置されるゲーム端末２２１ｂと、の間のパケットの中継を許可する。
【０１４１】
このため、上記（ｂ）において到着したダミー接続応答３０４ｂは、ルータ２４１ａに中継されて、ゲーム端末２２１ａに到着することになる。
【０１４２】
さらに、この後は、ルータ２４１ａは、ゲーム端末２２１ｂからの、ゲーム端末２２１ａ宛のダミー接続要求３０３ｂも中継することとなるので、ゲーム端末２２１ａには、ダミー接続要求３０３ｂも到着する。
【０１４３】
これと同様に、ルータ２４１ｂにおいても、
（Ａ）ゲーム端末２２１ｂからの、ゲーム端末２２１ａ宛のダミー接続要求３０３ｂ
が到着してから時間をおかずに、ルータ２４１ｂに、
（Ｂ）ゲーム端末２２１ａからの、ゲーム端末２２１ｂ宛のダミー接続応答３０４ａ
が到着する事象が、いつか生じることとなる。
【０１４４】
すると、ルータ２４１ｂは、自身が管理するゲーム端末２２１ｂと、外部に配置されるゲーム端末２２１ａと、の間のパケットの中継を許可する。
【０１４５】
このため、上記（Ｂ）において到着したダミー接続応答３０４ａは、ルータ２４１ｂに中継されて、ゲーム端末２２１ｂに到着することになる。
【０１４６】
さらに、この後は、ルータ２４１ｂは、ゲーム端末２２１ａからの、ゲーム端末２２１ｂ宛のダミー接続要求３０３ａも中継することとなるので、ゲーム端末２２１ｂには、ダミー接続要求３０３ａも到着する。
【０１４７】
このようにして、ＵＤＰホールパンチングと同様に、ルータ２４１ａ、２４１ｂに「ゲーム端末２２１ａ、２２１ｂの通信用のホール」を開けることができるのである。
【０１４８】
ゲーム端末２２１ａに、ゲーム端末２２１ｂからのダミー接続要求３０３ｂとダミー接続応答３０４ｂの両方が到着すると、ゲーム端末２２１ａは、ルータ２４１ａにホールが開いたと判断することができる。
【０１４９】
同様に、ゲーム端末２２１ｂに、ゲーム端末２２１ａからのダミー接続要求３０３ａとダミー接続応答３０４ａの両方が到着すると、ゲーム端末２２１ｂは、ルータ２４１ｂにホールが開いたと判断することができる。
【０１５０】
そこで、この後、ゲーム端末２２１ａは、通信対戦ゲームを開始するための真正接続要求３０５ａを、ゲーム端末２２１ｂに送信する。一方、ゲーム端末２２１ｂは、通信対戦ゲームを開始するための真正接続要求３０５ｂを、ゲーム端末２２１ａに送信する。
【０１５１】
ゲーム端末２２１ａが、ゲーム端末２２１ｂから送信された真正接続要求３０５ｂを受信すると、これに呼応して、通信対戦ゲームを開始するための真正接続応答３０６ａを、ゲーム端末２２１ｂに送信する。一方、ゲーム端末２２１ｂが、ゲーム端末２２１ａから送信された真正接続要求３０５ａを受信すると、これに呼応して、通信対戦ゲームを開始するための真正接続応答３０６ｂを、ゲーム端末２２１ａに送信する。
【０１５２】
ゲーム端末２２１ａが、ゲーム端末２２１ｂから送信された真正接続応答３０６ｂを受信することによって、ゲーム端末２２１ａからゲーム端末２２１ｂへの通信が確立したことになる。一方、ゲーム端末２２１ｂが、ゲーム端末２２１ａから送信された真正接続応答３０６ａを受信することによって、ゲーム端末２２１ｂからゲーム端末２２１ａへの通信が確立したことになる。
【０１５３】
この後は、確立した通信によって、一般的な通信対戦ゲームと同様に、通信対戦パケット３０７の送受が行われることになる。
【０１５４】
さて、一旦通信が確立すると、ゲーム端末２２１ａ、２２１ｂは、通信相手のＩＰアドレスやポート番号、ホスト名等の通信識別子をフレンドリストに保存し、次回以降の利用に備えることが可能である。
【０１５５】
一般に、ルータ２４１がインターネット２６１に常時接続されている場合には、そのＩＰアドレスは、ほとんど変化しない。したがって、フレンドリストに保存されたＩＰアドレス等は、次にゲーム端末２２１を用いてゲームをしようとする際にも有効である可能性が高い。
【０１５６】
このため、一旦通信対戦ゲームを終了した後、後日あらためて通信対戦ゲームをしようとする場合には、まず、ゲーム端末２２１は、フレンドリストに保存されたＩＰアドレス等を再利用して接続の確立を試行する。
【０１５７】
この試行が成功した場合には、ゲーム端末２２１からロビーサーバ２８１へのアクセスは、しなくて済むことになる。
【０１５８】
以下、本実施形態に係るゲーム端末２２１について、さらに詳細に説明する。
【０１５９】
（ゲーム端末）
本実施形態に係るゲーム端末２２１は、情報処理装置１０１において、ＲＯＭカセット１１１に記録されているプログラムをＣＰＵ  １０２が実行することによって実現される。
【０１６０】
ここで、ゲーム端末２２１は、インターネット２６１等のコンピュータ通信網に直接接続され、もしくは、ルータ２４１を介して間接的に接続される。
【０１６１】
上記の説明では、ゲーム端末２２１がルータ２４１を介してインターネット２６１に接続される態様を説明したが、ゲーム端末２２１が直接インターネット２６１に接続される態様を採用しても良い。
【０１６２】
あるゲーム端末２２１がルータ２４１を介してインターネット２６１に接続される場合には、外部の通信機器が当該ゲーム端末２２１と通信するためのＩＰアドレスとポート番号は、ルータ２４１のＩＰアドレスとポート番号になる。これは、ルータ２４１において、アドレス変換やポート番号変換が行われるからである。
【０１６３】
そして、ゲーム端末２２１は、他のゲーム端末２２１からなる相手方端末と通信することによりゲームを進行させる。
【０１６４】
さて、通信対戦ゲームが開始される前に、ゲーム端末２２１と相手方端末とは、いずれも、接続要求パケットと接続応答パケットをやりとりする。
【０１６５】
上記のように、本実施形態では、パケットの種類が接続要求パケットであることや、接続応答パケットであることは、パケットのヘッダ情報からわかる。また、そのパケットが、ダミーのパケットであることや、真正のパケットであることは、パケットのデータ情報からわかる。
【０１６６】
図４は、本実施形態に係るゲーム端末２２１の概要構成を示す模式図である。以下、本図を参照して説明する。
【０１６７】
本実施形態に係るゲーム端末２２１は、ダミー要求送信部４０１、ダミー応答送信部４０２、ダミー要求受信部４０３、ダミー応答受信部４０４、真正要求送信部４０５、真正要求受信部４０６、真正応答受信部４０７、真正応答送信部４０８、通信部４０９を備えるほか、記憶部４１０を有する。
【０１６８】
これらは、情報処理装置１０１において、ＣＰＵ  １０２の制御の下、無線ＬＡＮインターフェース１１４が機能することによって実現される。
【０１６９】
このほか、本実施形態に係るゲーム端末２２１は、通信対戦を行う相手方端末の通信に必要な情報、たとえば、そのＩＰアドレスやポート番号などを、ロビーサーバ２８１に問い合わせたり、過去に何らかの手法で知得していることがある。
【０１７０】
このため、本実施形態に係るゲーム端末２２１では、記憶部４１０に、過去にロビーサーバ２８１から紹介された相手方端末のＩＰアドレス、ポート番号および繰り返し周期が記憶される。
【０１７１】
したがって、記憶部４１０は、情報処理装置１０１において、外部メモリ１１２やＲＯＭカセット１１１内の情報保存領域、ハードディスク、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）等により、実現される。
【０１７２】
ここで、ダミー要求送信部４０１は、相手方端末宛のダミー接続要求３０３を、当該相手方端末に対して記憶された繰り返し周期で、繰り返し送信する。一方、ダミー応答送信部４０２は、相手方端末宛のダミー接続応答３０４を、当該相手方端末に対して記憶された繰り返し周期で、繰り返し送信する。
【０１７３】
上記のように、本実施形態では、通信対戦をしようとするゲーム端末２２１と相手方端末のそれぞれが、ダミーの接続要求のパケットとダミーの接続応答のパケットとを何度も送信するのである。
【０１７４】
このように構成すると、たまたま、「ルータ２４１装置が、ゲーム端末２２１が送信した相手方端末宛のダミー接続要求３０３を中継し、その後に、相手方端末からゲーム端末２２１宛のダミー接続応答３０４がルータ２４１装置に到着する」事象が生ずることになる。
【０１７５】
このような事象が生じると、上記のようなフィルタリング規則を採用するルータ２４１は、ゲーム端末２２１と相手方端末との通信の中継を開始するようになる。
【０１７６】
さて、ダミー要求受信部４０３は、相手方端末から送信されたダミー接続要求３０３を受信する。そして、ダミー応答受信部４０４は、相手方端末から送信されたダミー接続応答３０４を受信する。
【０１７７】
したがって、ルータ２４１が、ゲーム端末２２１と相手方端末との通信の中継を開始した後は、ダミーの接続要求のパケットとダミーの接続応答のパケットの両方が、ゲーム端末２２１で受信されるようになるのである。
【０１７８】
ダミー接続要求３０３ならびにダミー接続応答３０４が受信されると、真正要求送信部４０５は、相手方端末宛の真正接続要求３０５を送信する。
【０１７９】
上記のように、ダミーの接続要求のパケットとダミーの接続応答のパケットの両方がゲーム端末２２１に到着した、ということは、ゲーム端末２２１が接続されているルータ２４１が、相手方端末からゲーム端末２２１宛のパケットを中継しても良いと判断したことを意味する。
【０１８０】
そこで、ダミーではなく、真正の接続要求パケットを、ゲーム端末２２１から相手方端末に送信するのである。
【０１８１】
相手方端末が接続されるルータ２４１においても、当該ゲーム端末２２１と同様に、パケットの中継が開始されると、当該ゲーム端末２２１と同様に、相手方端末は、真正の接続要求パケットを送信することになる。
【０１８２】
そこで、真正要求受信部４０６は、相手方端末から送信された真正接続要求３０５を受信する。
【０１８３】
すなわち、真正接続要求３０５が受信された、ということは、相手方端末から当該ゲーム端末２２１への中継がすでに開始されている、ということを意味する。
【０１８４】
そこで、真正接続要求３０５が受信されると、真正応答送信部４０８は、相手方端末宛の真正接続応答３０６を送信する。
【０１８５】
同様に、相手方端末においても、同様に、真正接続応答３０６が送信されることになる。
【０１８６】
そこで、真正応答受信部４０７が、相手方端末から送信された真正接続応答３０６を受信する。
【０１８７】
ここで、真正接続応答３０６がゲーム端末２２１に到着した、ということは、「ゲーム端末２２１から相手方端末への中継がすでに開始されている、と、相手方端末が判断した」ということを意味する。
【０１８８】
そこで、真正応答パケットが受信されると、通信部４０９は、相手方端末との間で、ゲームを進行させるための通信を開始する。
【０１８９】
このように、本実施形態のゲーム端末２２１は、相手方端末と一緒にダミーのパケットを繰り返し送信することで、ルータ２４１のフィルタリング規則に適合した状況を作り出し、ルータ２４１に中継を開始させるのである。
【０１９０】
なお、上記のように、本実施形態では、接続要求パケットとして、ＳＹＮパケットを、接続応答パケットとして、ＳＹＮ／ＡＣＫパケットを、それぞれ採用している。
【０１９１】
したがって、上記の各種パケットの送受は、通常のＴＣＰ／ＩＰ通信のパケット送受の中において、適宜実行されることになる。
【０１９２】
特に、ＴＣＰ／ＩＰ通信が確立される際には、以下のように送受が行われる。
【０１９３】
すなわち、真正の接続要求のパケット用のＳＹＮパケットを送信することにより上りコネクションの確立を試行する。
【０１９４】
ついで、真正の接続応答のパケット用のＳＹＮ／ＡＣＫパケットが受信されることにより、上りコネクションの確認と下りコネクションの確立が試行される。
【０１９５】
この後に、ＡＣＫパケットが送信されることによって、下りコネクションが確立されることになる。
【０１９６】
そして、この流れを双方において行うことで、確実にルータ２４１にホールを開けることが可能となるのである。
【０１９７】
以下、上記各部を実現する情報処理装置１０１がゲーム端末２２１として動作する際の処理について、さらに詳細に説明する。
【０１９８】
図５、図６、図７、図８、図９、図１０は、本実施形態に係るゲーム端末２２１にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１９９】
本実施形態では、ゲーム制御処理は、ＣＰＵ  １０２が、ＲＯＭカセット１１１からプログラムをＲＡＭ  １０３内に読み出して実行することによって開始される。
【０２００】
ゲーム制御処理が開始されると、ＣＰＵ  １０２は、各種の初期化を行う（ステップＳ５０１）。ここでは、外部メモリ１１２やＲＯＭカセット１１１等に記録されている情報がＲＡＭ  １０３に読み出され、通信対戦ゲームの進行に必要な各種の初期化が行われる。また、無線ＬＡＮやインターネット２６１に対する自身の登録などの処理も行われる。
【０２０１】
ここで、上記のように、外部メモリ１１２等により実現される記憶部４１０から、過去にロビーサーバ２８１から当該ゲーム端末２２１に対して紹介された他のゲーム端末２２１の情報が読み出される。具体的には、他のゲーム端末２２１ごとに、以下のような情報が、外部メモリ１１２からフレンドリストとしてＲＡＭ  １０３に読み出されることになる。
（ａ）当該他のゲーム端末２２１との通信に用いたＩＰアドレス。当該他のゲーム端末２２１がルータ２４１を介してインターネット２６１に接続されている場合には、これは、当該ルータ２４１のインターネット２６１側のＩＰアドレスに一致する。
（ｂ）当該他のゲーム端末２２１との通信に用いたポート番号。当該他のゲーム端末２２１を管理するルータ２４１がＩＰアドレス・ポート番号変換を行っている場合に必要となる。なお、ゲームの実装によっては、このポート番号は固定の定数とすることも可能である。その場合、１つのルータ２４１を用いて通信対戦ができる他のゲーム端末２２１は１台に限られることになるが、ポート番号をフレンドリストで管理する必要はない。
（ｃ）当該他のゲーム端末２２１に対してダミーのパケットを繰り返し送信する際の繰り返し周期。当該他のゲーム端末２２１を管理するルータ２４１で採用するフィルタリング規則に適合する時間長を求めたものである。なお、この繰り返し周期を定数とする実装も可能であり、この場合には、繰り返し周期をフレンドリストで管理する必要はない。また、繰り返し周期の調整の手法については、後述する。
【０２０２】
さらに、ＲＡＭ  １０３においては、以下のような情報も管理される。
（ｄ）当該他のゲーム端末２２１から、どのような種類のパケットが到着したか、を示す情報。初期値は、いずれの種類のパケットも到着していないということになる。
（ｅ）当該他のゲーム端末２２１に対して前回ダミーのパケットを送信した時刻。
【０２０３】
ついで、ＣＰＵ  １０２は、フレンドリストに登録済みのゲーム端末２２１、すなわち、相手方端末の候補であるゲーム端末２２１のそれぞれに対して、以下の処理を繰り返す（ステップＳ５０２）。
【０２０４】
すなわち、無線ＬＡＮインターフェース１１４を制御して、当該ゲーム端末２２１宛に、ダミー接続要求３０３を送信する（ステップＳ５０３）。
【０２０５】
さらに、当該ゲーム端末２２１宛に、ダミー接続応答３０４を送信する（ステップＳ５０４）。
【０２０６】
そして、ＲＡＭ  １０３内のフレンドリストにおいて、当該ゲーム端末２２１宛に、ダミーのパケットを送信した時刻として、現在の時刻を書き込んで記録する（ステップＳ５０５）。
【０２０７】
候補すべてについて、これらのダミーのパケットの送信処理を繰り返したら（ステップＳ５０６）、ＣＰＵ  １０２は、他のゲーム端末２２１から何らかのパケットが到着するまで、もしくは、所定のタイムアウト時間が経過するまで待機する（ステップＳ５０７）。
【０２０８】
なお、この待機の間、ＣＰＵ  １０２は、他の処理を並行してコルーチン的に実行することができる。また、受信割込やタイムアウト割込などを利用することによって、待機処理を実現することとしても良い。
【０２０９】
待機が終了したら、パケットが到着しているか否かを調べる（ステップＳ５０８）。パケットが到着していなければ（ステップＳ５０８；Ｎｏ）、相手方端末の候補であるゲーム端末２２１のそれぞれに対して、以下の処理を繰り返す（ステップＳ５２１）。
【０２１０】
すなわち、当該ゲーム端末２２１に対してダミーパケット送信条件が成立するか否か、すなわち、ダミーのパケットを送信すべきか否かを判定する（ステップＳ５２２）。
【０２１１】
ここで、ダミーパケット送信条件が成立する場合、とは、以下の条件（ａ）（ｂ）が両方とも満たされる場合である。
（ａ）『「当該ゲーム端末２２１からダミー接続要求３０３とダミー接続応答３０４の両方を受信した」あるいは「当該ゲーム端末２２１から真正接続要求３０５を受信した」』が成立していないこと。この条件は、ＲＡＭ  １０３に用意された一時的なフレンドリストの情報を確認することによって判定できる。
（ｂ）当該ゲーム端末２２１に対して、前回、ダミー接続要求３０３とダミー接続応答３０４を送信した時点から、当該ゲーム端末２２１における繰り返し周期の時間が経過していること。この条件は、ＲＡＭ  １０３に用意された前回のダミーパケット送信時刻と現在時刻の差と、フレンドリスト内の繰り返し周期と、を比較することによって判定できる。
【０２１２】
ダミーパケット送信条件が成立する場合（ステップＳ５２２；Ｙｅｓ）、無線ＬＡＮインターフェース１１４を制御して、当該ゲーム端末２２１宛に、ダミー接続要求３０３を送信し（ステップＳ５２３）、さらに、当該ゲーム端末２２１宛に、ダミー接続応答３０４を送信する（ステップＳ５２４）。
【０２１３】
そして、ＲＡＭ  １０３内のフレンドリストにおいて、当該ゲーム端末２２１宛に、ダミーのパケットを送信した時刻として、現在の時刻を書き込み（ステップＳ５２５）、ステップＳ５２６に進む。
【０２１４】
一方、ダミーパケット送信条件が成立しない場合（ステップＳ５２２；Ｎｏ）、ステップＳ５２６に進む。
【０２１５】
候補すべてについて、これらの処理を繰り返したら（ステップＳ５２６）、前回ステップＳ５０２を実行してから所定の調査時間が経過したか否かを判定し（ステップＳ５２７）、経過していなければ（ステップＳ５２７；Ｎｏ）、ステップＳ５０７に戻る。
【０２１６】
このようにすることで、あるゲーム端末２２１宛にダミー接続要求３０３およびダミー接続応答３０４が、当該ゲーム端末２２１に対する繰り返し周期ごとに、繰り返し送信されることになる。
【０２１７】
また、調査時間とは、過去に初回された他のゲーム端末２２１のうち、いずれのゲーム端末２２１と現在通信が可能であるか、を調査するための時間である。後述するように、この調査時間内にいずれのゲーム端末２２１とも通信が確立できなかった場合には、ロビーサーバ２８１に紹介を求めることになる。
【０２１８】
さて、他のゲーム端末２２１からパケットが到着した場合（ステップＳ５０８；Ｙｅｓ）、ＣＰＵ  １０２は、まず、そのパケットの送信元を取得する（ステップＳ５４１）。
【０２１９】
そして、ＣＰＵ  １０２は、その送信元のゲーム端末２２１が、フレンドリストに登録されているか否かを調べ（ステップＳ５４２）、登録されていなければ（ステップＳ５４２；Ｎｏ）、ＲＡＭ  １０３内に読み出されたフレンドリストと、外部メモリ１１２等に保存されるフレンドリストの両方に、当該ゲーム端末２２１の情報を追加して（ステップＳ５４３）、ステップＳ５４４に進む。
【０２２０】
ステップＳ５４３において、ＩＰアドレスやポート番号は、パケットの送信元情報から得たものを利用すれば良い。また、繰り返し周期は、適当な初期値を登録することになる。
【０２２１】
パケットの送信元が既にフレンドリストに登録されていた場合（ステップＳ５４２；Ｙｅｓ）、ＣＰＵ  １０２は、パケットの種類を調べる（ステップＳ５４４）。
【０２２２】
パケットの種類がダミー接続要求３０３であった場合（ステップＳ５４４；ダミー接続要求）、ＣＰＵ  １０２は、ＲＡＭ  １０３に対して、当該パケットの送信元のゲーム端末２２１から、ダミー接続要求３０３を受信した旨を記録して（ステップＳ５４５）、ステップＳ５０７に戻る。
【０２２３】
パケットの種類がダミー接続応答３０４であった場合（ステップＳ５４４；ダミー接続応答）、ＣＰＵ  １０２は、ＲＡＭ  １０３に対して、当該パケットの送信元のゲーム端末２２１から、ダミー接続応答３０４を受信した旨を記録して（ステップＳ５４６）、ステップＳ５０７に戻る。
【０２２４】
パケットの種類が真正接続要求３０５であった場合（ステップＳ５４４；真正接続要求）、ＣＰＵ  １０２は、ＲＡＭ  １０３に対して、当該パケットの送信元のゲーム端末２２１から、真正接続要求３０５を受信した旨を記録する（ステップＳ５４７）。そして、当該送信元のゲーム端末２２１に対して、真正接続応答３０６を送信してから（ステップＳ５４８）ステップＳ５０７に戻る。
【０２２５】
その他のパケットであった場合（ステップＳ５４４；その他）、対応する処理を適宜行って（ステップＳ５４９）、ステップＳ５０７に戻る。ここで実行される典型的な処理は、当該パケットを単に破棄する処理である。
【０２２６】
さて、調査時間が経過した場合（ステップＳ５２７；Ｙｅｓ）、ＣＰＵ  １０２は、フレンドリストに含まれるゲーム端末２２１のそれぞれに対して、以下の処理を繰り返す（ステップＳ５６１）。
【０２２７】
すなわち、ＣＰＵ  １０２は、当該ゲーム端末２２１が、真正パケット送信条件を満たしているか否かを判定する（ステップＳ５６２）。ここで、真正パケット送信条件は、「当該ゲーム端末２２１から、ダミー接続要求３０３とダミー接続応答３０４の両方を受信した」もしくは、「当該ゲーム端末２２１から、真正接続要求３０５を受信した」場合に満たされる。この条件は、ＲＡＭ  １０３に用意された一時的なフレンドリストの情報を確認することによって判定できる。
【０２２８】
真正パケット送信条件が満たされていない場合（ステップＳ５６２；Ｎｏ）、ステップＳ５６４に進む。
【０２２９】
一方、真正パケット送信条件が満たされている場合（ステップＳ５６２；Ｙｅｓ）、ＣＰＵ  １０２は、無線ＬＡＮインターフェース１１４を制御して、当該ゲーム端末２２１に対して真正接続要求３０５を送信し（ステップＳ５６３）、ステップＳ５６４に進む。
【０２３０】
各ゲーム端末２２１について、これらの処理を繰り返した後（ステップＳ５６４）、ＣＰＵ  １０２は、真正パケット送信条件を満たしているゲーム端末２２１が少なくとも１つは存在したか、それとも１つもなかったか、を調べる（ステップＳ５６５）。
【０２３１】
真正パケット送信条件を満たしているゲーム端末２２１が少なくとも１つは存在した場合（ステップＳ５６５；Ｙｅｓ）、ＣＰＵ  １０２は、他のゲーム端末２２１から何らかのパケットが到着するまで、もしくは、所定のタイムアウト時間が経過するまで待機する（ステップＳ５８１）。
【０２３２】
待機が終了したら、パケットが到着しているか否かを調べる（ステップＳ５８２）。パケットが到着していなければ（ステップＳ５８２；Ｎｏ）、ステップＳ５９０に進む。
【０２３３】
一方、他のゲーム端末２２１からパケットが到着した場合（ステップＳ５８２；Ｙｅｓ）、ＣＰＵ  １０２は、まず、そのパケットの送信元を取得する（ステップＳ５８３）。
【０２３４】
ＣＰＵ  １０２は、その送信元のゲーム端末２２１が、真正パケット送信条件を満たしているか否かを調べる（ステップＳ５８４）。その送信元のゲーム端末２２１が、真正パケット送信条件を満たしていれば（ステップＳ５８４；Ｙｅｓ）、ＣＰＵ  １０２は、パケットの種類を調べる（ステップＳ５８５）。
【０２３５】
パケットの種類が真正接続応答３０６であった場合（ステップＳ５８５；真正接続応答）、ＣＰＵ  １０２は、ＲＡＭ  １０３に対して、当該パケットの送信元のゲーム端末２２１から、真正接続応答３０６を受信した旨を記録して（ステップＳ５８６）、ステップＳ５９０に進む。
【０２３６】
一方、パケットの種類が真正接続要求３０５であった場合（ステップＳ５８５；真正接続要求）、ＣＰＵ  １０２は、ＲＡＭ  １０３に対して、当該パケットの送信元のゲーム端末２２１から、真正接続要求３０５を受信した旨を記録する（ステップＳ５８７）。そして、当該送信元のゲーム端末２２１に対して、真正接続応答３０６を送信してから（ステップＳ５８８）ステップＳ５９０に進む。
【０２３７】
その他のパケットであった場合（ステップＳ５８５；その他）、対応する処理を適宜行って（ステップＳ５８９）、ステップＳ５９０に進む。ここで実行される典型的な処理は、当該パケットを単に破棄する処理である。
【０２３８】
さて、パケットの送信元のゲーム端末２２１が、真正パケット送信条件を満たしていない場合（ステップＳ５８４；Ｎｏ）、当該送信元がフレンドリストに登録されているか否かを判定する（ステップＳ５９１）。
【０２３９】
当該送信元がフレンドリストに登録されていれば（ステップＳ５９１；Ｙｅｓ）、ステップＳ５９０にそのまま進み、登録されていなければ（ステップＳ５９１；Ｎｏ）、当該送信元をフレンドリストに登録してから（ステップＳ５９２）、ステップＳ５９０にそのまま進む。
【０２４０】
さて、そして、ＣＰＵ  １０２は、ステップＳ５６５からの経過時間が、所定の試行時間を超過したか否かを調べる（ステップＳ５９０）。まだ試行時間を超過していなければ（ステップＳ５９０；Ｎｏ）、ステップＳ５８１に戻る。
【０２４１】
この試行時間は、通信可能と予想されるゲーム端末２２１からの真正接続応答３０６を待機するための時間である。
【０２４２】
一方、試行時間が経過した場合（ステップＳ５９０；Ｙｅｓ）、ＣＰＵ  １０２は、フレンドリストの中から、通信確立条件が成立するゲーム端末２２１を抽出する（ステップＳ６０１）。
【０２４３】
ここで、通信確立条件とは、「当該ゲーム端末２２１から、真正接続要求３０５と真正接続応答３０６の両方を受信した」場合に成立する。この条件は、ＲＡＭ  １０３内に記憶されているこの条件は、ＲＡＭ  １０３に用意された一時的なフレンドリストの情報を確認することによって判定できる。
【０２４４】
そして、通信確立条件を満たすものとして抽出されたゲーム端末２２１の数が１個以上であるか否かを判定し（ステップＳ６０２）、１個以上存在すれば（ステップＳ６０２；Ｙｅｓ）ＣＰＵ  １０２は、無線ＬＡＮインターフェース１１４を制御して、これらのゲーム端末２２１との間で通信対戦ゲームを実行して（ステップＳ６０３）、本処理を終了する。
【０２４５】
本実施形態によれば、ＴＣＰ／ＩＰ通信のヘッダ情報を参照したフィルタリング規則を採用するルータ２４１にゲーム端末２２１が接続されている場合であっても、ルータ２４１を介した相手方端末との通信を開始して、プレイヤーに通信対戦ゲームを提供することができるようになる。
【０２４６】
さらに、本実施形態では、過去にロビーサーバ２８１から紹介されたゲーム端末２２１については、再度の紹介を求めることなく、単独で通信接続を試行することができる。
【０２４７】
なお、通信対戦ゲームにおいては、友人同士で時間を約束してゲームをプレイすることを繰り返すことも多い。このような場合には、本実施形態を採用することによって、不要なロビーサーバ２８１への問い合わせをできるだけ抑制して、迅速にプレイを開始できるようになる。
【０２４８】
さらに、あるゲーム端末２２１において既に通信対戦ゲームがプレイされている状況で、新たなゲーム端末２２１がプレイに参加しようとする場合に対応するため、通信対戦ゲームの実行中（ステップＳ６０３）にも、上記のようなダミーの接続要求、接続応答のパケットの送受、真正の接続要求、接続応答のパケットの送受を、同様の態様で行うのが一般的である。
【０２４９】
一方、真正パケット送信条件を満たしているゲーム端末２２１が１つもなかった場合（ステップＳ５６５；Ｎｏ）や、通信確立条件を満たすゲーム端末２２１がなかった場合（ステップＳ６０２；Ｎｏ）は、ＣＰＵ  １０１は、ロビーサーバ２８１ヘ紹介要求３０１を送信し（ステップＳ６１１）、ロビーサーバ２８１から送信される紹介応答３０２を受信する（ステップＳ６１２）。
【０２５０】
この紹介応答３０２には、他のゲーム端末２２１のＩＰアドレス等の情報が指定されている。そこで、ＣＰＵ  １０１は、受信した紹介応答３０２の内容に指定されたゲーム端末２２１の情報を、ＲＡＭ  １０３と外部メモリ１１２等に保存されるフレンドリストの両方に、当該ゲーム端末２２１の情報を追加して（ステップＳ６１３）、ステップＳ５０２に戻る。これによって、再度、他のゲーム端末２２１との通信を試みるのである。
【０２５１】
なお、ＣＰＵ  １０２は、初期化（ステップＳ５０１）の際に、ゲーム端末２２１を実現する情報処理装置１０１が、インターネット２６１に直接接続されているのか、それともルータ２４１を介してインターネット２６１に接続されているのかを判定することとしても良い。
【０２５２】
既知のＳＴＵＮ（Simple Traversal of UDP through NATs）サーバに問い合わせを行ったり、既知の通信機器に対してtracerouteを実行することにより、これを判定することができる。
【０２５３】
そして、ゲーム端末２２１を実現する情報処理装置１０１が、インターネット２６１に直接接続されている場合には、ステップＳ５０２〜Ｓ５４９の処理の実行を省略して、ステップＳ５６１に進むこととしても良い。
【０２５４】
ステップＳ５０２〜Ｓ５４９の処理は、ゲーム端末２２１がルータ２４１に接続されている場合に、当該ルータ２４１に通信用のホールを開けるためのものである。すなわち、ゲーム端末２２１がインターネット２６１に直接接続されている場合には、他のゲーム端末２２１から送信されたパケットは何らフィルタリングの影響を受けずに到着することになる。
【０２５５】
したがって、ゲーム端末２２１がインターネット２６１に直接接続されている場合には、これらの処理は不要である。
【０２５６】
ただし、ステップＳ５６１以降の処理においては、情報処理装置１０１が直接インターネット２６１に接続されている場合には、真正パケット送信条件が常に満たされるものとして、処理を進めることになる。
【０２５７】
この態様によれば、他のゲーム端末２２１と通信をできるだけ早期に開始することができるようになる。
【０２５８】
なお、ダミーの接続要求、接続応答のパケットの送受においては、最後のＡＣＫパケットの送受は省略するのが一般的であり、上記の実施形態でもこの態様を採用する。これは、ゲーム端末２２１においてパケットのデータ部を調べることで、そのパケットがダミーか真正かが判定できるからである。
【０２５９】
しかしながら、ルータ２４１のフィルタリングルールによっては、このＡＣＫパケットも監視している可能性がある。この場合には、ダミーのＳＹＮパケットやダミーのＳＹＮ／ＡＣＫパケットを繰り返し送信するとともに、ダミーのＡＣＫパケットも繰り返し送信することとすれば良い。
【０２６０】
また、上記の説明では、ゲーム端末２２１ａからゲーム端末２２１ｂへの真正接続要求３０５ａと、ゲーム端末２２１ｂからゲーム端末２２１ａへの真正接続要求３０５ｂと、は、独立に送信されることとしていた。
【０２６１】
しかしながら、ＴＣＰ／ＩＰ通信のコネクションを確立する際の、
（１）ＳＹＮパケットを、単独の真正接続要求３０５として、
（２）ＳＹＮ／ＡＣＫパケットを、真正接続応答３０６と真正接続要求３０５が一体となったものとして、
（３）ＡＣＫパケットを、単独の真正接続応答３０６として、
それぞれ取り扱うこととしても良い。
【０２６２】
すなわち、ゲーム端末２２１ａとゲーム端末２２１ｂとの
（１）一方が、単独のＳＹＮパケットにより真正接続要求３０５を送信する。
（２）すると、当該他方は、真正接続要求３０５（ＳＹＮパケット）を受信する。そして、当該他方は、当該一方に対して真正接続応答３０６と真正接続要求３０５とを一体化したＳＹＮ／ＡＣＫパケットを送信する。
（３）すると、当該一方は、真正接続応答３０６のほか、真正接続要求３０５（ＳＹＮ／ＡＣＫパケット）も、受信する。そして、当該一方は、単独のＡＣＫパケットを、真正接続応答３０６として送信する。
（４）すると、当該他方は、真正接続応答３０６（ＡＣＫパケット）を受信する。
【０２６３】
これによって、両者の間の上り・下りの双方向の接続が確立するのである。
【０２６４】
（繰り返し周期の調整）
上記のように、ゲーム端末２２１と他のゲーム端末２２１との間の通信が確立するまでには、ダミーのパケットの送受が必要となる場合がある。
【０２６５】
一方、本実施形態では、ダミーのパケットを繰り返し送信するので、相手方のゲーム端末２２１が接続されているルータ２４１が、当該相手から攻撃がなされていると判断することもある。そこで、ダミー接続要求３０３やダミー接続応答３０４の送信の頻度は、できるだけ低くすることが望ましい。すなわち、送信の繰り返し周期は、できるだけ長くすることが望ましい。また、送信する回数をできるだけ抑えることが望ましい。
【０２６６】
これに対応するためには、以下のような手法が考えられる。
【０２６７】
すなわち、ＣＰＵ  １０２は、他のゲーム端末２２１ごとに、
（ａ）ダミー接続要求３０３およびダミー接続応答３０４の送信を開始してから、より具体的には、ステップＳ５０３、Ｓ５０４において最初にパケットを送信してから、
（ｂ）ゲームを進行させるための通信が開始されるまで、より具体的には、当該ゲーム端末２２１に対する真正パケット送信条件が満たされるまで、
の経過時間を、通信が確立するごとに外部メモリ１１２等に記録して、履歴を保存することとする。
【０２６８】
そして、保存された経過時間履歴の経過時間に応じて、当該ゲーム端末２２１に対する繰り返し周期を調整する。
【０２６９】
そして、ＣＰＵ  １０２は、この履歴から、経過時間が短縮傾向にあるのか、延長傾向にあるのか、平衡状態にあるのかを判定する。
【０２７０】
そして、経過時間が短縮傾向にある場合には、ＣＰＵ  １０２は、当該ゲーム端末２２１に対する繰り返し周期を、１より大きい定数で定数倍したり、所定の定数を加える等して、長くする。
【０２７１】
また、経過時間が延長傾向にある場合には、ＣＰＵ  １０２は、当該ゲーム端末２２１に対する繰り返し周期を、１より小さい定数で定数倍したり、所定の定数を減じる等して、短くする。
【０２７２】
経過時間が平衡状態にある場合には、現在の繰り返し周期が適切であるものと考えられる。
【０２７３】
このようにして、本実施形態によれば、ダミーの接続要求のパケットや接続応答パケットを送信する繰り返し周期を、適切に自動調整することが可能となる。
【０２７４】
（フレンドリストへの登録）
本実施形態では、他のゲーム端末２２１からのパケットが到着すると、自動的にフレンドリストに登録することとしていた。多くの場合、このようなパケットを送信するのは、当該端末２２１で動作しているゲームと同じゲームをプレイしているゲーム端末２２１であり、自動的にフレンドリストに登録することとしても問題が起きることはまれである。
【０２７５】
しかしながら、以下のように、フレンドリストへの登録に制限を設け、パケットが到着したからといって直ちにフレンドリストに登録するとは限らないものとすることも可能である。
【０２７６】
最も厳しい態様は、フレンドリストへ登録されるゲーム端末２２１を、ロビーサーバ２８１から紹介されたゲーム端末２２１に限る、というものである。
【０２７７】
この制限を緩めた態様は、一旦通信が確立したゲーム端末２２１同士がフレンドリストの内容を交換して、未知のゲーム端末２２１があれは、これを追加する、というものである。
【０２７８】
上記のように、通信対戦ゲームが開始された（ステップＳ６０３）後も、ダミーの接続要求、接続応答のパケットの送受や、真正の接続要求、接続応答のパケットの送受は、適宜実行される。
【０２７９】
したがって、後者の態様を実現するためには、通信が確立した直後に、ゲーム端末２２１の間で、フレンドリストの交換が実行されるようにすれば良い。
【０２８０】
なお、後者の態様は、既知のゲーム端末２２１がある種のロビーサーバ２８１として機能する、と考えることも可能である。
【０２８１】
このほか、一定期間以上通信が確立できなかったゲーム端末２２１は、フレンドリストから削除することとしても良い。
【０２８２】
また、プレイヤー自身が、フレンドリストを編集できる態様を採用することもありうる。この態様では、特定のプレイヤーとの通信対戦を拒否することもできるし、ロビーサーバを介さずに、たとえば電子メールや文字チャットなどで互いのゲーム端末２２１が通信可能となるようなＩＰアドレス、ポート番号の情報をやりとりして、フレンドリストに登録することも可能である。
【０２８３】
このように、フレンドリストに登録されるゲーム端末２２１を制限することで、通信対戦ゲームのプレイ相手を適切に管理することができるようになる。
【産業上の利用可能性】
【０２８４】
以上説明したように、本実施形態によれば、インターネット等のコンピュータ通信網に直接的にあるいはルータを介して間接的に接続されて通信対戦を行うのに好適なゲーム端末、ゲーム端末の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【０２８５】
１０１  情報処理装置
１０２  ＣＰＵ
１０３  ＲＡＭ
１０４  ＲＯＭ
１０５  入力装置
１０６  画像処理部
１０７  液晶ディスプレイ
１０８  音声処理部
１０９  ヘッドホン
１１０  カセットリーダ
１１１  ＲＯＭカセット
１１２  外部メモリ
１１３  ＲＴＣ
１１４  無線ＬＡＮインターフェース
１１５  カメラ
２０１  通信システム
２２１  ゲーム端末
２４１  ルータ
２６１  インターネット
２８１  ロビーサーバ
３０１  紹介要求
３０２  紹介応答
３０３  ダミー接続要求
３０４  ダミー接続応答
３０５  真正接続要求
３０６  真正接続応答
３０７  通信対戦パケット
４０１  ダミー要求送信部
４０２  ダミー応答送信部
４０３  ダミー要求受信部
４０４  ダミー応答受信部
４０５  真正要求送信部
４０６  真正要求受信部
４０７  真正応答受信部
４０８  真正応答送信部
４０９  通信部
４１０  記憶部
【図１】
2012038119.tif 000003
【図２】
2012038119.tif 000004
【図３】
2012038119.tif 000005
【図４】
2012038119.tif 000006
【図５】
2012038119.tif 000007
【図６】
2012038119.tif 000008
【図７】
2012038119.tif 000009
【図８】
2012038119.tif 000010
【図９】
2012038119.tif 000011
【図１０】
2012038119.tif 000012