JP4269226B2 - 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体 - Google Patents

情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体 Download PDF

Info

Publication number
JP4269226B2
JP4269226B2 JP2003385305A JP2003385305A JP4269226B2 JP 4269226 B2 JP4269226 B2 JP 4269226B2 JP 2003385305 A JP2003385305 A JP 2003385305A JP 2003385305 A JP2003385305 A JP 2003385305A JP 4269226 B2 JP4269226 B2 JP 4269226B2
Authority
JP
Japan
Prior art keywords
information
address
network
address information
information processing
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.)
Expired - Fee Related
Application number
JP2003385305A
Other languages
English (en)
Other versions
JP2005151142A (ja
JP2005151142A5 (ja
Inventor
俊哉 池長
幸彦 青木
真一 河野
武史 小澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Corp filed Critical Sony Corp
Priority to JP2003385305A priority Critical patent/JP4269226B2/ja
Priority to US10/983,555 priority patent/US7542466B2/en
Priority to KR20040092576A priority patent/KR101055048B1/ko
Publication of JP2005151142A publication Critical patent/JP2005151142A/ja
Publication of JP2005151142A5 publication Critical patent/JP2005151142A5/ja
Application granted granted Critical
Publication of JP4269226B2 publication Critical patent/JP4269226B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2578NAT traversal without involvement of the NAT server

Description

本発明は、情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体に関し、特に、より確実にNAT越えを実現できるようにする情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体に関する。
現在インターネットではルーティングプロトコルとしてInternet Protocol(以下、IPと称する)が用いられている。もっとも普及しているIPのバージョンは、今のところ「4」となっており(以下、IPv4と称する)、このバージョンで利用される送信元アドレスや送信先アドレスのビット数は「32」である。インターネット等に代表されるグローバルネットワークにおいて、そのIPv4に基づいて32ビットのアドレス(以下、IPv4アドレスと称する)を、各通信端末に対してユニークに割り当てておくことにより、それらの装置間で行われる通信の通信データの送信元アドレスや送信先アドレスが絶対的に識別可能となるようになされている。
しかしながら、インターネット利用率の急増化から、IPv4アドレスが足りなくなる恐れが生じるようになった。そこで、これを解決するために、IETF(Internet Engineering Task Force)では、IPのバージョンとして「6」であるプロトコル(以下、IPv6と称する)を策定し、普及を開始し始めている。しかし、実際には、インターネットで利用するルーティングプロトコルをIPv6へ全面移行するためには、多大な時間やコストが必要であり、完全にこの問題を解決することは困難である。
そこで、既存のIPv4を利用しつつ、そのアドレスを拡大させる手法として、ローカル(プライベート)な性質を持つアドレス空間「プライベートアドレス」を用いる方法が提案された。
すなわち、プライベートアドレスは、IPv4アドレスのように、グローバルなネットワークにおける各端末装置に対して、ユニーク(唯一無二に)に割り振られるアドレス(以下、グローバルアドレスと称する)と違い、所定の限られた範囲のネットワーク(プライベートネットワーク)において各端末に対して割り当てられるアドレスである。このプライベートネットワークに接続され、プライベートアドレスが割り当てられた各通信端末が、そのプライベートネットワークに割り当てられた1つのグローバルアドレスを共有するのである。
従って、プライベートネットワークの通信端末装置が、このプライベートアドレスを用いてインターネットにあるグローバルアドレスを持つ他の通信端末装置と通信を行う場合、そのプライベートアドレスをグローバルアドレスに変換する処理が必要となる。それを実現する方法として、NAT(Network Address Translation)が考えられており、この場合、各通信端末は、NATを介してグローバルネットワークに接続される。
また、アドレスの下に設けられたサブ(補助)アドレスであるポートを利用し、プライベートネットワークの通信端末に割り当てられたプライベートアドレスと、通信に用いるポート(すなわち、ソケット)がグローバルアドレスとポートへ変換されるNAPT(Network Address Port Translation)による方法も考えられている。
しかし、プライベートネットワーク内のプライベートアドレスに接続されたユーザ端末を使って、ビデオチャットやオンラインゲームなどのようにユーザ同士が直接通信する必要があるアプリケーション(いわゆるP2P(Peer to Peer)アプリケーション)を実行する場合、ユーザ端末自身が、NAT(またはNAPT)により変換されたグローバルアドレスとポートを取得して通信する、いわゆるNAT越えが必要になる。
このNAT越えを解決するために、UPnP(登録商標)という技術が考えられている。UPnPは、UPnPフォーラムにより標準化されたプロトコルに基づく機能であり、この機能を実装するNATの配下のプライベートネットワークに接続される通信端末は、UPnPで規定された通信を行うことによりNATにより変換されたグローバルアドレスとポートを取得することができる。
また、NAT越えを解決する他の方法として、STUN(Simple Traversal of UDP through NATs)という技術も考えられている。STUNによれば、NATの配下のローカルエリアネットワークに接続される通信端末は、グローバルネットワークに接続されるサーバ(STUNサーバ)から取得された情報に基づいて、NATにより変換されたグローバルアドレスを取得する。
また、グローバルアドレスで管理する端末と、プライベートアドレスで管理される端末が相互に通信を行う場合、NATとともに、リレーサーバとルータを併用することにより、P2P通信を提供する技術も提案されている(例えば、特許文献1参照)。
特開2001−345841号公報
しかしながら、ルータとしてUPnPに対応したNAT(ルータ)を用いる場合、多大な時間やコストが必要と想定される。すなわち、UPnPに対応していないルータが既に多数存在するので、全てUPnPに対応したルータに交換させることによって、NAT越えを完全に解決しようとすることは現実的ではない。
また、STUNにより、NATにより変換されるグローバルアドレスとポート番号を取得することはできるが、NATの種類にかかわらず、適確にポート番号を予測することはできない。このためTCP通信に必要となるTCP(Transmission Control Protocol)のコネクションを提供することができず、場合によっては、P2Pの通信を提供できないおそれがあるという課題があった。
本発明はこのような状況に鑑みてなされたものであり、低コストで、かつ確実にNAT越えを実現できるようにするものである。
本発明の情報通信システムは、第1のネットワークに接続されるとともに、アドレス情報を変換する第1のアドレス情報変換装置を介して第2のネットワークに接続される第1の情報処理装置と、第3のネットワークに接続されるとともに、アドレス情報を変換する第2のアドレス情報変換装置を介して第2のネットワークに接続される第2の情報処理装置と、第2のネットワークに接続され、第1の情報処理装置および第2の情報処理装置の第2のネットワーク上のアドレス情報を管理する情報管理装置と、第2のネットワークに接続され、第1の情報処理装置と第2の情報処理装置に第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置からなる情報通信システムであって、第1の情報処理装置は、第1のアドレス情報変換装置が第1の情報処理装置の第2のネットワーク上のアドレスを通知するアドレス通知機能を有しているか否かを判定する判定手段と、判定手段により、第1のアドレス情報変換装置がアドレス通知機能を有していると判定された場合、アドレス通知機能により第1の情報処理装置の第2のネットワーク上のアドレス情報を取得して、取得したアドレス情報を情報管理装置に登録する第1の登録手段と、判定手段により、第1のアドレス情報変換装置がアドレス通知機能を有していないと判定された場合、アドレス情報提供装置から提供される情報に基づいて、第1の情報処理装置の第2のネットワーク上のアドレス情報を予測して、予測したアドレス情報を情報管理装置に登録する第2の登録手段とを備え、情報管理装置は、第1または第2の情報処理装置の第2のネットワーク上のアドレス情報を受信する受信手段と、受信手段により受信したアドレス情報を記憶する記憶手段と、記憶手段に記憶されたアドレス情報を第1または第2の情報処理装置に提供する提供手段とを備え、第1の情報処理装置は、情報管理装置から第2の情報処理装置の第2のネットワーク上のアドレス情報を取得して第2の情報処理装置と通信することを特徴とする。
本発明の情報通信方法は、第1のネットワークに接続されるとともに、アドレス情報を変換する第1のアドレス情報変換装置を介して第2のネットワークに接続される第1の情報処理装置と、第3のネットワークに接続されるとともに、アドレス情報を変換する第2のアドレス情報変換装置を介して第2のネットワークに接続される第2の情報処理装置と、第2のネットワークに接続され、第1の情報処理装置および第2の情報処理装置の第2のネットワーク上のアドレス情報を管理する情報管理装置と、第2のネットワークに接続され、第1の情報処理装置と第2の情報処理装置に第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置からなる情報通信システムの情報通信方法であって、第1の情報処理装置は、第1のアドレス情報変換装置が第1の情報処理装置の第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かを判定し、第1のアドレス情報変換装置がアドレス情報通知機能を有していると判定された場合、アドレス情報通知機能により第1の情報処理装置の第2のネットワーク上のアドレス情報を取得し、取得したアドレス情報を情報管理装置に登録し、第1のアドレス情報変換装置がアドレス情報通知機能を有していないと判定された場合、アドレス情報提供装置から提供される情報に基づいて、第1の情報処理装置の第2のネットワーク上のアドレス情報を予測し、予測したアドレス情報を情報管理装置に登録し、情報管理装置は、第1または第2の情報処理装置の第2のネットワーク上のアドレス情報を受信し、受信したアドレス情報を記憶し、記憶しているアドレス情報を第1または第2の情報処理装置に提供し、第1の情報処理装置は、情報管理装置から第2の情報処理装置の第2のネットワーク上のアドレス情報を取得して第2の情報処理装置と通信することを特徴とする。
本発明の情報通信システム及び方法においては、第1の情報処理装置により、第1のアドレス情報変換装置が第1の情報処理装置の第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かが判定され、第1のアドレス情報変換装置がアドレス情報通知機能を有していると判定された場合、アドレス情報通知機能により第1の情報処理装置の第2のネットワーク上のアドレス情報が取得され、取得されたアドレス情報が情報管理装置に登録され、第1のアドレス情報変換装置がアドレス情報通知機能を有していないと判定された場合、アドレス情報提供装置から提供される情報に基づいて、第1の情報処理装置の第2のネットワーク上のアドレス情報が予測され、予測されたアドレス情報が情報管理装置に登録される。また、情報管理装置により、第1または第2の情報処理装置の第2のネットワーク上のアドレス情報が受信され、受信されたアドレス情報が記憶され、記憶されているアドレス情報が第1または第2の情報処理装置に提供される。
本発明の情報処理装置は、第1のネットワークに接続されるとともに、アドレス情報を変換するアドレス情報変換装置を介して第2のネットワークに接続される情報処理装置であって、アドレス情報変換装置が情報処理装置の第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かを判定する判定手段と、判定手段により、アドレス情報変換装置がアドレス通知機能を有していると判定された場合、アドレス通知機能により情報処理装置の第2のネットワーク上のアドレス情報を取得し、取得したアドレス情報を第2のネットワークに接続される情報管理装置に登録する第1の登録手段と、判定手段により、アドレス情報変換装置がアドレス通知機能を有していないと判定された場合、第2のネットワークに接続され、第1のネットワークに接続されている情報処理装置の第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置から提供される情報に基づいて、情報処理装置の第2のネットワーク上のアドレス情報を予測し、予測したアドレス情報を情報管理装置に登録する第2の登録手段とを備えることを特徴とする。
前記第1および第2の登録手段は、アドレス情報変換装置がアドレス情報通知機能を有するか否かを表す識別情報を設定する設定手段を備え、情報管理装置に、識別情報をさらに登録するようにすることができる。
第3のネットワークに接続されるとともに、他のアドレス情報変換装置を介して第2のネットワークに接続される他の情報処理装置と通信するとき、他の情報処理装置との通信に用いられるプロトコルを判定するプロトコル判定手段と、プロトコル判定手段により他の情報処理装置との通信に用いられるプロトコルがTCPであると判定された場合、他の情報処理装置とTCP通信を行うTCP通信手段と、プロトコル判定手段により他の情報処理装置との通信に用いられるプロトコルがUDPであると判定された場合、他の情報処理装置とUDP通信を行うUDP通信手段とをさらに備えるようにすることができる。
前記TCP通信手段は、情報管理装置から他の情報処理装置の第2のネットワーク上のアドレス情報および識別情報を取得する取得手段と、取得手段により取得された第2のネットワーク上のアドレス情報および識別情報に基づいて、TCPコネクションを提供するコネクション提供手段とを備えるようにすることができる。
前記コネクション提供手段は、情報処理装置の識別情報に基づいて、アドレス情報変換装置がアドレス情報通知機能を有しているか否かを判定する第1の識別情報判定手段と、他の情報処理装置の識別情報に基づいて、他のアドレス情報変換装置がアドレス情報通知機能を有しているか否かを判定する第2の識別情報判定手段とを備え、第1と第2の識別情報判定手段の判定結果に基づいてTCPコネクションを提供するようにすることができる。
前記UDP通信手段は、情報管理装置から他の情報処理装置の第2のネットワーク上のアドレス情報および識別情報を取得する取得手段と、取得手段により取得された第2のネットワーク上のアドレス情報および識別情報に基づいて、UDP通信の準備を行う通信準備手段とを備えるようにすることができる。
前記通信準備手段は、情報処理装置の識別情報に基づいて、アドレス情報変換装置がアドレス情報通知機能を有しているか否かを判定する第1の識別情報判定手段と、他の情報処理装置の識別情報に基づいて、他のアドレス情報変換装置がアドレス情報通知機能を有しているか否かを判定する第2の識別情報判定手段とを備え、第1または第2の識別情報判定手段の判定結果に基づいて、UDP通信の準備を行うようにすることができる。
本発明の情報処理方法は、第1のネットワークに接続されるとともに、アドレス情報を変換するアドレス情報変換装置を介して第2のネットワークに接続される情報処理装置の情報処理方法であって、アドレス情報変換装置が情報処理装置の第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かを判定する判定ステップと、判定ステップの処理により、アドレス情報変換装置がアドレス通知機能を有していると判定された場合、アドレス通知機能により情報処理装置の第2のネットワーク上のアドレス情報を取得し、取得したアドレス情報を第2のネットワークに接続される情報管理装置に登録する第1の登録ステップと、判定ステップの処理により、アドレス情報変換装置がアドレス通知機能を有していないと判定された場合、第2のネットワークに接続され、第1のネットワークに接続されている情報処理装置の第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置から提供される情報に基づいて、情報処理装置の第2のネットワーク上のアドレス情報を予測し、予測したアドレス情報を情報管理装置に登録する第2の登録ステップとを含むことを特徴とする。
本発明のプログラムは、第1のネットワークに接続されるとともに、アドレス情報を変換するアドレス情報変換装置を介して第2のネットワークに接続される情報処理装置のプログラムであって、アドレス情報変換装置が情報処理装置の第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かの判定を制御する判定制御ステップと、判定制御ステップの処理により、アドレス情報変換装置がアドレス通知機能を有していると判定された場合、アドレス通知機能により情報処理装置の第2のネットワーク上のアドレス情報を取得し、取得したアドレス情報を第2のネットワークに接続される情報管理装置に登録するように制御する第1の登録制御ステップと、判定制御ステップの処理により、アドレス情報変換装置がアドレス通知機能を有していないと判定された場合、第2のネットワークに接続され、第1のネットワークに接続されている情報処理装置の第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置から提供される情報に基づいて、情報処理装置の第2のネットワーク上のアドレス情報を予測し、予測したアドレス情報を前記情報管理装置に登録するように制御する第2の登録制御ステップとをコンピュータに実行させる。
本発明の記録媒体は、第1のネットワークに接続されるとともに、アドレス情報を変換するアドレス情報変換装置を介して第2のネットワークに接続される情報処理装置のプログラムが記録されている記録媒体であって、アドレス情報変換装置が情報処理装置の第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かの判定を制御する判定制御ステップと、判定制御ステップの処理により、アドレス情報変換装置がアドレス通知機能を有していると判定された場合、アドレス通知機能により情報処理装置の第2のネットワーク上のアドレス情報を取得し、取得したアドレス情報を第2のネットワークに接続される情報管理装置に登録するように制御する第1の登録制御ステップと、判定制御ステップの処理により、アドレス情報変換装置がアドレス通知機能を有していないと判定された場合、第2のネットワークに接続され、第1のネットワークに接続されている情報処理装置の第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置から提供される情報に基づいて、情報処理装置の第2のネットワーク上のアドレス情報を予測し、予測したアドレス情報を前記情報管理装置に登録するように制御する第2の登録制御ステップとをコンピュータに実行させるプログラムが記録されることを特徴とする。
本発明の情報処理装置および方法、並びにプログラムにおいては、アドレス情報変換装置が情報処理装置の第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かが判定され、アドレス情報変換装置がアドレス通知機能を有していると判定された場合、アドレス通知機能により情報処理装置の第2のネットワーク上のアドレス情報が取得され、取得されたアドレス情報が第2のネットワークに接続される情報管理装置に登録され、アドレス情報変換装置がアドレス通知機能を有していないと判定された場合、第2のネットワークに接続され、第1のネットワークに接続されている情報処理装置の第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置から提供される情報に基づいて、情報処理装置の第2のネットワーク上のアドレス情報が予測され、予測されたアドレス情報が情報管理装置に登録される。
本発明によれば、NAT越えの通信を提供することができる。特に、低コストで、かつ確実にNAT越えの通信を実現できる。
以下に本発明の実施の形態を説明するが、本明細書に記載した発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が明細書に記載されていることを確認するためのものである。従って、明細書には記載されているが、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、明細書に記載されている発明が、全て請求されていることを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出願、または追加される発明の存在を否定するものではない。
本発明により情報通信システムが提供される。この情報通信システムは、第1のネットワーク(例えば、図1のプライベートネットワーク21)に接続されるとともに、アドレス情報(例えば、IPアドレスとポート番号)を変換する第1のアドレス情報変換装置(例えば、図1のルータ41)を介して第2のネットワーク(例えば、図1のインターネット1)に接続される第1の情報処理装置(例えば、図1のローカル通信端末A)と、第3のネットワーク(例えば、図1のプライベートネットワーク22)に接続されるとともに、アドレス情報を変換する第2のアドレス情報変換装置(例えば、図1のルータ42)を介して前記第2のネットワークに接続される第2の情報処理装置(例えば、図1のローカル通信端末B)と、前記第2のネットワークに接続され、前記第1の情報処理装置および前記第2の情報処理装置の前記第2のネットワーク上のアドレス情報を管理する情報管理装置(例えば、図1の中継サーバ63)と、前記第2のネットワークに接続され、前記第1の情報処理装置と前記第2の情報処理装置に前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置(例えば、図1のSTUNサーバ61と62)からなる情報通信システムであって、前記第1の情報処理装置は、前記第1のアドレス情報変換装置が前記第1の情報処理装置の前記第2のネットワーク上のアドレスを通知するアドレス通知機能(例えば、UPnP)を有しているか否かを判定する判定手段(例えば、図6のステップS3の処理を実行する図3のミドルウェア152)と、前記判定手段により、前記第1のアドレス情報変換装置が前記アドレス通知機能を有していると判定された場合、前記アドレス通知機能により前記第1の情報処理装置の前記第2のネットワーク上のアドレス情報を取得して、取得した前記アドレス情報を前記情報管理装置に登録する第1の登録手段(例えば、図6のステップS4の処理を実行する図3のUPnPモジュール154)と、前記判定手段により、前記第1のアドレス情報変換装置が前記アドレス通知機能を有していないと判定された場合、前記アドレス情報提供装置から提供される情報(例えば、STUNサーバ61と62からの応答パケットに記述されるNATのポート番号)に基づいて、前記第1の情報処理装置の前記第2のネットワーク上のアドレス情報を予測して、予測した前記アドレス情報を前記情報管理装置に登録する第2の登録手段(例えば、図6のステップS5の処理を実行する図3のSTUNモジュール153)とを備え、前記情報管理装置は、前記第1または第2の情報処理装置の前記第2のネットワーク上の前記アドレス情報を受信する受信手段(例えば、図11のステップS61の処理を実行する図5のCPU201)と、前記受信手段により受信した前記アドレス情報を記憶する記憶手段(例えば、図11のステップS62の処理を実行する図5のCPU201)と、前記記憶手段に記憶された前記アドレス情報を前記第1または第2の情報処理装置に提供する提供手段(例えば、図15の交換情報提供処理を実行する図5のCPU201)とを備え、前記第1の情報処理装置は、前記情報管理装置から前記第2の情報処理装置の前記第2のネットワーク上のアドレス情報を取得して(例えば、図14のステップS103または図17のステップS163の処理により取得して)前記第2の情報処理装置と通信する。
本発明により情報通信方法が提供される。この情報通信方法は、第1のネットワーク(例えば、図1のプライベートネットワーク21)に接続されるとともに、アドレス情報(例えば、IPアドレスとポート番号)を変換する第1のアドレス情報変換装置(例えば、図1のルータ41)を介して第2のネットワーク(例えば、図1のインターネット1)に接続される第1の情報処理装置(例えば、図1のローカル通信端末A)と、第3のネットワーク(例えば、図1のプライベートネットワーク22)に接続されるとともに、アドレス情報を変換する第2のアドレス情報変換装置(例えば、図1のルータ42)を介して前記第2のネットワークに接続される第2の情報処理装置(例えば、図1のローカル通信端末B)と、前記第2のネットワークに接続され、前記第1の情報処理装置および前記第2の情報処理装置の前記第2のネットワーク上のアドレス情報を管理する情報管理装置(例えば、図1の中継サーバ63)と、前記第2のネットワークに接続され、前記第1の情報処理装置と前記第2の情報処理装置に前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置(例えば、図1のSTUNサーバ61と62)からなる情報通信システムの情報通信方法であって、前記第1の情報処理装置は、前記第1のアドレス情報変換装置が前記第1の情報処理装置の前記第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能(例えば、UPnP)を有しているか否かを判定し(例えば、図6のステップS3)、前記第1のアドレス情報変換装置が前記アドレス情報通知機能を有していると判定された場合、前記アドレス情報通知機能により前記第1の情報処理装置の前記第2のネットワーク上のアドレス情報を取得し、取得した前記アドレス情報を前記情報管理装置に登録し(例えば、図6のステップS4)、前記第1のアドレス情報変換装置が前記アドレス情報通知機能を有していないと判定された場合、前記アドレス情報提供装置から提供される情報(例えば、STUNサーバ61と62からの応答パケットに記述されるNATのポート番号)に基づいて、前記第1の情報処理装置の前記第2のネットワーク上のアドレス情報を予測し、予測した前記アドレス情報を前記情報管理装置に登録し(例えば、図6のステップS5の処理を実行する図3のSTUNモジュール153)、前記情報管理装置は、前記第1または第2の情報処理装置の前記第2のネットワーク上の前記アドレス情報を受信し(例えば、図11のステップS61の処理を実行する図5のCPU201)、受信した前記アドレス情報を記憶し(例えば、図11のステップS62の処理を実行する図5のCPU201)、記憶している前記アドレス情報を前記第1または第2の情報処理装置に提供し(例えば、図15の交換情報提供処理)、前記第1の情報処理装置は、前記情報管理装置から前記第2の情報処理装置の前記第2のネットワーク上のアドレス情報を取得して(例えば、図14のステップS103または図17のステップS163の処理により取得して)前記第2の情報処理装置と通信する。
本発明により情報処理装置が提供される。この情報処理装置は、第1のネットワーク(例えば、図1のプライベートネットワーク21)に接続されるとともに、アドレス情報(例えば、IPアドレスとポート番号)を変換するアドレス情報変換装置(例えば、図1のルータ41)を介して第2のネットワーク(例えば、図1のインターネット1)に接続される情報処理装置(例えば、図1のローカル通信端末A)であって、前記アドレス情報変換装置が前記情報処理装置の前記第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能(例えば、UPnP)を有しているか否かを判定する判定手段(例えば、図6のステップS3の処理を実行する図3のミドルウェア152)と、前記判定手段により、前記アドレス情報変換装置が前記アドレス通知機能を有していると判定された場合、前記アドレス通知機能により前記情報処理装置の前記第2のネットワーク上のアドレス情報を取得し、取得した前記アドレス情報を前記第2のネットワークに接続される情報管理装置(例えば、図1の中継サーバ63)に登録する第1の登録手段(例えば、図6のステップS4の処理を実行する図3のUPnPモジュール154)と、前記判定手段により、前記アドレス情報変換装置が前記アドレス通知機能を有していないと判定された場合、前記第2のネットワークに接続され、前記第1のネットワークに接続されている情報処理装置の前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置(例えば、図1のSTUNサーバ61と62)から提供される情報(例えば、STUNサーバ61と62からの応答パケットに記述されるNATのポート番号)に基づいて、前記情報処理装置の前記第2のネットワーク上のアドレス情報を予測し、予測した前記アドレス情報を前記情報管理装置に登録する第2の登録手段(例えば、図6のステップS5の処理を実行する図3のSTUNモジュール153)とを備える。
この情報処理装置は、前記第1および第2の登録手段が、前記アドレス情報変換装置が前記アドレス情報通知機能を有するか否かを表す識別情報(例えば、図8のモジュール識別子)を設定する設定手段(例えば、図7のステップS25の処理を実行する図3のUPnPモジュール154または図10のステップS44の処理を実行する図3のSTUNモジュール153)を備え、前記情報管理装置に、前記識別情報をさらに登録するようにすることができる。
この情報処理装置は、第3のネットワーク(例えば、図1のプライベートネットワーク22乃至24のいずれか)に接続されるとともに、他のアドレス情報変換装置を介して前記第2のネットワークに接続される他の情報処理装置(例えば、図1のローカル通信端末B乃至Dのいずれか)と通信するとき、前記他の情報処理装置との通信に用いられるプロトコル(例えば、TCPまたはUDP)を判定するプロトコル判定手段(例えば、図13のステップS82の処理を実行する図3のミドルウェア152)と、前記プロトコル判定手段により前記他の情報処理装置との通信に用いられるプロトコルがTCPであると判定された場合、前記他の情報処理装置とTCP通信を行うTCP通信手段(例えば、図13のステップS83の処理を実行する図3のミドルウェア152)と、前記プロトコル判定手段により前記他の情報処理装置との通信に用いられるプロトコルがUDPであると判定された場合、前記他の情報処理装置とUDP通信を行うUDP通信手段(例えば、図13のステップS84の処理を実行する図3のミドルウェア152)とをさらに備えるようにすることができる。
この情報処理装置は、前記TCP通信手段が、前記情報管理装置から前記他の情報処理装置の前記第2のネットワーク上のアドレス情報および前記識別情報を取得する取得手段(例えば、図14のステップS103の処理を実行する図3のミドルウェア152)と、前記取得手段により取得された前記第2のネットワーク上のアドレス情報および前記識別情報に基づいて、TCPコネクションを提供するコネクション提供手段(例えば、図14のステップS104の処理を実行する図3のミドルウェア152)とを備えるようにすることができる。
この情報処理装置は、前記コネクション提供手段が、前記情報処理装置の前記識別情報に基づいて、前記アドレス情報変換装置が前記アドレス情報通知機能を有しているか否かを判定する第1の識別情報判定手段(図16のステップS141の処理を実行する図3のミドルウェア152)と、前記他の情報処理装置の前記識別情報に基づいて、前記他のアドレス情報変換装置が前記アドレス情報通知機能を有しているか否かを判定する第2の識別情報判定手段(図16のステップS142またはS145の処理を実行する図3のミドルウェア152)とを備え、前記第1と第2の識別情報判定手段の判定結果に基づいてTCPコネクションを提供するようにすることができる。
この情報処理装置は、前記UDP通信手段が、前記情報管理装置から前記他の情報処理装置の前記第2のネットワーク上のアドレス情報および前記識別情報を取得する取得手段(例えば、図17のステップS163の処理を実行する図3のミドルウェア152)と、
前記取得手段により取得された前記第2のネットワーク上のアドレス情報および前記識別情報に基づいて、UDP通信の準備を行う通信準備手段(例えば、図16のステップS164の処理を実行する図3のミドルウェア152)とを備えるようにすることができる。
この情報処理装置は、前記通信準備手段が、前記情報処理装置の前記識別情報に基づいて、前記アドレス情報変換装置が前記アドレス情報通知機能を有しているか否かを判定する第1の識別情報判定手段(図18のステップS183の処理を実行する図3のミドルウェア152)と、前記他の情報処理装置の前記識別情報に基づいて、前記他のアドレス情報変換装置が前記アドレス情報通知機能を有しているか否かを判定する第2の識別情報判定手段(図18のステップS181)とを備え、前記第1または第2の識別情報判定手段の判定結果に基づいて、UDP通信の準備を行うようにすることができる。
本発明により情報処理方法が提供される。この情報処理方法は、第1のネットワーク(例えば、図1のプライベートネットワーク21)に接続されるとともに、アドレス情報(例えば、IPアドレスとポート番号)を変換するアドレス情報変換装置(例えば、図1のルータ41)を介して第2のネットワーク(例えば、図1のインターネット1)に接続される情報処理装置(例えば、図1のローカル通信端末A)の情報処理方法であって、前記アドレス情報変換装置が前記情報処理装置の前記第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能(例えば、UPnP)を有しているか否かを判定する判定ステップ(例えば、図6のステップS3)と、前記判定ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していると判定された場合、前記アドレス通知機能により前記情報処理装置の前記第2のネットワーク上のアドレス情報を取得し、取得した前記アドレス情報を前記第2のネットワークに接続される情報管理装置(例えば、図1の中継サーバ63)に登録する第1の登録ステップ(例えば、図6のステップS4)と、前記判定ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していないと判定された場合、前記第2のネットワークに接続され、前記第1のネットワークに接続されている情報処理装置の前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置(例えば、図1のSTUNサーバ61と62)から提供される情報(例えば、STUNサーバ61と62からの応答パケットに記述されるNATのポート番号)に基づいて、前記情報処理装置の前記第2のネットワーク上のアドレス情報を予測し、予測した前記アドレス情報を前記情報管理装置に登録する第2の登録ステップ(例えば、図6のステップS5)とを含む。
本発明によりプログラムが提供される。このプログラムは、第1のネットワーク(例えば、図1のプライベートネットワーク21)に接続されるとともに、アドレス情報(例えば、IPアドレスとポート番号)を変換するアドレス情報変換装置(例えば、図1のルータ41)を介して第2のネットワーク(例えば、図1のインターネット1)に接続される情報処理装置(例えば、図1のローカル通信端末A)のプログラムであって、前記アドレス情報変換装置が前記情報処理装置の前記第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能(例えば、UPnP)を有しているか否かの判定を制御する判定制御ステップ(例えば、図6のステップS3)と、前記判定制御ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していると判定された場合、前記アドレス通知機能により前記情報処理装置の前記第2のネットワーク上のアドレス情報を取得し、取得した前記アドレス情報を前記第2のネットワークに接続される情報管理装置(例えば、図1の中継サーバ63)に登録するように制御する第1の登録制御ステップ(例えば、図6のステップS4)と、前記判定制御ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していないと判定された場合、前記第2のネットワークに接続され、前記第1のネットワークに接続されている情報処理装置の前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置(例えば、図1のSTUNサーバ61と62)から提供される情報(例えば、STUNサーバ61と62からの応答パケットに記述されるNATのポート番号)に基づいて、前記情報処理装置の前記第2のネットワーク上のアドレス情報を予測し、予測した前記アドレス情報を前記情報管理装置に登録するように制御する第2の登録制御ステップ(例えば、図6のステップS5)とをコンピュータに実行させる。
本発明により記録媒体が提供される。この記録媒体は、第1のネットワーク(例えば、図1のプライベートネットワーク21)に接続されるとともに、アドレス情報(例えば、IPアドレスとポート番号)を変換するアドレス情報変換装置(例えば、図1のルータ41)を介して第2のネットワーク(例えば、図1のインターネット1)に接続される情報処理装置(例えば、図1のローカル通信端末A)のプログラムが記録されている記録媒体であって、前記アドレス情報変換装置が前記情報処理装置の前記第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能(例えば、UPnP)を有しているか否かの判定を制御する判定制御ステップ(例えば、図6のステップS3)と、前記判定制御ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していると判定された場合、前記アドレス通知機能により前記情報処理装置の前記第2のネットワーク上のアドレス情報を取得し、取得した前記アドレス情報を前記第2のネットワークに接続される情報管理装置(例えば、図1の中継サーバ63)に登録するように制御する第1の登録制御ステップ(例えば、図6のステップS4)と、前記判定制御ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していないと判定された場合、前記第2のネットワークに接続され、前記第1のネットワークに接続されている情報処理装置の前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置(例えば、図1のSTUNサーバ61と62)から提供される情報(例えば、STUNサーバ61と62からの応答パケットに記述されるNATのポート番号)に基づいて、前記情報処理装置の前記第2のネットワーク上のアドレス情報を予測し、予測した前記アドレス情報を前記情報管理装置に登録するように制御する第2の登録制御ステップ(例えば、図6のステップS5)とをコンピュータに実行させるプログラムが記録される。
以下、図面を参照して、本発明の実施の形態について説明する。図1は、本発明を適用した情報通信システムの構成例を示すブロック図である。同図には、インターネット1に、NAT(またはNAPT)機能を有するルータ41乃至44が接続されている。ルータ41乃至44は、それぞれ自身の配下にプライベートネットワーク21乃至24をもっており、プライベートネットワーク21乃至24に接続されるローカル通信端末A乃至Dには、それぞれ、プライベートネットワーク21乃至24のアドレス体系に従って、それぞれの内部においてのみ有効なプライベートアドレスが割り当てられている。
ローカル通信端末A乃至Dは、ユーザの指令に基づいて、ビデオチャット、オンラインゲームなどのアプリケーションを実行し、ネットワークに接続された他の通信機器と通信を行う。ルータ41乃至44は、NAT機能により、ローカル通信端末A乃至Dが、インターネット1を介した通信を行う場合、ローカル通信端末A乃至Dがインターネット1に向けて送信するパケットに付されたプライベートネットワーク21乃至24上のIPアドレス(プライベートアドレス)とポート番号を、インターネット1上のIPアドレス(グローバルアドレス)と、所定のアルゴリズムにより設定されたポート番号に変換して、インターネット1に転送する。このとき、ローカル通信端末A乃至Dに割り当てられたプライベートアドレスおよびポート番号と、NAT機能により変換されたグローバルアドレスおよびポート番号を対応付けるテーブルがルータ41乃至44に記憶される。
また、ルータ41乃至44は、NAT機能により、インターネット1から受信したパケットに付されたIPアドレス(グローバルアドレス)とポート番号を、上述したテーブルを参照して、ローカル通信端末A乃至Dに割り当てられたプライベートアドレスおよびポート番号に変換し、プライベートネットワーク21乃至24に転送する。
ここで、ルータ41乃至44のNAT機能により変換されるグローバルアドレスは、ルータ41乃至44のそれぞれがインターネット1に接続されるインタフェース41−1乃至44−1に割り当てられたグローバルアドレスとなる。また、ポート番号は、ルータ41乃至44のそれぞれ実装する個々のアルゴリズムにより選択され、変換される。
例えば、ローカル通信端末Aがインターネット1に接続される通信機器(例えば、STUNサーバ61)と通信する場合、ローカル通信端末Aは、通信機器に向けてパケットを送信する。このとき、ルータ41は、ローカル通信端末Aが送信したパケットをインターネット1に転送するが、転送するパケットの送信元アドレスを、ローカル通信端末Aに割り当てられたプライベートアドレス(例えば、「aaa.aaa.aaa.aaa」)をインタフェース41−1に割り当てられたグローバルアドレス(例えば、「qqq.qqq.qqq.qqq」)に変換する。また、ルータ41は、転送するパケットの送信元ポート番号(例えば、「3000」)を、現在ルータ41が使用していないポート番号(例えば、「3010」)に変換する。
そして、ローカル通信端末Aがインターネット1に接続される別の通信機器(例えば、STUNサーバ62)と通信する場合、ルータ41は、ローカル通信端末Aが送信したパケットをインターネット1に転送する。このとき、転送するパケットの送信元アドレスが、同様にグローバルアドレスに変換されるが、送信元ポート番号は、直近に使用したポート番号(「3010」)に「1」を加えた値が選択されて変換される(いまの場合、送信元ポート番号は「3011」に変換される)。
このように、ルータ41は、ローカル端末Aがインターネット1に接続される通信機器と通信するとき、通信機器に対応してポート番号を1ずつ増やしていく。すなわち、ルータ41のNAT機能は、送信先(通信相手)が変化すると、ポート番号を1だけインクリメントする機能を有している。
また、例えば、ローカル通信端末Bがインターネット1に接続される通信機器(例えば、STUNサーバ61)と通信する場合、ローカル通信端末Bは、通信機器に向けてパケットを送信する。このとき、ルータ42は、ローカル通信端末Bが送信したパケットをインターネット1に転送するが、転送するパケットの送信元アドレスを、ローカル通信端末Bに割り当てられたプライベートアドレス(例えば、「bbb.bbb.bbb.bbb」)をインタフェース42−1に割り当てられたグローバルアドレス(例えば、「rrr.rrr.rrr.rrr」)に変換する。また、ルータ42は、転送するパケットの送信元ポート番号(例えば、「3000」)を、現在ルータ42が使用していないポート番号(例えば、「3020」)に変換する。
ローカル通信端末Bがインターネット1に接続される別の通信機器(例えば、STUNサーバ62)と通信する場合、ルータ42は、ローカル通信端末Bが送信したパケットをインターネット1に転送する。このとき、ルータ42は、転送するパケットの送信元アドレスを、同様にグローバルアドレスに変換し、送信元ポート番号も、直近に使用したポート番号と同じ値を選択して変換する(いまの場合、送信元ポート番号を、やはり「3020」に変換する)。
このように、ルータ42は、ルータ41と異なるアルゴリズムを有し、送信先(通信相手)が変化しても、ポート番号をインクリメントさせない。
ルータ43とルータ44も、同様にインターネット1に転送するパケットの送信元アドレスとポート番号を変換するが、例えば、ルータ43は、送信先(通信相手)が変化すると、ポート番号を2だけインクリメントする機能(アルゴリズム)を有しており、例えば、ルータ44は、送信先(通信相手)が変化すると、ポート番号を10だけインクリメントする機能(アルゴリズム)を有している。
このように、ルータ41乃至44は、それぞれ実装する個々のアルゴリズムによりポート番号を変換する。
さらに、ルータ41とルータ43はUPnPの機能を実装しており、ローカル通信端末Aまたはローカル通信端末Cから、UPnPのプロトコルに基づく所定の要求パケットを受信すると、ルータ41とルータ43のNAT機能により変換されるグローバルアドレスと、ポート番号をローカル通信端末Aまたはローカル通信端末Cに、それぞれ通知する。一方、ルータ42とルータ44は、UPnPの機能を実装していない。
また、インターネット1には、STUNサーバ61、STUNサーバ62、および中継サーバ63が接続されている。
STUNサーバ61と62は、STUN(Simple Traversal of UDP through NATs)のプロトコルにより、インターネット1を介して受信したパケットの送信元アドレスと送信元ポート番号を記憶し、要求に対応して、記憶している送信元アドレスと送信元ポート番号を送信する。
ローカル通信端末A乃至Dは、予めSTUNサーバ61と62のグローバルアドレスを記憶しており、STUNのプロトコルにより規定される所定の要求パケットをSTUNサーバ61または62に送信することにより、ルータ41乃至44のNAT機能により、自身のアドレスとポート番号がどのように変換されたのかを表す情報を取得することができる。
中継サーバ63は、プライベートネットワーク21乃至24に接続されたローカル通信端末A乃至Dが、それぞれNAT越えによりP2P(Peer to Peer)通信を行うことをサポートするものである。また、中継サーバ63は、例えばインスタントメッセージサービス(以下、IMサービスと称する)を提供し、予め登録されたユーザ(端末)を認証し、ローカル通信端末A乃至Dによるアクセスを受け付ける。ローカル通信端末A乃至Dは、STUNまたはUPnPの機能を利用して取得された、NATにより変換されたグローバルアドレスとポート番号を中継サーバ63に送信する。中継サーバ63は、ローカル通信端末A乃至Dから送信されてきたグローバルアドレスとポート番号を記憶し、ローカル通信端末A乃至Dからの要求に応じて、記憶しているグローバルアドレスとポート番号をローカル通信端末A乃至Dに送信する。
これにより、ローカル通信端末A乃至Dは、通信相手のグローバルアドレス(IPアドレス)とポート番号を取得して、P2P通信を行うことができる。
なお、この例では、プライベートネットワーク21乃至24には、それぞれ1つのローカル通信端末が接続されているが、実際には2以上のローカル通信端末が接続される。
図2は、ローカル通信端末A(ローカル通信端末B乃至Dも同様)の構成例を示すブロック図である。同図において、CPU(Central Processing Unit)101は、ROM(Read Only Memory)102に記憶されているプログラム、または記憶部108からRAM(Random Access Memory)103にロードされたプログラムに従って各種の処理を実行する。RAM103にはまた、CPU101が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU101、ROM102、およびRAM103は、バス104を介して相互に接続されている。このバス104にはまた、入出力インタフェース105も接続されている。
入出力インタフェース105には、キーボード、マウスなどよりなる入力部106、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ(表示部)、並びにスピーカなどよりなる出力部107、ハードディスクなどより構成される記憶部108、モデム、ターミナルアダプタなどより構成される通信部109が接続されている。通信部109は、インターネット1などのネットワークを介しての通信処理を行う。
入出力インタフェース105にはまた、必要に応じてドライブ110が接続され、ドライブ110には、プログラムが記録された記録媒体として、例えば、リムーバブルメディア111が装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部108にインストールされる。
図3は、ローカル通信端末A乃至Dに実装されるソフトウェア131の構成例を示すブロック図である。この例では、ソフトウェア131は、アプリケーション151、ミドルウェア152、STUNモジュール153、UPnPモジュール154、および制御モジュール155により構成されている。
アプリケーション151は、ユーザの指令に基づいて、ビデオチャット、オンラインゲームなどのアプリケーションを提供する。STUNモジュール153は、STUNのプロトコルに基づいて所定の動作を実行し、ルータ41乃至44のNAT機能により変換されるグローバルアドレスとポート番号の情報を取得する。UPnPモジュール154は、UPnPのプロトコルに基づいて所定の動作を実行し、ルータ41乃至44がUPnPの機能を実装しているか否かを判定するとともに、ルータがUPnPの機能を実装している場合、NAT機能により変換されるグローバルアドレスとポート番号の情報を取得する。
ミドルウェア152は、アプリケーション152からの要求に基づいて、STUNモジュール153、またはUPnPモジュール154を制御し、P2P通信を提供する。
制御モジュール155は、アプリケーション151、ミドルウェア152、STUNモジュール153、またはUPnPモジュール154からの要求に基づいて、例えば、通信部109、ドライブ110などの各部を制御する。
図4は、STUNサーバ61(STUNサーバ62も同様)の構成例を示すブロック図である。同図において、CPU171乃至リムーバブルメディア181は、図2のCPU101乃至リムーバブルメディア111と同様のものなので、その説明は省略する。
図5は中継サーバ63の構成例を示すブロック図である。同図において、CPU201乃至リムーバブルメディア211は、やはり図2のCPU101乃至リムーバブルメディア111と同様のものなので、その説明は省略する。
次に、ローカル通信端末Aが、UPnPまたはSTUNの機能により取得した、NATにより変換されるグローバルアドレスとポート番号を交換情報として、中継サーバ63に登録する交換情報登録処理について、図6のフローチャートを参照して説明する。この処理は、例えば、ユーザにより入力部106を構成するキーボードやマウスなど(図示せず)が操作されることにより指令され、実行されるようにしてよいし、ビデオチャットなどのP2P通信を行うアプリケーションを実行するとき、そのアプリケーションの実行に先立って自動的に実行されるようにしてもよい。
ステップS1において、ミドルウェア152は、UPnPモジュール154を起動し、自身が接続されているプライベートネットワーク(いまの場合、プライベートネットワーク21)を、インターネット1に接続しているルータ(いまの場合、ルータ41)に対して、UPnPにより規定される所定のパケットを送信することにより、自身が接続されているルータがUPnPの機能を有しているか否かをチェックする(UPnPのプロトコルについては、UPnPフォーラムのホームページ(「http://www.upnp.org」)にその詳細が記述されている)。
ステップS2において、ミドルウェア152は、通信部109を介してUPnPルータからの情報を受信する。UPnPのプロトコルでは、プライベートネットワーク21の中に存在する、他のUPnP機器を発見するために、SSDP(Simple Service Discovery Protocol)というプロトコルが使用される。このプロトコルでは、UPnP機能を有する機器が、自身の情報をXML(eXtensible Markup Language)で記述したパケットを生成し、その機器が接続されているネットワーク(プライベートネットワーク21)内の他の機器に送信する。UPnP機能を有するNAT(ルータ41)では、このSSDPでアナウンスされるXMLのDevice Typeが、「InternetGatewayDevice (UPnPの用語で、NATのこと)」と設定されるので、ローカル通信端末Aは、この情報に基づいて、自身がUPnP機能を有するNATの配下にいるか否かを判定できる。なお、ルータ41がUPnPの機能を実装していない場合、この情報は受信されない。
ステップS3において、ミドルウェア152は、UPnPルータからの情報が受信されたか否かを判定する。上述したように、ルータ41がUPnPの機能を実装している場合、ルータ41からの情報が、ステップS2の処理で受信されるので、処理はステップS4に進み、ミドルウェア152は、UPnPモジュール154に、図7を参照して後述するUPnP対応処理を実行させる。これにより、UPnPの機能により、NAT機能で変換されるポート番号が特定され、中継サーバ63にグローバルアドレスとポート番号が送信される。
一方、所定の時間が経過してもルータからの情報が受信されない場合(ルータ41がUPnPの機能を実装していない場合)、ステップS3において、情報が受信されなかったと判定され、処理は、ステップS5に進み、ミドルウェア152は、STUNモジュール153に、図10を参照して後述するSTUN対応処理を実行させる。これにより、STUNの機能により、NAT機能で変換されるグローバルアドレスとポート番号が特定され、中継サーバ63に送信される。
次に、図7を参照して、図6のステップS4のUPnP対応処理の詳細について説明する。
ステップS21において、UPnPモジュール154は、NATのIPアドレスを取得する。このとき、例えば、UPnPのプロトコルにより規定される「GetExternalIPAddress」とよばれる一連の動作が実行される。これにより、ルータ41がUPnPの機能を実装している場合、NAT機能により変換されるグローバルアドレス(いまの場合、インタフェース41−1のグローバルアドレス)がルータ41からの応答として、ローカル通信端末Aに送信される。
ステップS22において、UPnPモジュール154は、任意のポート番号を選択し、UPnPのプロトコルで規定される「GetSpecificPortMappingEntry」とよばれる一連の動作を実行する。これにより、ルータ41において、ステップS22で選択されたポート番号が既に使用されているか否かがチェックされ、その結果が、ルータ41からローカル通信端末Aに応答される。
ステップS23において、UPnPモジュール154は、ルータ41からの応答に基づいて、ポート番号がルータ41で既に使用されているか否かを判定し、既に使用されていると判定された場合、ステップS22に戻り、新たにポート番号を選択する。こうして、既に使用されていないポート番号が選択されるまで、上述した処理が繰り返し実行される。
一方、ステップS23において、ステップS22で選択されたポート番号がルータ41で使用されていないと判定された場合、UPnPモジュール154は、ステップS24に進み、UPnPのプロトコルで規定される「AddPortMapping」とよばれる一連の動作を実行し、ポートを開放する設定を行う。これにより、ルータ41において、ステップS22で選択され、ステップS23で使用されていないと判定されたポート番号(例えば、「3010」)が、ローカル通信端末Aのプライベートアドレスと対応付けられ、テーブルとして記憶される。これ以後、ルータ41はインターネット1から送信先ポート番号が「3010」に設定されたパケットを受信した場合、そのパケットを、ローカル通信端末Aに転送する。
ステップS25において、UPnPモジュール154は、ルータ41がUPnP機能を実装しているか否かを表すモジュール識別子を「UPnP」に設定し、RAM103に記憶する。
ステップS26において、UPnPモジュール154は、ステップS25で設定したモジュール識別子、ステップS21で取得されたNATのグローバルアドレス(IPアドレス)、ステップS24で開放が設定されたポート番号(NATのポート番号)から交換情報を生成する。
このとき、生成される交換情報の構成例を、図8に示す。同図においては、交換情報を構成する項目の名称と、各項目に設定される値(項目値)の属性が示されている。項目「IP」は、上述したNATのIPアドレス(グローバルアドレス)であり、32ビットのIPアドレスが8ビットからなる4つのセグメントに分割され、各セグメントのビット値(2進数)が10進数で表わされて記述される。
項目「PORT」は、上述したNATのポート番号であり、例えば、「3010」が記述される。
項目「PROTOCOL」は、TCP (Transmission Control Protocol)またはUDP (User Datagram Protocol)による通信を指定するものであり、項目値は、「TCP」または「UDP」がユーザの指定に対応して記述される。なお、項目「PROTOCOL」は省略されるようにしてもよい。
項目「MODULE」は、上述したモジュール識別子に対応する項目であり、項目値は、処理したモジュールに対応して、「UPnP」または「STUN」が記述される。いまの場合、UPnPモジュール154による処理なので、「UPnP」が記述される。
図9は、実際に生成される交換情報の例を示す図である。同図においては、図8を参照して上述した各項目が記述され、項目に引き続き「=」で項目値が記述されている。そして各項目と項目値のブロックが「&」で接続されることにより交換情報が構成されている。すなわち、図9の例の場合、「IP」が「127.0.0.1」、「PORT」が「3010」、「PROTOCOL」が「TCP」、「MODULE」が「UPnP」とされている。
図7に戻って、ステップS27において、UPnPモジュール154は、ステップS26で作成された、図9に示されるような交換情報を、中継サーバ63に送信する。
次に、図10を参照して、図6のステップS5のSTUN対応処理の詳細について説明する。
ステップS41において、STUNモジュール153は、STUNサーバ61と62にアクセスし、NATのIPアドレスとポート番号の取得を要求する。これにより、STUNサーバ61と62により、ローカル通信端末Aから送信されたパケットが取得されるが、このパケットの送信元アドレスと送信元ポート番号は、ルータ41により変換されたグローバルアドレスとポート番号(NATのIPアドレスとポート番号)に設定されている。
例えば、ルータ41は、STUNサーバ61にパケットを転送するとき、そのパケットの送信元アドレスを、ローカル通信端末Aに割り当てられたプライベートアドレス(例えば、「aaa.aaa.aaa.aaa」)をインタフェース41−1に割り当てられたグローバルアドレス(例えば、「qqq.qqq.qqq.qqq」)に変換し、そのパケットの送信元ポート番号(例えば、「3000」)を、例えば、「3010」に変換する。また、ルータ41は、例えば、STUNサーバ62にパケットを転送するとき、そのパケットの送信元アドレスを同様にグローバルアドレスに変換し、送信元ポート番号を「3011」に変換する。
そして、STUNサーバ61と62は、ローカル通信端末Aからの要求を受信すると、取得したパケットの送信元アドレスと送信元ポート番号(NATのIPアドレスとポート番号)を、ペイロード部分に記述したパケットを生成し、これを応答パケットとしてローカル通信端末Aに送信する。
ステップS42において、STUNモジュール153は、STUNサーバ61と62のそれぞれから送信された応答パケットを受信し、それぞれの応答パケットからNATのIPアドレスとポート番号を取得する。
ステップS43において、STUNモジュール153は、それぞれの応答パケットに記述されたポート番号に基づいて、次に使用されるNATのポート番号を予測する。このとき、NATのポート番号の予測は、例えば、次のようにして行われる。
ステップS42で、STUNサーバ61から受信した応答パケットには、NATのポート番号が、「3010」と記述されており、STUNサーバ62から受信した応答パケットには、NATのポート番号が、「3011」と記述されている。ここで、STUNモジュール153は、2つのポート番号の差分(3011-3010=1)を演算することにより、ルータ41のNAT機能は、送信先(通信相手)が変化すると、ポート番号を1だけインクリメントする機能を有しているものと認識する。そして、直近に送信されたパケット(いまの場合、STUNサーバ62に送信されたパケット)のポート番号に上述したポート番号の差分を加算し、次に使用されるNATのポート番号を予測する。いまの場合、次に使用されるNATのポート番号は、「3012(=3011+1)」と予測される。
ステップS44において、STUNモジュール153は、上述したモジュール識別子を「STUN」に設定し、RAM103に記憶する。
ステップS45において、STUNモジュール153は、ステップS44で設定したモジュール識別子、ステップS42で取得されたNATのグローバルアドレス(IPアドレス)、ステップS43で予測したNATのポート番号から、上述した交換情報を生成する。
ステップS46において、STUNモジュール153は、中継サーバ63に、ステップS45で生成した交換情報を送信する。
このようにして、NATにより変換されるグローバルアドレスとポート番号(NATのIPアドレスとポート番号)が交換情報として、中継サーバ63に登録される。NATのIPアドレスとポート番号は、ルータ41がUPnPの機能を有している場合は、UPnPのプロトコルに基づいて取得され、ルータ41がUPnPの機能を有していない場合は、STUNのプロトコルに基づいて取得されるようにしたので、ルータ41の機能に関わらず、交換情報を生成することができる。
また、NATのポート番号は、UPnPの場合、ルータ41が使用するNATのポート番号の開放が設定される(ポート番号が予約される)のに対して、STUNの場合、ルータ41が次に使用するNATのポートは、予約されるものではなく、予測される。従って、UPnPの場合の方がより確実なNATのポート番号を取得することができる。上述した例(図6)においては、最初にルータ41がUPnPの機能を有しているか否かが判定され(図6のステップS3)、ルータ41がUPnPの機能を有している場合、UPnPのプロトコルに基づいてNATのIPアドレスとポート番号を取得し、ルータ41がUPnPの機能を有していない場合は、STUNのプロトコルに基づいてNATのIPアドレスとポート番号を取得するようにしたので、結果としてより確実な、NATのIPアドレスとポート番号を取得することができる。
なお、この例では、ローカル通信端末Aが、中継サーバ63に交換情報を登録する処理の例について述べたが、ローカル通信端末B乃至Dにおいても同様の処理により、中継サーバ63に適宜、交換情報が登録される。
次に、中継サーバ63における交換情報の蓄積処理について、図11のフローチャートを参照して説明する。
ステップS61において、中継サーバ63のCPU201は、通信部209を介して、ローカル通信端末A乃至Dから送信された交換情報を受信する。そして、ステップS62において、CPU201は、ステップS61で受信した交換情報を、記憶部208に記憶する。
これにより、中継サーバ63の記憶部208には、図12に示されるような交換情報が蓄積される。同図において、蓄積される情報の項目として、「端末ID」、「IPアドレス」、「ポート番号」、「モジュール」が示されている。この他、「プロトコル」(TCPまたはUDPを示す情報)などが蓄積されるようにしてもよい。
「IPアドレス」は上述したNATのIPアドレスであり、ローカル通信端末A乃至Dが接続されているルータ41乃至44のグローバルアドレスが記述されている。「モジュール」は、上述したモジュール識別子に対応する項目であり、ルータ41と43は、UPnPの機能を有しているので、「UPnP」と記述されている。ルータ42と44は、UPnPの機能を有していないので、「STUN」と記述されている。「ポート番号」は、上述したNATのポート番号であり、ローカル通信端末AとCの「ポート番号」は、UPnPの機能により開放が設定されたポート番号であり、ローカル通信端末BとDの「ポート番号」は、STUNの機能により、予測されたポート番号である。
このようにして、中継サーバ63に交換情報が蓄積される。ローカル通信端末A乃至Dが、他のローカル通信端末と通信を行う場合、中継サーバ63から通信相手の交換情報を取得することにより、NAT越えしたP2P通信を行うことができる。
次に、図13のフローチャートを参照して、ローカル通信端末A乃至Dの通信処理について説明する。この処理は、ローカル通信端末A乃至Dにおいて、P2P通信を行うアプリケーションが起動されたとき、実行される。
ステップS81において、ミドルウェア152は、アプリケーション151から通信開始要求があったか否かを判定し、通信開始要求があったと判定されるまで待機する。そして、通信開始要求があったと判定された場合、処理はステップS82に進む。このとき、アプリケーション151から、通信相手の情報と通信の種類(例えば、TCP通信か否かなど)の情報がミドルウェア152に通知される。
ステップS82において、ミドルウェア152は、アプリケーション151からの通信開始要求は、TCP通信の通信開始要求か否かを判定し、TCP通信の通信開始要求であると判定された場合、ステップS83に進み、図14を参照して後述するTCP通信処理を実行する。一方、ステップS82において、アプリケーション151からの通信開始要求は、TCP通信の通信開始要求ではないと判定された場合、ミドルウェア152は、ステップS84に進み、図17を参照して後述するUDP通信処理を実行する。
ステップS83またはS84の処理の後、処理はステップS85に進み、制御モジュール155は、通信の終了が指令されたか否かを判定し、通信の終了が指令されたと判定されるまで待機する。ステップS85において、通信の終了が指令されたと判定された場合、処理は終了する。
次に、図14のフローチャートを参照して、図13のステップS83のTCP通信処理の詳細について説明する。
ステップS101において、ミドルウェア152は、通信相手の交換情報を既に取得しているか否かを判定し、まだ通信相手の交換情報を取得していないと判定された場合、ステップS102に進む。
ステップS102において、ミドルウェア152は、中継サーバ63にアクセスし、交換情報の取得要求を送信する。このとき送信される交換情報取得要求には、通信相手の端末IDと、TCP通信であることを表す通信の種類の情報が含まれており、交換情報取得要求を受信した中継サーバ63は、図15を参照して後述する交換情報提供処理を実行する。
ここで、図15のフローチャートを参照して、中継サーバ63の交換情報提供処理について説明する。ステップS121において、中継サーバ63のCPU201は、通信部209を介して、ローカル通信端末A乃至Dから送信された交換情報取得要求を受信する。
ステップS122において、CPU201は、記憶部208に記憶(蓄積)されている交換情報の中から、ステップS121で受信した交換情報取得要求に含まれている通信相手の端末IDに対応する交換情報を検索し、ステップS123において、ステップS122で検索した交換情報を、ローカル通信端末A乃至D(ステップS121で受信した要求を送信してきた端末)に送信する。ステップS124において、CPU201は、ステップS121で受信した交換情報取得要求に含まれている通信相手(の端末IDの端末)に対して、所定の情報を通知する。
例えば、ローカル通信端末Aから、交換情報取得要求が送信され、その通信相手がローカル通信端末Cであった場合、ステップS122で、図12に示されるような情報の中からローカル通信端末C(端末IDがC)の交換情報が検索され、ステップS123でローカル通信端末Aに送信される。
また、ステップS124では、ローカル通信端末Cに対して、ローカル通信端末AからのTCP通信の開始要求があった旨を通知する情報が、ローカル通信端末Aの交換情報とともに送信される。ローカル通信端末Cによりこれが受信されると、ローカル通信端末Cのアプリケーション151は、ローカル通信端末Aとの通信を開始するために、ローカル通信端末Cのミドルウェア152に通信開始を要求する。そして、ローカル通信端末Cにおいても、図13を参照して上述したように、通信処理が開始される。
図14に戻って、ステップS103において、ミドルウェア152は、図15のステップS123で、中継サーバ63から送信された交換情報を受信し、取得する。
なお、ステップS101において、通信相手の交換情報を既に取得していると判定された場合、ステップS102とS103の処理はスキップされる。
ステップS104において、ミドルウェア152は、図16を参照して後述するTCPコネクション提供処理を実行する。これにより、交換情報に基づいて、TCPのコネクションが提供される。
ステップS105において、制御モジュール155は、ステップS104で提供されたTCPのコネクションに基づいて、TCP通信を行う。
このようにしてTCP通信が行われる。
次に、図16のフローチャートを参照して、図14のステップS104のTCPコネクション提供処理の詳細について説明する。
ステップS141において、ミドルウェア152は、自身のモジュール識別子はUPnPか否かを判定し、UPnPであると判定された場合、処理は、ステップS142に進む。ステップS142において、ミドルウェア152は、通信相手のモジュール識別子は、UPnPか否かを判定し、UPnPであると判定された場合、処理は、ステップS143に進む。ステップS143において、ミドルウェア152は、どちらか一方をサーバとして選択する。
例えば、ローカル通信端末Aがローカル通信端末Cと通信する場合、図12に示されるように、ローカル通信端末A(実際にはルータ41)のモジュール識別子とローカル通信端末C(実際にはルータ43)のモジュール識別子は、ともにUPnPなので、ローカル通信端末Aにおいては、ステップS141で、自身(ローカル通信端末A)のモジュール識別子はUPnPであると判定され、ステップS142で、通信相手(ローカル通信端末C)のモジュール識別子は、UPnPであると判定される。同様に、ローカル通信端末Cにおいては、ステップS141で、自身(ローカル通信端末C)のモジュール識別子はUPnPであると判定され、ステップS142で、通信相手(ローカル通信端末A)のモジュール識別子は、UPnPであると判定される。
ステップS143において、例えば、自身と通信相手のIPアドレス(実際にはルータ41とルータ43のIPアドレス)が比較され、IPアドレスが大きい方をサーバとして選択される。いまの場合、ローカル通信端末CのIPアドレスの方が、ローカル通信端末AのIPアドレスより大きいので、ローカル通信端末Cがサーバとして選択される。なお、サーバが選択される方法はこれに限られるものではなく、要はどちらか一方がサーバとして選択されればよい。これにより、ステップS148において、ローカル通信端末Aにおいては、通信相手であるローカル通信端末CのIPアドレスとポート番号(実際にはルータ43のIPアドレスとポート番号)をサーバのIPアドレスとポート番号として、制御モジュール155にTCPのコネクションが提供される。また、ローカル通信端末Cにおいては、自身のIPアドレスとポート番号(実際にはルータ41のIPアドレスとポート番号)をサーバのIPアドレスとポート番号として、制御モジュール155にTCPのコネクションが提供される。
一方、ステップS142において、通信相手のモジュール識別子は、UPnPではないと判定された場合、ステップS144に進み、ミドルウェア152は、自身をサーバとして選択する。
また、ステップS141において、自身のモジュール識別子は、UPnPではないと判定された場合、ステップS145に進み、ミドルウェア152は、通信相手のモジュール識別子は、UPnPであるか否かを判定し、通信相手のモジュール識別子がUPnPであると判定された場合、ステップS146において、通信相手をサーバとして選択する。
例えば、ローカル通信端末Aがローカル通信端末Bと通信する場合、図12に示されるように、ローカル通信端末Aのモジュール識別子は、UPnPであり、ローカル通信端末Bのモジュール識別子は、UPnPではないので、ローカル通信端末Aにおいては、ステップS141で、自身(ローカル通信端末A)のモジュール識別子はUPnPであると判定され、ステップS142で、通信相手(ローカル通信端末B)のモジュール識別子は、UPnPではないと判定される。そして、ステップS144において、ローカル通信端末A自身がサーバとして選択される。これにより、ステップS148において、自身のIPアドレスとポート番号をサーバのIPアドレスとポート番号として、制御モジュール155にTCPのコネクションが提供される。
一方、ローカル通信端末Bにおいては、ステップS141で、自身(ローカル通信端末B)のモジュール識別子はUPnPではないと判定され、ステップS142で、通信相手(ローカル通信端末A)のモジュール識別子は、UPnPであると判定される。そして、ステップS146において、通信相手がサーバとして選択される。これにより、ステップS148において、ローカル通信端末AのIPアドレスとポート番号をサーバのIPアドレスとポート番号として、制御モジュール155にTCPのコネクションが提供される。
ステップS145において、通信相手のモジュール識別子はUPnPではないと判定された場合、ステップS147に進み、ミドルウェア152はエラー処理を実行する。
例えば、ローカル通信端末Bがローカル通信端末Dと通信する場合、図12に示されるように、ローカル通信端末Bのモジュール識別子は、UPnPではなく、ローカル通信端末Dのモジュール識別子も、UPnPではないので、ローカル通信端末BとDにおいて、ステップS141で、自身のモジュール識別子はUPnPではないと判定され、ステップS145で、通信相手のモジュール識別子は、UPnPではないと判定される。このような場合、ローカル通信端末BとDのポート番号(実際にはルータ42と44のポート番号)は、STUNにより予測されたものであり、正確なポート番号を取得することができないので、TCPのコネクションを提供できない。このため、ステップS147においてエラー処理が実行され、通信が不可能である旨がアプリケーション151に通知され、ユーザに提示される。
このようにして、TCPのコネクションが提供される。
次に、図17のフローチャートを参照して、図13のステップS84のUDP通信処理について説明する。
ステップS161において、ミドルウェア152は、通信相手の交換情報を既に取得しているか否かを判定し、まだ通信相手の交換情報を取得していないと判定された場合、ステップS162に進む。
ステップS162において、ミドルウェア152は、中継サーバ63にアクセスし、交換情報の取得要求を送信する。このとき送信される交換情報取得要求には、通信相手の端末IDと、UDP通信であることを表す通信の種類の情報が含まれており、交換情報取得要求を受信した中継サーバ63は、図15を参照して上述した交換情報提供処理を実行する。
ステップS163において、ミドルウェア152は、図15のステップS123で、中継サーバ63から送信された交換情報を受信し、取得する。
なお、ステップS161において、通信相手の交換情報を既に取得していると判定された場合、ステップS162とS163の処理はスキップされる。
ステップS164において、ミドルウェア152は、図18を参照して後述するUDP通信準備処理を実行する。これにより、交換情報に基づいて、UDP通信で使用するIPアドレスとポート番号が設定される。
ステップS165において、制御モジュール155は、ステップS164で準備されたIPアドレスとポート番号に基づいて、UDP通信を行う。
このようにしてUDP通信が行われる。
次に、図18のフローチャートを参照して、図17のステップS164のUDP通信準備処理について説明する。
ステップS181において、ミドルウェア152は、通信相手のモジュール識別子は、UPnPか否かを判定し、通信相手のモジュール識別子がUPnPであると判定された場合、ステップS182において、送信するパケットの送信先IPアドレスと送信先ポート番号を、交換情報に記述されたIPアドレスとポート番号に設定する。
例えば、ローカル通信端末Aがローカル通信端末Cと通信する場合、図12に示されるように、ローカル通信端末A(実際にはルータ41)のモジュール識別子とローカル通信端末C(実際にはルータ43)のモジュール識別子は、ともにUPnPなので、ローカル通信端末Aにおいては、ステップS181で、通信相手(ローカル通信端末C)のモジュール識別子はUPnPであると判定され、ステップS182で、通信相手であるローカル通信端末Cの交換情報に記述されたIPアドレスとポート番号が、送信するパケットの送信先IPアドレスと送信先ポート番号として設定される。同様に、ローカル通信端末Cにおいても、ステップS181で、通信相手(ローカル通信端末A)のモジュール識別子はUPnPであると判定され、ステップS182で、通信相手であるローカル通信端末Aの交換情報に記述されたIPアドレスとポート番号が、送信するパケットの送信先IPアドレスと送信先ポート番号として設定される。これ以降、ローカル通信端末AとCは、NAT越えのUDP通信を行うことができる。
一方、ステップS181で、通信相手のモジュール識別子がUPnPではないと判定された場合、ステップS183に進み、ミドルウェア152は、自身のモジュール識別子は、UPnPであるか否かを判定し、自身のモジュール識別子がUPnPであると判定された場合、ステップS184に進み、通信相手からのパケットを受信する。そして、ステップS185において、ミドルウェア152は、送信するパケットの送信先IPアドレスと送信先ポート番号を、ステップS184で受信したパケットの送信元IPアドレスと送信元ポート番号に記述されているIPアドレスとポート番号に設定する。
例えば、ローカル通信端末Aとローカル通信端末Bが通信する場合、図12に示されるように、ローカル通信端末Aのモジュール識別子は、UPnPであり、ローカル通信端末Bのモジュール識別子は、UPnPではないので、ローカル通信端末Bにおいては、ステップS181で、通信相手(ローカル通信端末A)のモジュール識別子はUPnPであると判定され、ステップS182で、交換情報に記述された通信相手(ローカル通信端末A)のIPアドレスとポート番号が送信するパケットの送信先IPアドレスと送信先ポート番号として設定する。ここで、交換情報に記述されているローカル通信端末Aのポート番号は、UPnPの機能により開放が設定され、予約されているポート番号なので、このポート番号を送信先ポート番号として設定すれば、これ以降、ローカル通信端末Bは、UDP通信により、ローカル通信端末Aに確実にパケットを送信することができる。
一方、ローカル通信端末Aにおいては、ステップS181で、通信相手(ローカル通信端末B)のモジュール識別子は、UPnPではないと判定され、ステップS183で、自身(ローカル通信端末A)のモジュール識別子は、UPnPであると判定される。
このとき、ローカル通信端末Aでは、交換情報に記述されているローカル通信端末BのIPアドレスとポート番号(実際にはルータ42のIPアドレスとポート番号)が、送信先IPアドレスと送信先ポート番号として設定されるようにしてもよいが、交換情報に記述されたローカル通信端末Bのポート番号は、STUNにより予測されたものであり、不確実性を伴うのでそのポート番号を送信先ポート番号に設定した場合、通信ができないこともあり得る。そこで、ステップS184において、ミドルウェア152は、ローカル通信端末Bからのパケットを受信し、そのパケットの送信元IPアドレスと送信元ポート番号を、これから送信するパケットの送信先IPアドレスと送信先ポート番号として設定する。
これにより、ローカル通信端末Aとローカル通信端末Bは、確実にUDP通信を行うことができる。
また、ステップS183において、自身のモジュール識別子がUPnPではないと判定された場合、処理は、ステップS186に進み、ミドルウェア152は、STUNモジュール153を起動し、ステップS187において、STUNモジュール153は、送信するパケットの送信先IPアドレスと送信先ポート番号を後述するように設定する。
例えば、ローカル通信端末Bとローカル通信端末Dが通信する場合、図12に示されるように、ローカル通信端末Bとローカル通信端末Dのモジュール識別子は、ともにUPnPではないのでローカル通信端末BとDにおいて、ステップS181で、通信相手のモジュール識別子は、UPnPではないと判定され、ステップS183で、自身のモジュール識別子は、UPnPではないと判定される。
そして、ステップS186でSTUNモジュール153が起動され、ステップS187において、これから送信するパケットの送信先IPアドレスと送信先ポート番号が設定される。
ステップS187では、交換情報に記述されているローカル通信端末Bまたはローカル通信端末DのIPアドレスとポート番号が、送信先IPアドレスと送信先ポート番号として設定されるようにしてもよいし、また、STUNモジュール153により、図10を参照して上述した場合と同様に、NATのポート番号が予測され、予測されたローカル通信端末Bまたはローカル通信端末DのNATのポート番号が、ローカル通信端末Bまたはローカル通信端末Dの間で交換され、そのポート番号が送信先ポート番号として設定されるようにしてもよい。UPnPの場合と異なり、STUNでは、NATのポート番号が予約されていないので、通信を行う直前にNATのポート番号を予測した方が、より確実な通信を行うことができる。
このようにして、UDP通信で使用されるIPアドレスとポート番号が設定される。
以上のように、本発明によれば、UPnPまたはSTUNなどの従来のNAT越えの方法では提供できなかったP2P通信を提供することができる。図19は、UPnPまたはSTUNにより提供できるP2P通信と、本発明により提供できるP2P通信のパターンを表す図である。
同図において、NAT(ルータ)AとNAT(ルータ)Bは、P2P通信を行う2台の通信端末が接続されるルータ(NAT)がUPnP機能を有しているか否かを表しており、UPnP機能を有している場合、「UPnP」と示され、UPnP機能を有していない場合、「NonUPnP」と示されている。また、プロトコルは、P2P通信で利用されるプロトコルがTCPか、またはUDPかを表している。プロトコルの右側には、UPnPモジュール154単独、STUNモジュール153単独、または本発明(UPnPモジュール154とSTUNモジュール153の両方を組み合わせて使う場合)によりP2P通信を提供できるか否かが、図中丸(三角)印、または×印で示されている。なお、図中の三角印は、P2P通信を提供できるが、不確実性を伴うことを表している。
パターン1は、NAT(ルータ)Aが「UPnP」であり、NAT(ルータ)Bが「UPnP」であるルータに接続される通信端末がTCP通信によりNAT越えのP2P通信を行う場合であり、例えば、図1のローカル通信端末Aとローカル通信端末Cが、図13の通信処理においてTCP通信を行う場合がこれに該当する。
パターン2は、NAT(ルータ)Aが「UPnP」であり、NAT(ルータ)Bが「NonUPnP」であるルータに接続される通信端末がTCP通信によりNAT越えのP2P通信を行う場合であり、例えば、図1のローカル通信端末Aとローカル通信端末Bが、図13の通信処理においてTCP通信を行う場合がこれに該当する。
パターン1とパターン2の場合、STUNモジュール153だけでは、TCPコネクションを提供できないので、×印が記述されている。一方、UPnPモジュール154単独、または本発明によれば、TCPコネクションを提供できるので、丸印が記述されている。
パターン3は、NAT(ルータ)Aが「NonUPnP」であり、NAT(ルータ)Bが「NonUPnP」であるルータに接続される通信端末がTCP通信によりNAT越えのP2P通信を行う場合であり、例えば、図1のローカル通信端末Bとローカル通信端末Dが、図13の通信処理においてTCP通信を行う場合がこれに該当する。
パターン3の場合、STUNモジュール153単独、UPnPモジュール154単独、または本発明のいずれでも、TCPコネクションを提供できないので、全て×印が記述されている。
パターン4は、NAT(ルータ)Aが「UPnP」であり、NAT(ルータ)Bが「UPnP」であるルータに接続される通信端末がTCP通信によりNAT越えのP2P通信を行う場合であり、例えば、図1のローカル通信端末Aとローカル通信端末Cが、図13の通信処理においてUDP通信を行う場合がこれに該当する。
パターン5は、NAT(ルータ)Aが「UPnP」であり、NAT(ルータ)Bが「NonUPnP」であるルータに接続される通信端末がTCP通信によりNAT越えのP2P通信を行う場合であり、例えば、図1のローカル通信端末Aとローカル通信端末Bが、図13の通信処理においてUDP通信を行う場合がこれに該当する。
パターン4とパターン5の場合、STUNモジュール153単独でP2P通信を提供することができる。ただし、STUNモジュール153は、上述したように、使用するNATのポート番号を予測するものであり、不確実性を伴うので、三角が記述されている(従来のSTUNのように予測を行わない場合には、×印が記述されることになる)。一方、UPnPモジュール154単独、または本発明によれば、UPnPにより予約されたポート番号に基づいて、確実にP2P通信を提供することができるので、丸印が記述されている。
パターン6は、NAT(ルータ)Aが「NonUPnP」であり、NAT(ルータ)Bが「NonUPnP」であるルータに接続される通信端末がUDP通信によりNAT越えのP2P通信を行う場合であり、例えば、図1のローカル通信端末Bとローカル通信端末Dが、図13の通信処理においてUDP通信を行う場合がこれに該当する。
パターン6の場合、STUNモジュール153単独では、(不確実性を伴うが)P2P通信を提供することができ、三角印が記述されている(予測機能がなければ×印となる)。一方、UPnPモジュール154単独では、通信相手のIPアドレスポート番号が特定できないので×印が記述されている。本発明では、このような場合、STUNモジュール153を利用して(図18のステップS186またはS187)通信を行うので、不確実性を伴うものの、P2P通信を提供することができ、三角印が記述されている。
以上のように、本発明は、予測機能を有するSTUNにUPnPを組み合わせてP2P通信を提供するようにしたので、パターン3を除く、全てのパターンにおいてP2P通信を提供することができる。また、パターン4またはパターン5の場合には、不確実性を伴うSTUNではなく、UPnPにより予約されたポート番号に基づいて、P2P通信が提供されるので、より確実にP2P通信を提供することができる。
なお、上述した一連の処理をハードウェアで実現するか、ソフトウェアで実現するかは問わない。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
また、本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
本発明を適用した情報通信システムの構成例を示す図である。 図1のローカル通信端末の構成例を示すブロック図である。 図2のローカル通信端末のソフトウェアの構成例を示す図である。 図1のSTUNサーバの構成例を示すブロック図である。 図1の中継サーバの構成例を示すブロック図である。 交換情報登録処理を説明するフローチャート図である。 UPnP対応処理を説明するフローチャートである。 交換情報の構成例を示す図である。 交換情報の記述例を示す図である。 STUN対応処理を説明するフローチャートである。 交換情報蓄積処理を説明するフローチャートである。 中継サーバに蓄積される交換情報の例を示す図である。 通信処理を説明するフローチャートである。 TCP通信処理を説明するフローチャートである。 交換情報提供処理を説明するフローチャートである。 TCPコネクション提供処理を説明するフローチャートである。 UDP通信処理を説明するフローチャートである。 UDP通信準備処理を説明するフローチャートである。 本発明により提供できるP2P通信のパターンを表す図である。
符号の説明
21乃至24 プライベートネットワーク, 41乃至44 ルータ, 61,62 STUNサーバ, 63 中継サーバ, 101 CPU, 108 記憶部, 109 通信部, 151 アプリケーション, 152 ミドルウェア, 153 STUNモジュール, 154 UPnPモジュール, 201 CPU, 208 記憶部, 209 通信部

Claims (12)

  1. 第1のネットワークに接続されるとともに、アドレス情報を変換する第1のアドレス情報変換装置を介して第2のネットワークに接続される第1の情報処理装置と、第3のネットワークに接続されるとともに、アドレス情報を変換する第2のアドレス情報変換装置を介して前記第2のネットワークに接続される第2の情報処理装置と、前記第2のネットワークに接続され、前記第1の情報処理装置および前記第2の情報処理装置の前記第2のネットワーク上のアドレス情報を管理する情報管理装置と、前記第2のネットワークに接続され、前記第1の情報処理装置と前記第2の情報処理装置に前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置からなる情報通信システムであって、
    前記第1の情報処理装置は、
    前記第1のアドレス情報変換装置が前記第1の情報処理装置の前記第2のネットワーク上のアドレスを通知するアドレス通知機能を有しているか否かを判定する判定手段と、
    前記判定手段により、前記第1のアドレス情報変換装置が前記アドレス通知機能を有していると判定された場合、前記アドレス通知機能により前記第1の情報処理装置の前記第2のネットワーク上のアドレス情報を取得して、取得した前記アドレス情報を前記情報管理装置に登録する第1の登録手段と、
    前記判定手段により、前記第1のアドレス情報変換装置が前記アドレス通知機能を有していないと判定された場合、前記アドレス情報提供装置から提供される情報に基づいて、前記第1の情報処理装置の前記第2のネットワーク上のアドレス情報を予測して、予測した前記アドレス情報を前記情報管理装置に登録する第2の登録手段とを備え、
    前記情報管理装置は、
    前記第1または第2の情報処理装置の前記第2のネットワーク上の前記アドレス情報を受信する受信手段と、
    前記受信手段により受信した前記アドレス情報を記憶する記憶手段と、
    前記記憶手段に記憶された前記アドレス情報を前記第1または第2の情報処理装置に提供する提供手段と
    を備え、
    前記第1の情報処理装置は、前記情報管理装置から前記第2の情報処理装置の前記第2のネットワーク上のアドレス情報を取得して前記第2の情報処理装置と通信する
    ことを特徴とする情報通信システム。
  2. 第1のネットワークに接続されるとともに、アドレス情報を変換する第1のアドレス情報変換装置を介して第2のネットワークに接続される第1の情報処理装置と、第3のネットワークに接続されるとともに、アドレス情報を変換する第2のアドレス情報変換装置を介して前記第2のネットワークに接続される第2の情報処理装置と、前記第2のネットワークに接続され、前記第1の情報処理装置および前記第2の情報処理装置の前記第2のネットワーク上のアドレス情報を管理する情報管理装置と、前記第2のネットワークに接続され、前記第1の情報処理装置と前記第2の情報処理装置に前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置からなる情報通信システムの情報通信方法であって、
    前記第1の情報処理装置は、
    前記第1のアドレス情報変換装置が前記第1の情報処理装置の前記第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かを判定し、
    前記第1のアドレス情報変換装置が前記アドレス情報通知機能を有していると判定された場合、前記アドレス情報通知機能により前記第1の情報処理装置の前記第2のネットワーク上のアドレス情報を取得し、取得した前記アドレス情報を前記情報管理装置に登録し、
    前記第1のアドレス情報変換装置が前記アドレス情報通知機能を有していないと判定された場合、前記アドレス情報提供装置から提供される情報に基づいて、前記第1の情報処理装置の前記第2のネットワーク上のアドレス情報を予測し、予測した前記アドレス情報を前記情報管理装置に登録し、
    前記情報管理装置は、
    前記第1または第2の情報処理装置の前記第2のネットワーク上の前記アドレス情報を受信し、
    受信した前記アドレス情報を記憶し、
    記憶している前記アドレス情報を前記第1または第2の情報処理装置に提供し、
    前記第1の情報処理装置は、前記情報管理装置から前記第2の情報処理装置の前記第2のネットワーク上のアドレス情報を取得して前記第2の情報処理装置と通信する
    ことを特徴とする情報通信方法。
  3. 第1のネットワークに接続されるとともに、アドレス情報を変換するアドレス情報変換装置を介して第2のネットワークに接続される情報処理装置であって、
    前記アドレス情報変換装置が前記情報処理装置の前記第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かを判定する判定手段と、
    前記判定手段により、前記アドレス情報変換装置が前記アドレス通知機能を有していると判定された場合、前記アドレス通知機能により前記情報処理装置の前記第2のネットワーク上のアドレス情報を取得し、取得した前記アドレス情報を前記第2のネットワークに接続される情報管理装置に登録する第1の登録手段と、
    前記判定手段により、前記アドレス情報変換装置が前記アドレス通知機能を有していないと判定された場合、前記第2のネットワークに接続され、前記第1のネットワークに接続されている情報処理装置の前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置から提供される情報に基づいて、前記情報処理装置の前記第2のネットワーク上のアドレス情報を予測し、予測した前記アドレス情報を前記情報管理装置に登録する第2の登録手段と
    を備えることを特徴とする情報処理装置。
  4. 前記第1および第2の登録手段は、前記アドレス情報変換装置が前記アドレス情報通知機能を有するか否かを表す識別情報を設定する設定手段を備え、前記情報管理装置に、前記識別情報をさらに登録する
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 第3のネットワークに接続されるとともに、他のアドレス情報変換装置を介して前記第2のネットワークに接続される他の情報処理装置と通信するとき、前記他の情報処理装置との通信に用いられるプロトコルを判定するプロトコル判定手段と、
    前記プロトコル判定手段により前記他の情報処理装置との通信に用いられるプロトコルがTCPであると判定された場合、前記他の情報処理装置とTCP通信を行うTCP通信手段と、
    前記プロトコル判定手段により前記他の情報処理装置との通信に用いられるプロトコルがUDPであると判定された場合、前記他の情報処理装置とUDP通信を行うUDP通信手段とを
    さらに備える
    ことを特徴とする請求項3に記載の情報処理装置。
  6. 前記TCP通信手段は、
    前記情報管理装置から前記他の情報処理装置の前記第2のネットワーク上のアドレス情報および前記識別情報を取得する取得手段と、
    前記取得手段により取得された前記第2のネットワーク上のアドレス情報および前記識別情報に基づいて、TCPコネクションを提供するコネクション提供手段と
    を備えることを特徴とする請求項5に記載の情報処理装置。
  7. 前記コネクション提供手段は、
    前記情報処理装置の前記識別情報に基づいて、前記アドレス情報変換装置が前記アドレス情報通知機能を有しているか否かを判定する第1の識別情報判定手段と、
    前記他の情報処理装置の前記識別情報に基づいて、前記他のアドレス情報変換装置が前記アドレス情報通知機能を有しているか否かを判定する第2の識別情報判定手段とを備え、
    前記第1と第2の識別情報判定手段の判定結果に基づいてTCPコネクションを提供する
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 前記UDP通信手段は、
    前記情報管理装置から前記他の情報処理装置の前記第2のネットワーク上のアドレス情
    報および前記識別情報を取得する取得手段と、
    前記取得手段により取得された前記第2のネットワーク上のアドレス情報および前記識別情報に基づいて、UDP通信の準備を行う通信準備手段と
    を備えることを特徴とする請求項5に記載の情報処理装置。
  9. 前記通信準備手段は、
    前記情報処理装置の前記識別情報に基づいて、前記アドレス情報変換装置が前記アドレス情報通知機能を有しているか否かを判定する第1の識別情報判定手段と、
    前記他の情報処理装置の前記識別情報に基づいて、前記他のアドレス情報変換装置が前記アドレス情報通知機能を有しているか否かを判定する第2の識別情報判定手段とを備え、
    前記第1または第2の識別情報判定手段の判定結果に基づいて、UDP通信の準備を行う
    ことを特徴とする請求項8に記載の情報処理装置。
  10. 第1のネットワークに接続されるとともに、アドレス情報を変換するアドレス情報変換装置を介して第2のネットワークに接続される情報処理装置の情報処理方法であって、
    前記アドレス情報変換装置が前記情報処理装置の前記第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かを判定する判定ステップと、
    前記判定ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していると判定された場合、前記アドレス通知機能により前記情報処理装置の前記第2のネットワーク上のアドレス情報を取得し、取得した前記アドレス情報を前記第2のネットワークに接続される情報管理装置に登録する第1の登録ステップと、
    前記判定ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していないと判定された場合、前記第2のネットワークに接続され、前記第1のネットワークに接続されている情報処理装置の前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置から提供される情報に基づいて、前記情報処理装置の前記第2のネットワーク上のアドレス情報を予測し、予測した前記アドレス情報を前記情報管理装置に登録する第2の登録ステップと
    を含むことを特徴とする情報処理方法。
  11. 第1のネットワークに接続されるとともに、アドレス情報を変換するアドレス情報変換装置を介して第2のネットワークに接続される情報処理装置のプログラムであって、
    前記アドレス情報変換装置が前記情報処理装置の前記第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かの判定を制御する判定制御ステップと、
    前記判定制御ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していると判定された場合、前記アドレス通知機能により前記情報処理装置の前記第2のネットワーク上のアドレス情報を取得し、取得した前記アドレス情報を前記第2のネットワークに接続される情報管理装置に登録するように制御する第1の登録制御ステップと、
    前記判定制御ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していないと判定された場合、前記第2のネットワークに接続され、前記第1のネットワークに接続されている情報処理装置の前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置から提供される情報に基づいて、前記情報処理装置の前記第2のネットワーク上のアドレス情報を予測し、予測した前記アドレス情報を前記情報管理装置に登録するように制御する第2の登録制御ステップと
    をコンピュータに実行させることを特徴とするプログラム。
  12. 第1のネットワークに接続されるとともに、アドレス情報を変換するアドレス情報変換装置を介して第2のネットワークに接続される情報処理装置のプログラムが記録されている記録媒体であって、
    前記アドレス情報変換装置が前記情報処理装置の前記第2のネットワーク上のアドレス情報を通知するアドレス情報通知機能を有しているか否かの判定を制御する判定制御ステップと、
    前記判定制御ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していると判定された場合、前記アドレス通知機能により前記情報処理装置の前記第2のネットワーク上のアドレス情報を取得し、取得した前記アドレス情報を前記第2のネットワークに接続される情報管理装置に登録するように制御する第1の登録制御ステップと、
    前記判定制御ステップの処理により、前記アドレス情報変換装置が前記アドレス通知機能を有していないと判定された場合、前記第2のネットワークに接続され、前記第1のネットワークに接続されている情報処理装置の前記第2のネットワーク上のアドレス情報に関する情報を提供するアドレス情報提供装置から提供される情報に基づいて、前記情報処理装置の前記第2のネットワーク上のアドレス情報を予測し、予測した前記アドレス情報を前記情報管理装置に登録するように制御する第2の登録制御ステップと
    をコンピュータに実行させるプログラムが記録されることを特徴とする記録媒体。
JP2003385305A 2003-11-14 2003-11-14 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体 Expired - Fee Related JP4269226B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003385305A JP4269226B2 (ja) 2003-11-14 2003-11-14 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体
US10/983,555 US7542466B2 (en) 2003-11-14 2004-11-08 System and method of information communication, information processing apparatus and information processing method, program and recording medium
KR20040092576A KR101055048B1 (ko) 2003-11-14 2004-11-12 정보 통신 시스템, 정보 처리 장치 및 방법, 및 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003385305A JP4269226B2 (ja) 2003-11-14 2003-11-14 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体

Publications (3)

Publication Number Publication Date
JP2005151142A JP2005151142A (ja) 2005-06-09
JP2005151142A5 JP2005151142A5 (ja) 2006-09-21
JP4269226B2 true JP4269226B2 (ja) 2009-05-27

Family

ID=34567369

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003385305A Expired - Fee Related JP4269226B2 (ja) 2003-11-14 2003-11-14 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体

Country Status (3)

Country Link
US (1) US7542466B2 (ja)
JP (1) JP4269226B2 (ja)
KR (1) KR101055048B1 (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560707B2 (en) * 2007-10-05 2013-10-15 Sony Computer Entertainment America Llc Seamless host migration based on NAT type
JP4110977B2 (ja) * 2003-01-21 2008-07-02 松下電器産業株式会社 サーバ
JP2004341732A (ja) * 2003-05-14 2004-12-02 Canon Inc 処理装置、データ処理方法、プログラムおよび記憶媒体
WO2006006683A1 (ja) * 2004-07-15 2006-01-19 Matsushita Electric Industrial Co., Ltd. 中継情報設定方法、中継情報設定装置
CN101053218B (zh) * 2004-11-08 2011-07-20 松下电器产业株式会社 通信终端和通信方法
JP4708036B2 (ja) * 2005-01-21 2011-06-22 パナソニック株式会社 通信システム、情報処理装置、サーバ、及び情報処理方法
TWI267293B (en) * 2005-03-09 2006-11-21 Plustek Inc Multimedia conference system and method which enables communication between private network and Internet
JP4665568B2 (ja) * 2005-03-16 2011-04-06 パナソニック株式会社 情報処理装置、ポート検出装置、情報処理方法、及びポート検出方法
JP4557803B2 (ja) * 2005-05-27 2010-10-06 富士通株式会社 ネットワークシステム及び通信方法
US8874691B2 (en) * 2005-06-22 2014-10-28 Core Wireless Licensing S.A.R.L. System and method for establishing peer to peer connections between PCS and smart phones using networks with obstacles
US8064439B2 (en) 2005-06-30 2011-11-22 Cisco Technology, Inc. Method and system for call processing
WO2007033363A2 (en) * 2005-09-13 2007-03-22 Ist International, Inc. System and method for providing packet connectivity between heterogeneous networks
JP4909277B2 (ja) * 2005-10-04 2012-04-04 パナソニック株式会社 ネットワーク通信機器、ネットワーク通信方法、アドレス管理機器
JP4753421B2 (ja) * 2005-10-12 2011-08-24 株式会社メガチップス 複数のネットワークカメラの設定方法
US20070112962A1 (en) * 2005-11-14 2007-05-17 Steve Lewontin Network connection establishment using out of band connection request
JP4602247B2 (ja) * 2005-12-28 2010-12-22 パナソニックシステムネットワークス株式会社 通信方法
TWI301025B (en) * 2005-12-28 2008-09-11 Ind Tech Res Inst Method for transmitting real-time streaming data and apparatus using the same
US20070153812A1 (en) * 2005-12-29 2007-07-05 John Kemp Dynamic discovery of a network service on a mobile device
WO2007099414A1 (en) 2006-03-02 2007-09-07 Nokia Corporation Supporting an access to a destination network via a wireless access network
KR100758971B1 (ko) * 2006-05-09 2007-09-14 주식회사 케이티프리텔 스턴 바인딩 프로토콜을 확장한 스턴 바인딩 메시지를이용하여 서로 다른 ip 도메인 간의 연동을 위한 통신시스템, 응용 계층 게이트웨이 장치, 스턴 서버 및 통신방법
JP4635983B2 (ja) * 2006-08-10 2011-02-23 ソニー株式会社 通信処理装置、データ通信システム、および方法、並びにコンピュータ・プログラム
US8533339B2 (en) 2006-10-13 2013-09-10 Cisco Technology, Inc. Discovering security devices located on a call path and extending bindings at those discovered security devices
US7764691B2 (en) * 2007-03-15 2010-07-27 Microsoft Corporation Allowing IPv4 clients to communicate using teredo addresses when both clients are behind a NAT
US7715386B2 (en) * 2007-03-15 2010-05-11 Microsoft Corporation Reducing network traffic to teredo server
JP4411332B2 (ja) 2007-03-20 2010-02-10 パナソニック株式会社 Ip通信装置及びip通信システム並びにこれらのip通信方法
US8194683B2 (en) * 2007-03-30 2012-06-05 Microsoft Corporation Teredo connectivity between clients behind symmetric NATs
US7801059B2 (en) 2007-04-20 2010-09-21 Panasonic Corporation IP communication apparatus and NAT type determination method by the same
WO2008155886A1 (ja) * 2007-06-18 2008-12-24 Panasonic Corporation シグナリング経路確立方法、その方法で用いられる移動端末及び中継ノード
JP5207270B2 (ja) * 2007-07-12 2013-06-12 Necインフロンティア株式会社 複数のネットワーク間の通信システム
JP2009089183A (ja) * 2007-10-01 2009-04-23 Brother Ind Ltd 情報処理装置及び情報処理プログラム
US8364847B2 (en) 2008-02-29 2013-01-29 Microsoft Corporation Address management in a connectivity platform
US8825883B2 (en) * 2008-02-29 2014-09-02 Microsoft Corporation Connectivity platform
US7856506B2 (en) * 2008-03-05 2010-12-21 Sony Computer Entertainment Inc. Traversal of symmetric network address translator for multiple simultaneous connections
CN101557388B (zh) 2008-04-11 2012-05-23 中国科学院声学研究所 一种基于UPnP和STUN技术相结合的NAT穿越方法
US8305980B1 (en) * 2008-09-12 2012-11-06 Nix John A Efficient handover of media communications in heterogeneous IP networks using handover procedure rules and media handover relays
EP2169903A1 (fr) * 2008-09-30 2010-03-31 France Telecom Dispositif et procédé de routage permettant des traductions d'adresses en cascade dans un réseau
JP5018800B2 (ja) * 2009-02-10 2012-09-05 ブラザー工業株式会社 データ受信端末とコンピュータプログラム
CN101610226A (zh) * 2009-07-17 2009-12-23 阿里巴巴集团控股有限公司 一种插件下载的方法和系统
JP5304555B2 (ja) 2009-09-11 2013-10-02 ブラザー工業株式会社 端末装置、通信方法、及び通信プログラム
JP5273001B2 (ja) 2009-09-30 2013-08-28 ブラザー工業株式会社 通信システム、端末装置、通信方法、及び通信プログラム
TWI385991B (zh) * 2009-11-04 2013-02-11 Avision Inc 可便於使用者取得裝置資訊的電子裝置
PL2571207T3 (pl) 2010-05-11 2018-07-31 Chepro Corporation Dwukierunkowy system komunikacyjny i urządzenie serwerowe wykorzystywane w nim
KR20130052240A (ko) * 2011-11-11 2013-05-22 삼성전자주식회사 네트워크 주소 변환기 통과 기법을 프로비저닝하기 위한 방법 및 장치
US9749285B2 (en) * 2011-12-08 2017-08-29 Honeywell International Inc. Connected home control system with auto router port configuration and DDNS registration
US8862702B2 (en) * 2012-07-18 2014-10-14 Accedian Networks Inc. Systems and methods of installing and operating devices without explicit network addresses
CN108141409B (zh) * 2015-10-14 2020-12-01 Ntt通信公司 通信系统、地址通知装置、通信控制装置、终端、通信方法以及程序
CN106656615B (zh) * 2016-12-29 2020-03-06 杭州迪普科技股份有限公司 一种基于tracert命令的报文处理方法及装置
JP6926658B2 (ja) * 2017-05-15 2021-08-25 富士通株式会社 情報処理装置、情報処理方法及びプログラム
JP6671676B1 (ja) * 2019-09-20 2020-03-25 株式会社コナミデジタルエンタテインメント プログラム、通信装置、および通信方法
CN113179315B (zh) * 2021-04-26 2022-11-29 缀初网络技术(上海)有限公司 在多重局域网内提供设备间通信的方法、系统及可读存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001345841A (ja) 2000-05-31 2001-12-14 Sony Corp 通信ネットワークシステム、データ通信方法、および通信中継装置、並びにプログラム提供媒体
KR100445983B1 (ko) * 2002-02-05 2004-08-25 (주)다보링크 인터넷 전화 시스템 및 그 운영방법
CN100413226C (zh) * 2002-04-09 2008-08-20 阿尔卡特公司 通过直接数字卫星广播复用系统实时互连广域监视、测量或数据收集系统部件的系统和方法
US7676579B2 (en) 2002-05-13 2010-03-09 Sony Computer Entertainment America Inc. Peer to peer network communication
US7243141B2 (en) 2002-05-13 2007-07-10 Sony Computer Entertainment America, Inc. Network configuration evaluation
US7242681B1 (en) * 2002-05-17 2007-07-10 Sandstorm Enterprises, Inc. System and method for intercepting and authenticating packets during one or more communication sessions and automatically recognizing content
JP4078594B2 (ja) 2002-09-06 2008-04-23 ソニー株式会社 情報処理装置および方法、並びにプログラム
US7899932B2 (en) * 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
JP3741312B2 (ja) 2003-03-28 2006-02-01 ソニー株式会社 ネットワークシステムおよび通信方法、情報処理装置および方法、並びにプログラム
JP2005117587A (ja) 2003-10-10 2005-04-28 Newrong Inc 通信方法

Also Published As

Publication number Publication date
JP2005151142A (ja) 2005-06-09
US20050105543A1 (en) 2005-05-19
KR101055048B1 (ko) 2011-08-05
US7542466B2 (en) 2009-06-02
KR20050046632A (ko) 2005-05-18

Similar Documents

Publication Publication Date Title
JP4269226B2 (ja) 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体
US8457014B2 (en) Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
EP1931087A1 (en) Information processing system, tunnel communication device, tunnel communication method, and program
JP2004288187A (ja) ネットワークを介した機器情報の管理装置およびその方法
US20090043889A1 (en) Communication system, data processing apparatus, server, data processing method, program that executes the data processing method, and recording medium to record the program
WO2007037028A1 (ja) 情報処理システム、トンネル通信装置、トンネル通信方法、代理応答装置、及び代理応答方法
US7716368B2 (en) Network system and communication method, information processing apparatus and method, and program
JP2007527068A (ja) 少なくとも2つの計算装置間の接続を設定する際のアドレス及びポート番号アブストラクション
KR100429902B1 (ko) 공중망에서 사설망 내의 디바이스를 제어하기 위한 장치및 방법
WO2009154249A1 (ja) リモートアクセスシステム、装置、方法及びプログラム
JP5638063B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP3609948B2 (ja) マルチプロトコルネットワーク管理方法、マルチプロトコルネットワーク管理プロキシサーバシステム、マルチプロトコルアドレス管理サーバシステム、および、マルチプロトコルネットワーク管理システム
WO2003101048A1 (fr) Systeme de traitement d'information
JP2008072519A (ja) 機器検索装置、機器検索方法及びプログラム
CN101843038B (zh) 管理网络中的网络组件的方法和网络组件
JP2009049894A (ja) ネットワーク通信システム、ネットワーク通信機器、機器発見方法、および、機器発見制御プログラム
JP6002642B2 (ja) 通信ノード及びネットワークシステム及び機器制御方法
JP5054666B2 (ja) Vpn接続装置、パケット制御方法、及びプログラム
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
JP3840215B2 (ja) 通信装置、方法、機器制御装置、方法、及び、プログラム
JP2015201758A (ja) 中継装置、通信システム、情報処理方法及びプログラム
JP4945793B2 (ja) 電子装置、名前解決方法および名前解決制御プログラム
JP2009206876A (ja) サービス公開システム、通信中継装置、およびサービス公開装置
JP5171608B2 (ja) Vpn接続装置、パケット制御方法、及びプログラム
JP2010157858A (ja) Vpn接続装置、dnsパケット制御方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060808

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080826

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: 20090129

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: 20090211

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees