説明

確認システム、通信システム、確認サーバ装置、確認方法、ならびに、プログラム

【課題】端末装置が利用できる通信プロトコルを適切に判断する確認サーバ装置等を提供する。
【解決手段】端末装置がTCP予告パケットを送信し(301)、確認サーバ装置が確認パケットを返送してから(302)、端末装置がUDP試行パケットを送信する(303)。確認サーバ装置は、予告パケットを受信してから一定期間の間に試行パケットが受信できれば、端末装置は外部の通信機器へUDPパケットを送信可能であると判定する。確認サーバ装置が第1のIPアドレスから予告パケットを送信し(304)、端末装置が確認パケットを返送してから(305)、確認サーバが第2のIPアドレスからUDP試行パケットを送信する(306)。端末装置は、予告パケットを受信してから一定期間の間に試行パケットが受信できれば、端末装置は外部の通信機器からのUDPパケットを受信可能であると判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末装置による通信がNAT(Network Address Translation)やNAPT(Network Address Port Translation)等において制約を受けているかを適切に確認して、できるだけ高速な通信を可能とするのに好適な確認システム、通信システム、確認サーバ装置、確認方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、ネットワーク通信機能を持ったコンピュータやゲーム装置を用いて、動画チャットや通信対戦ゲームなどを行う通信システムが提案されている。このような通信システムでは、通信を始めようとする際に、通信相手のIP(Internet Protocol)アドレスがサーバ装置によって紹介され、その後は、紹介されたIPアドレスを用いて直接ピアツーピア通信を行う技術も採用されている。
【0003】
この際に用いられる通信プロトコルとしては、到着確認が行われるが通信効率が低いコネクション型プロトコルと、到着確認が行われないが通信効率が高いコネクションレス型プロトコルと、のいずれかを適宜利用するのが一般的であり、前者としてはTCP(Transfer Control Protocol)、後者としてはUDP(User Datagram Protocol)が広く用いられている。
【0004】
さて、後に掲げる特許文献1においては、端末装置がファイアウォールやルータなどを介してインターネットに接続される場合に、ピアツーピア通信を行うためのアドレスやポート番号を適切に通知する技術が開示されている。
【0005】
一方、非特許文献1においては、NATやNAPTを使ったプライベートネットワーク内にある端末装置同士がUDPコネクションを確立するための、UDPホールパンチング(UDP hole punching)という手法が開示されている。
【0006】
ここで一般に、あらかじめ用意された中継ホストを利用して通信を中継させれば、ファイアウォール越しであっても端末装置同士のTCP通信は可能となることが多い。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007−266863号公報
【非特許文献】
【0008】
【非特許文献1】ウィキペディア,「UDP hole punching」の項,http://en.wikipedia.org/wiki/UDP_hole_punching,2009年1月28日
【発明の概要】
【発明が解決しようとする課題】
【0009】
したがって、ピアツーピア通信が可能か否かを適切に判断するとともに、ピアツーピア通信ができない場合には、通信プロトコルや通信形態を適切に変更して、できるだけ高速な通信を可能としたい、との要望は大きい。
【0010】
本発明は、上記のような課題を解決するもので、端末装置による通信がNATやNAPT等において制約を受けているかを適切に確認して、できるだけ高速な通信を可能とするのに好適な確認システム、通信システム、確認サーバ装置、確認方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0012】
本発明の第1の観点に係る確認システムは、サーバ装置、端末装置と、を備える。
【0013】
ここで、サーバ装置は、第1のアドレスと第2のアドレスとのいずれによってもコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能であり、サーバ側予告受信部、サーバ側試行受信部、サーバ側判定部、サーバ側予告送信部、サーバ側試行送信部を備える。
【0014】
一方、端末装置は、1つのアドレスによってコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能であり、端末側予告送信部、端末側試行送信部、端末側予告受信部、端末側試行受信部、端末側判定部を備える。
【0015】
そして、サーバ装置と、端末装置と、が、コネクション型プロトコル通信可能に接続される。
【0016】
コネクション型プロトコルとしては、典型的にはTCPが利用され、コネクションレス型プロトコルとしては、典型的にはUDPが利用される。一般に、コネクション型プロトコルは、コネクションレス型プロトコルよりも通信効率が低いが、セキュリティを考慮した場合、コネクションレス型プロトコルが利用できなくとも、コネクション型プロトコルが利用できるように、ファイアウォール等で設定されていることが多い。
【0017】
そこで、本発明では、これらのプロトコルの利用可能性を、以下のように判定する。
【0018】
まず、端末装置において、端末側予告送信部は、第1のアドレスに対して、コネクション型プロトコル通信により、予告パケットを送信し、端末側試行送信部は、第1のアドレスに対して、コネクションレス型プロトコル通信により試行パケットを送信する。
【0019】
サーバ装置と端末装置とはコネクション型プロトコル通信が可能に接続されているので、予告パケットは、ほぼ確実に、サーバ装置に到着する。
【0020】
一方、サーバ装置と端末装置とは、コネクションレス型プロトコル通信が可能か否かは不明である。したがって、試行パケットがサーバ装置に到着するか否かはわからない。
【0021】
典型的には、端末装置は、予告パケットを送信し、当該予告パケットがサーバ装置に到着したことを確認してから、試行パケットを送信する。
【0022】
一方、サーバ装置において、サーバ側予告受信部は、第1のアドレスを介して、端末装置から送信された予告パケットを受信し、サーバ側試行受信部は、予告パケットが受信されてから、サーバ側タイムアウト期間が経過するまで、第1のアドレスを介して、端末装置から送信された試行パケットの受信を試みる。
【0023】
上記のように、端末装置は、予告パケットと試行パケットを第1のアドレスに宛に送信するが、予告パケットは、ほぼ確実にサーバ装置に到着する。そこで、サーバ装置は、予告パケットが到着すると、サーバ側タイムアウト期間が経過するか、試行パケットが到着するまで、待機する。
【0024】
そして、サーバ側判定部は、試行パケットが受信された場合、端末装置は、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が可能であると判定し、受信されなかった場合、端末装置は、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が不可能であると判定する。
【0025】
コネクションレス型プロトコル通信によるパケットの送信が不可能である典型的な場合は、端末装置がファイアウォールを介してサーバ装置に接続されており、ファイアウォールにおいて、コネクションレス型プロトコル通信によるパケットの送出が禁止されている場合である。
【0026】
本発明において、端末装置が通信を行う際の「外部」すなわち「他の通信機器」には、サーバ装置のほか、他の端末装置等がありうる。本発明では、サーバ装置との通信が可能か否かの判断結果を、そのまま、「外部」すなわち「他の通信機器」との通信可能か否かの推定結果とする。
【0027】
すなわち、本発明では、「他の通信機器」のひとつであるサーバ装置との通信が可能であれば、「外部」「他の通信機器」のひとつである他の端末装置との通信も可能であると判断する。
【0028】
一方、本発明では、「他の通信機器」のひとつであるサーバ装置との通信ができなければ、「外部」「他の通信機器」のひとつである他の端末装置との通信もできない、と判断するのである。
【0029】
なお、後述するように、本発明では、外部から端末装置への通信の可否と、端末装置から外部への通信の可否と、を、区別して確認する点にも、特徴がある。
【0030】
さらに、サーバ側予告送信部は、第1のアドレスから端末装置に対して、コネクション型プロトコル通信により、予告パケットを送信する。
【0031】
上記のように、サーバ装置と端末装置とは、コネクション型プロトコル通信が可能に接続されているので、当該予告パケットは、端末装置に、ほぼ確実に到着する。
【0032】
そして、サーバ側試行送信部は、第2のアドレスから端末装置に対して、コネクションレス型プロトコル通信により、試行パケットを送信する。
【0033】
典型的には、サーバ装置から送信した予告パケットが端末装置に到着したことを確認してから、試行パケットを送信する。
【0034】
なお、予告パケットを送信するアドレスと、試行パケットを送信するアドレスと、が、異なる点が、本発明の特徴である。
【0035】
すると、端末装置において、端末側予告受信部は、サーバ装置から第1のアドレスを介して送信された予告パケットを受信し、端末側試行受信部は、予告パケットが受信されてから、端末側タイムアウト期間が経過するまで、サーバ装置から第2のアドレスを介して送信された試行パケットの受信を試みる。
【0036】
これらの処理は、上記のサーバ装置における処理と同様であるが、予告パケットの送信元と試行パケットの送信元のアドレスが異なる点が特徴である。
【0037】
UDPホールパンチングの技術等では、LANの内部から外部へパケットを送出することがあった場合に、その送出先をある程度信頼できるものと仮定して、当該送出先から送信されたパケットの流入を、一定期間認める手法があるが、このような手法は、セキュリティ上の問題があり、採用できないことも多い。そこで、より一層きめ細かい分析を可能とするため、サーバ装置が配置されている外部から端末装置が配置されている内部へのパケットの流入が可能かどうかを、異なるアドレスを用いて調べるのである。
【0038】
そこで、端末側判定部は、試行パケットが受信された場合、端末装置は、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が可能であると判定し、受信されなかった場合、端末装置は、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が不可能であると判定する。
【0039】
すなわち、端末装置は、第2のアドレスからのパケットの流入が可能か否かによって、任意のアドレスからのパケットの流入が可能か否かを判定する。本手法では、サーバ装置から予告パケットが送信される以前は、端末装置もサーバ装置も第2のアドレスを用いた通信は行っていない。したがって、第2のアドレスからのパケットの受信ができれば、任意のアドレスからのパケットの受信ができる可能性は、極めて高いものと考えられる。
【0040】
本発明によれば、端末装置からのコネクションレス型プロトコル通信によるパケットの送信が可能か否か、他の通信機器からのコネクションレス型プロトコル通信によるパケットの受信が端末装置で可能か否か、を適切に判定することができるようになる。
【0041】
また、本発明の確認システムにおいて、端末装置は、第1のアドレスもしくは第2のアドレスに対して、コネクション型プロトコル通信により、端末側判定部による判定結果を指定する判定結果パケットを送信する端末側結果送信部をさらに備え、サーバ装置は、第1のアドレスもしくは第2のアドレスを介して、端末装置から送信された判定結果パケットを受信するサーバ側結果受信部をさらに備えるように構成することができる。
【0042】
本発明は、コネクションレス型通信の端末装置での送信ならびに受信が可能か否かの情報をサーバ装置に集めるものである。
【0043】
本発明を、たとえば、対戦ゲームのマッチングサーバに適用する場合、紹介する端末装置がどのようなプロトコルで通信可能か、を調べることにより、紹介する端末装置のそれぞれに、送受に利用するプロトコルを知らせれば、両端末装置は、効率の良いプロトコルで通信ができるようになる。
【0044】
したがって、本発明によれば、端末装置の送受の状況を、サーバ装置において確認することができるようになる。
【0045】
また、本発明の確認システムにおいて、サーバ装置の第1のアドレスならびに第2のアドレス、および、端末装置のアドレスは、いずれもIP(Internet Protocol)アドレスであり、コネクション型プロトコルは、TCP(Transmission Control Protocol)であり、コネクションレス型プロトコルは、UDP(User Datagram Protocol)であるように構成することができる。
【0046】
本発明は、上記発明の好適実施形態であり、広く利用されている通信プロトコルを採用するものである。
【0047】
また、本発明においては、通信に用いるポート番号は、各プロトコルについて、定数とするのが典型的である。ポート番号を定数とすることによって、ファイアウォールの設定が容易になる。また、ポート番号を定数とすれば、外部からの流入を認めるポート番号を狭い範囲に抑制することができるので、広範なポートを開放しなければならないUPnP(Universal Plug and Play)に比べて、セキュリティを向上させることができる。
【0048】
本発明のその他の観点に係る確認システムは、サーバ装置と、第1の端末装置と、第2の端末装置と、を備え、以下のように構成する。
【0049】
すなわち、サーバ装置ならびに第1の端末装置は、上記の確認システムにおけるサーバ装置ならびに端末装置として機能する。また、サーバ装置ならびに第2の端末装置は、上記の確認システムにおけるサーバ装置ならびに端末装置として機能する。
【0050】
これらの機能によって、サーバ装置は、第1の端末装置と第2の端末装置のそれぞれにおいて、コネクションレス型プロトコル通信によるパケットの送受のそれぞれが可能であるか否かを知得することができる。
【0051】
そして、サーバ装置は、第1の端末装置と第2の端末装置との間のパケットの送受について、
(a)他の通信機器へのコネクションレス型プロトコル通信によるパケットの一方の端末装置による送信が可能であると判定され、かつ、他の通信機器からのコネクションレス型プロトコル通信によるパケットの他方の端末装置による受信が可能であると判定された場合、当該一方の端末装置から当該他方の端末装置へのパケットの送受は、コネクションレス型プロトコル通信を介して行い、
(b)他の通信機器へのコネクションレス型プロトコル通信によるパケットの一方の端末装置による送信が不可能であると判定され、もしくは、他の通信機器からのコネクションレス型プロトコル通信によるパケットの他方の端末装置による受信が不可能であると判定された場合、当該一方の端末装置から当該他方の端末装置へのパケットの送受は、コネクション型プロトコル通信を介して行う
ように、第1の端末装置と第2の端末装置とに指示する。
【0052】
すなわち、第1の端末装置と第2の端末装置の間でコネクションレス型プロトコル通信が可能か否かを片道ごとに判定し、可能である場合は、効率は良いが確実性の低いコネクションレス型プロトコル通信を採用し、不可能である場合には、効率は良くないが確実性の高いコネクション型プロトコル通信を採用するのである。
【0053】
本発明によれば、通信可能性に基づいて、端末装置同士の通信を効率良く設定することができるようになる。
【0054】
また、本発明の通信システムにおいて、第1の端末装置と第2の端末装置との間のパケットの送受が、直接コネクション型プロトコル通信を介して行うことができない場合、当該パケットの送受を、サーバ装置もしくは所定のプロキシサーバ装置に中継させてコネクション型プロトコル通信により行うように構成することができる。
【0055】
すなわち、第1の端末装置と第2の端末装置との間のパケットの送受の片道もしくは往復において、コネクション型プロトコル通信を採用することとなった場合に、直接端末装置同士の通信ができないことがありうる。
【0056】
たとえば、端末装置から他の通信機器に情報を問い合わせるプル型の通信は可能であるが、端末装置へ他の通信機器から情報を流し込むプッシュ型の通信の受入が不可能である場合である。
【0057】
このような場合には、当該サーバ装置やプロキシサーバ装置により実現される中継サーバを利用し、パケットを受け入れる側の端末装置から中継サーバに問い合わせを行って、パケットを入手する形態で、パケットの送受を行うのである。
【0058】
本発明によれば、パケットの送受の態様をより一層きめ細かく管理することができ、できるだけ効率良い通信方式を採用しつつ、通信制限が厳しい端末装置同士であっても、相互の通信を可能とすることができるようになる。
【0059】
特に、通信が可能か否かの判断を詳細かつ適切に行うことにより、通信の片道のみ中継し、他方は直接通信させるなど、きめ細かい制御が可能となり、中継ホストをできるだけ利用せず、直接ピアツーピア通信によって効率良く通信を行う可能性を増やすことができるようになる。
【0060】
本発明のその他の観点に係る確認サーバ装置は、上記通信システムにおけるサーバ装置である。
【0061】
本発明のその他の観点に係る確認方法は、第1のアドレスと第2のアドレスとのいずれによってもコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能なサーバ装置と、1つのアドレスによってコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能な端末装置と、を備え、サーバ装置と、端末装置と、が、コネクション型プロトコル通信可能に接続される確認システムにおいて、サーバ装置と、端末装置と、が実行する方法である。
【0062】
ここで、端末装置は、端末側予告送信部、端末側試行送信部、端末側予告受信部、端末側試行受信部、端末側判定部を備え、サーバ装置は、サーバ側予告受信部、サーバ側試行受信部、サーバ側判定部、サーバ側予告送信部、サーバ側試行送信部を備える。
【0063】
そして、本確認方法は、端末側予告送信工程、端末側試行送信工程、サーバ側予告受信工程、サーバ側試行受信工程、サーバ側判定工程、サーバ側予告送信工程、サーバ側試行送信工程、端末側予告受信工程、端末側試行受信工程、端末側判定工程を備える。
【0064】
ここで、端末装置において、端末側予告送信工程では、端末側予告送信部が、第1のアドレスに対して、コネクション型プロトコル通信により、予告パケットを送信し、端末側試行送信工程では、端末側試行送信部が、第1のアドレスに対して、コネクションレス型プロトコル通信により試行パケットを送信する。
【0065】
一方、サーバ装置において、サーバ側予告受信工程では、サーバ側予告受信部が、第1のアドレスを介して、端末装置から送信された予告パケットを受信し、サーバ側試行受信工程では、サーバ側試行受信部が、予告パケットが受信されてから、サーバ側タイムアウト期間が経過するまで、第1のアドレスを介して、端末装置から送信された試行パケットの受信を試み、サーバ側判定工程では、サーバ側判定部が、試行パケットが受信された場合、端末装置は、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が可能であると判定し、受信されなかった場合、端末装置は、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が不可能であると判定する。
【0066】
さらに、サーバ装置において、サーバ側予告送信工程では、サーバ側予告送信部が、第1のアドレスから端末装置に対して、コネクション型プロトコル通信により、予告パケットを送信し、サーバ側試行送信工程では、サーバ側試行送信部が、第2のアドレスから端末装置に対して、コネクションレス型プロトコル通信により、試行パケットを送信する。
【0067】
さらに、端末装置において、端末側予告受信工程では、端末側予告受信部が、サーバ装置から第1のアドレスを介して送信された予告パケットを受信し、端末側試行受信工程では、端末側試行受信部が、予告パケットが受信されてから、端末側タイムアウト期間が経過するまで、サーバ装置から第2のアドレスを介して送信された試行パケットの受信を試み、端末側判定工程では、端末側判定部が、試行パケットが受信された場合、端末装置は、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が可能であると判定し、受信されなかった場合、端末装置は、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が不可能であると判定する。
【0068】
本発明のその他の観点に係るプログラムは、サーバ用プログラムと、端末用プログラムと、を備え、サーバ用プログラムは、サーバ用コンピュータを、上記のサーバ装置として機能させ、端末用プログラムは、端末用コンピュータを、上記の端末装置として機能させるように構成する。
【0069】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0070】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0071】
本発明によれば、サーバ装置と複数の端末装置との間で、効率よく通信を行うのに好適な確認システム、通信システム、確認サーバ装置、確認方法ならびに、これらをコンピュータにて実現するためのプログラムを提供することができる。
【図面の簡単な説明】
【0072】
【図1】プログラムを実行することにより、本実施形態の確認システムにおける端末装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。
【図2】本実施形態に係るサーバ装置と、端末装置と、の様子を示す説明図である。
【図3】確認処理の際に、1台の端末装置と、確認サーバ装置と、の間で行われる通信の様子を示すセッション図である。
【図4】本実施形態に係る端末装置の構成を示す模式図である。
【図5】本実施形態に係る確認サーバ装置の構成を示す模式図である。
【図6】本実施形態に係る端末装置にて実行される端末処理の制御の流れを示すフローチャートである。
【図7】本実施形態に係る確認サーバ装置にて実行されるサービス処理の制御の流れを示すフローチャートである。
【発明を実施するための形態】
【0073】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【0074】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0075】
図1は、プログラムを実行することにより、本実施形態の確認システムにおける端末装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0076】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備えるように構成することができる。各種の入出力装置は、適宜省略することができる。
【0077】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の端末装置が実現される。
【0078】
また、携帯型ゲーム機においては、携帯可能とするために、DVD−ROMドライブ108を利用するのではなく、ROMカセット用スロットを利用することも可能である。この場合、プログラムが記録されたROMカセットを挿入して、当該プログラムを実行することで、本実施形態の端末装置が実現される。
【0079】
なお、端末装置から専用サーバ装置に接続することにより対戦するゲーム機を紹介してもらった後、両者の間で通信をしてゲームを進めるようなシステムにおいては、ゲーム機とは異なるサーバ装置を用意することとなるが、このようなサーバ装置は、計算能力の違いや機器構成に少々の相違はあるものの、本質的には、情報処理装置100と同様の構成である。ロビーサーバ、マッチングサーバ、中継サーバ等のほか、本発明の確認サーバ装置としては、情報処理装置100と同様の構成ではあるが性能がより高いサーバ用コンピュータを利用するのが一般的である。
【0080】
さて、CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0081】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0082】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0083】
インターフェース104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【0084】
なお、コントローラ105は、必ずしも情報処理装置100に対して外付けにされている必要はなく、一体に形成されていても良い。
【0085】
携帯可能な端末装置のコントローラ105は、各種のボタンやスイッチから構成され、これらの押圧操作を操作入力として扱う。このほか、タッチスクリーンを利用した情報処理装置100では、ユーザがペンや指を利用してタッチスクリーンをなぞった軌跡を操作入力として扱う。
【0086】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0087】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0088】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0089】
携帯可能なゲーム機のモニタとしては、小型の液晶ディスプレイを利用するのが典型的であり、コントローラ105としてタッチスクリーンを利用する場合には、当該タッチスクリーンの表示パネルがモニタとして機能する。自宅で遊ぶためのゲーム機のモニタとしては、CRT(Cathode Ray Tube)やプラズマディスプレイなどの表示装置を利用することも可能である。
【0090】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0091】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0092】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0093】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LANを構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0094】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン(図示せず)、イヤフォン(図示せず)から出力させる。
【0095】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0096】
さらに、情報処理装置100には、インターフェース104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0097】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0098】
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置100にかえて、汎用のパーソナルコンピュータを利用することもできる。
【0099】
以上で説明した情報処理装置100は、いわゆるコンシューマ向けゲーム機に相当するものであるが、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明の確認サーバ装置や端末装置を実現することが可能である。
【0100】
たとえば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。
【0101】
図2は、本実施形態に係る確認サーバ装置と、端末装置とからなる通信システムの様子を示す説明図である。以下、本図を参照して説明する。
【0102】
通信システム201は、1台の確認サーバ装置221と、2台の端末装置241と、を備え、これらはインターネット261に接続されている。
【0103】
2台の端末装置241は、確認サーバ装置221の紹介を受けて、通信の準備を始める。すなわち、確認サーバ装置221は、通信対戦ゲームにおけるロビーサーバとして機能する。
【0104】
したがって、各端末装置241に電源が投入され、インターネット261への接続が行われると、端末装置241から確認サーバ装置221へその旨の通知がなされるので、確認サーバ装置221では、端末装置241の通信がどのようなプロトコルでどのように可能か、を判定するための確認処理が実行されることになる。
【0105】
なお、本実施形態では、コネクション型プロトコルとしてTCPを、コネクションレス型プロトコルとしてUDPを、それぞれ採用する。また、確認サーバ装置221や端末装置241のアドレスとして、IPアドレスを採用する。
【0106】
また、通信の際に利用するポートは、TCP、UDPのそれぞれの場合において、あらかじめ定められたポート番号を利用することとする。
【0107】
図3は、確認処理の際に、1台の端末装置241と、確認サーバ装置221と、の間で行われる通信の様子を示すセッション図である。以下、本図を参照して説明する。
【0108】
端末装置241に電源が投入され、インターネット261への接続が行われると、端末装置241は、自身のIPアドレスを発信元として、確認サーバ装置221の公開IPアドレス(第1のIPアドレス)宛に、TCPにより、予告パケットを送信する(301)。
【0109】
ここで、確認サーバ装置221の公開IPアドレス(第1のIPアドレス)は、通信対戦ゲームのソフトウェア等によって定義されたものである。また、ポート番号もあらかじめ固定されていることから、端末装置241がルータ越しにインターネット261に接続されている場合であっても、フィルタリングのルールを適切に設定することによって、通信が可能となる。
【0110】
すると、予告パケットを受信した確認サーバ装置221は、コネクション通信の規約にしたがい、当該受信を通知するため、端末装置241へ確認パケットを送信する(302)。
【0111】
パケットの送受(301、302)によって、端末装置241から確認サーバ装置221への通信が、TCPによって可能に接続されていることが確認されると、端末装置241は、自身のIPアドレスを発信元として、確認サーバ装置221の公開IPアドレス(第1のIPアドレス)宛に、UDPにより、試行パケットを送信する(303)。
【0112】
UDPは、コネクションレス型通信プロトコルであるから、当該試行パケットが確認サーバ装置221に到着したか否かを、UDPの規約から知ることはできない。
【0113】
確認サーバ装置221は、予告パケットを受信し(301)、確認パケットを送信して(302)から、所定のタイムアウト時間が経過するまで、試行パケットが到着するのを待つ。
【0114】
ここで、本図に示すように、試行パケットが確認サーバ装置221に到達した場合には、端末装置241から「他の任意の通信機器」へ、UDPによるパケットの送出が可能であると判定する(判定結果a)。
【0115】
一方、本図に示すものとは異なり、タイムアウト時間が経過するまでに、確認サーバ装置221に到達しなかった場合には、端末装置241から「他の任意の通信機器」へのUDPによるパケットの送出はできない、と判定する(判定結果b)。
【0116】
試行パケットを受信するか、あるいは、所定のタイムアウト時間が経過すると、確認サーバ装置221は、予告パケット(301)の発信元として指定されたIPアドレス宛、すなわち、端末装置241宛に、公開IPアドレス(第1のIPアドレス)を発信元として、TCPにより、予告パケットを送信する(304)。
【0117】
この予告パケットを受信した端末装置241は、コネクション通信の規約にしたがい、当該受信を通知するため、確認サーバ装置221の公開IPアドレス(第1のIPアドレス)へ、自身のIPアドレスを発信元として、確認パケットを送信する(305)。
【0118】
パケットの送受(304、305)によって、確認サーバ装置221から端末装置241への通信が、TCPによって可能に接続されていることが確認されると、確認サーバ装置221は、非公開IPアドレス(第2のIPアドレス)を発信元として、端末装置241のIPアドレス宛に、UDPにより、試行パケットを送信する(306)。
【0119】
ここで、非公開IPアドレス(第2のIPアドレス)とは、確認サーバ装置221に公開IPアドレス(第1のIPアドレス)とは別に割り当てられたものであり、端末装置241があらかじめ知得しているものではない。
【0120】
確認サーバ装置221が有するNIC 109に対して、複数のIPアドレスを用意することは、現在の技術で可能であり、そのうちの1つを公開情報として広く知得させる一方で、非公開IPアドレスは、適宜変更される可能性がある不定のアドレスとしておく。
【0121】
そして、試行パケットを送信する際に発信元のIPアドレスとして指定されることで、端末装置241に初めて知得されるようにする。IPアドレスをこのように用意しておけば、端末装置241側のルータで、あらかじめ非公開IPアドレス専用にUDP用のポートを空けておくように設定しておくことはできないことになる。
【0122】
さて、端末装置241は、予告パケットを受信し(304)、確認パケットを送信して(305)から、所定のタイムアウト時間が経過するまで、試行パケットが到着するのを待つ。
【0123】
ここで、本図に示すように、試行パケットが端末装置241に到達した場合には、「他の任意の通信機器」からUDPにより送信されたパケットの端末装置241による受信が可能であると判定する(判定結果c)。
【0124】
一方、本図に示すものとは異なり、タイムアウト時間が経過するまでに、試行パケットが端末装置241に到達しなかった場合には、「他の任意の通信機器」からUDPにより送信されたパケットの端末装置241による受信はできないと判定する(判定結果d)。
【0125】
そして、判定c/dの結果を表す結果パケットが端末装置241から確認サーバ装置221の公開IPアドレス(第1のIPアドレス)へ送信され(307)、確認サーバ装置221から端末装置241へ、結果パケットの到着を示す確認パケットが送信される(308)。
【0126】
これによって、確認サーバ装置221は、端末装置241のUDPによる通信がどの方向に可能であるか否かを判定することができる。すなわち、端末装置241からのUDPパケットの送出については、判定結果a/bが得られ、端末装置241へのUDPパケットの受入については、判定結果c/dが得られる。
【0127】
確認サーバ装置221は、紹介しようとする2台の端末装置241のそれぞれに、UDPパケットの送出および受入が可能であるか否かを、上記のような通信を元に、判定するのである。
【0128】
以下、これらの判定を行うための確認サーバ装置221の構成と、端末装置241の構成と、について、さらに詳細に説明する。
【0129】
図4は、本実施形態に係る端末装置241の構成を示す模式図である。図5は、本実施形態に係る確認サーバ装置221の構成を示す模式図である。以下、これらの図を参照して説明する。
【0130】
図4に示すように、端末装置241は、端末側予告送信部401、端末側試行送信部402、端末側予告受信部403、端末側試行受信部404、端末側判定部405、端末側結果送信部406を備える。これらの各要素のうち、端末側判定部405は、情報処理装置100のCPU 101により実現され、他の要素は、CPU 101の制御の下、NIC 109により実現される。
【0131】
図5に示すように、確認サーバ装置221は、サーバ側予告受信部501、サーバ側試行受信部502、サーバ側判定部503、サーバ側予告送信部504、サーバ側試行送信部505、サーバ側結果受信部506を備える。これらの各要素のうち、サーバ側判定部503は、情報処理装置100のCPU 101により実現され、他の要素は、CPU 101の制御の下、NIC 109により実現される。
【0132】
以下、これら各部の機能を、処理の詳細な制御の流れに基づいて説明する。
【0133】
さて、図6は、本実施形態に係る端末装置241にて実行される端末処理の制御の流れを示すフローチャートである。図7は、本実施形態に係る確認サーバ装置221にて実行されるサービス処理の制御の流れを示すフローチャートである。以下、これらの図を参照して説明する。
【0134】
まず、端末装置241において、電源が投入されたり、通信対戦ゲームが開始されたりすることを契機として、端末処理が開始されると、端末側予告送信部401は、確認サーバ装置221の公開IPアドレス(第1のIPアドレス)に対して、TCPにより、予告パケットを送信する(ステップS601)。
【0135】
一方、確認サーバ装置221は、電源が投入されると、端末装置241からパケットが到達するのを待機する状態となる。ステップS601において送信された予告パケットが到達したことが検知されたことを契機として、サービス処理が開始され、サーバ側予告受信部501が、予告パケットを受信する(ステップS701)。
【0136】
すると、確認サーバ装置221は、予告パケットを受信した旨を通知するため、予告パケットの発信元のIPアドレスに対して、TCPにより、確認パケットを送信する(ステップS702)。
【0137】
確認サーバ装置221から送信された確認パケットを端末装置241が受信すると(ステップS602)、端末装置241の端末側試行送信部402は、確認サーバ装置221の公開IPアドレス(第1のIPアドレス)に対して、UDPにより試行パケットを送信する(ステップS603)。
【0138】
一方、確認サーバ装置221では、確認パケットを送信した後(ステップS702)、確認サーバ装置221のサーバ側試行受信部502は、サーバ側タイムアウト期間が経過するまで待機して、確認サーバ装置221の公開IPアドレス(第1のIPアドレス)を介して、端末装置241から送信された試行パケットの受信を試みる(ステップS703)。
【0139】
そして、タイムアウト期間が経過するまでに、試行パケットが受信ができた場合(ステップS704;Yes)、サーバ側判定部503は、「端末装置241は、外部(他の通信機器)に対して、UDPによるパケットの送信が可能である(判定結果a)」と判定する(ステップS705)。
【0140】
一方、受信されなかった場合(ステップS704;No)、サーバ側判定部503は、「端末装置241は、外部(他の通信機器)に対して、UDPによるパケットの送信が不可能である(判定結果b)」と判定する(ステップS706)。
【0141】
これらの判定(ステップS705、S706)が終わると、確認サーバ装置221のサーバ側予告送信部504は、確認サーバ装置221の公開IPアドレス(第1のIPアドレス)から端末装置241に対して、TPCにより、予告パケットを送信する(ステップS707)。
【0142】
すると、端末装置241では、端末側予告受信部403が、確認サーバ装置221から送信された予告パケットを受信して(ステップS604)、当該受信を通知するため、予告パケットの発信元のIPアドレスに対して、TCPにより、確認パケットを送信する(ステップS605)。
【0143】
端末装置241から送信された確認パケットを確認サーバ装置221が受信すると(ステップS708)、確認サーバ装置221のサーバ側試行送信部505は、非公開IPアドレス(第2のIPアドレス)を発信元として、端末装置241のIPアドレスに対して、UDPにより試行パケットを送信する(ステップS709)。
【0144】
一方、端末装置241では、確認パケットを送信した後(ステップS605)、端末側試行受信部404は、端末側タイムアウト期間が経過するまで待機して、試行パケットの受信を試みる(ステップS606)。
【0145】
これらの処理は、上記の確認サーバ装置221における処理と同様であるが、予告パケットの送信元と試行パケットの送信元のアドレスが異なる点が特徴である。
【0146】
UDPホールパンチングの技術等では、LANの内部から外部(他の通信機器)へパケットを送出すると、その送出先をある程度信頼できるものと仮定して、当該送出先から送信されたパケットの流入を、一定期間認める手法があるが、このような手法は、セキュリティ上の問題があり、採用できないことも多い。そこで、より一層きめ細かい分析を可能とするため、確認サーバ装置221が配置されている外部(他の通信機器)から端末装置241が配置されている内部へのパケットの流入が可能かどうかを、異なるアドレスを用いて調べるのである。
【0147】
そして、タイムアウト期間が経過するまでに、試行パケットが受信された場合(ステップS607;Yes)、端末側判定部405は、「端末装置241は、外部(他の通信機器)からの、UDPによるパケットの受信が可能である(判定結果c)」と判定する(ステップS608)。
【0148】
一方、タイムアウト期間が経過するまでに、試行パケットが受信されなかった場合(ステップS607;No)、端末側判定部405は、「端末装置241は、外部(他の通信機器)からの、UDPによるパケットの受信が不可能である(判定結果d)」と判定する(ステップS609)。
【0149】
なお、タイムアウト期間は、確認サーバ装置221と端末装置241とで、異なる値としても良いし、同じ値としても良い。
【0150】
すなわち、端末装置241は、第2のアドレスからのパケットの流入が可能か否かによって、任意のアドレスからのパケットの流入が可能か否かを判定する。本手法では、確認サーバ装置221から予告パケットが送信される以前は、端末装置241も確認サーバ装置221も第2のアドレスを用いた通信は行っていない。したがって、第2のアドレスからのパケットの受信ができれば、任意のアドレスからのパケットの受信ができる可能性は、極めて高いものと考えられる。
【0151】
この後、端末装置241において、端末側結果送信部406は、確認サーバ装置221の公開IPアドレス(第1のIPアドレス)に対して、TPCにより、端末側判定部405による判定結果を指定する判定結果パケットを送信する(ステップS610)。
【0152】
これに対して、確認サーバ装置221において、サーバ側結果受信部506は、確認サーバ装置221の端末装置241から送信された判定結果パケットを受信する(ステップS710)。
【0153】
そして、当該受信を確認する確認パケットが、確認サーバ装置221から送信され(ステップS711)、これを端末装置241が受信することにより(ステップS611)、これらの処理は終了する。
【0154】
各端末装置241に対してこれらの処理を行うことにより、確認サーバ装置221は、当該端末装置241に対する判定結果を収集することができる。
【0155】
なお、上記のように、通信に用いるポート番号を各プロトコルについて定数とすると、ファイアウォールの設定が容易になる。また、ポート番号を定数とすれば、外部からの流入を認めるポート番号を狭い範囲に抑制することができるので、広範なポートを開放しなければならないUPnPに比べて、セキュリティを向上させることができる。
【0156】
さて、上記のような端末処理およびサービス処理によって、確認が行われ、判定結果a〜dが確認サーバ装置221に得られると、確認サーバ装置221は、マッチングサーバとして機能し、ログインしている端末装置241の中から、対戦させる端末装置241を2台選択する。そして、その2台の端末装置241に、通信に用いるべきIPアドレス、および、送信に用いるプロトコル、受信に用いるプロトコル等について通知する。
【0157】
ここで、ある端末装置241から、別の端末装置241への片道のパケットの送受を考えると、以下の4通りの状態がありうる。
(a)送信側は、UDP送出可能、受信側は、UDP受入可能。
(b)送信側は、UDP送出可能、受信側は、UDP受入不可。
(c)送信側は、UDP送出不可、受信側は、UDP受入可能。
(d)送信側は、UDP送出不可、受信側は、UDP受入不可。
【0158】
これらの分類において、状態(a)では、当該片道の通信において、通信効率の良いUDPが利用可能であるが、状態(b)(c)(d)では、通信効率がUDPに比べて低いTCPを利用しなければならないことになる。
【0159】
そこで、2台の端末装置241には、パケットの送信とパケットの受信とのそれぞれにおいて、UDPを利用するか、TCPを利用するか、を指定する。
【0160】
また、予告パケット(301)等によって得られたIPアドレスを、当該端末装置241の通信用のIPアドレスとして、相手方の端末装置241に通知する。
【0161】
端末装置241は、マッチングサーバとして機能する確認サーバ装置221から通知されたIPアドレスを、相手方の端末装置241のIPアドレスとして使用することになる。
【0162】
なお、上記の説明では、TCP通信は双方向に可能であることを前提に説明しているが、「流出(301、302)は可能であるが、流入(304、305)は不可能である」ようにルータ等を設定することもありうる。このように設定されているか否かは、確認サーバ装置221から予告パケットを送信(304)してから、所定のタイムアウト時間が経過するまでに、確認パケットが到着するか否か、によって判定が可能である。
【0163】
すなわち、「端末装置241は、端末装置241からの送信を契機とするTCP通信と、『他の任意の通信機器』からの送信を契機とするTCP通信と、の2つが可能である(判定結果x)」、あるいは、「端末装置241は、端末装置241からの送信を契機とするTCP通信は可能であるが、『他の任意の通信機器』からの送信を契機とするTCP通信はできない(判定結果y)」のいずれであるかを判定することも可能である。
【0164】
両端末装置241において、判定結果xが得られた場合には、プッシュ型およびプル型の通信が相互に可能である、ということになるから、両端末装置241は、TCPによって、直接ピアツーピアに通信を行うことになる。
【0165】
一方、両端末装置241において、判定結果yが得られた場合には、プル型の通信のみが可能である、ということになる。この場合には、相手方に送るべきパケットを一旦中継サーバに送信し、蓄積させる。中継サーバは、端末装置241からの問い合わせがあると、蓄積されているパケットのうち、問い合わせ元の端末装置241宛のパケットを応答として返信する。
【0166】
端末装置241の一方で判定結果xが得られ、端末装置241の他方で判定結果yが得られた場合には、一方の片道については、上記の一方の手法を、他方の片道については、上記の他方の手法を、それぞれ利用すれば良い。
【0167】
また、プッシュ型の通信が可能な端末装置241に対しては、中継サーバに当該端末装置241宛のパケットが到着したら、直ちに当該端末装置241に転送することとしても良い。
【0168】
中継サーバとしては、上記の確認サーバ装置221を利用することができるほか、専用の中継プロキシサーバを利用することとしても良い。後者の場合には、マッチングの際に、中継プロキシサーバのIPアドレスを端末装置241に知らせるとともに、当該端末装置241は、自身宛のパケットをプッシュ型により取得すべきか、プル型により取得すべきか、を指定すれば良い。
【0169】
なお、上記の態様では、端末装置241同士を紹介する前に、確認サーバ装置221が各端末装置241におけるパケット送受の能力を判定しているが、以下のような態様を採用することも可能である。
【0170】
すなわち、まず最初に、各端末装置241同士のIPアドレスを紹介してしまう。そして、端末装置241同士の間でピアツーピアの通信が可能か否かを実際に調べさせ、通信が可能である場合には、そのまま処理を続行させる。
【0171】
一方、通信が不可能である場合には、その結果を確認サーバ装置221に通知させる。その上で、確認サーバ装置221と各端末装置241との間で、上記の確認処理を実行して、中継サーバを利用するか否かを判定するのである。
【産業上の利用可能性】
【0172】
本発明によれば、端末装置による通信がNATやNAPT等において制約を受けているかを適切に確認して、できるだけ高速な通信を可能とするのに好適な確認システム、通信システム、確認サーバ装置、確認方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【0173】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 通信システム
221 確認サーバ装置
241 端末装置
261 インターネット
401 端末側予告送信部
402 端末側試行送信部
403 端末側予告受信部
404 端末側試行受信部
405 端末側判定部
406 端末側結果送信部
501 サーバ側予告受信部
502 サーバ側試行受信部
503 サーバ側判定部
504 サーバ側予告送信部
505 サーバ側試行送信部
506 サーバ側結果受信部

【特許請求の範囲】
【請求項1】
第1のアドレスと第2のアドレスとのいずれによってもコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能なサーバ装置と、1つのアドレスによってコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能な端末装置と、を備え、前記サーバ装置と、前記端末装置と、が、コネクション型プロトコル通信可能に接続される確認システムであって、
(a)前記端末装置は、
前記第1のアドレスに対して、コネクション型プロトコル通信により、予告パケットを送信する端末側予告送信部、
前記第1のアドレスに対して、コネクションレス型プロトコル通信により試行パケットを送信する端末側試行送信部
を備え、
(b)前記サーバ装置は、
前記第1のアドレスを介して、前記端末装置から送信された前記予告パケットを受信するサーバ側予告受信部、
前記予告パケットが受信されてから、サーバ側タイムアウト期間が経過するまで、前記第1のアドレスを介して、前記端末装置から送信された試行パケットの受信を試みるサーバ側試行受信部、
前記試行パケットが受信された場合、前記端末装置は、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が可能であると判定し、受信されなかった場合、前記端末装置は、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が不可能であると判定するサーバ側判定部、
前記第1のアドレスから前記端末装置に対して、コネクション型プロトコル通信により、予告パケットを送信するサーバ側予告送信部、
前記第2のアドレスから前記端末装置に対して、コネクションレス型プロトコル通信により、試行パケットを送信するサーバ側試行送信部
を備え、
(c)前記端末装置は、
前記サーバ装置から前記第1のアドレスを介して送信された前記予告パケットを受信する端末側予告受信部、
前記予告パケットが受信されてから、端末側タイムアウト期間が経過するまで、前記サーバ装置から前記第2のアドレスを介して送信された試行パケットの受信を試みる端末側試行受信部、
前記試行パケットが受信された場合、前記端末装置は、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が可能であると判定し、受信されなかった場合、前記端末装置は、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が不可能であると判定する端末側判定部
をさらに備える
ことを特徴とする確認システム。
【請求項2】
請求項1に記載の確認システムであって、
前記端末装置は、
前記第1のアドレスもしくは前記第2のアドレスに対して、コネクション型プロトコル通信により、前記端末側判定部による判定結果を指定する判定結果パケットを送信する端末側結果送信部
をさらに備え、
前記サーバ装置は、
前記第1のアドレスもしくは前記第2のアドレスを介して、前記端末装置から送信された判定結果パケットを受信するサーバ側結果受信部
をさらに備える
ことを特徴とする確認システム。
【請求項3】
請求項1または2に記載の確認システムであって、
前記サーバ装置の第1のアドレスならびに第2のアドレス、および、前記端末装置のアドレスは、いずれもIP(Internet Protocol)アドレスであり、
前記コネクション型プロトコルは、TCP(Transmission Control Protocol)であり、
前記コネクションレス型プロトコルは、UDP(User Datagram Protocol)である
ことを特徴とする確認システム。
【請求項4】
サーバ装置と、第1の端末装置と、第2の端末装置と、を備える通信システムであって、
前記サーバ装置ならびに前記第1の端末装置は、請求項2または3に記載の確認システムにおけるサーバ装置ならびに端末装置として機能し、
前記サーバ装置ならびに前記第2の端末装置は、請求項2または3に記載の確認システムにおけるサーバ装置ならびに端末装置として機能し、
前記サーバ装置は、前記第1の端末装置と前記第2の端末装置との間のパケットの送受について、
(a)他の通信機器へのコネクションレス型プロトコル通信によるパケットの一方の端末装置による送信が可能であると判定され、かつ、他の通信機器からのコネクションレス型プロトコル通信によるパケットの他方の端末装置による受信が可能であると判定された場合、当該一方の端末装置から当該他方の端末装置へのパケットの送受は、コネクションレス型プロトコル通信を介して行い、
(b)他の通信機器へのコネクションレス型プロトコル通信によるパケットの一方の端末装置による送信が不可能であると判定され、もしくは、他の通信機器からのコネクションレス型プロトコル通信によるパケットの他方の端末装置による受信が不可能であると判定された場合、当該一方の端末装置から当該他方の端末装置へのパケットの送受は、コネクション型プロトコル通信を介して行う
ように、前記第1の端末装置と前記第2の端末装置とに指示する
ことを特徴とする通信システム。
【請求項5】
請求項4に記載の通信システムであって、
前記第1の端末装置と前記第2の端末装置との間のパケットの送受が、直接コネクション型プロトコル通信を介して行うことができない場合、当該パケットの送受を、サーバ装置もしくは所定のプロキシサーバ装置に中継させてコネクション型プロトコル通信により行う
ことを特徴とする通信システム。
【請求項6】
第1のアドレスと第2のアドレスとのいずれによってもコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能なサーバ装置であって、
前記サーバ装置は、1つのアドレスによってコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能な端末装置と、コネクション型プロトコル通信可能に接続され、
前記サーバ装置は、
前記第1のアドレスを介して、前記端末装置から送信された前記予告パケットを受信するサーバ側予告受信部、
前記予告パケットが受信されてから、サーバ側タイムアウト期間が経過するまで、前記第1のアドレスを介して、前記端末装置から前記予告パケットの送信の後に送信された試行パケットの受信を試みるサーバ側試行受信部、
前記試行パケットが受信された場合、前記端末装置は、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が可能であると判定し、受信されなかった場合、前記端末装置は、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が不可能であると判定するサーバ側判定部、
前記第1のアドレスから前記端末装置に対して、コネクション型プロトコル通信により、予告パケットを送信するサーバ側予告送信部、
前記第2のアドレスから前記端末装置に対して、コネクションレス型プロトコル通信により、試行パケットを送信するサーバ側試行送信部、
を備え、
前記端末装置は、前記サーバ装置から前記第1のアドレスを介して送信された前記予告パケットが受信されてから、端末側タイムアウト期間が経過するまで、前記サーバ装置から前記第2のアドレスを介して送信された試行パケットの受信を試み、前記試行パケットが受信された場合、前記端末装置は、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が可能であると判定し、受信されなかった場合、前記端末装置は、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が不可能であると判定して、前記端末装置は、前記第1のアドレスもしくは前記第2のアドレスに対して、コネクション型プロトコル通信により、前記端末側判定部による判定結果を指定する判定結果パケットを送信し、
前記サーバ装置は、
前記端末装置から、前記第1のアドレスもしくは前記第2のアドレスに対して、コネクション型プロトコル通信により送信された判定結果を指定する判定結果パケットを受信するサーバ側結果受信部
をさらに備えることを特徴とする確認サーバ装置。
【請求項7】
第1のアドレスと第2のアドレスとのいずれによってもコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能なサーバ装置と、1つのアドレスによってコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能な端末装置と、を備え、前記サーバ装置と、前記端末装置と、が、コネクション型プロトコル通信可能に接続される確認システムにおいて、前記サーバ装置と、前記端末装置と、が実行する確認方法であって、前記端末装置は、端末側予告送信部、端末側試行送信部、端末側予告受信部、端末側試行受信部、端末側判定部を備え、前記サーバ装置は、サーバ側予告受信部、サーバ側試行受信部、サーバ側判定部、サーバ側予告送信部、サーバ側試行送信部を備え、前記確認方法は、
(a)前記端末装置において、
前記端末側予告送信部が、前記第1のアドレスに対して、コネクション型プロトコル通信により、予告パケットを送信する端末側予告送信工程、
前記端末側試行送信部が、前記第1のアドレスに対して、コネクションレス型プロトコル通信により試行パケットを送信する端末側試行送信工程
を備え、
(b)前記サーバ装置において、
前記サーバ側予告受信部が、前記第1のアドレスを介して、前記端末装置から送信された前記予告パケットを受信するサーバ側予告受信工程、
前記サーバ側試行受信部が、前記予告パケットが受信されてから、サーバ側タイムアウト期間が経過するまで、前記第1のアドレスを介して、前記端末装置から送信された試行パケットの受信を試みるサーバ側試行受信工程、
前記サーバ側判定部が、前記試行パケットが受信された場合、前記端末装置は、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が可能であると判定し、受信されなかった場合、前記端末装置は、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が不可能であると判定するサーバ側判定工程、
前記サーバ側予告送信部が、前記第1のアドレスから前記端末装置に対して、コネクション型プロトコル通信により、予告パケットを送信するサーバ側予告送信工程、
前記サーバ側試行送信部が、前記第2のアドレスから前記端末装置に対して、コネクションレス型プロトコル通信により、試行パケットを送信するサーバ側試行送信工程、
を備え、
(c)前記端末装置において、
前記端末側予告受信部が、前記サーバ装置から前記第1のアドレスを介して送信された前記予告パケットを受信する端末側予告受信工程、
前記端末側試行受信部が、前記予告パケットが受信されてから、端末側タイムアウト期間が経過するまで、前記サーバ装置から前記第2のアドレスを介して送信された試行パケットの受信を試みる端末側試行受信工程、
前記端末側判定部が、前記試行パケットが受信された場合、前記端末装置は、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が可能であると判定し、受信されなかった場合、前記端末装置は、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が不可能であると判定する端末側判定工程
をさらに備える
ことを特徴とする確認方法。
【請求項8】
第1のアドレスと第2のアドレスとのいずれによってもコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能なサーバ用コンピュータをサーバ装置として機能させるサーバ用プログラムと、1つのアドレスによってコネクション型プロトコル通信およびコネクションレス型プロトコル通信が可能な端末用コンピュータを端末装置として機能させる、端末用プログラムと、を備えるプログラムであって、前記サーバ用コンピュータと、前記端末用コンピュータと、が、コネクション型プロトコル通信可能に接続され、
(a)前記端末用プログラムは、前記端末用コンピュータを、
前記第1のアドレスに対して、コネクション型プロトコル通信により、予告パケットを送信する端末側予告送信部、
前記第1のアドレスに対して、コネクションレス型プロトコル通信により試行パケットを送信する端末側試行送信部
として機能させ、
(b)前記サーバ用プログラムは、前記サーバ用コンピュータを、
前記第1のアドレスを介して、前記端末用コンピュータから送信された前記予告パケットを受信するサーバ側予告受信部、
前記予告パケットが受信されてから、サーバ側タイムアウト期間が経過するまで、前記第1のアドレスを介して、前記端末用コンピュータから送信された試行パケットの受信を試みるサーバ側試行受信部、
前記試行パケットが受信された場合、前記端末用コンピュータは、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が可能であると判定し、受信されなかった場合、前記端末用コンピュータは、他の通信機器に対して、コネクションレス型プロトコル通信によるパケットの送信が不可能であると判定するサーバ側判定部、
前記第1のアドレスから前記端末用コンピュータに対して、コネクション型プロトコル通信により、予告パケットを送信するサーバ側予告送信部、
前記第2のアドレスから前記端末用コンピュータに対して、コネクションレス型プロトコル通信により、試行パケットを送信するサーバ側試行送信部
として機能させ、
(c)前記端末用プログラムは、前記端末用コンピュータを、
前記サーバ用コンピュータから前記第1のアドレスを介して送信された前記予告パケットを受信する端末側予告受信部、
前記予告パケットが受信されてから、端末側タイムアウト期間が経過するまで、前記サーバ用コンピュータから前記第2のアドレスを介して送信された試行パケットの受信を試みる端末側試行受信部、
前記試行パケットが受信された場合、前記端末用コンピュータは、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が可能であると判定し、受信されなかった場合、前記端末用コンピュータは、他の通信機器からの、コネクションレス型プロトコル通信によるパケットの受信が不可能であると判定する端末側判定部
としてさらに機能させる
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−206388(P2010−206388A)
【公開日】平成22年9月16日(2010.9.16)
【国際特許分類】
【出願番号】特願2009−48162(P2009−48162)
【出願日】平成21年3月2日(2009.3.2)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】