JP2008118599A - Communication apparatus, communication control method, and communication control program - Google Patents

Communication apparatus, communication control method, and communication control program Download PDF

Info

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
Application number
JP2006302548A
Other languages
Japanese (ja)
Other versions
JP4425257B2 (en
Inventor
Yasutaka Miwa
泰孝 三輪
Kenjiro Komaki
賢二郎 小巻
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2006302548A priority Critical patent/JP4425257B2/en
Publication of JP2008118599A publication Critical patent/JP2008118599A/en
Application granted granted Critical
Publication of JP4425257B2 publication Critical patent/JP4425257B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a communication apparatus, a communication control method, a communication control program, with high-convenience communication control technology. <P>SOLUTION: A candidate acquisition part 41 of a game device 18 acquires a plurality of candidates of the identifier of its own device to be set as a destination when a game device of communication party transmits data to its own device through network. A candidate notifying part notifies the acquired candidate to the game device of communication party. A response receiving part 43 receives response data transmitted from the game device of communication party. An identifier determination part 44 determines the identifier to be set as the destination in the succeeding communications from the candidates set as the destination to the received response data. An identifier notifying part 45 notifies the determined identifier to the game device of communication party. <P>COPYRIGHT: (C)2008,JPO&INPIT

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 communication system 10 includes a communication management server 12, a STUN server 14, a router 16, a game device 18 that is an example of a communication device, and the Internet 20 that is an example of a network. The routers 16a, 16b,... Are collectively referred to as a router 16. Further, the game devices 18a, 18b, 18c,... Are collectively referred to as the game device 18.

通信管理サーバ12は、ゲーム装置間の通信を管理する。通信管理サーバ12は、ゲーム装置18から対戦ゲームやチャットなどの通信相手のマッチングや検索の要求を受け付け、通信相手を決定する。そして、端末間においてP2Pの通信路が確立されるまでの間、端末間の通信を仲介する。   The communication management server 12 manages communication between game devices. The communication management server 12 receives a request for matching or searching for a communication partner such as a battle game or chat from the game device 18 and determines a communication partner. The communication between the terminals is mediated until the P2P communication path is established between the terminals.

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 game device 18, the IP address on the WAN side of the router 16 to which the game device 18 is connected. Then, the port number assigned for communication of the game device 18 is returned to the game device 18.

ルータ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 router 16 controls communication between a plurality of game apparatuses 18 connected downstream and an upstream network. The router 16 functions as a DHCP (Dynamic Host Configuration Protocol) server that assigns different private IP addresses to a plurality of game devices 18 connected downstream, and the private IP addresses assigned to the game devices 18 and the router 16 itself. A NAT (Network Address Translation) function that enables mutual communication through the Internet 20 from a game device 18 that is assigned only with a private IP address by mutually converting the global IP address assigned to the device. In addition, a packet filtering function for controlling whether or not a packet transmitted from the game device 18 to the Internet 20 or a packet transmitted from the Internet 20 to the game device 18 is allowed to pass is realized.

ゲーム装置18は、ルータ16を介してインターネット20に接続し、インターネット20を介したデータの送受信を行うことにより、他のゲーム装置18との間で対戦ゲームやチャットなどを行う。   The game device 18 is connected to the Internet 20 via the router 16, and transmits and receives data via the Internet 20, thereby performing a battle game, a chat, and the like with the other game devices 18.

ゲーム装置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 router 16 to which the game apparatus 18 is connected are classified into the following three types.
(1) The IP address assigned to the network interface of the game apparatus 18 is the same as the global IP address on the Internet 20 side of the router 16.
(2) The IP address assigned to the network interface of the game device 18 is different from the global IP address on the Internet 20 side of the router 16 and meets any of the following conditions.
(A) The mapping policy of the router 16 does not depend on the IP address and port number of the communication partner, and the filtering policy does not depend on the IP address and port number of the communication partner.
(B) The mapping policy of the router 16 does not depend on the IP address and port number of the communication partner, and the filtering policy depends only on the IP address of the communication partner.
(C) The mapping policy of the router 16 depends only on the communication partner's IP address, and the filtering policy does not depend on the communication partner's IP address and port number.
(D) The mapping policy of the router 16 depends on the IP address and port number of the communication partner, and the filtering policy does not depend on the IP address and port number of the communication partner.
(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 routers 16 to which the two game devices 18 that are going to perform P2P communication are both of the type (3), it is difficult to perform P2P communication continuously. . Accordingly, the game device 18 acquires the types of the router 16 to which the own device is connected in advance and the type of the router 16 to which the communication device game device 18 is connected. You may alert | report that communication cannot be performed. However, in this embodiment, even in such a case, in order to increase the possibility that P2P communication can be performed between terminals, the game apparatuses 18 on their own networks prior to P2P communication. A technique is proposed in which a plurality of candidates that can be used as identifiers are notified to each other, and packets that can be transmitted and received on a trial basis are searched for candidates that can be communicated. Thereby, the P2P communication path between the game apparatuses 18 can be established more reliably, and the convenience of inter-terminal communication can be improved.

図2は、通信装置の一例であるゲーム装置18の構成を示す。ゲーム装置18は、ネットワークインタフェース30、通信制御部40、ゲーム実行部60、入力部62、画像処理部66、及び表示装置68を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。   FIG. 2 shows a configuration of the game apparatus 18 which is an example of a communication apparatus. The game device 18 includes a network interface 30, a communication control unit 40, a game execution unit 60, an input unit 62, an image processing unit 66, and a display device 68. In terms of hardware components, these configurations are realized by a CPU of a computer, a memory, a program loaded in the memory, and the like, but here, functional blocks realized by their cooperation are illustrated. Accordingly, those skilled in the art will understand that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof.

入力部62は、ゲームコントローラから入力されるユーザによる操作指示を受け付ける。ゲーム実行部60は、入力部62が受け付けたユーザからの操作指示に基づいてゲームプログラムを実行し、ゲームを進行させる。画像処理部66は、ゲーム実行部60により実行されるゲームの表示画面を生成して、表示装置68に表示させる。   The input unit 62 receives an operation instruction from the user input from the game controller. The game execution unit 60 executes the game program based on the operation instruction from the user received by the input unit 62 and advances the game. The image processing unit 66 generates a display screen for the game executed by the game execution unit 60 and causes the display device 68 to display the display screen.

通信制御部40は、候補取得部41、候補通知部42、応答受信部43、識別子決定部44、識別子通知部45、候補受信部46、応答送信部47、識別子受信部48、仮想ソケット管理部49、パケット送信部50、及びパケット受信部51を含む。   The communication control unit 40 includes a candidate acquisition unit 41, a candidate notification unit 42, a response reception unit 43, an identifier determination unit 44, an identifier notification unit 45, a candidate reception unit 46, a response transmission unit 47, an identifier reception unit 48, and a virtual socket management unit. 49, a packet transmission unit 50, and a packet reception unit 51.

候補取得部41は、通信相手のゲーム装置18が、ネットワークを介して自装置へデータを送信する際に、送信先として設定されるべき自装置の識別子の候補を複数取得する。本実施の形態では、識別子の例として、IPアドレスとポート番号を組み合わせたソケットを使用する。   The candidate acquisition unit 41 acquires a plurality of identifier candidates for the own device to be set as a transmission destination when the communication partner game device 18 transmits data to the own device via the network. In the present embodiment, a socket in which an IP address and a port number are combined is used as an example of an identifier.

候補取得部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 candidate acquisition unit 41 first acquires an IP address and a port number assigned to the network interface 30 of the own device, and sets the acquired IP address and port number as a candidate “local”. Subsequently, if the router 16 to which the own device is connected supports UPnP (Universal Plug and Play), the candidate acquisition unit 41 tries UPnP “AddPortMapping”, and the game device 18 and the other device. The router 16 is requested to add a predetermined fixed port number as a port number for communication. Furthermore, the candidate acquisition unit 41 accesses the STUN server 14 and acquires the IP address and port number on the Internet 20 side of the router 16 to which the own device is connected. When the acquired IP address and port number are different from the candidate “local”, the candidate acquisition unit 41 sets the acquired IP address and port number to the candidate “stun”. In addition, the candidate acquisition unit 41 inquires of the STUN server 14 whether the port number requested to be added to the router 16 is accessible from the outside. When this port number is accessible from the outside and is different from the candidate “stun”, the candidate acquisition unit 41 sets the IP address on the Internet 20 side of the router 16 and the port number added by UPnP as the candidate “static”. set.

候補通知部42は、候補取得部41が取得した複数の候補を通信相手のゲーム装置18へ通知して、応答データの送信を要求する。候補通知部42は、通信管理サーバ12を介して通信相手のゲーム装置18へ候補を通知してもよい。また、通信管理サーバ12へ候補を通知し、通信管理サーバ12から通信相手のゲーム装置18へ候補を通知するよう依頼してもよい。これにより、候補通知部42が通信相手のゲーム装置18のIPアドレスやポート番号などを取得していなくても、自装置のIPアドレスやポート番号の候補を通信相手のゲーム装置18へ通知することができる。   The candidate notification unit 42 notifies the communication partner game device 18 of the plurality of candidates acquired by the candidate acquisition unit 41 and requests transmission of response data. The candidate notification unit 42 may notify the communication partner game device 18 of the candidate via the communication management server 12. Further, the communication management server 12 may be notified of the candidate, and the communication management server 12 may be requested to notify the communication partner game device 18 of the candidate. Thereby, even if the candidate notification unit 42 does not acquire the IP address or port number of the game device 18 of the communication partner, the candidate of the IP address or port number of the own device is notified to the game device 18 of the communication partner. Can do.

候補受信部46は、通信相手のゲーム装置18から、そのゲーム装置18へデータを送信する際に、送信先として設定すべき識別子の候補を受信してテーブルに保持する。通信相手のゲーム装置18との間で、互いに識別子の候補を送受信すると、それぞれのゲーム装置18の接続状態は「PENDING」となる。つづいて、通信相手のゲーム装置18との間で接続確認を行い、通信を確立する処理を行う。   The candidate receiving unit 46 receives identifier candidates to be set as transmission destinations and stores them in a table when data is transmitted from the communication partner game device 18 to the game device 18. When identifier candidates are mutually transmitted and received with the game device 18 of the communication partner, the connection state of each game device 18 becomes “PENDING”. Subsequently, a connection confirmation is performed with the communication partner game device 18 to establish communication.

応答受信部43は、通信相手のゲーム装置18に通知した複数の候補が送信先に設定された応答データを、ネットワークを介して受信する。応答受信部43は、タイマなどを利用して、候補通知部42が通信相手のゲーム装置18へ候補を通知してから、応答データを受信するまでに要した時間を計測してもよい。これにより、通信を行うアプリケーションは、計測された時間をもとに、通信相手のゲーム装置18との通信に要する時間を推測することができる。   The response receiver 43 receives response data in which a plurality of candidates notified to the communication partner game device 18 are set as transmission destinations via the network. The response receiving unit 43 may measure the time required until the response data is received after the candidate notification unit 42 notifies the communication device game device 18 of the candidate using a timer or the like. Thereby, the application which communicates can estimate the time required for communication with the game device 18 of a communication other party based on the measured time.

応答送信部47は、通信相手のゲーム装置18から受信した識別子の候補を送信先に設定した応答データを、ネットワークを介して送信する。ここで、応答送信部47は、応答受信部43が通信相手のゲーム装置18から受信した応答データの送信元の識別子として、候補受信部46が受信した識別子の候補とは異なる識別子が設定されていた場合、識別子を候補「derived」にセットし、追加した候補「derived」を送信先に設定した応答データも送信する。   The response transmission unit 47 transmits the response data in which the identifier candidate received from the game device 18 of the communication partner is set as the transmission destination via the network. Here, in the response transmission unit 47, an identifier different from the identifier candidate received by the candidate reception unit 46 is set as the identifier of the transmission source of the response data received by the response reception unit 43 from the game device 18 as the communication partner. In this case, the identifier is set to the candidate “derived”, and the response data in which the added candidate “derived” is set as the transmission destination is also transmitted.

識別子決定部44は、応答受信部43が受信した応答データに送信先として設定された候補の中から、送信先として設定されるべき自装置の識別子を決定する。識別子決定部44は、候補「local」にセットしたIPアドレスとポート番号が送信先として設定された応答データを受信すると、そのIPアドレスとポート番号を優先的に送信先として設定されるべき識別子に決定する。   The identifier determination unit 44 determines the identifier of the own device to be set as the transmission destination from the candidates set as the transmission destination in the response data received by the response reception unit 43. When receiving the response data in which the IP address and the port number set in the candidate “local” are set as the transmission destination, the identifier determination unit 44 sets the IP address and the port number as an identifier to be set as the transmission destination with priority. decide.

図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 game device 18a and the game device 18c, it is necessary to communicate via the Internet 20, so when the game device 18c transmits response data to the game device 18a, Even if the private IP address of the game apparatus 18a is set as the transmission destination, the game apparatus 18a is not reached. In this case, it is necessary to set the global IP address on the Internet 20 side of the router 16a to which the game apparatus 18a is connected as a transmission destination. Therefore, the response data does not reach the game apparatus 18a unless the candidate is “stun” or “static”.

しかしながら、ゲーム装置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 game device 18a and the game device 18b, the game device 18a and the game device 18b are connected to the same router 16a and can communicate without going through the Internet 20. Therefore, the response data in which the private IP address of the game apparatus 18a is set as the transmission destination also reaches the game apparatus 18a. In this case, there is a possibility that the response data in which the candidate “stun” or the candidate “static” in which the global IP address on the Internet 20 side of the router 16a is set is set as the transmission destination also reaches the game device 18a. Since it is once sent from the router 16a to the Internet 20 and reaches the game device 18a again via the router 16a, there is a possibility that the communication path becomes unnecessarily long and the communication time becomes long. Therefore, when two game devices 18 that perform P2P communication exist in the same LAN, that is, when response data in which the candidate “local” is set as the transmission destination is received by the response reception unit, that is given priority. adopt. Thereby, the time required for communication can be shortened.

ルータ16bには、ゲーム装置18cのみが接続されているが、この場合、ゲーム装置18cのネットワークインタフェース30に、ルータ16bのインターネット20側のグローバルIPアドレスが割り当てられることがある。このとき、ルータ16bのDHCPサーバ機能とNAT機能は停止されている。この場合、候補「local」には、プライベートIPアドレスではなく、グローバルIPアドレスがセットされている。この場合であっても、候補「local」が送信先として設定された応答データが応答受信部43により受信された場合、それを優先的に採用してもよい。   Only the game device 18c is connected to the router 16b. In this case, a global IP address on the Internet 20 side of the router 16b may be assigned to the network interface 30 of the game device 18c. At this time, the DHCP server function and the NAT function of the router 16b are stopped. In this case, not the private IP address but the global IP address is set in the candidate “local”. Even in this case, when response data in which the candidate “local” is set as the transmission destination is received by the response receiving unit 43, it may be preferentially adopted.

応答受信部43が所定時間待機しても候補「local」が送信先として設定された応答データを受信しなかった場合、他の候補が送信先として設定された応答データを受信していたときは、それを採用する。他の複数の候補の応答データを受信していたときは、最初に応答データを受信した候補を優先的に採用してもよい。また、複数回試行して、平均通信時間が最小であった候補を優先的に採用してもよい。また、複数回試行して、通信エラーの発生回数が最小であった候補を優先的に採用してもよい。   When the response receiver 43 has not received the response data set as the transmission destination even when waiting for a predetermined time, when other candidates have received the response data set as the transmission destination Adopt it. When the response data of a plurality of other candidates is received, the candidate that received the response data first may be preferentially adopted. Further, a candidate having the minimum average communication time may be preferentially adopted after a plurality of trials. Alternatively, a candidate that tried a plurality of times and had the smallest number of communication errors may be preferentially adopted.

識別子通知部45は、識別子決定部44が決定した自装置の識別子を通信相手のゲーム装置18へ通知する。識別子通知部45は、通信管理サーバ12を介して、決定した識別子を通信相手のゲーム装置18へ通知してもよい。   The identifier notification unit 45 notifies the communication device game device 18 of the identifier of the own device determined by the identifier determination unit 44. The identifier notification unit 45 may notify the communication device game device 18 of the determined identifier via the communication management server 12.

識別子受信部48は、通信相手のゲーム装置18から、送信先として設定すべきと決定された識別子を受信する。識別子受信部48は、受信した識別子をテーブルに登録する。以降、パケット送信部50が通信相手のゲーム装置18へパケットを送信する際に、この識別子が送信先に設定される。通信相手のゲーム装置18との間で、互いに識別子を送受信すると、それぞれのゲーム装置18の接続状態は「ACTIVE」となり、通信路が確立され、以降、P2P通信が可能となる。   The identifier receiving unit 48 receives an identifier determined to be set as a transmission destination from the communication partner game device 18. The identifier receiving unit 48 registers the received identifier in the table. Thereafter, when the packet transmitting unit 50 transmits a packet to the game device 18 of the communication partner, this identifier is set as the transmission destination. When identifiers are transmitted to and received from the communication partner game device 18, the connection state of each game device 18 becomes “ACTIVE”, a communication path is established, and thereafter, P2P communication is possible.

図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 candidate acquisition unit 41 of the game device 18a acquires a plurality of candidates for the identifier of the own device to be set as a transmission destination when the game device 18b of the communication partner transmits data to the own device via the network. (S10). Subsequently, the candidate notification unit 42 notifies the acquired candidate to the communication partner game device 18b (S12). When receiving the candidate, the candidate receiving unit 46 of the game device 18b registers the candidate in the table (S14). And the response transmission part 47 transmits the response data which set the received candidate as a transmission destination (S16). The response receiving unit 43 of the game device 18a receives the response data transmitted from the game device 18b (S18). When the response receiving unit 43 receives response data in which the candidate “local” is set as the transmission destination (Y in S20), the identifier determination unit 44 determines the candidate “local” as an identifier to be set as the transmission destination. (S22). When the response receiving unit 43 does not receive the response data in which the candidate “local” is set as the transmission destination (N in S20), the identifier determination unit 44 sets the transmission data from the candidates that have received the response data. An identifier to be performed is determined (S24). The identifier notifying unit 45 notifies the game device 18b of the determined identifier (S26). The identifier receiving unit 48 of the game device 18b registers the notified identifier in a table (S28), and sets the notified identifier as a transmission destination in subsequent communication.

仮想ソケット管理部49は、複数のアプリケーションが同一のポート番号を共有するために、複数のアプリケーションのそれぞれに対して仮想ソケットを割り当て、仮想ソケットに付与された仮想ポート番号を介した通信を管理する。ゲーム装置18において、複数のアプリケーションが並行して他のゲーム装置18と通信を行う場合、それぞれのアプリケーションが独自に上述した機能を用いて通信路を確立すると、状況によって異なる識別子が採用されることがあり、あるアプリケーションはP2Pで通信可能であるのに、別のアプリケーションは通信不可能であるという状態が生じうる。このような事態を避けるために、上述した機能により識別子が決定されると、その識別子を複数のアプリケーションが共有して利用できるようにする。そのために、仮想ソケット管理部49は、通信を行うアプリケーションに対して互いに異なる仮想ソケットを割り当て、仮想ポート番号を管理テーブルに登録する。   The virtual socket management unit 49 allocates a virtual socket to each of the plurality of applications so that a plurality of applications share the same port number, and manages communication via the virtual port number assigned to the virtual socket. . In the game device 18, when a plurality of applications communicate with the other game device 18 in parallel, when each application independently establishes a communication path using the above-described function, different identifiers are adopted depending on the situation. There may be a situation in which one application can communicate with P2P while another application cannot communicate. In order to avoid such a situation, when an identifier is determined by the above-described function, the identifier can be shared and used by a plurality of applications. For this purpose, the virtual socket management unit 49 assigns different virtual sockets to applications that perform communication, and registers virtual port numbers in the management table.

図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 socket management unit 49 is newly requested to communicate with another device from the game execution unit 60 and applications 64a and 64b (hereinafter simply referred to as “application 64”) that communicate with other devices. Then, a virtual socket is assigned to the application 64. The virtual socket management unit 49 registers the virtual port number of the virtual socket assigned to the application 64 and the ID for identifying the application 64 in the management table 53 in association with each other. In the example of FIG. 4, a virtual port 52a is assigned to the game execution unit 60, a virtual port 52b is assigned to the application 64a, and a virtual port 52c is assigned to the application 64b. The virtual socket management unit 49 may reserve a range of virtual port numbers to be allocated to the operation system of the game apparatus 18 and limit the range of virtual port numbers to be allocated to the application 64.

仮想ソケット管理部49は、アプリケーション64から送信データを受け取ると、仮想ソケットを管理するための仮想ソケットヘッダを送信データに付加して仮想ソケットパケットを生成し、パケット送信部50へ送る。パケット送信部50は、仮想ソケット管理部49が生成した仮想ソケットパケットにUDPヘッダやIPヘッダなどを付加して送信パケットを生成し、ルータ16へ送出する。このとき、パケット送信部50は、送信先のアドレスに、識別子受信部48が受信した通信相手のゲーム装置18の識別子を設定する。ここでは、UDPによりパケットを送受信する例について説明するが、TCPやその他の通信プロトコルでも同様である。   When receiving the transmission data from the application 64, the virtual socket management unit 49 adds a virtual socket header for managing the virtual socket to the transmission data, generates a virtual socket packet, and sends it to the packet transmission unit 50. The packet transmission unit 50 adds a UDP header or an IP header to the virtual socket packet generated by the virtual socket management unit 49 to generate a transmission packet, and sends it to the router 16. At this time, the packet transmitting unit 50 sets the identifier of the game device 18 of the communication partner received by the identifier receiving unit 48 as the destination address. Here, an example in which packets are transmitted and received by UDP will be described, but the same applies to TCP and other communication protocols.

図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 socket management unit 49. The UDP packet 80 includes a UDP header 81 and one or more virtual socket packets 82 stored in the payload of the UDP packet 80. The virtual socket packet 82 includes a virtual socket header 83 and variable length data 89. A plurality of virtual socket packets 82 may be packaged in one UDP packet 80.

仮想ソケットヘッダ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 virtual socket header 83 is assigned to the start flag 84, which is a specific data string indicating the start of the virtual socket header 83, the data type 85 of the data 89, the data length 86 of the data 89, and the transmission source application 64. A transmission source virtual port number 87 and a destination virtual port number 88 assigned to the transmission destination application 64 are included. When the virtual port number of the destination application 64 is unknown at the time of the first transmission or the like, information for specifying the application 64 may be stored in the destination virtual port number 88. The data type 85 includes, for example, normal data, encrypted data, signed data, encrypted signed data, and the like. In the case of signed data, the virtual socket header 83 may further store a signature. In this case, since the data length of the virtual socket header 83 differs depending on the presence or absence of a signature, the data length 86 includes a virtual socket header after the data length 86 in order to make it possible to uniquely specify the start position of the data 89. A value obtained by adding the data length of 83 and the data length of data 89 may be stored. Alternatively, an area for storing the data length of the virtual socket header 83 may be provided in the virtual socket header 83.

パケット受信部51は、通信相手のゲーム装置18からパケットを受信すると、UDPパケット80のペイロードを解析して、仮想ソケットヘッダ83の存在を示す開始フラグ84が格納されているか否かを確認する。仮想ソケットヘッダ83が存在すれば、宛先仮想ポート番号88をもとに管理テーブル53を検索して送信先のアプリケーション64を特定し、そのアプリケーション64へ受信データを送る。   When receiving a packet from the communication partner game device 18, the packet receiving unit 51 analyzes the payload of the UDP packet 80 and confirms whether or not the start flag 84 indicating the presence of the virtual socket header 83 is stored. If the virtual socket header 83 exists, the management table 53 is searched based on the destination virtual port number 88 to identify the transmission destination application 64, and the received data is sent to the application 64.

図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 socket management unit 49 searches the management table 53 and acquires the virtual port number assigned to the application 64 (S32). If no virtual socket is assigned to the application 64 (N in S34), a new virtual socket is assigned to the application 64, and the ID and virtual port number of the application 64 are registered in the management table 53 (S35). ). The virtual socket manager 49 sets the virtual socket header 83 and generates the virtual socket packet 82 (S36). The packet transmission unit 50 adds a UDP header, an IP header, etc. to the generated virtual socket packet 82 and transmits it to the other game device 18 (S38).

仮想ソケット管理部49は、他のゲーム装置18から受信したUDPパケット80を受け取ると(S40)、受け取ったUDPパケット80のペイロードの先頭に開始フラグ84がセットされているか否かを確認する。開始フラグ84がセットされていれば、仮想ソケットパケット82が格納されているので、仮想ソケットヘッダ83を解析して宛先仮想ポート番号88を取得し(S42)、管理テーブル53を検索して送信先のアプリケーション64を特定し、そのアプリケーションへ受信データを送る(S44)。   When receiving the UDP packet 80 received from the other game device 18 (S40), the virtual socket management unit 49 checks whether or not the start flag 84 is set at the head of the payload of the received UDP packet 80. If the start flag 84 is set, the virtual socket packet 82 is stored, so the virtual socket header 83 is analyzed to acquire the destination virtual port number 88 (S42), the management table 53 is searched and the transmission destination is searched. The application 64 is specified, and the received data is sent to the application (S44).

このような技術により、いったん通信路が確立された識別子を用いて、複数の通信を並行して行うことが可能となるので、各アプリケーション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 other game devices 18. P2P communication can be performed. In addition, since the communication control unit 40 collectively performs establishment of such a communication path and management of a plurality of communications using the communication path, the application development entity considers such problems related to communication control. The application 64 using P2P communication can be developed without doing so. Thereby, the man-hour of development can be reduced.

パケット送信部50は、所定時間、例えば20秒ごとに、通信相手のゲーム装置18へキープアライブパケットを送信する。これにより、通信相手のゲーム装置18へ、自装置がアライブであることを通知することができるとともに、自装置が接続されたルータ16のNATテーブルを更新して通信路を継続的に確保することができる。   The packet transmission unit 50 transmits a keep alive packet to the communication partner game device 18 at a predetermined time, for example, every 20 seconds. As a result, it is possible to notify the communication partner game device 18 that the device is alive, and to continuously secure a communication path by updating the NAT table of the router 16 to which the device is connected. Can do.

以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。   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.

実施の形態に係る通信システムの基本的な構成を示す図である。It is a figure which shows the basic composition of the communication system which concerns on embodiment. 実施の形態に係るゲーム装置の構成を示す図である。It is a figure which shows the structure of the game device which concerns on embodiment. 実施の形態に係る通信制御方法の手順を示すフローチャートである。It is a flowchart which shows the procedure of the communication control method which concerns on embodiment. 仮想ソケットを用いた通信について説明するための図である。It is a figure for demonstrating the communication using a virtual socket. 仮想ソケット管理部において生成される仮想ソケットパケットのデータ構造を示す図である。It is a figure which shows the data structure of the virtual socket packet produced | generated in a virtual socket management part. 実施の形態に係る通信制御方法の手順を示すフローチャートである。It is a flowchart which shows the procedure of the communication control method which concerns on embodiment.

符号の説明Explanation of symbols

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 SYMBOLS 10 Communication system, 12 Communication management server, 14 STUN server, 16 router, 18 Game device, 20 Internet, 30 Network interface, 40 Communication control part, 41 Candidate acquisition part, 42 Candidate notification part, 43 Response reception part, 44 Identifier determination 45, identifier notification unit, 46 candidate reception unit, 47 response transmission unit, 48 identifier reception unit, 49 virtual socket management unit, 50 packet transmission unit, 51 packet reception unit, 60 game execution unit, 62 input unit, 66 image processing Part, 68 display device.

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:
前記候補が、自装置のプライベートIPアドレスを含む場合、前記識別子決定部は、前記自装置のプライベートIPアドレスを優先的に前記送信先として設定されるべき自装置の識別子に決定することを特徴とする請求項1に記載の通信装置。   When the candidate includes a private IP address of the own device, the identifier determining unit determines the private IP address of the own device as an identifier of the own device to be set as the transmission destination preferentially. The communication device according to claim 1. 前記候補通知部は、端末間の通信を管理する管理サーバを介して、前記候補を前記通信相手の装置へ通知することを特徴とする請求項1又は2に記載の通信装置。   The communication apparatus according to claim 1 or 2, wherein the candidate notification unit notifies the communication partner apparatus of the candidate via a management server that manages communication between terminals. 通信相手の装置がネットワークを介して自装置へデータを送信する際に送信先として設定されるべき自装置の識別子の候補を複数取得するステップと、
取得した複数の前記候補を前記通信相手の装置へ通知して応答データの送信を要求するステップと、
前記通信相手の装置に通知した複数の前記候補が送信先に設定された前記応答データを、前記ネットワークを介して受信するステップと、
受信した前記応答データに送信先として設定された前記候補の中から、前記送信先として設定されるべき自装置の識別子を決定するステップと、
決定した自装置の識別子を前記通信相手の装置へ通知するステップと、
決定した自装置の識別子に対して、複数の仮想ソケットを割り当て、同一の前記識別子を用いた複数の通信を管理するステップと、
を含むことを特徴とする通信制御方法。
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.
JP2006302548A 2006-11-08 2006-11-08 COMMUNICATION DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM Active JP4425257B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (7)

* Cited by examiner, † Cited by third party
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