JP2008118599A - Communication apparatus, communication control method, and communication control program - Google Patents
Communication apparatus, communication control method, and communication control program Download PDFInfo
- Publication number
- JP2008118599A JP2008118599A JP2006302548A JP2006302548A JP2008118599A JP 2008118599 A JP2008118599 A JP 2008118599A JP 2006302548 A JP2006302548 A JP 2006302548A JP 2006302548 A JP2006302548 A JP 2006302548A JP 2008118599 A JP2008118599 A JP 2008118599A
- Authority
- JP
- Japan
- Prior art keywords
- identifier
- communication
- communication partner
- candidates
- transmission destination
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、通信制御技術に関し、とくに、ネットワークを介した端末間通信を制御する通信装置、通信制御方法、及び通信制御プログラムに関する。 The present invention relates to a communication control technique, and more particularly, to a communication device, a communication control method, and a communication control program for controlling communication between terminals via a network.
インターネットなどのネットワークのインフラの整備が進んでおり、ネットワークを介してゲーム端末間で対戦ゲームやチャットなどを楽しむことができるようになっている。ゲーム端末間における通信方式として、一般に、サーバを介さずに端末間で直接通信を行うピア・ツー・ピア(Peer to Peer:P2P)が用いられている。 Development of network infrastructure such as the Internet is progressing, and it is now possible to enjoy competitive games and chats between game terminals via the network. As a communication method between game terminals, peer-to-peer (P2P) that directly communicates between terminals without using a server is generally used.
ゲーム装置は、ルータを介してインターネットに接続されることが多いが、ルータによって、ポートの使用ポリシーやパケットのフィルタリングポリシーが多種多様であるため、自装置が接続されているルータと通信相手の装置が接続されているルータとの組合せによっては、継続的にP2P通信を行うことが困難な場合がある。 Game devices are often connected to the Internet via a router, but since there are various port usage policies and packet filtering policies depending on the router, the router to which the device is connected and the communication partner device Depending on the combination with the router to which is connected, it may be difficult to perform P2P communication continuously.
本発明はこうした状況に鑑みてなされたものであり、その目的は、より利便性の高い通信制御技術を提供することにある。 The present invention has been made in view of such circumstances, and an object of the present invention is to provide a more convenient communication control technique.
本発明のある態様は、通信装置に関する。この通信装置は、通信相手の装置がネットワークを介して自装置へデータを送信する際に送信先として設定されるべき自装置の識別子の候補を複数取得する候補取得部と、取得した複数の前記候補を前記通信相手の装置へ通知して応答データの送信を要求する候補通知部と、前記通信相手の装置に通知した複数の前記候補が送信先に設定された前記応答データを、前記ネットワークを介して受信する応答受信部と、受信した前記応答データに送信先として設定された前記候補の中から、前記送信先として設定されるべき自装置の識別子を決定する識別子決定部と、決定した自装置の識別子を前記通信相手の装置へ通知する識別子通知部と、前記識別子決定部により決定された自装置の識別子に対して、複数の仮想ソケットを割り当て、同一の前記識別子を用いた複数の通信を管理する仮想ソケット管理部と、を備えることを特徴とする。 One embodiment of the present invention relates to a communication device. The communication apparatus includes a candidate acquisition unit that acquires a plurality of candidates for an identifier of the own apparatus to be set as a transmission destination when a communication partner apparatus transmits data to the own apparatus via a network; A candidate notifying unit for notifying the communication partner device of the candidate and requesting transmission of response data; and the response data in which the plurality of candidates notified to the communication partner device are set as transmission destinations. A response receiving unit that receives the response data, an identifier determination unit that determines an identifier of the own device to be set as the transmission destination from the candidates set as the transmission destination in the received response data, Assigning a plurality of virtual sockets to the identifier notifying unit for notifying the device identifier of the device to the communication partner device and the identifier of the own device determined by the identifier determining unit, A virtual socket management unit for managing a plurality of communication using the serial identifier, characterized in that it comprises a.
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。 It should be noted that any combination of the above-described constituent elements and a representation of the present invention converted between a method, an apparatus, a system, etc. are also effective as an aspect of the present invention.
本発明によれば、より利便性の高い通信制御技術を提供することができる。 According to the present invention, a more convenient communication control technique can be provided.
図1は、実施の形態に係る通信システムの基本的な構成を示す。通信システム10は、通信管理サーバ12、STUNサーバ14、ルータ16、通信装置の一例であるゲーム装置18、ネットワークの一例であるインターネット20を含む。ルータ16a、16b、・・・、を総称してルータ16と呼ぶ。また、ゲーム装置18a、18b、18c、・・・、を総称してゲーム装置18と呼ぶ。
FIG. 1 shows a basic configuration of a communication system according to an embodiment. The
通信管理サーバ12は、ゲーム装置間の通信を管理する。通信管理サーバ12は、ゲーム装置18から対戦ゲームやチャットなどの通信相手のマッチングや検索の要求を受け付け、通信相手を決定する。そして、端末間においてP2Pの通信路が確立されるまでの間、端末間の通信を仲介する。
The
STUNサーバは、STUN(Simple Traversal of UDP through NATs)を実現するために設けられるサーバであり、ゲーム装置18からの要求を受けて、ゲーム装置18が接続されているルータ16のWAN側のIPアドレスと、ゲーム装置18の通信のために割り当てられているポート番号をゲーム装置18に回答する。
The STUN server is a server provided to realize STUN (Simple Traversal of UDP through NATs). Upon receiving a request from the
ルータ16は、下流に接続された複数のゲーム装置18と、上流のネットワークとの間の通信を制御する。ルータ16は、下流に接続された複数のゲーム装置18に対して、互いに異なるプライベートIPアドレスを付与するDHCP(Dynamic Host Configuration Protocol)サーバの機能や、ゲーム装置18に割り当てられたプライベートIPアドレスと自装置に割り当てられたグローバルIPアドレスとを相互に変換し、プライベートIPアドレスしか割り当てられていないゲーム装置18から透過的にインターネット20を介した通信を行うことを可能とするNAT(Network Address Translation)機能や、ゲーム装置18からインターネット20へ送信されるパケットやインターネット20からゲーム装置18へ送信されるパケットの通過の許否を制御するパケットフィルタリング機能を実現する。
The
ゲーム装置18は、ルータ16を介してインターネット20に接続し、インターネット20を介したデータの送受信を行うことにより、他のゲーム装置18との間で対戦ゲームやチャットなどを行う。
The
ゲーム装置18が接続されているルータ16におけるNATの特性は下記の3種に分類される。
(1)ゲーム装置18のネットワークインタフェースに割り当てられたIPアドレスが、ルータ16のインターネット20側のグローバルIPアドレスと同一である場合。
(2)ゲーム装置18のネットワークインタフェースに割り当てられたIPアドレスが、ルータ16のインターネット20側のグローバルIPアドレスと異なり、かつ、以下のいずれかの条件に合致する場合。
(a)ルータ16のマッピングポリシーが通信相手のIPアドレス及びポート番号に依存せず、かつ、フィルタリングポリシーが通信相手のIPアドレス及びポート番号に依存しない。
(b)ルータ16のマッピングポリシーが通信相手のIPアドレス及びポート番号に依存せず、かつ、フィルタリングポリシーが通信相手のIPアドレスのみに依存する。
(c)ルータ16のマッピングポリシーが通信相手のIPアドレスのみに依存し、かつ、フィルタリングポリシーが通信相手のIPアドレス及びポート番号に依存しない。
(d)ルータ16のマッピングポリシーが通信相手のIPアドレス及びポート番号に依存し、かつ、フィルタリングポリシーが通信相手のIPアドレス及びポート番号に依存しない。
(3)上記(1)(2)以外の全ての場合。
The NAT characteristics in the
(1) The IP address assigned to the network interface of the
(2) The IP address assigned to the network interface of the
(A) The mapping policy of the
(B) The mapping policy of the
(C) The mapping policy of the
(D) The mapping policy of the
(3) All cases other than (1) and (2) above.
このとき、P2P通信を行おうとしている2つのゲーム装置18のそれぞれが接続しているルータ16が、両方とも(3)のタイプである場合は、継続的にP2P通信を行うことが困難である。したがって、ゲーム装置18は、予め自装置が接続しているルータ16と、通信相手のゲーム装置18が接続しているルータ16のタイプを取得し、両方とも(3)のタイプであれば、P2P通信が行えない旨を報知してもよい。しかし、本実施の形態では、このような場合であっても、端末間のP2P通信を行うことができる可能性を高めるために、P2P通信に先立ってゲーム装置18同士で自身のネットワーク上での識別子として使用可能な候補を複数通知し合い、試験的にパケットを送受信して通信が可能な候補を模索する技術を提案する。これにより、より確実にゲーム装置18間におけるP2Pの通信路を確立することができ、端末間通信の利便性を向上させることができる。
At this time, if the
図2は、通信装置の一例であるゲーム装置18の構成を示す。ゲーム装置18は、ネットワークインタフェース30、通信制御部40、ゲーム実行部60、入力部62、画像処理部66、及び表示装置68を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
FIG. 2 shows a configuration of the
入力部62は、ゲームコントローラから入力されるユーザによる操作指示を受け付ける。ゲーム実行部60は、入力部62が受け付けたユーザからの操作指示に基づいてゲームプログラムを実行し、ゲームを進行させる。画像処理部66は、ゲーム実行部60により実行されるゲームの表示画面を生成して、表示装置68に表示させる。
The
通信制御部40は、候補取得部41、候補通知部42、応答受信部43、識別子決定部44、識別子通知部45、候補受信部46、応答送信部47、識別子受信部48、仮想ソケット管理部49、パケット送信部50、及びパケット受信部51を含む。
The
候補取得部41は、通信相手のゲーム装置18が、ネットワークを介して自装置へデータを送信する際に、送信先として設定されるべき自装置の識別子の候補を複数取得する。本実施の形態では、識別子の例として、IPアドレスとポート番号を組み合わせたソケットを使用する。
The
候補取得部41は、まず、自装置のネットワークインタフェース30に割り当てられているIPアドレスとポート番号を取得して、候補「local」にセットする。つづいて、候補取得部41は、自装置が接続されているルータ16がUPnP(Universal Plug and Play)に対応していれば、UPnPの「AddPortMapping」を試行し、ゲーム装置18が他の装置と通信するときのポート番号として予め固定的に決められたポート番号を追加するようルータ16へ依頼する。さらに、候補取得部41は、STUNサーバ14にアクセスし、自装置が接続しているルータ16のインターネット20側のIPアドレスとポート番号を取得する。取得したIPアドレスとポート番号が候補「local」と異なる場合、候補取得部41は、取得したIPアドレスとポート番号を候補「stun」にセットする。また、候補取得部41は、ルータ16に追加を依頼したポート番号が外部からアクセス可能か否かをSTUNサーバ14に問い合わせる。このポート番号が外部からアクセス可能であり、かつ、候補「stun」と異なる場合、候補取得部41は、ルータ16のインターネット20側のIPアドレスと、UPnPにより追加したポート番号を候補「static」にセットする。
The
候補通知部42は、候補取得部41が取得した複数の候補を通信相手のゲーム装置18へ通知して、応答データの送信を要求する。候補通知部42は、通信管理サーバ12を介して通信相手のゲーム装置18へ候補を通知してもよい。また、通信管理サーバ12へ候補を通知し、通信管理サーバ12から通信相手のゲーム装置18へ候補を通知するよう依頼してもよい。これにより、候補通知部42が通信相手のゲーム装置18のIPアドレスやポート番号などを取得していなくても、自装置のIPアドレスやポート番号の候補を通信相手のゲーム装置18へ通知することができる。
The
候補受信部46は、通信相手のゲーム装置18から、そのゲーム装置18へデータを送信する際に、送信先として設定すべき識別子の候補を受信してテーブルに保持する。通信相手のゲーム装置18との間で、互いに識別子の候補を送受信すると、それぞれのゲーム装置18の接続状態は「PENDING」となる。つづいて、通信相手のゲーム装置18との間で接続確認を行い、通信を確立する処理を行う。
The
応答受信部43は、通信相手のゲーム装置18に通知した複数の候補が送信先に設定された応答データを、ネットワークを介して受信する。応答受信部43は、タイマなどを利用して、候補通知部42が通信相手のゲーム装置18へ候補を通知してから、応答データを受信するまでに要した時間を計測してもよい。これにより、通信を行うアプリケーションは、計測された時間をもとに、通信相手のゲーム装置18との通信に要する時間を推測することができる。
The
応答送信部47は、通信相手のゲーム装置18から受信した識別子の候補を送信先に設定した応答データを、ネットワークを介して送信する。ここで、応答送信部47は、応答受信部43が通信相手のゲーム装置18から受信した応答データの送信元の識別子として、候補受信部46が受信した識別子の候補とは異なる識別子が設定されていた場合、識別子を候補「derived」にセットし、追加した候補「derived」を送信先に設定した応答データも送信する。
The
識別子決定部44は、応答受信部43が受信した応答データに送信先として設定された候補の中から、送信先として設定されるべき自装置の識別子を決定する。識別子決定部44は、候補「local」にセットしたIPアドレスとポート番号が送信先として設定された応答データを受信すると、そのIPアドレスとポート番号を優先的に送信先として設定されるべき識別子に決定する。
The
図1において、ゲーム装置18aとゲーム装置18cとの間でP2P通信を行う場合は、インターネット20を介して通信する必要があるので、ゲーム装置18cがゲーム装置18aに応答データを送信する際に、ゲーム装置18aのプライベートIPアドレスを送信先として設定しても、ゲーム装置18aには到達しない。この場合は、ゲーム装置18aが接続されているルータ16aのインターネット20側のグローバルIPアドレスを送信先として設定する必要がある。したがって、候補「stun」か候補「static」でないとゲーム装置18aへ応答データが到達しない。
In FIG. 1, when P2P communication is performed between the
しかしながら、ゲーム装置18aとゲーム装置18bとの間でP2P通信を行う場合は、ゲーム装置18aとゲーム装置18bは同一のルータ16aに接続されており、インターネット20を介さずに通信を行うことができるので、ゲーム装置18aのプライベートIPアドレスが送信先として設定された応答データもゲーム装置18aへ到達する。この場合、ルータ16aのインターネット20側のグローバルIPアドレスがセットされた候補「stun」や候補「static」が送信先として設定された応答データもゲーム装置18aへ到達する可能性があるが、これらはいったんルータ16aからインターネット20へ送出され、再度ルータ16aを介してゲーム装置18aへ到達するので、無駄に通信経路が長くなり、通信時間が長くなってしまう虞がある。したがって、P2P通信する2つのゲーム装置18が同じLAN内に存在する場合、すなわち、候補「local」が送信先として設定された応答データが応答受信部により受信された場合は、それを優先的に採用する。これにより、通信に要する時間を短縮することができる。
However, when P2P communication is performed between the
ルータ16bには、ゲーム装置18cのみが接続されているが、この場合、ゲーム装置18cのネットワークインタフェース30に、ルータ16bのインターネット20側のグローバルIPアドレスが割り当てられることがある。このとき、ルータ16bのDHCPサーバ機能とNAT機能は停止されている。この場合、候補「local」には、プライベートIPアドレスではなく、グローバルIPアドレスがセットされている。この場合であっても、候補「local」が送信先として設定された応答データが応答受信部43により受信された場合、それを優先的に採用してもよい。
Only the
応答受信部43が所定時間待機しても候補「local」が送信先として設定された応答データを受信しなかった場合、他の候補が送信先として設定された応答データを受信していたときは、それを採用する。他の複数の候補の応答データを受信していたときは、最初に応答データを受信した候補を優先的に採用してもよい。また、複数回試行して、平均通信時間が最小であった候補を優先的に採用してもよい。また、複数回試行して、通信エラーの発生回数が最小であった候補を優先的に採用してもよい。
When the
識別子通知部45は、識別子決定部44が決定した自装置の識別子を通信相手のゲーム装置18へ通知する。識別子通知部45は、通信管理サーバ12を介して、決定した識別子を通信相手のゲーム装置18へ通知してもよい。
The
識別子受信部48は、通信相手のゲーム装置18から、送信先として設定すべきと決定された識別子を受信する。識別子受信部48は、受信した識別子をテーブルに登録する。以降、パケット送信部50が通信相手のゲーム装置18へパケットを送信する際に、この識別子が送信先に設定される。通信相手のゲーム装置18との間で、互いに識別子を送受信すると、それぞれのゲーム装置18の接続状態は「ACTIVE」となり、通信路が確立され、以降、P2P通信が可能となる。
The
図3は、本実施の形態に係る通信制御方法の手順を示すフローチャートである。まず、ゲーム装置18aの候補取得部41が、通信相手のゲーム装置18bがネットワークを介して自装置へデータを送信する際に、送信先として設定されるべき自装置の識別子の候補を複数取得する(S10)。つづいて、候補通知部42が、取得した候補を通信相手のゲーム装置18bへ通知する(S12)。ゲーム装置18bの候補受信部46は、候補を受信するとテーブルに登録する(S14)。そして、応答送信部47が、受信した候補を送信先に設定した応答データを送信する(S16)。ゲーム装置18aの応答受信部43は、ゲーム装置18bから送信された応答データを受信する(S18)。応答受信部43が、候補「local」が送信先として設定された応答データを受信すると(S20のY)、識別子決定部44は、候補「local」を送信先として設定されるべき識別子に決定する(S22)。応答受信部43が、候補「local」が送信先として設定された応答データを受信しなかった場合(S20のN)、識別子決定部44は、応答データを受信した候補の中から送信先として設定されるべき識別子を決定する(S24)。識別子通知部45は、決定された識別子をゲーム装置18bへ通知する(S26)。ゲーム装置18bの識別子受信部48は、通知された識別子をテーブルに登録し(S28)、以降の通信では通知された識別子を送信先に設定する。
FIG. 3 is a flowchart showing a procedure of the communication control method according to the present embodiment. First, the
仮想ソケット管理部49は、複数のアプリケーションが同一のポート番号を共有するために、複数のアプリケーションのそれぞれに対して仮想ソケットを割り当て、仮想ソケットに付与された仮想ポート番号を介した通信を管理する。ゲーム装置18において、複数のアプリケーションが並行して他のゲーム装置18と通信を行う場合、それぞれのアプリケーションが独自に上述した機能を用いて通信路を確立すると、状況によって異なる識別子が採用されることがあり、あるアプリケーションはP2Pで通信可能であるのに、別のアプリケーションは通信不可能であるという状態が生じうる。このような事態を避けるために、上述した機能により識別子が決定されると、その識別子を複数のアプリケーションが共有して利用できるようにする。そのために、仮想ソケット管理部49は、通信を行うアプリケーションに対して互いに異なる仮想ソケットを割り当て、仮想ポート番号を管理テーブルに登録する。
The virtual
図4は、仮想ソケットを用いた通信について説明するための図である。仮想ソケット管理部49は、他の装置との間で通信を行うゲーム実行部60やアプリケーション64a及び64bなど(以下、単に「アプリケーション64」という)から、新たに他装置との通信を要求されると、そのアプリケーション64に対して仮想ソケットを割り当てる。仮想ソケット管理部49は、アプリケーション64に割り当てた仮想ソケットの仮想ポート番号と、アプリケーション64を識別するIDとを対応づけて管理テーブル53に登録する。図4の例では、ゲーム実行部60に対して仮想ポート52aが、アプリケーション64aに対して仮想ポート52bが、アプリケーション64bに対して仮想ポート52cがそれぞれ割り当てられている。仮想ソケット管理部49は、ゲーム装置18のオペレーションシステムなどに割り当てる仮想ポート番号の範囲を予約しておき、アプリケーション64に割り当てる仮想ポート番号の範囲を制限してもよい。
FIG. 4 is a diagram for explaining communication using a virtual socket. The virtual
仮想ソケット管理部49は、アプリケーション64から送信データを受け取ると、仮想ソケットを管理するための仮想ソケットヘッダを送信データに付加して仮想ソケットパケットを生成し、パケット送信部50へ送る。パケット送信部50は、仮想ソケット管理部49が生成した仮想ソケットパケットにUDPヘッダやIPヘッダなどを付加して送信パケットを生成し、ルータ16へ送出する。このとき、パケット送信部50は、送信先のアドレスに、識別子受信部48が受信した通信相手のゲーム装置18の識別子を設定する。ここでは、UDPによりパケットを送受信する例について説明するが、TCPやその他の通信プロトコルでも同様である。
When receiving the transmission data from the application 64, the virtual
図5は、仮想ソケット管理部49において生成される仮想ソケットパケットのデータ構造を示す。UDPパケット80は、UDPヘッダ81と、UDPパケット80のペイロードに格納された1以上の仮想ソケットパケット82を含む。仮想ソケットパケット82は、仮想ソケットヘッダ83と、可変長のデータ89を含む。複数の仮想ソケットパケット82を1つのUDPパケット80にパッケージしてもよい。
FIG. 5 shows a data structure of a virtual socket packet generated by the virtual
仮想ソケットヘッダ83は、仮想ソケットヘッダ83の開始を示す特定のデータ列である開始フラグ84と、データ89のデータ種別85と、データ89のデータ長86と、送信元のアプリケーション64に割り当てられた送信元仮想ポート番号87と、送信先のアプリケーション64に割り当てられた宛先仮想ポート番号88とを含む。初回の送信時などに、宛先のアプリケーション64の仮想ポート番号が不明である場合は、アプリケーション64を特定するための情報を宛先仮想ポート番号88に格納してもよい。データ種別85には、例えば、通常データ、暗号化データ、署名付きデータ、暗号化署名付きデータなどがある。署名付きデータの場合は、仮想ソケットヘッダ83に、署名を更に格納してもよい。この場合、署名の有無で仮想ソケットヘッダ83のデータ長が異なることになるので、データ89の開始位置を一意に特定可能とするために、データ長86には、データ長86以降の仮想ソケットヘッダ83のデータ長とデータ89のデータ長を加算した値を格納するようにしてもよい。または、仮想ソケットヘッダ83に、仮想ソケットヘッダ83のデータ長を格納する領域を設けてもよい。
The
パケット受信部51は、通信相手のゲーム装置18からパケットを受信すると、UDPパケット80のペイロードを解析して、仮想ソケットヘッダ83の存在を示す開始フラグ84が格納されているか否かを確認する。仮想ソケットヘッダ83が存在すれば、宛先仮想ポート番号88をもとに管理テーブル53を検索して送信先のアプリケーション64を特定し、そのアプリケーション64へ受信データを送る。
When receiving a packet from the communication
図6は、本実施の形態に係る通信制御方法の手順を示すフローチャートである。仮想ソケット管理部49は、アプリケーション64から送信データを受け取ると(S30)、管理テーブル53を検索して、アプリケーション64に割り当てられている仮想ポート番号を取得する(S32)。アプリケーション64に対して仮想ソケットが割り当てられていない場合は(S34のN)、そのアプリケーション64に対して新たに仮想ソケットを割り当て、アプリケーション64のIDと仮想ポート番号を管理テーブル53に登録する(S35)。仮想ソケット管理部49は、仮想ソケットヘッダ83を設定して仮想ソケットパケット82を生成する(S36)。パケット送信部50は、生成された仮想ソケットパケット82にUDPヘッダやIPヘッダなどを付加し、他のゲーム装置18へ送信する(S38)。
FIG. 6 is a flowchart showing a procedure of the communication control method according to the present embodiment. When receiving the transmission data from the application 64 (S30), the virtual
仮想ソケット管理部49は、他のゲーム装置18から受信したUDPパケット80を受け取ると(S40)、受け取ったUDPパケット80のペイロードの先頭に開始フラグ84がセットされているか否かを確認する。開始フラグ84がセットされていれば、仮想ソケットパケット82が格納されているので、仮想ソケットヘッダ83を解析して宛先仮想ポート番号88を取得し(S42)、管理テーブル53を検索して送信先のアプリケーション64を特定し、そのアプリケーションへ受信データを送る(S44)。
When receiving the
このような技術により、いったん通信路が確立された識別子を用いて、複数の通信を並行して行うことが可能となるので、各アプリケーション64は、より確実に他のゲーム装置18との間でP2P通信を行うことができる。また、このような通信路の確立と、その通信路を用いた複数の通信の管理を、通信制御部40が一括して行うので、アプリケーションの開発主体は、このような通信制御に関する問題を考慮することなく、P2P通信を利用したアプリケーション64を開発することができる。これにより、開発の工数を低減することができる。
With such a technique, it becomes possible to perform a plurality of communications in parallel using an identifier for which a communication path has been established once, so that each application 64 can more reliably communicate with
パケット送信部50は、所定時間、例えば20秒ごとに、通信相手のゲーム装置18へキープアライブパケットを送信する。これにより、通信相手のゲーム装置18へ、自装置がアライブであることを通知することができるとともに、自装置が接続されたルータ16のNATテーブルを更新して通信路を継続的に確保することができる。
The
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。 In the above, this invention was demonstrated based on the Example. This embodiment is an exemplification, and it will be understood by those skilled in the art that various modifications can be made to each component and combination of processing processes, and such modifications are within the scope of the present invention.
10 通信システム、12 通信管理サーバ、14 STUNサーバ、16 ルータ、18 ゲーム装置、20 インターネット、30 ネットワークインタフェース、40 通信制御部、41 候補取得部、42 候補通知部、43 応答受信部、44 識別子決定部、45 識別子通知部、46 候補受信部、47 応答送信部、48 識別子受信部、49 仮想ソケット管理部、50 パケット送信部、51 パケット受信部、60 ゲーム実行部、62 入力部、66 画像処理部、68 表示装置。
DESCRIPTION OF
Claims (6)
取得した複数の前記候補を前記通信相手の装置へ通知して応答データの送信を要求する候補通知部と、
前記通信相手の装置に通知した複数の前記候補が送信先に設定された前記応答データを、前記ネットワークを介して受信する応答受信部と、
受信した前記応答データに送信先として設定された前記候補の中から、前記送信先として設定されるべき自装置の識別子を決定する識別子決定部と、
決定した自装置の識別子を前記通信相手の装置へ通知する識別子通知部と、
前記識別子決定部により決定された自装置の識別子に対して、複数の仮想ソケットを割り当て、同一の前記識別子を用いた複数の通信を管理する仮想ソケット管理部と、
を備えることを特徴とする通信装置。 A candidate acquisition unit for acquiring a plurality of identifier candidates of the own device to be set as a transmission destination when the communication partner device transmits data to the own device via the network;
A candidate notifying unit for notifying the communication partner device of the plurality of acquired candidates and requesting transmission of response data;
A response receiving unit configured to receive the response data in which a plurality of candidates notified to the communication partner device are set as transmission destinations via the network;
An identifier determination unit that determines an identifier of the own device to be set as the transmission destination from among the candidates set as the transmission destination in the received response data;
An identifier notifying unit for notifying the communication partner device of the determined identifier of the own device;
A virtual socket management unit that assigns a plurality of virtual sockets to the identifier of the own device determined by the identifier determination unit, and manages a plurality of communications using the same identifier;
A communication apparatus comprising:
取得した複数の前記候補を前記通信相手の装置へ通知して応答データの送信を要求するステップと、
前記通信相手の装置に通知した複数の前記候補が送信先に設定された前記応答データを、前記ネットワークを介して受信するステップと、
受信した前記応答データに送信先として設定された前記候補の中から、前記送信先として設定されるべき自装置の識別子を決定するステップと、
決定した自装置の識別子を前記通信相手の装置へ通知するステップと、
決定した自装置の識別子に対して、複数の仮想ソケットを割り当て、同一の前記識別子を用いた複数の通信を管理するステップと、
を含むことを特徴とする通信制御方法。 A step of acquiring a plurality of identifiers of the identifier of the own device to be set as a transmission destination when the communication partner device transmits data to the own device via the network;
Notifying the communication partner device of the plurality of acquired candidates and requesting transmission of response data; and
Receiving the response data in which a plurality of candidates notified to the communication partner device are set as transmission destinations via the network;
Determining an identifier of the own device to be set as the transmission destination from among the candidates set as the transmission destination in the received response data;
Notifying the communication partner device of the determined identifier of the device itself;
Assigning a plurality of virtual sockets to the determined identifier of the own device, and managing a plurality of communications using the same identifier;
The communication control method characterized by including.
取得した複数の前記候補を前記通信相手の装置へ通知して応答データの送信を要求する機能と、
前記通信相手の装置に通知した複数の前記候補が送信先に設定された前記応答データを、前記ネットワークを介して受信する機能と、
受信した前記応答データに送信先として設定された前記候補の中から、前記送信先として設定されるべき自装置の識別子を決定する機能と、
決定した自装置の識別子を前記通信相手の装置へ通知する機能と、
決定した自装置の識別子に対して、複数の仮想ソケットを割り当て、同一の前記識別子を用いた複数の通信を管理する機能と、
をコンピュータに実現させることを特徴とする通信制御プログラム。 A function of acquiring a plurality of candidates for the identifier of the own device to be set as a transmission destination when the communication partner device transmits data to the own device via the network;
A function of notifying the communication partner device of the plurality of acquired candidates and requesting transmission of response data;
A function of receiving, via the network, the response data in which a plurality of candidates notified to the communication partner device are set as transmission destinations;
A function for determining an identifier of the own device to be set as the transmission destination from among the candidates set as the transmission destination in the received response data;
A function for notifying the communication partner device of the determined identifier of the device;
A function of assigning a plurality of virtual sockets to the determined identifier of the own device and managing a plurality of communications using the same identifier;
A communication control program for causing a computer to realize the above.
取得した複数の前記候補を前記通信相手の装置へ通知して応答データの送信を要求する機能と、
前記通信相手の装置に通知した複数の前記候補が送信先に設定された前記応答データを、前記ネットワークを介して受信する機能と、
受信した前記応答データに送信先として設定された前記候補の中から、前記送信先として設定されるべき自装置の識別子を決定する機能と、
決定した自装置の識別子を前記通信相手の装置へ通知する機能と、
決定した自装置の識別子に対して、複数の仮想ソケットを割り当て、同一の前記識別子を用いた複数の通信を管理する機能と、
をコンピュータに実現させることを特徴とする通信制御プログラムを記録したコンピュータ読み取り可能な記録媒体。 A function of acquiring a plurality of candidates for the identifier of the own device to be set as a transmission destination when the communication partner device transmits data to the own device via the network;
A function of notifying the communication partner device of the plurality of acquired candidates and requesting transmission of response data;
A function of receiving, via the network, the response data in which a plurality of candidates notified to the communication partner device are set as transmission destinations;
A function for determining an identifier of the own device to be set as the transmission destination from among the candidates set as the transmission destination in the received response data;
A function for notifying the communication partner device of the determined identifier of the device;
A function of assigning a plurality of virtual sockets to the determined identifier of the own device and managing a plurality of communications using the same identifier;
A computer-readable recording medium on which a communication control program is recorded.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006302548A JP4425257B2 (en) | 2006-11-08 | 2006-11-08 | COMMUNICATION DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006302548A JP4425257B2 (en) | 2006-11-08 | 2006-11-08 | COMMUNICATION DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008118599A true JP2008118599A (en) | 2008-05-22 |
JP4425257B2 JP4425257B2 (en) | 2010-03-03 |
Family
ID=39504136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006302548A Active JP4425257B2 (en) | 2006-11-08 | 2006-11-08 | COMMUNICATION DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4425257B2 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011129045A1 (en) | 2010-04-14 | 2011-10-20 | 株式会社ソニー・コンピュータエンタテインメント | Server connection method, server, and remote operation system |
JP2013528980A (en) * | 2010-04-07 | 2013-07-11 | アップル インコーポレイテッド | Apparatus and method for matching a user to an online session |
JP2014021959A (en) * | 2012-07-18 | 2014-02-03 | We Are Engineering Kk | Information security game system, information security game device, and information security game program |
JP2014150415A (en) * | 2013-02-01 | 2014-08-21 | Nippon Telegr & Teleph Corp <Ntt> | Sound field sound collection playback system, method, and program |
JP2014150416A (en) * | 2013-02-01 | 2014-08-21 | Nippon Telegr & Teleph Corp <Ntt> | Sound field sound collection playback system, method, and program |
JP2021052240A (en) * | 2019-09-20 | 2021-04-01 | 株式会社コナミデジタルエンタテインメント | Program, communication device, and communication method |
-
2006
- 2006-11-08 JP JP2006302548A patent/JP4425257B2/en active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013528980A (en) * | 2010-04-07 | 2013-07-11 | アップル インコーポレイテッド | Apparatus and method for matching a user to an online session |
WO2011129045A1 (en) | 2010-04-14 | 2011-10-20 | 株式会社ソニー・コンピュータエンタテインメント | Server connection method, server, and remote operation system |
US8655343B2 (en) | 2010-04-14 | 2014-02-18 | Sony Corporation | Server connection method, server, and remote control system |
JP2014021959A (en) * | 2012-07-18 | 2014-02-03 | We Are Engineering Kk | Information security game system, information security game device, and information security game program |
JP2014150415A (en) * | 2013-02-01 | 2014-08-21 | Nippon Telegr & Teleph Corp <Ntt> | Sound field sound collection playback system, method, and program |
JP2014150416A (en) * | 2013-02-01 | 2014-08-21 | Nippon Telegr & Teleph Corp <Ntt> | Sound field sound collection playback system, method, and program |
JP2021052240A (en) * | 2019-09-20 | 2021-04-01 | 株式会社コナミデジタルエンタテインメント | Program, communication device, and communication method |
Also Published As
Publication number | Publication date |
---|---|
JP4425257B2 (en) | 2010-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101055048B1 (en) | Information communication system, information processing apparatus and method, and recording medium | |
US10862863B2 (en) | Session identifier for a communication session | |
TWI491229B (en) | Seamless host migration based on nat type | |
KR101455434B1 (en) | Peer-to-peer collaboration system with edge routing | |
KR101139675B1 (en) | Traversal of symmetric network address translator for multiple simultaneous connections | |
KR101727234B1 (en) | Custodian routing with network address translation in content-centric networks | |
KR100901790B1 (en) | CONTROL TUNNEL AND DIRECT TUNNEL CONFIGURATION METHOD IN IPv6 SERVICE PROVIDE SYSTEM BASED IPv4 NETWORK | |
US20160380966A1 (en) | Media Relay Server | |
JP4425257B2 (en) | COMMUNICATION DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM | |
JP2006086800A (en) | Communication apparatus for selecting source address | |
WO2011109778A1 (en) | System and method for connecting network sockets between applications | |
JP2007096826A (en) | Information processing system, tunnel communication apparatus, and tunnel communication method | |
TWI538449B (en) | Nat traversal method, computer-readable medium, and system for mediating connection | |
RU2373654C1 (en) | Method for making peer-to-peer connection and system designed for it | |
JP2008098813A (en) | Information communication device, information communication method, and program | |
KR20170046617A (en) | Sip-based custodian routing in content-centric networks | |
JP2007049499A (en) | Communication method and apparatus | |
CN112351115A (en) | Port prediction method and device of symmetric NAT equipment | |
US9413653B2 (en) | Communication system and server | |
TWI504213B (en) | Method for address translator traversal in 3gpp networks | |
US20120047271A1 (en) | Network address translation device and method of passing data packets through the network address translation device | |
WO2023007248A1 (en) | System and method for independent binding of virtual networks overlay using a physical network topology | |
JP3905067B2 (en) | Communication method between hosts via network | |
US20170289099A1 (en) | Method and Device for Managing Internet Protocol Version 6 Address, and Terminal | |
Komu et al. | Basic host identity protocol (HIP) extensions for traversal of network address translators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091127 |
|
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: 20091208 |
|
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: 20091208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4425257 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: 20121218 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121218 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131218 Year of fee payment: 4 |
|
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 |
|
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 |