JP5073793B2 - ゲーム端末、ゲーム端末の制御方法、ならびに、プログラム - Google Patents

ゲーム端末、ゲーム端末の制御方法、ならびに、プログラム Download PDF

Info

Publication number
JP5073793B2
JP5073793B2 JP2010178277A JP2010178277A JP5073793B2 JP 5073793 B2 JP5073793 B2 JP 5073793B2 JP 2010178277 A JP2010178277 A JP 2010178277A JP 2010178277 A JP2010178277 A JP 2010178277A JP 5073793 B2 JP5073793 B2 JP 5073793B2
Authority
JP
Japan
Prior art keywords
dummy
packet
terminal
game
game terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010178277A
Other languages
English (en)
Other versions
JP2012038119A (ja
Inventor
昌二 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2010178277A priority Critical patent/JP5073793B2/ja
Publication of JP2012038119A publication Critical patent/JP2012038119A/ja
Application granted granted Critical
Publication of JP5073793B2 publication Critical patent/JP5073793B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、コンピュータ通信網に直接的にあるいはルータを介して間接的に接続されて通信対戦を行うのに好適なゲーム端末、ゲーム端末の制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
従来から、インターネット等のコンピュータ通信網を介してコンピュータ同士を通信可能に接続する技術が提案されている。このような技術を応用すれば、各種のコンピュータがゲームソフトウェアを実行することにより、ユーザに通信対戦ゲームを提供することができるようになる。
通信対戦ゲームでは、ゲームソフトウェアを実行するコンピュータがゲーム端末として機能し、ロビーサーバに、対戦相手の紹介を求めるのが一般的である。ロビーサーバは、コンピュータ通信網内に配置され、対戦相手を求めるゲーム端末同士を互いに紹介する。
ここで、コンピュータをコンピュータ通信網に接続する際には、ルータと呼ばれる機器を利用することが広く行われている。
ルータは、LAN(Local Area Network)内のコンピュータのIP(Internet Protocol)アドレスやポート番号を、外部のコンピュータ通信網内のIPアドレスやポート番号に変換する機能を有する。ルータやファイアウォールは、この機能によって、LANと外部のコンピュータ通信網との間の通信の仲立ちを行う。
さらに、ルータに対してパケットのフィルタリング規則を設定して、ファイアウォールとして機能させることも広く行われている。ファイアウォールを利用すると、LANからコンピュータ通信網への適正なアクセスは可能としつつ、コンピュータ通信網からの第三者による攻撃や侵入を防止することもできる。
攻撃や侵入を防止するためのフィルタリング規則としては、以下のようなものがある。すなわち、ルータが、LAN内のコンピュータAから外部のコンピュータBへパケットが送信されたことを検知して初めて、コンピュータBからコンピュータAへ送信されたパケットをコンピュータAに中継することとする規則である。
一方で、ルータがこのようなフィルタリングを採用していると、コンピュータAとコンピュータBとの通信接続が不可能になってしまうことがある。特に、コンピュータAとコンピュータBとが異なるLAN内に配置され、両者が上記のフィルタリング規則を採用する異なるルータを介してコンピュータ通信網に接続される場合である。
このような状況に対しては、ホール・トリック、あるいは、UDP(User Datagram Protocol)ホール・パンチングと呼ばれる技術が提案されている。ホール・トリックを採用すれば、上記のようなフィルタリング規則を採用しているルータ同士を介してコンピュータが接続されている場合であっても、両コンピュータの間で通信が可能となる(非特許文献1参照)。
一方で、TCP/IP(Transfer Control Protocol/IP)通信のようなコネクション型の通信では、以下のような理由で、UDPホール・パンチングでは通信接続が可能とならない場合がある。これは、ルータが、以下のようなフィルタリング規則を採用している場合である。
理解を容易にするため、コンピュータAからコンピュータBへのTCP/IP通信の開始を持ち掛ける場合を考える。
TCP/IP通信では、まず、コンピュータAからコンピュータBへ、ヘッダ情報のSYNビットが立ったパケットX(SYNパケット)が送信される。
これに対して、コンピュータBが、ヘッダ情報のSYNビットとACKビットを立てたパケットY(SYN/ACKパケット)を、コンピュータAに送信する。
これを受信したコンピュータAは、ヘッダ情報のACKビットを立てたパケットZ(ACKパケット)を、コンピュータBに送信する。
このようにしてコネクションを確立する処理は、3ウェイ・ハンドシェイクと呼ばれる。
このようなTCP/IP通信に対して、ルータが、「LAN内のコンピュータAからLAN外のコンピュータBへSYNパケットが送信されたときは、コンピュータBからコンピュータAへのSYN/ACKパケットが受信されない限り、コンピュータBからコンピュータAへのその他のパケットは通過させない」というフィルタリング規則を採用している場合には、LAN内のコンピュータAから外部のコンピュータBへ通信を持ち掛けた場合には接続がなされるが、外部のコンピュータBからLAN内のコンピュータAからへ通信を持ち掛けた場合には接続ができないこととなる。
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,2006年12月15日
上記のような理由から、互いに通信を行いたいコンピュータ同士が、異なるLAN内に配置され、しかもそのLANとコンピュータ通信網とが、いずれも、上記のようなパケット監視を行うルータ装置によって中継されている場合には、両者の通信はできないことになってしまう。
しかしながら、このような状況であっても、2つのコンピュータの通信を可能として、通信対戦ゲームを提供できるようにしたい、という要望は強い。
また、非特許文献1に開示される技術や従来のロビーサーバ技術では、動作の冒頭で必ず所定のサーバ装置に通信相手の問い合わせを行わなければならないが、過去の通信の履歴やその他の通信手段によって通信相手がわかる場合には、問い合わせを不要としたい、という要望もある。
本発明は、上記のような課題を解決するもので、コンピュータ通信網に直接的にあるいはルータを介して間接的に接続されて通信対戦を行うのに好適なゲーム端末、ゲーム端末の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係るゲーム端末は、コンピュータ通信網に直接接続され、もしくは、ルータを介して間接的に接続される。そして、ゲーム端末は、コンピュータ通信網内の他のゲーム端末からなる相手方端末と通信することによりゲームを進行させる。
典型的な態様は、ゲーム端末がコンピュータ通信網にルータを介して間接的に接続される態様である。たとえば、ゲーム端末が家庭内LAN内で利用される場合には、ルータを介して、コンピュータ通信網であるインターネットに接続されることが多い。無線LAN機能を有するゲーム端末が、無線LAN機能を有するルータによって管理される態様も広く利用されている。
ただし、ゲーム端末にグローバルなIPアドレスが割り振られるような接続態様を採用することもできる。この場合、ゲーム端末は、コンピュータ通信網に直接的に接続されることになる。
ここで、ルータは、ゲーム端末からコンピュータ通信網内の他の機器宛の接続要求パケットを中継した後、当該他の機器からゲーム端末宛の接続応答パケットが到着すると、当該接続応答パケットをゲーム端末に中継するとともに、当該他の機器からゲーム端末宛のパケットの中継を開始する。
すなわち、本発明で想定するルータは、パケットの発信元と送信先だけを見てパケットのフィルタリングをするものではなく、パケットの種類、典型的には、パケットの各種のヘッダ情報を監視して、フィルタリングを行うのである。
典型的には、ヘッダ情報から、パケットの種類が接続要求パケットなのか、接続応答パケットなのか、それ以外のパケットなのかが判定できるように構成する。
そして、ゲーム端末は、ダミー要求送信部、ダミー応答送信部、ダミー要求受信部、ダミー応答受信部、真正要求送信部、真正要求受信部、真正応答送信部、真正応答受信部、通信部を備え、以下のように構成する。
ここで、ゲーム端末は、通信対戦を行う相手方端末の通信に必要な情報、たとえば、そのIPアドレスやポート番号などを、事前に知得しているものとする。
通信対戦ゲームが開始される前に、ゲーム端末と相手方端末とは、いずれも、接続要求パケットと接続応答パケットをやりとりする。
ここで、本発明では、パケットの種類が接続要求パケットであることや、接続応答パケットであることは、パケットのヘッダ情報からわかるものとするのが典型的である。
一方、そのパケットが、ダミーのパケットであることや、真正のパケットであることは、パケットのデータ情報からわかるものとするのが典型的である。
ここで、ダミー要求送信部は、相手方端末宛のダミー接続要求パケットを、繰り返し送信する。一方、ダミー応答送信部は、相手方端末宛のダミー接続応答パケットを、繰り返し送信する。
すなわち、本発明では、通信対戦をしようとするゲーム端末と相手方端末のそれぞれが、ダミーの接続要求パケットとダミーの接続応答パケットとを何度も送信するのである。
このように構成すると、たまたま、「ルータ装置が、ゲーム端末が送信した相手方端末宛のダミー接続要求を中継し、その後に、相手方端末からゲーム端末宛のダミー接続応答がルータ装置に到着する」事象が生ずるものと期待される。
このような事象が生じると、上記のようなフィルタリング規則を採用するルータは、ゲーム端末と相手方端末との通信の中継を開始するようになる。
さて、ダミー要求受信部は、相手方端末から送信されたダミー接続要求パケットを受信する。そして、ダミー応答受信部は、相手方端末から送信されたダミー接続応答パケットを受信する。
したがって、ルータが、ゲーム端末と相手方端末との通信の中継を開始した後は、ダミーの接続要求パケットとダミーの接続応答パケットの両方が、ゲーム端末で受信されるようになるのである。
ダミー接続要求パケットならびにダミー接続応答パケットが受信されると、真正要求送信部は、相手方端末宛の真正接続要求パケットを送信する。
上記のように、ダミーの接続要求パケットとダミーの接続応答パケットの両方がゲーム端末に到着した、ということは、ゲーム端末が接続されているルータが、相手方端末からゲーム端末宛のパケットを中継しても良いと判断したことを意味する。
そこで、ダミーではなく、真正の接続要求パケットを、ゲーム端末から相手方端末に送信するのである。
相手方端末が接続されるルータにおいても、当該ゲーム端末と同様に、パケットの中継が開始されると、当該ゲーム端末と同様に、相手方端末は、真正の接続要求パケットを送信することになる。
そこで、真正要求受信部は、相手方端末から送信された真正接続要求パケットを受信する。
すなわち、真正接続要求パケットが受信された、ということは、相手方端末から当該ゲーム端末への中継がすでに開始されている、ということを意味する。
そこで、真正接続要求パケットが受信されると、真正応答送信部は、相手方端末宛の真正接続応答パケットを送信する。
同様に、相手方端末においても、同様に、真正接続応答パケットが送信されることになる。
そこで、真正応答受信部が、相手方端末から送信された真正接続応答パケットを受信する。
ここで、真正接続応答パケットがゲーム端末に到着した、ということは、「ゲーム端末から相手方端末への中継がすでに開始されている、と、相手方端末が判断した」ということを意味する。
そこで、真正応答パケットが受信されると、通信部は、相手方端末との間で、ゲームを進行させるための通信を開始する。
このように、本発明のゲーム端末は、相手方端末と一緒にダミーのパケットを繰り返し送信することで、ルータのフィルタリング規則に適合した状況を作り出し、ルータに中継を開始させるのである。
本発明によれば、ゲーム端末をLAN内で管理するルータがパケットの種類を監視するフィルタリング規則を採用している場合であっても、ルータを介した相手方端末との通信を開始して、プレイヤーに通信対戦ゲームを提供することができるようになる。
また、本発明のゲーム端末は、コンピュータ通信網にルータを介して間接的に接続され、ルータは、アドレス変換もしくはアドレス・ポート変換により、ゲーム端末をコンピュータ通信網に通信可能に接続し、接続要求パケットは、SYNパケットであり、接続応答パケットは、SYN/ACKパケットであるように構成することができる。
本発明は上記発明の好適実施形態に係るものである。すなわち、接続要求パケットは、TCP/IP通信におけるSYNパケットであり、接続応答パケットは、TCP/IP通信におけるSYN/ACKパケットである。
なお、ダミーのパケットか真正のパケットかは、パケットのデータ部に格納されるデータによって区別するのが典型的である。
本発明によれば、TCP/IP通信のヘッダ情報を参照したフィルタリング規則を採用するルータにゲーム端末が接続されている場合であっても、ルータを介した相手方端末との通信を開始して、プレイヤーに通信対戦ゲームを提供することができるようになる。
また、本発明のゲーム端末において、当該相手方端末宛のダミー接続要求パケットおよびダミー接続応答パケットの送信を開始してから、ゲームを進行させるための通信が開始されるまでの経過時間の履歴に基づいて、次に当該相手方端末宛のダミー接続要求パケットおよびダミー接続応答パケットを繰り返し送信する際の繰り返し周期が更新されるように構成することができる。
ルータは、特定の相手との間のパケットが頻繁に送受されることを理由に、当該相手から攻撃がなされていると判断することもある。そこで、ダミー接続要求パケットやダミー接続応答パケットの送信の頻度は、できるだけ低くすることが望ましい。すなわち、送信の繰り返し周期は、できるだけ長くすることが望ましい。
そこで、ダミーのパケットの送信を開始してから通信対戦ゲーム本来の通信が開始されるまでの経過時間に応じて、繰り返し周期を調整するのである。
たとえば、経過時間が短縮傾向にある場合には、繰り返し周期を長くしても良いことになる。経過時間が延長傾向にある場合には、繰り返し周期は短くした方が良いことになる。
本発明によれば、ダミーの接続要求パケットや接続応答パケットを送信する繰り返し周期を、適切に自動調整することが可能となる。
また、本発明のゲーム端末において、ゲーム端末がコンピュータ通信網に直接接続されている場合、真正要求送信部は、ダミー接続要求パケットならびにダミー接続応答パケットが受信されるのを待たずに、真正接続要求パケットを送信するように構成することができる。
ゲーム端末がルータを介さずに、直接的にインターネットに接続されているか否かは、たとえば、ゲーム端末が既知のSTUN(Simple Traversal of UDP through NATs)サーバに問い合わせを行ったり、既知の通信機器に対してtracerouteを実行することによって判定することができる。
ゲーム端末がコンピュータ通信網に直接接続されている場合には、相手方端末から送信されたパケットは何らフィルタリングの影響を受けずに到着することになる。これは、相手方端末からゲーム端末宛のパケットのルータ装置による中継がすでに開始されている状況に相当する。
そこで、本発明では、直ちに真正接続要求パケットを、相手方端末に送信することとしているのである。
本発明によれば、ゲーム端末と相手方端末との通信ができるだけ早期に開始されるようにすることができる。
本発明のその他の観点に係るゲーム端末の制御方法は、コンピュータ通信網に直接接続され、もしくは、ルータを介して間接的に接続されるゲーム端末を制御する。
ここで、制御方法は、ゲーム端末を、コンピュータ通信網内の他のゲーム端末からなる相手方端末と通信することによりゲームを進行させる。
そして、ゲーム端末は、ダミー要求送信部、ダミー応答送信部、ダミー要求受信部、ダミー応答受信部、真正要求送信部、真正要求受信部、真正応答送信部、真正応答受信部、通信部を備える。
一方、制御方法は、ダミー要求送信工程、ダミー応答送信工程、ダミー要求受信工程、ダミー応答受信工程、真正要求送信工程、真正要求受信工程、真正応答送信工程、真正応答受信工程、通信工程を備える。
ここで、ダミー要求送信工程では、ダミー要求送信部が、相手方端末宛のダミー接続要求パケットを、繰り返し送信する。
一方、ダミー応答送信工程では、ダミー応答送信部が、相手方端末宛のダミー接続応答パケットを、繰り返し送信する。
さらに、ダミー要求受信工程では、ダミー要求受信部が、相手方端末から送信されたダミー接続要求パケットを受信する。
そして、ダミー応答受信工程では、ダミー応答受信部が、相手方端末から送信されたダミー接続応答パケットを受信する。
一方、ダミー接続要求パケットならびにダミー接続応答パケットが受信されると、真正要求送信工程では、真正要求送信部が、相手方端末宛の真正接続要求パケットを送信する。
さらに、真正要求受信工程では、真正要求受信部が、相手方端末から送信された真正接続要求パケットを受信する。
そして、真正接続要求パケットが受信されると、真正応答送信工程では、真正応答送信部が、相手方端末宛の真正接続応答パケットを送信する。
一方、真正応答受信工程では、真正応答受信部が、相手方端末から送信された真正接続応答パケットを受信する。
さらに、真正応答パケットが受信されると、通信工程では、通信部が、相手方端末との間で、ゲームを進行させるための通信を開始する。
本発明のその他の観点に係るプログラムは、コンピュータを上記のゲーム端末の各部として機能させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
本発明によれば、コンピュータ通信網に直接的にあるいはルータを介して間接的に接続されて通信対戦を行うのに好適なゲーム端末、ゲーム端末の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
典型的な情報処理装置の概要構成を示す模式図である。 本実施形態に係るゲーム端末を含む通信システムの概要構成を示す模式図である。 通信システムにてパケットの送受が行われる様子を示す説明図である。 本実施形態に係るゲーム端末の概要構成を示す模式図である。 本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。 本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。 本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。 本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。 本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。 本実施形態に係るゲーム端末にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
(情報処理装置)
図1は、プログラムを実行することにより、本実施形態のゲーム端末として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
本図に示す情報処理装置101は、携帯可能なマルチメディアゲーム端末であり、CPU(Central Processing Unit)102、RAM(Random Access Memory)103、ROM(Read Only Memory)104、入力装置105、画像処理部106、液晶ディスプレイ107、音声処理部108、ヘッドホン109、カセットリーダ110、ROMカセット111、外部メモリ112、RTC(Real Time Clock)113、無線LAN(Local Area Network)インターフェース114、カメラ115を備える。
本実施形態に係るプログラムが記録されたROMカセット111を、情報処理装置101のカセットリーダ110に装着することによって、本実施形態に係るゲーム端末が実現される。
ここで、CPU 102は、情報処理装置101の各部を制御するとともに、各種の演算処理や判断処理を行う。
情報処理装置101に電源が投入されると、CPU 102は、ROM 104に記録されたIPL(Initial Program Loader)を実行し、その処理の過程で、カセットリーダ110を介して接続されたROMカセット111に記録されたプログラムに処理を移行する。
情報処理装置101で実行されるゲームプログラムやマルチメディア情報再生プログラムは、ROMカセット111によって提供されるのが一般的であるが、ROM 104内にあらかじめ用意しておくことも可能である。
また、ROM 104内には、BIOS(Basic Input Output System)と呼ばれるプログラム群が用意されており、入力装置105や画像処理部106、音声処理部108の制御を行うことができる。
RAM 103は、一時的な情報を記憶するための領域であり、外部メモリ112は、不揮発な情報を記憶するための領域である。外部メモリ112としては、ハードディスクなど、主として情報処理装置101に内蔵されるもののほか、各種のメモリカードなど、情報処理装置101に抜挿されるものを利用しても良い。
入力装置105は、各種のボタンやキーボード、マウス、ジョイスティック等により実現されるのが一般的であるが、液晶ディスプレイ107と一体に形成されたタッチスクリーンを入力装置105として利用することも可能である。
画像処理部106は、CPU 102の制御の下、各種の文字情報や画像情報を液晶ディスプレイ107に表示させるものであり、一般には、垂直同期割込周期(典型的には、30分の1秒や60分の1秒程度である。)ごとに、RAM 103内に用意されたフレームバッファに記憶された画素情報を液晶ディスプレイ107の各画素に反映させる。
ユーザからの指示入力は、液晶ディスプレイ107に表示されたカーソルを入力装置105の移動ボタン操作により移動して、所望のメニュー項目にカーソルを合わせ、決定ボタン操作によって当該メニュー項目を選択するのが一般的であるが、タッチスクリーンを利用する場合にはカーソルは不要である。また、入力装置105の各ボタンに割り当てられる機能があらかじめ決まっている場合には、液晶ディスプレイ107に対する表示は、必ずしも必要ない。
音声処理部108は、RAM 103やROM 104、ROMカセット111、外部メモリ112に用意された音声データをヘッドホン109に出力する。音声データとしては、音声の波形データをディジタル化したPCM(Pulse Code Modulation)データや、PCMデータを圧縮してサイズを小さくしたMP3(MPeg audio layer-3)データ等を利用することが可能であるほか、MIDI(Music Instruction Data Interface)データのように、音高、音長、音量、音色の種類を定義するデータを用意し、これにしたがって、あらかじめ用意された音源波形データを適宜選択・変形して再生する手法を採用しても良い。
RTC 113は、現在の日時を計測するもので、情報処理装置101を初めて利用する際に時刻合わせを行うのが一般的であるが、無線LANインターフェース114を介してNTP(Network Time Protocol)サーバに接続することで、自動的に時刻合わせを行うような態様を採用することも可能である。
また、アラーム割込を発生させる機能を持つRTC 113もある。設定された時刻になるとアラーム割込が発生して、CPU 102は、現在実行中のプログラムを一時中断し、あらかじめ設定された割込ハンドラを実行してから、中断したプログラムを再開する。
無線LANインターフェース114は、自宅や会社、街角に用意された無線LANアクセスポイントを介してインターネットに接続したり、近傍に配置された他の情報処理装置101と、アドホックに通信路を確立し、1対1で通信を行うなどが可能である。
カメラ115は、情報処理装置101によってディジタルカメラの機能を実現するものであり、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)撮像素子などの技術を適用することが可能である。撮影された画像は、一時的にRAM 103に展開された後、外部メモリ112等に保存される。
このほか、ビジネス用コンピュータ、携帯電話、PDA(Personal Data Assistant)、携帯ゲーム端末、多機能テレビジョン装置、DVD(Digital Versatile Disc)プレイヤー、携帯音楽プレイヤーなどを、本発明のゲーム端末が実現される情報処理装置として採用することもできる。
たとえば、無線LANインターフェース114にかえて、有線LANインターフェースを利用することとしたり、外部メモリ112のほか、ハードディスクやEEPROM等のメモリカードを利用して、各種のデータを読み書きすることとしても良い。また、ROMカセット111内に、EEPROM等により実現された記憶領域を設けて、ゲームの状態等各種の設定情報を記憶させることとしても良い。
さらに、ROMカセット111によりプログラムを提供するのではなく、DVD−ROMやCD−ROMにより提供しても良いし、通信回線を利用してプログラムがダウンロードされるような態様を採用しても良い。
(通信システム)
図2は、本実施形態に係るゲーム端末を含む通信システムの概要構成を示す模式図である。以下、本図を参照して説明する。
本実施形態に係る通信システム201では、ゲーム端末221a、221bが通信対戦ゲームのための通信を確立しようとしている。ゲーム端末221a、221bに共通する機能を添字の「a」や「b」を適宜省略するものとする。その他の機器の符号についても同様である。
ゲーム端末221a、221bは、上記の情報処理装置101にてROMカセット111に記録されているプログラムをCPU 102が実行することによって実現される。
また、ルータ241a、241bは、家庭内LANを管理している。ゲーム端末221a、221bは、それぞれ、ルータ241a、241bが管理する無線LAN経由でインターネット261に接続される。
図2に示す例では、ゲーム端末221がインターネット261にルータ241を介して間接的に接続されている。また、ロビーサーバ281もインターネット261を介して、各ゲーム端末221と通信可能である。
ここで、ルータ241は、ゲーム端末221からインターネット261等の他の機器宛の接続要求パケットを中継した後、当該他の機器からゲーム端末221宛の接続応答パケットが到着すると、当該接続応答パケットをゲーム端末221に中継するとともに、当該他の機器からゲーム端末221宛のパケットの中継を開始する。
すなわち、本実施形態で想定するルータ241は、パケットの発信元と送信先だけを見てパケットのフィルタリングをするものではなく、パケットの種類、典型的には、パケットの各種のヘッダ情報を監視して、フィルタリングを行うのである。
典型的には、ヘッダ情報から、パケットの種類が接続要求パケットなのか、接続応答パケットなのか、それ以外のパケットなのかが判定できるように構成する。
広く利用されているTCP/IP通信に対してこのフィルタリング規則を適用する場合には、接続要求パケットとして、SYNパケットを利用し、接続応答パケットとして、SYN/ACKパケットを利用することができる。SYNならびにACKは、TCP/IPパケットのヘッダ内のビットによって表現される。
また、本実施形態では、接続要求パケットならびに接続応答パケットに対して、ダミーと真正の2種類を用意する。これらの種類は、TCP/IPパケットのデータ部に格納される情報によって区別するものとする。
また、ロビーサーバ281は、ゲーム端末221が通信相手の情報をまったく持っていない場合等に、当該ゲーム端末221からの要求に応じて、他のゲーム端末221を紹介する機能を果たす。
図3は、通信システム201にてパケットの送受が行われる様子を示す説明図である。以下、本図を参照して説明する。
本図においては、要求に相当するパケットは実線の矢印で、応答に相当するパケットは実線の矢印で、それぞれ表記している。
さて、ゲーム端末221aは、初めてゲームを開始する際には、対戦相手を紹介してもらうために、ルータ241経由でロビーサーバ281に紹介要求301aを送信する。同様に、ゲーム端末221bは、ロビーサーバ281にルータ241b経由で紹介要求301bを送信する。
したがって、紹介要求301aを送信したゲーム端末221aからは、ロビーサーバ281に対して、「ルータ241aのIPアドレス、および、ゲーム端末221aとの通信が中継されるべきルータ241aのポート番号」が通知されることになる。
また、紹介要求301bを送信したゲーム端末221bからは、ロビーサーバ281に対して、「ルータ241bのIPアドレス、および、ゲーム端末221bとの通信が中継されるべきルータ241bのポート番号」が通知されることになる。
各ルータ241から見ると、各紹介要求301は、自身が管理しているLAN内から外へ送信されるパケットである。また、ロビーサーバ281は、各紹介要求301に対して返答ができるようにフィルタリング設定等がされている。
したがって、各ルータ241は紹介要求301に係る各ゲーム端末221とロビーサーバ281との通信を、そのまま中継することになる。本図では、ルータ241が中継を行っていることを、丸印で標記している。
さて、紹介要求301a、301bを受信したロビーサーバ281が、ゲーム端末221a、221bのそれぞれに、通信対戦ゲームの対戦相手として相手方を紹介することに決めたものとする。
すると、ロビーサーバ281から、ゲーム端末221aへ、「ルータ241bのIPアドレス、および、ゲーム端末221bとの通信が中継されるべきルータ241bのポート番号」を通知するための紹介応答302aが送信される。
また、ロビーサーバ281から、ゲーム端末221bへ、「ルータ241aのIPアドレス、および、ゲーム端末221aとの通信が中継されるべきルータ241aのポート番号」を通知するための紹介応答302bが送信される。
上記のように、各ルータ241は、各ゲーム端末221とロビーサーバ281との通信を中継するので、各紹介応答302は、各ルータ241に中継されて、各ゲーム端末221に到達する。
これにより、ゲーム端末221aは、「ルータ241bのIPアドレス、および、ゲーム端末221bとの通信が中継されるべきルータ241bのポート番号」を知得することができる。
また、ゲーム端末221bは、「ルータ241aのIPアドレス、および、ゲーム端末221aとの通信が中継されるべきルータ241aのポート番号」を知得することができる。
すると、ゲーム端末221aは、相手方端末であるゲーム端末221b宛のダミー接続要求303aと、ダミー接続応答304aと、を、ルータ241a経由で、繰り返し送信する。これらのパケットは、ルータ241bに到着し、ルータ241bにおけるフィルタリングの対象となるか否かが吟味される。
また、ゲーム端末221bは、相手方端末であるゲーム端末221a宛のダミー接続要求303bと、ダミー接続応答304bと、を、ルータ241b経由で、繰り返し送信する。これらのパケットは、ルータ241aに到着し、ルータ241bにおけるフィルタリングの対象となるか否かが吟味される。
さて、パケットのヘッダを監視する規則を採用している場合、ルータ241aにおけるフィルタリングの判断は、以下のように行われる。
まず、ルータ241aに、インターネット261側から、ゲーム端末221b発のダミー接続要求303bが初めて到着したときには、ルータ241aは、殆どの場合、このダミー接続要求303bの中継を拒否するものと考えられる。
本図では、ルータ241が中継を拒否する旨を、バツ印で標記している。
これは、ルータ241aには、「ゲーム端末221bは、ルータ241aが管理するLAN内のゲーム端末221aの通信相手である」ということがわからないからである。
同様に、ルータ241aに、インターネット261側から、ゲーム端末221b発のダミー接続応答304bが初めて到着したときには、ルータ241aは、このダミー接続要求303bの中継を拒否する。拒否の際には、単にパケットを廃棄するだけの処理が行われ、発信元であるゲーム端末221b対しては、何の通知もされないのが一般的である。
しかしながら、ルータ241aが管理するLAN内のゲーム端末221aからは、ゲーム端末221b宛のダミー接続要求303aが繰り返し送信され、ルータ241aに到着している。
一方で、外部のゲーム端末221bからは、ゲーム端末221a宛のダミー接続応答304bが繰り返し送信され、ルータ241aに到着している。
このため、ルータ241aに、
(a)ゲーム端末221aからの、ゲーム端末221b宛のダミー接続要求303a
が到着してから時間をおかずに、ルータ241aに、
(b)ゲーム端末221bからの、ゲーム端末221a宛のダミー接続応答304b
が到着する事象が、いつか生じることとなる。
このような事象を生じさせることによって、ルータ241aに、上記(a)ダミー接続要求303aの送信に対して上記(b)ダミー接続応答304bが返信されたものと推測させることができる。
このように推測したルータ241aは、フィルタリング規則に基づいて、自身が管理するゲーム端末221aと、外部に配置されるゲーム端末221bと、の間のパケットの中継を許可する。
このため、上記(b)において到着したダミー接続応答304bは、ルータ241aに中継されて、ゲーム端末221aに到着することになる。
さらに、この後は、ルータ241aは、ゲーム端末221bからの、ゲーム端末221a宛のダミー接続要求303bも中継することとなるので、ゲーム端末221aには、ダミー接続要求303bも到着する。
これと同様に、ルータ241bにおいても、
(A)ゲーム端末221bからの、ゲーム端末221a宛のダミー接続要求303b
が到着してから時間をおかずに、ルータ241bに、
(B)ゲーム端末221aからの、ゲーム端末221b宛のダミー接続応答304a
が到着する事象が、いつか生じることとなる。
すると、ルータ241bは、自身が管理するゲーム端末221bと、外部に配置されるゲーム端末221aと、の間のパケットの中継を許可する。
このため、上記(B)において到着したダミー接続応答304aは、ルータ241bに中継されて、ゲーム端末221bに到着することになる。
さらに、この後は、ルータ241bは、ゲーム端末221aからの、ゲーム端末221b宛のダミー接続要求303aも中継することとなるので、ゲーム端末221bには、ダミー接続要求303aも到着する。
このようにして、UDPホールパンチングと同様に、ルータ241a、241bに「ゲーム端末221a、221bの通信用のホール」を開けることができるのである。
ゲーム端末221aに、ゲーム端末221bからのダミー接続要求303bとダミー接続応答304bの両方が到着すると、ゲーム端末221aは、ルータ241aにホールが開いたと判断することができる。
同様に、ゲーム端末221bに、ゲーム端末221aからのダミー接続要求303aとダミー接続応答304aの両方が到着すると、ゲーム端末221bは、ルータ241bにホールが開いたと判断することができる。
そこで、この後、ゲーム端末221aは、通信対戦ゲームを開始するための真正接続要求305aを、ゲーム端末221bに送信する。一方、ゲーム端末221bは、通信対戦ゲームを開始するための真正接続要求305bを、ゲーム端末221aに送信する。
ゲーム端末221aが、ゲーム端末221bから送信された真正接続要求305bを受信すると、これに呼応して、通信対戦ゲームを開始するための真正接続応答306aを、ゲーム端末221bに送信する。一方、ゲーム端末221bが、ゲーム端末221aから送信された真正接続要求305aを受信すると、これに呼応して、通信対戦ゲームを開始するための真正接続応答306bを、ゲーム端末221aに送信する。
ゲーム端末221aが、ゲーム端末221bから送信された真正接続応答306bを受信することによって、ゲーム端末221aからゲーム端末221bへの通信が確立したことになる。一方、ゲーム端末221bが、ゲーム端末221aから送信された真正接続応答306aを受信することによって、ゲーム端末221bからゲーム端末221aへの通信が確立したことになる。
この後は、確立した通信によって、一般的な通信対戦ゲームと同様に、通信対戦パケット307の送受が行われることになる。
さて、一旦通信が確立すると、ゲーム端末221a、221bは、通信相手のIPアドレスやポート番号、ホスト名等の通信識別子をフレンドリストに保存し、次回以降の利用に備えることが可能である。
一般に、ルータ241がインターネット261に常時接続されている場合には、そのIPアドレスは、ほとんど変化しない。したがって、フレンドリストに保存されたIPアドレス等は、次にゲーム端末221を用いてゲームをしようとする際にも有効である可能性が高い。
このため、一旦通信対戦ゲームを終了した後、後日あらためて通信対戦ゲームをしようとする場合には、まず、ゲーム端末221は、フレンドリストに保存されたIPアドレス等を再利用して接続の確立を試行する。
この試行が成功した場合には、ゲーム端末221からロビーサーバ281へのアクセスは、しなくて済むことになる。
以下、本実施形態に係るゲーム端末221について、さらに詳細に説明する。
(ゲーム端末)
本実施形態に係るゲーム端末221は、情報処理装置101において、ROMカセット111に記録されているプログラムをCPU 102が実行することによって実現される。
ここで、ゲーム端末221は、インターネット261等のコンピュータ通信網に直接接続され、もしくは、ルータ241を介して間接的に接続される。
上記の説明では、ゲーム端末221がルータ241を介してインターネット261に接続される態様を説明したが、ゲーム端末221が直接インターネット261に接続される態様を採用しても良い。
あるゲーム端末221がルータ241を介してインターネット261に接続される場合には、外部の通信機器が当該ゲーム端末221と通信するためのIPアドレスとポート番号は、ルータ241のIPアドレスとポート番号になる。これは、ルータ241において、アドレス変換やポート番号変換が行われるからである。
そして、ゲーム端末221は、他のゲーム端末221からなる相手方端末と通信することによりゲームを進行させる。
さて、通信対戦ゲームが開始される前に、ゲーム端末221と相手方端末とは、いずれも、接続要求パケットと接続応答パケットをやりとりする。
上記のように、本実施形態では、パケットの種類が接続要求パケットであることや、接続応答パケットであることは、パケットのヘッダ情報からわかる。また、そのパケットが、ダミーのパケットであることや、真正のパケットであることは、パケットのデータ情報からわかる。
図4は、本実施形態に係るゲーム端末221の概要構成を示す模式図である。以下、本図を参照して説明する。
本実施形態に係るゲーム端末221は、ダミー要求送信部401、ダミー応答送信部402、ダミー要求受信部403、ダミー応答受信部404、真正要求送信部405、真正要求受信部406、真正応答受信部407、真正応答送信部408、通信部409を備えるほか、記憶部410を有する。
これらは、情報処理装置101において、CPU 102の制御の下、無線LANインターフェース114が機能することによって実現される。
このほか、本実施形態に係るゲーム端末221は、通信対戦を行う相手方端末の通信に必要な情報、たとえば、そのIPアドレスやポート番号などを、ロビーサーバ281に問い合わせたり、過去に何らかの手法で知得していることがある。
このため、本実施形態に係るゲーム端末221では、記憶部410に、過去にロビーサーバ281から紹介された相手方端末のIPアドレス、ポート番号および繰り返し周期が記憶される。
したがって、記憶部410は、情報処理装置101において、外部メモリ112やROMカセット111内の情報保存領域、ハードディスク、EEPROM(Electrically Erasable Programmable ROM)等により、実現される。
ここで、ダミー要求送信部401は、相手方端末宛のダミー接続要求303を、当該相手方端末に対して記憶された繰り返し周期で、繰り返し送信する。一方、ダミー応答送信部402は、相手方端末宛のダミー接続応答304を、当該相手方端末に対して記憶された繰り返し周期で、繰り返し送信する。
上記のように、本実施形態では、通信対戦をしようとするゲーム端末221と相手方端末のそれぞれが、ダミーの接続要求のパケットとダミーの接続応答のパケットとを何度も送信するのである。
このように構成すると、たまたま、「ルータ241装置が、ゲーム端末221が送信した相手方端末宛のダミー接続要求303を中継し、その後に、相手方端末からゲーム端末221宛のダミー接続応答304がルータ241装置に到着する」事象が生ずることになる。
このような事象が生じると、上記のようなフィルタリング規則を採用するルータ241は、ゲーム端末221と相手方端末との通信の中継を開始するようになる。
さて、ダミー要求受信部403は、相手方端末から送信されたダミー接続要求303を受信する。そして、ダミー応答受信部404は、相手方端末から送信されたダミー接続応答304を受信する。
したがって、ルータ241が、ゲーム端末221と相手方端末との通信の中継を開始した後は、ダミーの接続要求のパケットとダミーの接続応答のパケットの両方が、ゲーム端末221で受信されるようになるのである。
ダミー接続要求303ならびにダミー接続応答304が受信されると、真正要求送信部405は、相手方端末宛の真正接続要求305を送信する。
上記のように、ダミーの接続要求のパケットとダミーの接続応答のパケットの両方がゲーム端末221に到着した、ということは、ゲーム端末221が接続されているルータ241が、相手方端末からゲーム端末221宛のパケットを中継しても良いと判断したことを意味する。
そこで、ダミーではなく、真正の接続要求パケットを、ゲーム端末221から相手方端末に送信するのである。
相手方端末が接続されるルータ241においても、当該ゲーム端末221と同様に、パケットの中継が開始されると、当該ゲーム端末221と同様に、相手方端末は、真正の接続要求パケットを送信することになる。
そこで、真正要求受信部406は、相手方端末から送信された真正接続要求305を受信する。
すなわち、真正接続要求305が受信された、ということは、相手方端末から当該ゲーム端末221への中継がすでに開始されている、ということを意味する。
そこで、真正接続要求305が受信されると、真正応答送信部408は、相手方端末宛の真正接続応答306を送信する。
同様に、相手方端末においても、同様に、真正接続応答306が送信されることになる。
そこで、真正応答受信部407が、相手方端末から送信された真正接続応答306を受信する。
ここで、真正接続応答306がゲーム端末221に到着した、ということは、「ゲーム端末221から相手方端末への中継がすでに開始されている、と、相手方端末が判断した」ということを意味する。
そこで、真正応答パケットが受信されると、通信部409は、相手方端末との間で、ゲームを進行させるための通信を開始する。
このように、本実施形態のゲーム端末221は、相手方端末と一緒にダミーのパケットを繰り返し送信することで、ルータ241のフィルタリング規則に適合した状況を作り出し、ルータ241に中継を開始させるのである。
なお、上記のように、本実施形態では、接続要求パケットとして、SYNパケットを、接続応答パケットとして、SYN/ACKパケットを、それぞれ採用している。
したがって、上記の各種パケットの送受は、通常のTCP/IP通信のパケット送受の中において、適宜実行されることになる。
特に、TCP/IP通信が確立される際には、以下のように送受が行われる。
すなわち、真正の接続要求のパケット用のSYNパケットを送信することにより上りコネクションの確立を試行する。
ついで、真正の接続応答のパケット用のSYN/ACKパケットが受信されることにより、上りコネクションの確認と下りコネクションの確立が試行される。
この後に、ACKパケットが送信されることによって、下りコネクションが確立されることになる。
そして、この流れを双方において行うことで、確実にルータ241にホールを開けることが可能となるのである。
以下、上記各部を実現する情報処理装置101がゲーム端末221として動作する際の処理について、さらに詳細に説明する。
図5、図6、図7、図8、図9、図10は、本実施形態に係るゲーム端末221にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本実施形態では、ゲーム制御処理は、CPU 102が、ROMカセット111からプログラムをRAM 103内に読み出して実行することによって開始される。
ゲーム制御処理が開始されると、CPU 102は、各種の初期化を行う(ステップS501)。ここでは、外部メモリ112やROMカセット111等に記録されている情報がRAM 103に読み出され、通信対戦ゲームの進行に必要な各種の初期化が行われる。また、無線LANやインターネット261に対する自身の登録などの処理も行われる。
ここで、上記のように、外部メモリ112等により実現される記憶部410から、過去にロビーサーバ281から当該ゲーム端末221に対して紹介された他のゲーム端末221の情報が読み出される。具体的には、他のゲーム端末221ごとに、以下のような情報が、外部メモリ112からフレンドリストとしてRAM 103に読み出されることになる。
(a)当該他のゲーム端末221との通信に用いたIPアドレス。当該他のゲーム端末221がルータ241を介してインターネット261に接続されている場合には、これは、当該ルータ241のインターネット261側のIPアドレスに一致する。
(b)当該他のゲーム端末221との通信に用いたポート番号。当該他のゲーム端末221を管理するルータ241がIPアドレス・ポート番号変換を行っている場合に必要となる。なお、ゲームの実装によっては、このポート番号は固定の定数とすることも可能である。その場合、1つのルータ241を用いて通信対戦ができる他のゲーム端末221は1台に限られることになるが、ポート番号をフレンドリストで管理する必要はない。
(c)当該他のゲーム端末221に対してダミーのパケットを繰り返し送信する際の繰り返し周期。当該他のゲーム端末221を管理するルータ241で採用するフィルタリング規則に適合する時間長を求めたものである。なお、この繰り返し周期を定数とする実装も可能であり、この場合には、繰り返し周期をフレンドリストで管理する必要はない。また、繰り返し周期の調整の手法については、後述する。
さらに、RAM 103においては、以下のような情報も管理される。
(d)当該他のゲーム端末221から、どのような種類のパケットが到着したか、を示す情報。初期値は、いずれの種類のパケットも到着していないということになる。
(e)当該他のゲーム端末221に対して前回ダミーのパケットを送信した時刻。
ついで、CPU 102は、フレンドリストに登録済みのゲーム端末221、すなわち、相手方端末の候補であるゲーム端末221のそれぞれに対して、以下の処理を繰り返す(ステップS502)。
すなわち、無線LANインターフェース114を制御して、当該ゲーム端末221宛に、ダミー接続要求303を送信する(ステップS503)。
さらに、当該ゲーム端末221宛に、ダミー接続応答304を送信する(ステップS504)。
そして、RAM 103内のフレンドリストにおいて、当該ゲーム端末221宛に、ダミーのパケットを送信した時刻として、現在の時刻を書き込んで記録する(ステップS505)。
候補すべてについて、これらのダミーのパケットの送信処理を繰り返したら(ステップS506)、CPU 102は、他のゲーム端末221から何らかのパケットが到着するまで、もしくは、所定のタイムアウト時間が経過するまで待機する(ステップS507)。
なお、この待機の間、CPU 102は、他の処理を並行してコルーチン的に実行することができる。また、受信割込やタイムアウト割込などを利用することによって、待機処理を実現することとしても良い。
待機が終了したら、パケットが到着しているか否かを調べる(ステップS508)。パケットが到着していなければ(ステップS508;No)、相手方端末の候補であるゲーム端末221のそれぞれに対して、以下の処理を繰り返す(ステップS521)。
すなわち、当該ゲーム端末221に対してダミーパケット送信条件が成立するか否か、すなわち、ダミーのパケットを送信すべきか否かを判定する(ステップS522)。
ここで、ダミーパケット送信条件が成立する場合、とは、以下の条件(a)(b)が両方とも満たされる場合である。
(a)『「当該ゲーム端末221からダミー接続要求303とダミー接続応答304の両方を受信した」あるいは「当該ゲーム端末221から真正接続要求305を受信した」』が成立していないこと。この条件は、RAM 103に用意された一時的なフレンドリストの情報を確認することによって判定できる。
(b)当該ゲーム端末221に対して、前回、ダミー接続要求303とダミー接続応答304を送信した時点から、当該ゲーム端末221における繰り返し周期の時間が経過していること。この条件は、RAM 103に用意された前回のダミーパケット送信時刻と現在時刻の差と、フレンドリスト内の繰り返し周期と、を比較することによって判定できる。
ダミーパケット送信条件が成立する場合(ステップS522;Yes)、無線LANインターフェース114を制御して、当該ゲーム端末221宛に、ダミー接続要求303を送信し(ステップS523)、さらに、当該ゲーム端末221宛に、ダミー接続応答304を送信する(ステップS524)。
そして、RAM 103内のフレンドリストにおいて、当該ゲーム端末221宛に、ダミーのパケットを送信した時刻として、現在の時刻を書き込み(ステップS525)、ステップS526に進む。
一方、ダミーパケット送信条件が成立しない場合(ステップS522;No)、ステップS526に進む。
候補すべてについて、これらの処理を繰り返したら(ステップS526)、前回ステップS502を実行してから所定の調査時間が経過したか否かを判定し(ステップS527)、経過していなければ(ステップS527;No)、ステップS507に戻る。
このようにすることで、あるゲーム端末221宛にダミー接続要求303およびダミー接続応答304が、当該ゲーム端末221に対する繰り返し周期ごとに、繰り返し送信されることになる。
また、調査時間とは、過去に初回された他のゲーム端末221のうち、いずれのゲーム端末221と現在通信が可能であるか、を調査するための時間である。後述するように、この調査時間内にいずれのゲーム端末221とも通信が確立できなかった場合には、ロビーサーバ281に紹介を求めることになる。
さて、他のゲーム端末221からパケットが到着した場合(ステップS508;Yes)、CPU 102は、まず、そのパケットの送信元を取得する(ステップS541)。
そして、CPU 102は、その送信元のゲーム端末221が、フレンドリストに登録されているか否かを調べ(ステップS542)、登録されていなければ(ステップS542;No)、RAM 103内に読み出されたフレンドリストと、外部メモリ112等に保存されるフレンドリストの両方に、当該ゲーム端末221の情報を追加して(ステップS543)、ステップS544に進む。
ステップS543において、IPアドレスやポート番号は、パケットの送信元情報から得たものを利用すれば良い。また、繰り返し周期は、適当な初期値を登録することになる。
パケットの送信元が既にフレンドリストに登録されていた場合(ステップS542;Yes)、CPU 102は、パケットの種類を調べる(ステップS544)。
パケットの種類がダミー接続要求303であった場合(ステップS544;ダミー接続要求)、CPU 102は、RAM 103に対して、当該パケットの送信元のゲーム端末221から、ダミー接続要求303を受信した旨を記録して(ステップS545)、ステップS507に戻る。
パケットの種類がダミー接続応答304であった場合(ステップS544;ダミー接続応答)、CPU 102は、RAM 103に対して、当該パケットの送信元のゲーム端末221から、ダミー接続応答304を受信した旨を記録して(ステップS546)、ステップS507に戻る。
パケットの種類が真正接続要求305であった場合(ステップS544;真正接続要求)、CPU 102は、RAM 103に対して、当該パケットの送信元のゲーム端末221から、真正接続要求305を受信した旨を記録する(ステップS547)。そして、当該送信元のゲーム端末221に対して、真正接続応答306を送信してから(ステップS548)ステップS507に戻る。
その他のパケットであった場合(ステップS544;その他)、対応する処理を適宜行って(ステップS549)、ステップS507に戻る。ここで実行される典型的な処理は、当該パケットを単に破棄する処理である。
さて、調査時間が経過した場合(ステップS527;Yes)、CPU 102は、フレンドリストに含まれるゲーム端末221のそれぞれに対して、以下の処理を繰り返す(ステップS561)。
すなわち、CPU 102は、当該ゲーム端末221が、真正パケット送信条件を満たしているか否かを判定する(ステップS562)。ここで、真正パケット送信条件は、「当該ゲーム端末221から、ダミー接続要求303とダミー接続応答304の両方を受信した」もしくは、「当該ゲーム端末221から、真正接続要求305を受信した」場合に満たされる。この条件は、RAM 103に用意された一時的なフレンドリストの情報を確認することによって判定できる。
真正パケット送信条件が満たされていない場合(ステップS562;No)、ステップS564に進む。
一方、真正パケット送信条件が満たされている場合(ステップS562;Yes)、CPU 102は、無線LANインターフェース114を制御して、当該ゲーム端末221に対して真正接続要求305を送信し(ステップS563)、ステップS564に進む。
各ゲーム端末221について、これらの処理を繰り返した後(ステップS564)、CPU 102は、真正パケット送信条件を満たしているゲーム端末221が少なくとも1つは存在したか、それとも1つもなかったか、を調べる(ステップS565)。
真正パケット送信条件を満たしているゲーム端末221が少なくとも1つは存在した場合(ステップS565;Yes)、CPU 102は、他のゲーム端末221から何らかのパケットが到着するまで、もしくは、所定のタイムアウト時間が経過するまで待機する(ステップS581)。
待機が終了したら、パケットが到着しているか否かを調べる(ステップS582)。パケットが到着していなければ(ステップS582;No)、ステップS590に進む。
一方、他のゲーム端末221からパケットが到着した場合(ステップS582;Yes)、CPU 102は、まず、そのパケットの送信元を取得する(ステップS583)。
CPU 102は、その送信元のゲーム端末221が、真正パケット送信条件を満たしているか否かを調べる(ステップS584)。その送信元のゲーム端末221が、真正パケット送信条件を満たしていれば(ステップS584;Yes)、CPU 102は、パケットの種類を調べる(ステップS585)。
パケットの種類が真正接続応答306であった場合(ステップS585;真正接続応答)、CPU 102は、RAM 103に対して、当該パケットの送信元のゲーム端末221から、真正接続応答306を受信した旨を記録して(ステップS586)、ステップS590に進む。
一方、パケットの種類が真正接続要求305であった場合(ステップS585;真正接続要求)、CPU 102は、RAM 103に対して、当該パケットの送信元のゲーム端末221から、真正接続要求305を受信した旨を記録する(ステップS587)。そして、当該送信元のゲーム端末221に対して、真正接続応答306を送信してから(ステップS588)ステップS590に進む。
その他のパケットであった場合(ステップS585;その他)、対応する処理を適宜行って(ステップS589)、ステップS590に進む。ここで実行される典型的な処理は、当該パケットを単に破棄する処理である。
さて、パケットの送信元のゲーム端末221が、真正パケット送信条件を満たしていない場合(ステップS584;No)、当該送信元がフレンドリストに登録されているか否かを判定する(ステップS591)。
当該送信元がフレンドリストに登録されていれば(ステップS591;Yes)、ステップS590にそのまま進み、登録されていなければ(ステップS591;No)、当該送信元をフレンドリストに登録してから(ステップS592)、ステップS590にそのまま進む。
さて、そして、CPU 102は、ステップS565からの経過時間が、所定の試行時間を超過したか否かを調べる(ステップS590)。まだ試行時間を超過していなければ(ステップS590;No)、ステップS581に戻る。
この試行時間は、通信可能と予想されるゲーム端末221からの真正接続応答306を待機するための時間である。
一方、試行時間が経過した場合(ステップS590;Yes)、CPU 102は、フレンドリストの中から、通信確立条件が成立するゲーム端末221を抽出する(ステップS601)。
ここで、通信確立条件とは、「当該ゲーム端末221から、真正接続要求305と真正接続応答306の両方を受信した」場合に成立する。この条件は、RAM 103内に記憶されているこの条件は、RAM 103に用意された一時的なフレンドリストの情報を確認することによって判定できる。
そして、通信確立条件を満たすものとして抽出されたゲーム端末221の数が1個以上であるか否かを判定し(ステップS602)、1個以上存在すれば(ステップS602;Yes)CPU 102は、無線LANインターフェース114を制御して、これらのゲーム端末221との間で通信対戦ゲームを実行して(ステップS603)、本処理を終了する。
本実施形態によれば、TCP/IP通信のヘッダ情報を参照したフィルタリング規則を採用するルータ241にゲーム端末221が接続されている場合であっても、ルータ241を介した相手方端末との通信を開始して、プレイヤーに通信対戦ゲームを提供することができるようになる。
さらに、本実施形態では、過去にロビーサーバ281から紹介されたゲーム端末221については、再度の紹介を求めることなく、単独で通信接続を試行することができる。
なお、通信対戦ゲームにおいては、友人同士で時間を約束してゲームをプレイすることを繰り返すことも多い。このような場合には、本実施形態を採用することによって、不要なロビーサーバ281への問い合わせをできるだけ抑制して、迅速にプレイを開始できるようになる。
さらに、あるゲーム端末221において既に通信対戦ゲームがプレイされている状況で、新たなゲーム端末221がプレイに参加しようとする場合に対応するため、通信対戦ゲームの実行中(ステップS603)にも、上記のようなダミーの接続要求、接続応答のパケットの送受、真正の接続要求、接続応答のパケットの送受を、同様の態様で行うのが一般的である。
一方、真正パケット送信条件を満たしているゲーム端末221が1つもなかった場合(ステップS565;No)や、通信確立条件を満たすゲーム端末221がなかった場合(ステップS602;No)は、CPU 101は、ロビーサーバ281ヘ紹介要求301を送信し(ステップS611)、ロビーサーバ281から送信される紹介応答302を受信する(ステップS612)。
この紹介応答302には、他のゲーム端末221のIPアドレス等の情報が指定されている。そこで、CPU 101は、受信した紹介応答302の内容に指定されたゲーム端末221の情報を、RAM 103と外部メモリ112等に保存されるフレンドリストの両方に、当該ゲーム端末221の情報を追加して(ステップS613)、ステップS502に戻る。これによって、再度、他のゲーム端末221との通信を試みるのである。
なお、CPU 102は、初期化(ステップS501)の際に、ゲーム端末221を実現する情報処理装置101が、インターネット261に直接接続されているのか、それともルータ241を介してインターネット261に接続されているのかを判定することとしても良い。
既知のSTUN(Simple Traversal of UDP through NATs)サーバに問い合わせを行ったり、既知の通信機器に対してtracerouteを実行することにより、これを判定することができる。
そして、ゲーム端末221を実現する情報処理装置101が、インターネット261に直接接続されている場合には、ステップS502〜S549の処理の実行を省略して、ステップS561に進むこととしても良い。
ステップS502〜S549の処理は、ゲーム端末221がルータ241に接続されている場合に、当該ルータ241に通信用のホールを開けるためのものである。すなわち、ゲーム端末221がインターネット261に直接接続されている場合には、他のゲーム端末221から送信されたパケットは何らフィルタリングの影響を受けずに到着することになる。
したがって、ゲーム端末221がインターネット261に直接接続されている場合には、これらの処理は不要である。
ただし、ステップS561以降の処理においては、情報処理装置101が直接インターネット261に接続されている場合には、真正パケット送信条件が常に満たされるものとして、処理を進めることになる。
この態様によれば、他のゲーム端末221と通信をできるだけ早期に開始することができるようになる。
なお、ダミーの接続要求、接続応答のパケットの送受においては、最後のACKパケットの送受は省略するのが一般的であり、上記の実施形態でもこの態様を採用する。これは、ゲーム端末221においてパケットのデータ部を調べることで、そのパケットがダミーか真正かが判定できるからである。
しかしながら、ルータ241のフィルタリングルールによっては、このACKパケットも監視している可能性がある。この場合には、ダミーのSYNパケットやダミーのSYN/ACKパケットを繰り返し送信するとともに、ダミーのACKパケットも繰り返し送信することとすれば良い。
また、上記の説明では、ゲーム端末221aからゲーム端末221bへの真正接続要求305aと、ゲーム端末221bからゲーム端末221aへの真正接続要求305bと、は、独立に送信されることとしていた。
しかしながら、TCP/IP通信のコネクションを確立する際の、
(1)SYNパケットを、単独の真正接続要求305として、
(2)SYN/ACKパケットを、真正接続応答306と真正接続要求305が一体となったものとして、
(3)ACKパケットを、単独の真正接続応答306として、
それぞれ取り扱うこととしても良い。
すなわち、ゲーム端末221aとゲーム端末221bとの
(1)一方が、単独のSYNパケットにより真正接続要求305を送信する。
(2)すると、当該他方は、真正接続要求305(SYNパケット)を受信する。そして、当該他方は、当該一方に対して真正接続応答306と真正接続要求305とを一体化したSYN/ACKパケットを送信する。
(3)すると、当該一方は、真正接続応答306のほか、真正接続要求305(SYN/ACKパケット)も、受信する。そして、当該一方は、単独のACKパケットを、真正接続応答306として送信する。
(4)すると、当該他方は、真正接続応答306(ACKパケット)を受信する。
これによって、両者の間の上り・下りの双方向の接続が確立するのである。
(繰り返し周期の調整)
上記のように、ゲーム端末221と他のゲーム端末221との間の通信が確立するまでには、ダミーのパケットの送受が必要となる場合がある。
一方、本実施形態では、ダミーのパケットを繰り返し送信するので、相手方のゲーム端末221が接続されているルータ241が、当該相手から攻撃がなされていると判断することもある。そこで、ダミー接続要求303やダミー接続応答304の送信の頻度は、できるだけ低くすることが望ましい。すなわち、送信の繰り返し周期は、できるだけ長くすることが望ましい。また、送信する回数をできるだけ抑えることが望ましい。
これに対応するためには、以下のような手法が考えられる。
すなわち、CPU 102は、他のゲーム端末221ごとに、
(a)ダミー接続要求303およびダミー接続応答304の送信を開始してから、より具体的には、ステップS503、S504において最初にパケットを送信してから、
(b)ゲームを進行させるための通信が開始されるまで、より具体的には、当該ゲーム端末221に対する真正パケット送信条件が満たされるまで、
の経過時間を、通信が確立するごとに外部メモリ112等に記録して、履歴を保存することとする。
そして、保存された経過時間履歴の経過時間に応じて、当該ゲーム端末221に対する繰り返し周期を調整する。
そして、CPU 102は、この履歴から、経過時間が短縮傾向にあるのか、延長傾向にあるのか、平衡状態にあるのかを判定する。
そして、経過時間が短縮傾向にある場合には、CPU 102は、当該ゲーム端末221に対する繰り返し周期を、1より大きい定数で定数倍したり、所定の定数を加える等して、長くする。
また、経過時間が延長傾向にある場合には、CPU 102は、当該ゲーム端末221に対する繰り返し周期を、1より小さい定数で定数倍したり、所定の定数を減じる等して、短くする。
経過時間が平衡状態にある場合には、現在の繰り返し周期が適切であるものと考えられる。
このようにして、本実施形態によれば、ダミーの接続要求のパケットや接続応答パケットを送信する繰り返し周期を、適切に自動調整することが可能となる。
(フレンドリストへの登録)
本実施形態では、他のゲーム端末221からのパケットが到着すると、自動的にフレンドリストに登録することとしていた。多くの場合、このようなパケットを送信するのは、当該端末221で動作しているゲームと同じゲームをプレイしているゲーム端末221であり、自動的にフレンドリストに登録することとしても問題が起きることはまれである。
しかしながら、以下のように、フレンドリストへの登録に制限を設け、パケットが到着したからといって直ちにフレンドリストに登録するとは限らないものとすることも可能である。
最も厳しい態様は、フレンドリストへ登録されるゲーム端末221を、ロビーサーバ281から紹介されたゲーム端末221に限る、というものである。
この制限を緩めた態様は、一旦通信が確立したゲーム端末221同士がフレンドリストの内容を交換して、未知のゲーム端末221があれは、これを追加する、というものである。
上記のように、通信対戦ゲームが開始された(ステップS603)後も、ダミーの接続要求、接続応答のパケットの送受や、真正の接続要求、接続応答のパケットの送受は、適宜実行される。
したがって、後者の態様を実現するためには、通信が確立した直後に、ゲーム端末221の間で、フレンドリストの交換が実行されるようにすれば良い。
なお、後者の態様は、既知のゲーム端末221がある種のロビーサーバ281として機能する、と考えることも可能である。
このほか、一定期間以上通信が確立できなかったゲーム端末221は、フレンドリストから削除することとしても良い。
また、プレイヤー自身が、フレンドリストを編集できる態様を採用することもありうる。この態様では、特定のプレイヤーとの通信対戦を拒否することもできるし、ロビーサーバを介さずに、たとえば電子メールや文字チャットなどで互いのゲーム端末221が通信可能となるようなIPアドレス、ポート番号の情報をやりとりして、フレンドリストに登録することも可能である。
このように、フレンドリストに登録されるゲーム端末221を制限することで、通信対戦ゲームのプレイ相手を適切に管理することができるようになる。
以上説明したように、本実施形態によれば、インターネット等のコンピュータ通信網に直接的にあるいはルータを介して間接的に接続されて通信対戦を行うのに好適なゲーム端末、ゲーム端末の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
101 情報処理装置
102 CPU
103 RAM
104 ROM
105 入力装置
106 画像処理部
107 液晶ディスプレイ
108 音声処理部
109 ヘッドホン
110 カセットリーダ
111 ROMカセット
112 外部メモリ
113 RTC
114 無線LANインターフェース
115 カメラ
201 通信システム
221 ゲーム端末
241 ルータ
261 インターネット
281 ロビーサーバ
301 紹介要求
302 紹介応答
303 ダミー接続要求
304 ダミー接続応答
305 真正接続要求
306 真正接続応答
307 通信対戦パケット
401 ダミー要求送信部
402 ダミー応答送信部
403 ダミー要求受信部
404 ダミー応答受信部
405 真正要求送信部
406 真正要求受信部
407 真正応答受信部
408 真正応答送信部
409 通信部
410 記憶部

Claims (6)

  1. コンピュータ通信網に直接接続され、もしくは、ルータを介して間接的に接続されるゲーム端末であって、
    前記ゲーム端末は、前記コンピュータ通信網内の他のゲーム端末からなる相手方端末と通信することによりゲームを進行させ、
    前記ルータは、前記ゲーム端末から前記コンピュータ通信網内の他の機器宛の接続要求パケットを中継した後、当該他の機器から前記ゲーム端末宛の接続応答パケットが到着すると、当該接続応答パケットを前記ゲーム端末に中継するとともに、当該他の機器から前記ゲーム端末宛のパケットの中継を開始し、
    前記ゲーム端末は、
    前記相手方端末宛のダミー接続要求パケットを、繰り返し送信するダミー要求送信部、
    前記相手方端末宛のダミー接続応答パケットを、繰り返し送信するダミー応答送信部、
    前記相手方端末から送信されたダミー接続要求パケットを受信するダミー要求受信部、
    前記相手方端末から送信されたダミー接続応答パケットを受信するダミー応答受信部、
    前記ダミー接続要求パケットならびに前記ダミー接続応答パケットが受信されると、前記相手方端末宛の真正接続要求パケットを送信する真正要求送信部、
    前記相手方端末から送信された真正接続要求パケットを受信する真正要求受信部、
    前記真正接続要求パケットが受信されると、前記相手方端末宛の真正接続応答パケットを送信する真正応答送信部、
    前記相手方端末から送信された真正接続応答パケットを受信する真正応答受信部、
    前記真正応答パケットが受信されると、前記相手方端末との間で、前記ゲームを進行させるための通信を開始する通信部
    を備えることを特徴とするゲーム端末。
  2. 請求項1に記載のゲーム端末であって、
    前記ゲーム端末は、前記コンピュータ通信網に前記ルータを介して間接的に接続され、
    前記ルータは、アドレス変換もしくはアドレス・ポート変換により、前記ゲーム端末を前記コンピュータ通信網に通信可能に接続し、
    前記接続要求パケットは、SYNパケットであり、
    前記接続応答パケットは、SYN/ACKパケットである
    ことを特徴とするゲーム端末。
  3. 請求項1または2に記載のゲーム端末であって、
    当該相手方端末宛の前記ダミー接続要求パケットおよび前記ダミー接続応答パケットの送信を開始してから、前記ゲームを進行させるための通信が開始されるまでの経過時間の履歴に基づいて、次に当該相手方端末宛の前記ダミー接続要求パケットおよび前記ダミー接続応答パケットを繰り返し送信する際の繰り返し周期が更新される
    ことを特徴とするゲーム端末。
  4. 請求項1から3のいずれか1項に記載のゲーム端末であって、
    前記ゲーム端末が前記コンピュータ通信網に直接接続されている場合、前記真正要求送信部は、前記ダミー接続要求パケットならびに前記ダミー接続応答パケットが受信されるのを待たずに、前記真正接続要求パケットを送信する
    ことを特徴とするゲーム端末。
  5. コンピュータ通信網に直接接続され、もしくは、ルータを介して間接的に接続されるゲーム端末を制御する制御方法であって、
    前記制御方法は、前記ゲーム端末を前記コンピュータ通信網内の他のゲーム端末からなる相手方端末と通信させることによりゲームを進行させ、
    前記ゲーム端末は、ダミー要求送信部、ダミー応答送信部、ダミー要求受信部、ダミー応答受信部、真正要求送信部、真正要求受信部、真正応答送信部、真正応答受信部、通信部を備え、
    前記ゲーム方法は、
    前記ダミー要求送信部が、前記相手方端末宛のダミー接続要求パケットを、繰り返し送信するダミー要求送信工程、
    前記ダミー応答送信部が、前記相手方端末宛のダミー接続応答パケットを、繰り返し送信するダミー応答送信工程、
    前記ダミー要求受信部が、前記相手方端末から送信されたダミー接続要求パケットを受信するダミー要求受信工程、
    前記ダミー応答受信部が、前記相手方端末から送信されたダミー接続応答パケットを受信するダミー応答受信工程、
    前記ダミー接続要求パケットならびに前記ダミー接続応答パケットが受信されると、前記真正要求送信部が、前記相手方端末宛の真正接続要求パケットを送信する真正要求送信工程、
    前記真正要求受信部が、前記相手方端末から送信された真正接続要求パケットを受信する真正要求受信工程、
    前記真正接続要求パケットが受信されると、前記真正応答送信部が、前記相手方端末宛の真正接続応答パケットを送信する真正応答送信工程、
    前記真正応答受信部が、前記相手方端末から送信された真正接続応答パケットを受信する真正応答受信工程、
    前記真正応答パケットが受信されると、前記通信部が、前記相手方端末との間で、前記ゲームを進行させるための通信を開始する通信工程
    を備えることを特徴とする制御方法。
  6. コンピュータ通信網に直接接続され、もしくは、ルータを介して間接的に接続されるコンピュータをゲーム端末として機能させるプログラムであって、
    前記プログラムは、前記コンピュータを、前記コンピュータ通信網内の他のゲーム端末からなる相手方端末と通信することによりゲームを進行させるゲーム端末として機能させ、
    前記プログラムは、前記コンピュータを、
    前記相手方端末宛のダミー接続要求パケットを、繰り返し送信するダミー要求送信部、
    前記相手方端末宛のダミー接続応答パケットを、繰り返し送信するダミー応答送信部、
    前記相手方端末から送信されたダミー接続要求パケットを受信するダミー要求受信部、
    前記相手方端末から送信されたダミー接続応答パケットを受信するダミー応答受信部、
    前記ダミー接続要求パケットならびに前記ダミー接続応答パケットが受信されると、前記相手方端末宛の真正接続要求パケットを送信する真正要求送信部、
    前記相手方端末から送信された真正接続要求パケットを受信する真正要求受信部、
    前記真正接続要求パケットが受信されると、前記相手方端末宛の真正接続応答パケットを送信する真正応答送信部、
    前記相手方端末から送信された真正接続応答パケットを受信する真正応答受信部、
    前記真正応答パケットが受信されると、前記相手方端末との間で、前記ゲームを進行させるための通信を開始する通信部
    として機能させることを特徴とするプログラム。
JP2010178277A 2010-08-09 2010-08-09 ゲーム端末、ゲーム端末の制御方法、ならびに、プログラム Active JP5073793B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010178277A JP5073793B2 (ja) 2010-08-09 2010-08-09 ゲーム端末、ゲーム端末の制御方法、ならびに、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010178277A JP5073793B2 (ja) 2010-08-09 2010-08-09 ゲーム端末、ゲーム端末の制御方法、ならびに、プログラム

Publications (2)

Publication Number Publication Date
JP2012038119A JP2012038119A (ja) 2012-02-23
JP5073793B2 true JP5073793B2 (ja) 2012-11-14

Family

ID=45850052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010178277A Active JP5073793B2 (ja) 2010-08-09 2010-08-09 ゲーム端末、ゲーム端末の制御方法、ならびに、プログラム

Country Status (1)

Country Link
JP (1) JP5073793B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005026257A1 (ja) * 2003-09-10 2005-03-24 Asahi Denka Co., Ltd. アクリルゾル組成物

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3445986B1 (ja) * 2002-09-27 2003-09-16 松下電器産業株式会社 インターネットに接続するサーバ、機器および通信システム
JP2008147738A (ja) * 2006-12-06 2008-06-26 Toshiba Corp 通信方法、通信システム、機器、並びに端末

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005026257A1 (ja) * 2003-09-10 2005-03-24 Asahi Denka Co., Ltd. アクリルゾル組成物

Also Published As

Publication number Publication date
JP2012038119A (ja) 2012-02-23

Similar Documents

Publication Publication Date Title
JP4313266B2 (ja) サーバ装置、その制御方法およびコネクション確立方法
US8149851B2 (en) Mediated network address translation traversal
US7933261B2 (en) Communication method, communication system, communication device, and program using multiple communication modes
JP4708036B2 (ja) 通信システム、情報処理装置、サーバ、及び情報処理方法
JP2010193935A (ja) 端末装置、通信システム、端末方法、ならびに、プログラム
US20070011731A1 (en) Method, system & computer program product for discovering characteristics of middleboxes
JP6434063B2 (ja) 通信制御装置、及びプログラム
US7974203B2 (en) Traffic control system, traffic control method, communication device and computer program
EP3923147A1 (en) Relay point allocation server, chat system, client terminal, chat server, and chat space construction method
US8249223B2 (en) Relay apparatus and memory product
US7770211B2 (en) Unauthorized access prevention method, unauthorized access prevention apparatus and unauthorized access prevention program
JP5073793B2 (ja) ゲーム端末、ゲーム端末の制御方法、ならびに、プログラム
JP2009194674A (ja) 通信端末装置および通信端末装置の制御方法
JP2008078823A (ja) ネットワーク機器、ポート開閉制御方法およびポート開閉制御プログラム
JP4186893B2 (ja) パケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法
JP2009246614A (ja) 通信システム、端末、中継装置、通信モード判定方法、及びプログラム
WO2006123456A1 (ja) パケット処理装置、通信システム、パケット処理方法、および当該方法を実行させるプログラム
JP2006067105A (ja) 通信端末装置
JP4912451B2 (ja) 通信システム、ならびに、通信方法
JP5971093B2 (ja) 通信システム、中継装置、利用者端末及びプログラム
JP6742740B2 (ja) 通信装置、制御方法、および、プログラム
JP2004049922A (ja) クライアントサーバシステム
JP2005301573A (ja) ファイアウォール装置およびファイアウォール用プログラム
JP2015154227A (ja) データ転送方式
JP4433408B2 (ja) ネットワーク対応端末機器

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120727

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120731

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120822

R150 Certificate of patent or registration of utility model

Ref document number: 5073793

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250