JP4078594B2 - Information processing apparatus and method, and program - Google Patents
Information processing apparatus and method, and program Download PDFInfo
- Publication number
- JP4078594B2 JP4078594B2 JP2002262002A JP2002262002A JP4078594B2 JP 4078594 B2 JP4078594 B2 JP 4078594B2 JP 2002262002 A JP2002262002 A JP 2002262002A JP 2002262002 A JP2002262002 A JP 2002262002A JP 4078594 B2 JP4078594 B2 JP 4078594B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- address
- port
- processing apparatus
- client
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、NAT機能を備えたルータを使用し、インターネットを介してストリーミング通信を行うことができるようにした情報処理装置および方法、並びにプログラムに関する。
【0002】
【従来の技術】
複数のコンピュータをインターネットに接続する場合、各コンピュータを、ルータを介してインターネットに接続することが多い。このルータには、1つのグローバルIP(Internet Protocol)アドレス(固有の情報であるグローバルIPアドレス)を複数のコンピュータで共有する技術であるNAT(Network Address Translation)が使用されているものがある。
【0003】
NATには、大きく分けて、Full Cone NAT,Restricted Cone NAT、およびPort Restricted Cone NATの3種類がある。
【0004】
図1は、Full Cone NATの機能を備えたルータが接続されたネットワークの構成例を示している。
【0005】
クライアント1は、ローカルアドレス(ローカルのネットワーク内において(限定された範囲において)固有の情報であるローカルアドレス)として、aa.aa.aa.aaが割り当てられており、ポートbbbを介してルータ2に接続されている(以下、このような状態を、aa.aa.aa.aa:bbbと記述する)。また、ポート番号は、ルータ2内のサービスを識別するための識別情報とされる。クライアント1は、ルータ2から、インターネット(図示せず)を介して他の装置(この例の場合サーバ3,4)と通信する。ルータ2は、Full Cone NATの機能を備えており、グローバルアドレス(ルータ2に固有の情報である固有情報)として、tt.tt.tt.ttが割り当てられており、ポートsssを介してサーバ3およびサーバ4と接続されている(tt.tt.tt.tt:sss)。サーバ3は、グローバルアドレスとして、xx.xx.xx.xxが割り当てられており、ポートyyyとポートzzzが、ルータ2のポートtt.tt.tt.tt::sssと接続されている(xx.xx.xx.xx:yyy、xx.xx.xx.xx:zzz)。また、サーバ4は、グローバルアドレスとして、pp.pp.pp.ppが割り当てられており、ポートqqqが、ルータ2のポートtt.tt.tt.tt::sssと接続されている(pp.pp.pp.pp:qqq)。
【0006】
ルータ2は、Full Cone NATの機能を備えているため、クライアント1のポートaa.aa.aa.aa:bbbから送信されたパケットを、ポートtt.tt.tt.tt:sssから、指定されたポート(図1の例の場合、ポートxx.xx.xx.xx:yyy)に送信するとともに、ポートtt.tt.tt.tt:sss宛に送信されてきた全てのパケットを、クライアント1のポートaa.aa.aa.aa:bbbに転送する。従って、サーバ3のポートxx.xx.xx.xx:yyy若しくはポートxx.xx.xx.xx:zzz、またはサーバ4のポートpp.pp.pp.pp:qqqのいずれから送信されたパケットであっても、クライアント1のポートaa.aa.aa.aa:bbbに転送される。
【0007】
図2は、Restricted Cone NATの機能を備えたルータが接続されたネットワークの構成例を示している。
【0008】
図2の例の場合、図1のルータ2(Full Cone NATの機能を備えるルータ)と異なり、ルータ11は、Restricted Cone NATの機能を備えているため、クライアント1が、リクエストしたサーバと同一のグローバルアドレスを有するサーバ(図2の例の場合、サーバ3)からのパケットのみ受信し、クライアント1に転送する。従って、図2に、点線で示されるように、サーバ4からのクライアント1に対する通信は制限される。
【0009】
すなわち、ルータ11は、クライアント1のポートaa.aa.aa.aa:bbbから送信されたパケットを、ルータ11のポートtt.tt.tt.tt:sssから、指定されたポート(図2例の場合、サーバ3のポートxx.xx.xx.xx:yyy)に送信するとともに、指定されたグローバルIPアドレス xx.xx.xx.xxを有するサーバ3のポートxx.xx.xx.xx:yyy若しくはポートxx.xx.xx.xx:zzz からポートtt.tt.tt.tt:sss宛に送信されてきた全てのパケットを、クライアント1のポートaa.aa.aa.aa:bbbに転送する。しかしながら、ルータ11は、指定されたグローバルIPアドレス xx.xx.xx.xxを有しない(グローバルIPアドレス pp.pp.pp.ppを有する)サーバ4のポートpp.pp.pp.pp:qqqからポートtt.tt.tt.tt:sss宛に送信されてきた全てのパケットの受信を拒否する。
【0010】
図3は、Port Restricted Cone NATの機能を備えたルータが接続されたネットワークの構成例を示している。
【0011】
Port Restricted Cone NATは、Restricted Cone NATとほぼ同じ機能を有するが、これに加えて、ポート番号も制限する。
【0012】
すなわち、Port Restricted Cone NATの機能を備えているルータ12は、クライアント1のポートaa.aa.aa.aa:bbbから送信されたパケットを、ルータ12のポートtt.tt.tt.tt:sssから、指定されたポート(図3例の場合、サーバ3のポートxx.xx.xx.xx:yyy)に送信するとともに、指定されたグローバルIPアドレスとポートxx.xx.xx.xx:yyyを有するサーバ3のポートxx.xx.xx.xx:yyyからポートtt.tt.tt.tt:sss宛に送信されてきた全てのパケットを、クライアント1のポートaa.aa.aa.aa:bbbに転送する。しかしながら、ルータ12は、指定されたグローバルIPアドレスとポートxx.xx.xx.xx:yyyを有しない(グローバルIPアドレス pp.pp.pp.ppを有する)サーバ4のポートpp.pp.pp.pp:qqqからポートtt.tt.tt.tt:sss宛に送信されてきたパケットはもとより、グローバルIPアドレス とxx.xx.xx.xxは同一でも、ポートzzzが異なるサーバ3のポートxx.xx.xx.xx:zzzからポートtt.tt.tt.tt:sss宛に送信されてきたパケットの受信を拒否する。
【0013】
また、近年、NAT機能を備えるルータに接続され、UDP(User Datagram Protocol)通信を行なう技術として、STUN(Simple Traversal of UDP through NAT)が知られている(例えば、非特許文献1乃至3参照)。
【0014】
図4は、STUNを利用して接続されているネットワークの構成例を示す図である。
【0015】
クライアント30には、STUNクライアント部31が設けられている。STUNクライアント部31には、グローバルアドレス問い合わせ部41と、グローバルアドレス受信部42が設けられている。
【0016】
クライアント30に接続されているルータ13には、アドレス変換部51が設けられている。
【0017】
インターネット60を介してルータ13と接続されているSTUNサーバ70には、STUNサーバ部71が設けられており、STUNサーバ部71は、グローバルアドレス問い合わせ応答部81を有する。
【0018】
STUNプロトコルの目的は、図5に示されるようなルータ13の下にいるクライアント30が、ルータ13の外のグローバルIPとポート(図5の例の場合、tt.tt.tt.tt:sss)を知ることである。しかしながら、一般的には、クライアント30がルータ13から、直接これらの情報を得ることはできない。
【0019】
そこで、以下の手順により、クライアント30が、ルータ13の外の(インターネット60側の)グローバルIPとポート(図5の例の場合、tt.tt.tt.tt:sss)を取得する。
【0020】
最初に、既知のグローバルIPとポート(図5の例の場合、xx.xx.xx.xx:yyy)を持つSTUNサーバ70をインターネット60上に用意する。
【0021】
次に、クライアント30は、ルータ13とインターネット60を介して、STUNサーバ70に対して、UDPパケットAを送信する。このとき、始点(送信元アドレス)は、aa.aa.aa.aa:bbb(ローカルIPアドレス)であり、終点(送信先アドレス)は、xx.xx.xx.xx:yyy(グローバルIPアドレス)である。
【0022】
ルータ13のアドレス変換部51は、パケットAの始点を、tt.tt.tt.tt:sss(グローバルIPアドレス)に変換し、インターネット60を介して、終点のxx.xx.xx.xx:yyyであるSTUNサーバ70に送信する。またこのとき、ルータ13のアドレス変換部51は、グローバル側からtt.tt.tt.tt:sss(グローバルIPアドレス)宛に送信されてくるパケットを、aa.aa.aa.aa:bbb(ローカルIPアドレス)に転送するアドレス変換マップを生成する。
【0023】
STUNサーバ70のグローバルアドレス問い合わせ応答部81は、インターネット60を介してパケットAを受信すると、パケットAに応答するパケットBを生成する。グローバルアドレス問い合わせ応答部81は、このパケットBに、パケットAの送信元のグローバルIPアドレスtt.tt.tt.tt:sssを含める。STUNサーバ70は、生成したパケットBを、インターネット60を介して、ルータ13に返送する。このパケットBの送信元のアドレスは、xx.xx.xx.xx:yyyとされ、送信先のアドレスは、tt.tt.tt.tt:sssとされる。
【0024】
ルータ13のアドレス変換部51は、アドレス変換マップを参照し、受信したパケットBの終点(送信先)を、aa.aa.aa.aa:bbbに変換し、これをクライアント30に送信する。
【0025】
クライアント30は、この受信したパケットBのデータに含まれるグローバルアドレスtt.tt.tt.ttとポートsssを取得する。これにより、クライアント30は、ルータ13のグローバルIP:ポートが、tt.tt.tt.tt:sssであることを取得することができる。
【0026】
そこで、このSTUNサーバ70を使用して、ルータ13にアドレス変換マップを生成した上で(上述した処理を実行した後)、そのマップを用いてUDPのストリーミング通信を行なうことが考えられる。これを、図6を参照して説明する。
【0027】
図6に示されるように、クライアント30が、ルータ13を介して、インターネット60に接続されており、STUNサーバ70とクライアント90も、それぞれ、インターネット60に接続されている。
【0028】
クライアント30は、ポート10000を有しており、ルータ13は、ポート27000を有し、クライアント90は、ポート10000を有している。すなわち、図6の例の場合、クライアント30とクライアント90は、同じ番号のポート10000を有している。また、ルータ13の下に位置するクライアント30は、ローカルIPアドレスを有しており、ルータを介さずに、インターネット60に直接接続されているクライアント90は、グローバルIPアドレスを有している。
【0029】
次に、図7のアローチャートを参照して、図6のネットワークの構成における処理を説明する。なお、この処理は、クライアント30のユーザにより、クライアント90との間での、ストリーミング通信が指令されたとき、開始される。
【0030】
ステップS1において、クライアント30は、STUNサーバ70に、ルータ13のグローバルIPアドレス:ポートを問い合わせる。このとき、クライアント30が、STUNサーバ70に所定のパケットを送信すると、ルータ13は、上述したようにパケットの始点を、ルータ13が有するグローバルIPアドレス:ポートに変換し、グローバル側からローカル側に転送するマップを生成する。
【0031】
このクライアント30からの問い合わせ(ステップS1)が出力されると、ステップS31において、STUNサーバ70は、この問い合わせを受信する。STUNサーバ70は、この問い合わせに対するパケットを生成する。このパケットには、上述したように、受信したパケットに記述されている送信元(ルータ13)のグローバルIPアドレス:ポートが含められる。
【0032】
ステップS32において、STUNサーバ70は、生成したパケット(ルータ13のグローバルIPアドレス:ポートが含まれているパケット)を送信する。このパケットは、ルータ13に送信され、ルータ13は、生成したマップを参照し、受信したパケットの終点(送信先)を、クライアント30のローカルIPアドレス:ポートに変換し、クライアント30に転送する。
【0033】
ステップS2において、クライアント30は、ステップS32の処理により送信されたパケット(上述したように、ルータ13のグローバルIPアドレス:ポートが含まれるパケット)を受信する。これにより、クライアント30は、ルータ13のグローバルIPアドレス:ポートを取得することができる。
【0034】
ステップS3とステップS51において、クライアント30とクライアント90は、お互いのグローバルIPアドレス:ポートを交換する(自分が受信に使用するグローバルIPアドレス:ポートを相手に通知する)。例えば、クライアント30は、取得したルータ13のグローバルIPアドレス:ポートの情報を含むパケットを生成し、ルータ13とインターネット60を介して、クライアント90に送信し、クライアント90は、自分自身が保有しているグローバルIPアドレス:ポートをクライアント30に送信することにより、お互いのグローバルIPアドレス:ポートを取得することができる。
【0035】
これにより、クライアント30とクライアント90は、お互いのグローバルIPアドレス:ポートに対して情報を送信することができる。
【0036】
ステップS4において、クライアント30は、画像・音声のストリームを、ルータ13とインターネット60を介して、クライアント90のグローバルIPアドレス:ポート宛に送信する。このとき、クライアント90のポートは、10000である。具体的には、クライアント30が、画像・音声のストリームをクライアント90のグローバルIPアドレス:ポートに送信すると、ルータ13は、パケットの送信元としてのクライアント30(送信元)のローカルIPアドレス:ポートを、ルータ13が有するグローバルIPアドレス:ポートに変換し、クライアント90に送信する。
【0037】
ステップS52において、クライアント90は、ステップS4の処理によりクライアント30により送信された画像・音声のストリームを受信し、再生する。
【0038】
ステップS53において、クライアント90は、画像・音声のストリームを、インターネット60を介して、ルータ13のグローバルIPアドレス:ポート宛に送信する。ルータ13は、マップを参照し、パケットの送信先のグローバルIPアドレス:ポート(ルータ13のグローバルIPアドレス:ポート)を、クライアント30のローカルIPアドレス:ポートに変換し、画像・音声のストリームを、クライアント30に転送する。
【0039】
ステップS5において、クライアント30は、ステップS53の処理によりクライアント90により送信された画像・音声のストリームを受信し、再生する。
【0040】
これにより、ルータ13に接続されている、ローカルIPアドレス:ポートを有するクライアント30においても、他のクライアント90との間で画像・音声のストリームを授受することができる。
【0041】
【非特許文献1】
MIDCOM WG,J. Rosenberg, dynamicsoft, J. Weinberger, dynamicsoft, C. Huitema, Microsoft, R. Mahy, Cisco著「STUN - Simple Traversal of UDP Through Network Address Translators」、[online]、2002年3月1日、IETF(The Internet Engineering Task Force)、[2002年8月14日検索]、インターネット,<URL: http://www.ietf.org/internet-drafts/draft-rosenberg-midcom-stun-01.txt >、文書名(draft-rosenberg-midcom-stun-01.txt)
【非特許文献2】
MIDCOM WG,J. Rosenberg, dynamicsoft, J. Weinberger, dynamicsoft, C. Huitema, Microsoft, R. Mahy, Cisco著「STUN - Simple Traversal of UDP Through Network Address Translators」、[online]、2002年3月1日、IETF(The Internet Engineering Task Force)、[2002年8月14日検索]、インターネット,<URL: http://www.potaroo.net/ietf/ids/draft-rosenberg-midcom-stun-01.txt >、文書名(draft-rosenberg-midcom-stun-01.txt)
【非特許文献3】
MIDCOM WG,J. Rosenberg, dynamicsoft, J. Weinberger, dynamicsoft, C. Huitema, Microsoft, R. Mahy, Cisco著「STUN - Simple Traversal of UDP Through Network Address Translators」、[online]、2002年3月1日、IETF(The Internet Engineering Task Force)、[2002年8月14日検索]、インターネット,<URL: http://www.watersprings.org/pub/id/draft-rosenberg-midcom-stun-01.txt>、文書名(draft-rosenberg-midcom-stun-01.txt)
【0042】
【発明が解決しようとする課題】
しかしながら、図6のシステムでは、画像・音声などのストリーミング通信を行なう2者(図6の例の場合、クライアント30とクライアント90)の他に、グローバルアドレスを持たない機器が接続されているルータのグローバルアドレスを取得するためにSTUNサーバ70が必要となるという課題があった。
【0043】
また、ルータ13は、図1に示されるようなFull Cone NATの機能を備えることが必要であり、ルータ外からのアクセスが制限されるRestricted Cone NATまたはPort Restricted Cone NATの機能を備えるルータを用いることができないという課題があった。
【0044】
本発明は、このような状況に鑑みてなされたものであり、NAT機能を備えたルータを使用し、簡便に、インターネットを介するストリーミング通信を行なうことができるようにするものである。
【0049】
【課題を解決するための手段】
本発明の情報処理装置は、他の情報処理装置から送信された、通信制御装置において他の情報処理装置を識別するための情報である第1の固有情報と、通信制御装置内のサービスを識別するための第1の識別情報の通知の要求を受信する要求受信手段と、要求受信手段により受信された第1の固有情報と第1の識別情報の通知の要求に対応して、通信制御装置の第1の固有情報と第1の識別情報の通知を含む応答を出力する応答出力手段と、他の情報処理装置に情報を送信する情報送信手段とを備え、情報送信手段は、情報処理装置の情報を出力するサービスを識別するための第2の識別情報を、情報処理装置の応答出力手段が応答を出力するサービスを識別するための第3の識別情報と同じとすることを特徴とする。
【0050】
前記要求受信手段により受信された、第1の固有情報と第1の識別情報の通知の要求には、送信元を表わす情報として、通信制御装置の第1の固有情報と第1の識別情報が含まれ、送信先を表わす情報として、情報処理装置に固有の情報である第2の固有情報と情報処理装置内のサービスを識別するための第3の識別情報が含まれ、応答出力手段により出力される、通信制御装置の第1の固有情報と第1の識別情報の通知を含む応答には、送信元を表わす情報として、第2の固有情報と第3の識別情報が含まれ、送信先を表わす情報として、通信制御装置の第1の固有情報と第1の識別情報が含まれ、情報送信手段により送信される情報には、送信元を表わす情報として、第2の固有情報と第2の識別情報が含まれ、送信先を表わす情報として、通信制御装置の第1の固有情報と第1の識別情報が含まれるようにすることができる。
【0051】
前記第1の固有情報は、グローバルIPアドレスであり、第2の固有情報は、グローバルIPアドレスであり、第1の識別情報は、通信制御装置が通信のサービスを行なうポートのポート番号であり、第2の識別情報は、情報処理装置が情報を送信するサービスを行なうポートのポート番号であり、第3の識別情報は、情報処理装置が、応答を出力するサービスを行なうポートのポート番号であるようにすることができる。
【0052】
本発明の情報処理方法は、他の情報処理装置から送信された、通信制御装置おいて他の情報処理装置を識別するための情報である第1の固有情報と、通信制御装置内のサービスを識別するための第1の識別情報の通知の要求を受信する要求受信ステップと、要求受信ステップの処理により受信された第1の固有情報と第1の識別情報の通知の要求に対応して、通信制御装置の第1の固有情報と第1の識別情報の通知を含む応答を出力する応答出力ステップと、他の情報処理装置に情報を送信する情報送信ステップとを含み、情報送信ステップの処理は、情報処理装置の情報を出力するサービスを識別するための第2の識別情報を、情報処理装置の応答出力ステップの処理により応答を出力するサービスを識別するための第3の識別情報と同じとすることを特徴とする。
【0053】
本発明のプログラムは、通信制御装置を介してネットワークに接続されている他の情報処理装置と、ネットワークを介して情報を授受する情報処理装置を制御するコンピュータが実行可能なプログラムであって、他の情報処理装置から送信された、通信制御装置において他の情報処理装置を識別するための情報である第1の固有情報と、通信制御装置内のサービスを識別するための第1の識別情報の通知の要求を受信する要求受信ステップと、要求受信ステップの処理により受信された第1の固有情報と第1の識別情報の通知の要求に対応して、通信制御装置の第1の固有情報と第1の識別情報の通知を含む応答を出力する応答出力ステップと、他の情報処理装置に情報を送信する情報送信ステップとを含み、情報送信ステップの処理は、情報処理装置の情報を出力するサービスを識別するための第2の識別情報を、情報処理装置の応答出力ステップの処理により応答を出力するサービスを識別するための第3の識別情報と同じとすることを特徴とする。
【0062】
本発明においては、他の情報処理装置から通信制御装置において他の情報処理装置を識別するための情報である第1の固有情報と通信制御装置内のサービスを識別するための第1の識別情報の通知の要求が受信されると、この要求に対応して、通信制御装置の第1の固有情報と第1の識別情報の通知を含む応答が出力される。また、他の情報処理装置に情報を送信する場合、情報を出力するサービスを識別する第2の識別情報を、応答を出力するサービスを識別するための第3の識別情報と同じとする。
【0066】
【発明の実施の形態】
図8は、本発明を適用したネットワークシステムの構成例を表わしている。
【0067】
クライアント120は、NAT機能を有するルータ180を介して、インターネット60に接続されている。また、クライアント200は、ルータ(NAT機能を有するルータ)を介さずに、インターネット60に直接接続されている。これらのクライアント120,200およびルータ180は、例えば、パーソナルコンピュータ(例えば、後述する図11のパーソナルコンピュータ300)により構成される。
【0068】
クライアント120は、図示せぬ他のクライアントとともに、ルータ180の下側(図8において左側のローカルネットワーク側)に接続され、ローカルIPアドレス:ポート(ローカルIPアドレスは、ルータ180の下側(図8において左側)のネットワーク(ローカルなネットワーク内)においてクライアント120に固有の情報である固有情報であり、ポート番号は、クライアント120内のサービスを識別するための識別情報である)が割り当てられている。より正確には、ローカルIPアドレスは、ルータ180により各クライアントに割り当てられたものであるが、ポートは、各クライアントが設定したものである。また、クライアント120には、STUNクライアント部121、RTP受信部122、STUNサーバ部123、および、RTP送信部124が設けられている。STUNクライアント部121には、グローバルアドレス問い合わせ部141、グローバルアドレス受信部142が設けられており、それぞれ、グローバルアドレスを問い合わせたり、グローバルアドレスを受信したりする。STUNサーバ部123には、グローバルアドレスの問い合わせに対する応答を行なうグローバルアドレス問い合わせ応答部161が設けられている。
【0069】
ルータ180には、アドレス変換部181が設けられており、アドレス変換部181は、グローバルアドレスをローカルアドレスに変換したり、ローカルアドレスをグローバルアドレスに変換し、その変換マップに基づいて、ルーティング処理を実行する。
【0070】
クライアント200は、ルータを介さずに、インターネット60に直接接続されており、グローバルIPアドレス:ポート(グローバルIPアドレスは、グローバルネットワークとしてのインターネット60においてクライアント200に固有の情報である固有情報であり、ポート番号は、クライアント200内のサービスを識別するための識別情報である)が割り当てられている。この場合にも、より正確には、グローバルIPアドレスは割り当てられたものであるが、ポートは自分自身が設定したものである。
【0071】
また、クライアント200には、STUNクライアント部201、RTP受信部202、STUNサーバ部203、および、RTP送信部204が設けられている。STUNクライアント部201には、グローバルアドレス問い合わせ部221、グローバルアドレス受信部222が設けられており、STUNサーバ部123には、グローバルアドレス問い合わせ応答部241が設けられている。このように、クライアント200の構成は、クライアント120の構成と同様であるため、その説明は省略する。
【0072】
いま、クライアント120、ルータ180、クライアント200は、それぞれ、図9に示されるようなIPアドレス:ポートを有するものとする。
【0073】
すなわち、クライアント120のローカルアドレスは、192.168.0.2とされており、ポート10000とポート20000を有している。STUNサーバ部123は、ポート20000を使用して情報の授受を行なう。また、クライアント120は、情報の受信をポート10000で行い、情報の送信をポート20000から行なっている。
【0074】
ルータ180のローカルアドレスは、192.168.0.1とされており、グローバルアドレスは、12.34.56.78とされている。また、ルータ180は、グローバル側(インターネット60の側)に、ポート27000と、ポート37000を有している。
【0075】
クライアント200のグローバルアドレスは、11.22.33.44とされており、ポート10000とポート20000を有している。また、STUNサーバ部203は、ポート20000を使用して情報の授受を行なう。クライアント200は、さらに、ポート10000で情報を受信し、ポート20000から情報を送信する。
【0076】
すなわち、クライアント120とクライアント200のポートは、同じ番号のポート(図9の例の場合、ポート10000とポート20000)とされている。
【0077】
図10のアローチャートを参照して、図9のクライアント120とクライアント200における通信処理を説明する。なお、この処理は、クライアント120のユーザにより、クライアント200との間の通信が指令されたとき開始される(例えば、クライアント200から、画像・音声のストリームを送信するか、受信し、再生するように指令されたとき、開始される)。
【0078】
ステップS101において、クライアント120のグローバルアドレス問い合わせ部141は、クライアント200のSTUNサーバ部203に対して、グローバルIPアドレス:ポートの問い合わせ(ルータ180のグローバルIPアドレス:ポートの問い合わせ)をする(通知を要求する)。このとき、クライアント120が送信する要求のパケットには、送信元(From)のアドレスは、192.168.0.2:10000(IPアドレス:ポート番号)とされ、送信先(To)のアドレスは、11.22.33.44:20000(IPアドレス:ポート番号)とされている。
【0079】
ステップS101の処理によりクライアント120のグローバルアドレス問い合わせ部141から出力されたパケット(問い合わせパケット(通知要求パケット))は、ステップS131において、ルータ180に受信される。ルータ180のアドレス変換部181は、このパケットの送信元(From)のアドレス192.168.0.2:10000(IPアドレス:ポート番号)と、送信先(To)のアドレス11.22.33.44:20000(IPアドレス:ポート番号)のうち、送信元(From)のアドレス192.168.0.2:10000(IPアドレス:ポート番号)を、ルータ180自身が有するグローバルIPアドレス:ポートに変換し、2つのアドレスを対応付けるマップを生成する。その後、アドレス変換部181は、インターネット60を介してこのパケットを送信先に送信する。
【0080】
具体的には、ルータ180のアドレス変換部181は、送信元(From)のアドレス192.168.0.2:10000(ローカルIPアドレス:ポート番号)を、12.34.56.78:27000(グローバルIPアドレス:ポート番号)に変換する。このとき、上述したように、アドレス変換部181は、マップを生成する。マップには、ローカルIPアドレス:ポート192.168.0.2:10000に、グローバルIPアドレス:ポート12.34.56.78:27000が対応するという情報が含まれている。その後、ルータ180は、このパケットを、インターネット60を介して、送信先であるクライアント200(送信先(To)の11.22.33.44:20000(IPアドレス:ポート番号))に送信する。このとき、送信されるパケットの送信元(From)のアドレスは12.34.56.78:27000(IPアドレス:ポート番号)とされ、送信先(To)のアドレスは11.22.33.44:20000(IPアドレス:ポート番号)とされている。
【0081】
ステップS131の処理により送信されたパケット(問い合わせパケット)は、ステップS161において、クライアント200のグローバルアドレス問い合わせ応答部241により受信される。具体的には、パケットの送信先(To)は、11.22.33.44:20000(IPアドレス:ポート番号)とされているため、STUNサーバ部203のグローバルアドレス問い合わせ応答部241がこれを受信する。
【0082】
ステップS162において、クライアント200のグローバルアドレス問い合わせ応答部241は、受信したパケットが、その内容からグローバルIPアドレスとポートの通知を要求するパケットであると判定した場合、ステップS161の処理により受信した問い合わせに対する応答のパケットを生成する。グローバルアドレス問い合わせ応答部241は、この応答パケットに、問い合わせパケットの送信元(From)のアドレスとして記述されていた、ルータ180のグローバルIPアドレス:ポート12.34.56.78:27000(IPアドレス:ポート番号)を、データ(パケットの内容)として記述するとともに、送信元(From)のアドレスとして、STUNサーバ部203のグローバルIPアドレス:ポート番号11.22.33.44:20000(IPアドレス:ポート番号)を記述し、送信先(To)のアドレスとして、問い合わせパケットの送信元として記述されていたアドレス12.34.56.78:20000(IPアドレス:ポート番号)を記述する。
【0083】
ステップS162の処理により送信された応答パケットは、ステップS132において、ルータ180により受信される(応答パケットの送信先(To)のアドレスは、ルータ180のアドレスとなっているため)。ルータ180のアドレス変換部181は、ステップS131の処理により生成されたマップ(ローカルIPアドレス:ポート192.168.0.2:10000に、グローバルIPアドレス:ポート12.34.56.78:27000が対応するという対応関係が記述されているマップ)を参照し、応答パケットの送信先(To)のアドレス(12.34.56.78:20000)を、クライアント120のローカルIPアドレス(192.168.0.2:10000)に変換する。ルータ180は、その後、この応答パケットを、クライアント120に転送する。
【0084】
ステップS132の処理により転送された応答パケットは、その送信先(To)のアドレスが、192.168.0.2:10000(IPアドレス:ポート番号)であり、送信元(From)のアドレスが11.22.33.44:20000(IPアドレス:ポート番号)であるため、ステップS102において、クライアント120のポート10000により受信される。この応答パケットには、データとしてルータ180のグローバルIPアドレス:ポートである12.34.56.78:27000(IPアドレス:ポート番号)が記述されている。従って、クライアント120のグローバルアドレス受信部142は、応答パケットのデータ部を読み取ることで、ルータ180の受信用のグローバルIPアドレス:ポートである12.34.56.78:27000(IPアドレス:ポート番号)を取得することができる。
【0085】
なお、例えば、仮に、ステップS163において、クライアント200のグローバルアドレス問い合わせ応答部221が、クライアント120(クライアント120のSTUNサーバ部123)に、グローバルIPアドレス:ポートの問い合わせをしたとする。この問い合わせのパケットには、送信元(From)のアドレス11.22.33.44:10000と、送信先(To)のアドレス12.34.56.78:20000が記述されている。
【0086】
送信先のアドレスのうちのポート20000は、このネットワークシステムにおいて、STUNサーバ部203の共通のポート番号として、予め決められているものである。しかしながら、クライアント120のSTUNサーバ部123は番号20000のポートを使用したとしても、クライアント120は、ルータの下に接続されており、ルータは、このポート番号を、ルータのポート番号として解釈する。ルータは、番号20000のポートに関するマップを有していないので、結局、ルータは、クライアント200からの問い合わせパケットの受信を拒絶することになる。
【0087】
最も、クライアント200は、ルータに接続されておらず、そのルータのグローバルIPアドレスを問い合わせる必要がないので、クライアント200は、実際には、このような処理を行わない。
【0088】
ステップS103において、クライアント120は、ステップS102の処理により取得したルータ180のグローバルIPアドレス:ポート(12.34.56.78:27000)(ルータ180は、ポート27000とポート37000を有しているが、受信するためのポートとしては、ポート27000を使用する)をクライアント200に送信する。また、同様に、ステップS164において、クライアント200は、自分自身が有するグローバルIPアドレス:ポート(11.22.33.44:10000)(クライアント200は、ポート10000とポート20000を有するが、受信する為のポートとしては、ポート10000を使用する)をクライアント120に送信する。すなわち、ステップS103とステップS164の処理により、クライアント120とクライアント200は、相手側から送信されてきた受信用の、グローバルIPアドレス:ポートを受信することになる。
【0089】
なお、このグローバルIPアドレス:ポートの交換は、その後の方法により行なうこともできる。クライアント120が、クライアント200に対して画像・音声のストリームを送信する場合、ステップS104において、クライアント120のRTP送信部124は、パケットの送信先(To)を、ステップS103の処理により取得したクライアント200のグローバルIPアドレス:ポート(図10の例の場合、11.22.33.44:10000)とし、そのパケットのデータ部に、画像・音声のストリームを配置して、パケットを送信する。このとき、パケットの送信元(From)のアドレスは、192.168.0.2:20000とされる。
【0090】
これに対して、ステップS134において、ルータ180のアドレス変換部181は、クライアント120から送信された画像・音声のストリームのパケットの送信元(From)とされているアドレス192.168.0.2:20000を、ルータ180のアドレス(送信に使用されるポート37000のアドレス)12.34.56.78:37000に変換し、クライアント200(送信先のアドレスに指定されている11.22.33.44:10000)に送信する。クライアント200のRTP受信部202は、ポート10000から、このパケットを受信し、所定の処理を実行する(例えば、受信したパケットのデータ部に格納されている画像・音声のストリームを、表示部やスピーカ(いずれも図示せず)に出力する)。
【0091】
クライアント200が、クライアント120に対して画像・音声のストリームを送信する場合、ステップS166において、クライアント200のRTP送信部204は、ステップS164の処理により取得したクライアント120のグローバルIPアドレス:ポート(実際には、ルータ180のグローバルIPアドレス:ポート)(図10の例の場合、12.34.56.78:27000)をパケットの送信先(To)アドレスとし、画像・音声のストリームをパケットのデータ部に格納して送信する。このとき、パケットの送信元(From)のアドレスは、11.22.33.44:20000とされる。
【0092】
これに対して、ステップS135において、ルータ180のアドレス変換部181は、クライアント200から送信された画像・音声のストリームのパケットの送信先(To)とされているアドレス12.34.56.78:27000を、クライアント120のアドレス(受信に使用されるポート10000(勿論、このアドレスは、ローカルIPアドレス:ポートである)に変換し、クライアント120(送信先のアドレスに指定されている192.168.0.2:10000)に転送する。クライアント120のRTP受信部122は、ポート10000から、このパケットを受信し、所定の処理を実行する(例えば、受信した画像・音声のストリームを、表示部やスピーカに出力する)。
【0093】
以上により、STUNサーバの役割(例えば、図6に示されるSTUNサーバ70)を、ストリーミング通信を行なう相手(図9の例の場合、クライアント200)が担うことにより(クライアント200にSTUNサーバ部203を設けることにより)、ネットワークシステム上に、STUNサーバを設ける必要がなくなり、もって、STUNサーバに制限されない通信を行なうことができる。
【0094】
また、ルータ180によりマップを生成するのに使用するSTUNサーバ部(図9の例の場合、STUNサーバ部203)と、画像・音声のストリームを送信する機器(図9の例の場合、クライアント200)が、同一のグローバルIPアドレス(図9の例の場合、11.22.33.44)を有するため、ルータ180として、Full Cone NATは勿論のこと、Restricted Cone NATの機能を備えたルータを使用することができる。
【0095】
さらに、STUNサーバ部203のポート番号(図9の例の場合、STUNサーバ部203のポート番号20000)と、ストリームを送信するポート番号(図9の例の場合、クライアント200のポート番号20000、すなわち、RTP送信部204により使用されるポートのポート番号)を同一にするようにしたので、ルータ180として、Port Restricted Cone NATを使用することもできる。
【0096】
ただし、ストリーミング通信をする少なくとも一方(図9の例の場合、クライアント200)は、インターネット60に、NATを介さずに直接接続されている必要がある。
【0097】
なお、ルータ180とインターネット60の間には、インターネットサービスプロバイダを設けるようにしてもよい。この場合、ルータ180のグローバルアドレスは、インターネットサービスプロバイダが、割り当てたものとなる。また、同様に、クライアント200とインターネット60の間に、インターネットサービスプロバイダを設けるようにしてもよい。この場合においても、クライアント200のグローバルアドレスは、インターネットサービスプロバイダにより割り当てられたグローバルアドレスが使用される。
【0098】
また、以上においては、ネットワークをインターネットとしたが、インターネット以外のネットワークが使用される場合にも、本発明は適用することができる。また、クライアントは、パーソナルコンピュータ以外に、PDA(Personal Digital Assistants)、携帯電話機、その他の情報処理装置とすることができる。また、ルータも、ルータ以外の通信を制御する通信制御装置とすることができる。
【0099】
さらに、以上においては、グローバルIPアドレス、ローカルIPアドレス、およびルータを使用するようにしたが、グローバルIPアドレスは、その装置に固有の情報であれば、他の情報でもよく、ローカルIPアドレスについても、その装置の限定された範囲において固有の情報であれば、他の情報でもよい。また、ポート番号についても、その装置内のサービスを識別するための識別情報であれば、他のものでもよい。さらに、サービスとは、例えば、所定のストリーム情報である。
【0100】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークやプログラム格納媒体からインストールされる。この場合、例えば、図9のクライアント120、ルータ180、またはクライアント200は、図11に示されるようなパーソナルコンピュータ300により構成される。
【0101】
図11において、CPU(Central Processing Unit)301は、ROM(Read Only Memory)302に記憶されているプログラム、または、記憶部308からRAM(Random Access Memory)303にロードされたプログラムに従って各種の処理を実行する。RAM303にはまた、CPU301が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【0102】
CPU301、ROM302、およびRAM303は、内部バス304を介して相互に接続されている。この内部バス304にはまた、入出力インターフェース305も接続されている。
【0103】
入出力インターフェース305には、キーボード、マウスなどよりなる入力部306、CRT(cathode Ray Tube),LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部307、ハードディスクなどより構成される記憶部308、モデム、ターミナルアダプタなどより構成される通信部309が接続されている。通信部309は、衛星回線やCATVを含む各種のネットワークを介しての通信処理を行なう。
【0104】
入出力インターフェース305にはまた、必要に応じてドライブ310が接続され、磁気ディスク321、光ディスク322、光磁気ディスク323、あるいは半導体メモリ324などが適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部308にインストールされる。
【0105】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用の専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークやプログラム格納媒体からインストールされる。
【0106】
このプログラム格納媒体は、図11に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク321(フロッピディスクを含む)、光ディスク322(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク323(MD(Mini Disc)を含む)、半導体メモリ324などによりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM302や記憶部308が含まれるハードディスクなどで構成される。
【0107】
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0109】
【発明の効果】
本発明によれば、アドレスの変換機能を備えた通信制御装置を使用し、ネットワークを介して情報を授受することができる。特に、この発明によれば、ネットワークシステムの構成を複雑にすることなく、かつ、コスト高とすることなく、通信制御装置の種類によらない通信を行なうことができる。
【図面の簡単な説明】
【図1】従来のFull Cone NATの機能を備えたルータを介して接続されたネットワークの構成例を示す図である。
【図2】従来のRestricted Cone NATの機能を備えたルータを介して接続されたネットワークの構成例を示す図である。
【図3】従来のPort Restricted Cone NATの機能を備えたルータを介して接続されたネットワークの構成例を示す図である。
【図4】従来のSTUNを利用して接続されているネットワークの構成例を示すブロック図である。
【図5】図4のネットワークを説明する図である。
【図6】図4のネットワークにおけるストリーミング通信を説明する図である。
【図7】図6のネットワークにおける処理を説明するアローチャートである。
【図8】本発明を適用したネットワークシステムの構成例を示すブロック図である。
【図9】図8のネットワークシステムのアドレスを説明する図である。
【図10】図8のネットワークシステムにおける処理を説明するアローチャートである。
【図11】パーソナルコンピュータを示すブロック図である。
【符号の説明】
120 クライアント, 121 STUNクライアント部, 122 RTP受信部, 123 STUNサーバ部, 124 RTP送信部, 141 グローバルアドレス問い合わせ部, 142 グローバルアドレス受信部, 161 グローバルアドレス問い合わせ応答部, 180 ルータ, 181 アドレス変換部, 200 クライアント, 201 STUNクライアント部, 202 RTP受信部, 203 STUNサーバ部, 204 RTP送信部, 221 グローバルアドレス問い合わせ部, 222 グローバルアドレス受信部, 241 グローバルアドレス問い合わせ応答部[0001]
BACKGROUND OF THE INVENTION
The present invention , Regarding information processing apparatus and method, and program, in particular, a router having a NAT function is used so that streaming communication can be performed via the Internet. The The present invention relates to an information processing apparatus and method, and a program.
[0002]
[Prior art]
When a plurality of computers are connected to the Internet, each computer is often connected to the Internet via a router. Some routers use NAT (Network Address Translation), which is a technique for sharing one global IP (Internet Protocol) address (a global IP address, which is unique information), among a plurality of computers.
[0003]
There are three main types of NAT: Full Cone NAT, Restricted Cone NAT, and Port Restricted Cone NAT.
[0004]
FIG. 1 shows a configuration example of a network to which a router having a Full Cone NAT function is connected.
[0005]
The client 1 is assigned aa.aa.aa.aa as a local address (local address that is unique information (within a limited range) in the local network), and is sent to the
[0006]
Since the
[0007]
FIG. 2 shows a configuration example of a network to which routers having the function of Restricted Cone NAT are connected.
[0008]
In the case of the example in FIG. 2, unlike the
[0009]
That is, the
[0010]
FIG. 3 shows a configuration example of a network to which a router having a function of Port Restricted Cone NAT is connected.
[0011]
Port Restricted Cone NAT has almost the same function as Restricted Cone NAT, but additionally restricts the port number.
[0012]
In other words, the
[0013]
In recent years, STUN (Simple Traversal of UDP through NAT) is known as a technology for performing UDP (User Datagram Protocol) communication connected to a router having a NAT function (see, for example, Non-Patent Documents 1 to 3). .
[0014]
FIG. 4 is a diagram illustrating a configuration example of a network connected using STUN.
[0015]
The
[0016]
The
[0017]
The STUN
[0018]
The purpose of the STUN protocol is that the
[0019]
Therefore, the
[0020]
First, a
[0021]
Next, the
[0022]
The
[0023]
When receiving the packet A via the
[0024]
The
[0025]
The
[0026]
Therefore, it is conceivable that the
[0027]
As shown in FIG. 6, the
[0028]
The
[0029]
Next, processing in the network configuration of FIG. 6 will be described with reference to the arrow chart of FIG. This process is started when streaming communication with the
[0030]
In step S <b> 1, the
[0031]
When the inquiry (step S1) from the
[0032]
In step S32, the
[0033]
In step S <b> 2, the
[0034]
In step S3 and step S51, the
[0035]
Thereby, the
[0036]
In step S <b> 4, the
[0037]
In step S52, the
[0038]
In step S 53, the
[0039]
In step S5, the
[0040]
As a result, the
[0041]
[Non-Patent Document 1]
"STUN-Simple Traversal of UDP Through Network Address Translators" by MIDCOM WG, J. Rosenberg, dynamicsoft, J. Weinberger, dynamicsoft, C. Huitema, Microsoft, R. Mahy, Cisco, [online], March 1, 2002 , IETF (The Internet Engineering Task Force), [searched on August 14, 2002], Internet, <URL: http://www.ietf.org/internet-drafts/draft-rosenberg-midcom-stun-01.txt>, document name (draft-rosenberg-midcom-stun-01.txt)
[Non-Patent Document 2]
"STUN-Simple Traversal of UDP Through Network Address Translators" by MIDCOM WG, J. Rosenberg, dynamicsoft, J. Weinberger, dynamicsoft, C. Huitema, Microsoft, R. Mahy, Cisco, [online], March 1, 2002 , IETF (The Internet Engineering Task Force), [searched on August 14, 2002], Internet, <URL: http://www.potaroo.net/ietf/ids/draft-rosenberg-midcom-stun-01.txt>, document name (draft-rosenberg-midcom-stun-01.txt)
[Non-Patent Document 3]
"STUN-Simple Traversal of UDP Through Network Address Translators" by MIDCOM WG, J. Rosenberg, dynamicsoft, J. Weinberger, dynamicsoft, C. Huitema, Microsoft, R. Mahy, Cisco, [online], March 1, 2002 , IETF (The Internet Engineering Task Force), [searched on August 14, 2002], Internet, <URL: http://www.watersprings.org/pub/id/draft-rosenberg-midcom-stun-01.txt>, document name (draft-rosenberg-midcom-stun-01.txt)
[0042]
[Problems to be solved by the invention]
However, in the system of FIG. 6, in addition to the two parties that perform streaming communication such as images and sounds (in the example of FIG. 6, the
[0043]
Further, the
[0044]
The present invention has been made in view of such a situation, and makes it possible to easily perform streaming communication via the Internet using a router having a NAT function.
[0049]
[Means for Solving the Problems]
The present invention of The information processing apparatus transmits first unique information that is transmitted from another information processing apparatus and is information for identifying the other information processing apparatus in the communication control apparatus, and a service for identifying the service in the communication control apparatus. In response to the request for notification of the first identification information and the first identification information received by the request reception means, the request receiving means for receiving the request for notification of the first identification information, the first of the communication control device A response output means for outputting a response including the notification of the unique information and the first identification information, and an information transmission means for transmitting information to another information processing apparatus. The second identification information for identifying the service to be output is the same as the third identification information for identifying the service to which the response output unit of the information processing apparatus outputs a response.
[0050]
The request for notification of the first unique information and the first identification information received by the request receiving means includes the first unique information and the first identification information of the communication control device as information representing the transmission source. The information indicating the transmission destination includes second unique information that is unique to the information processing device and third identification information for identifying the service in the information processing device, and is output by the response output means. The response including the notification of the first unique information and the first identification information of the communication control device includes the second unique information and the third identification information as information representing the transmission source. The information indicating the communication control device includes the first unique information and the first identification information, and the information transmitted by the information transmitting means includes the second unique information and the second information as information representing the transmission source. Is included as information indicating the destination. It may be to include the first unique information and the first identification information of the communication control apparatus.
[0051]
The first unique information is a global IP address, the second unique information is a global IP address, and the first identification information is a port number of a port on which a communication control device performs a communication service, The second identification information is a port number of a port that performs a service for transmitting information by the information processing apparatus, and the third identification information is a port number of a port that performs a service for outputting a response by the information processing apparatus. Can be.
[0052]
The information processing method of the present invention is a communication control device transmitted from another information processing device. To identify other information processing devices The first unique information that is the information of the communication information, the request reception step for receiving the request for notification of the first identification information for identifying the service in the communication control device, and the first received by the processing of the request reception step A response output step for outputting a response including the notification of the first unique information and the first identification information of the communication control device in response to the request for the notification of the unique information and the first identification information, and other information processing An information transmission step of transmitting information to the device, wherein the information transmission step processing includes second identification information for identifying a service that outputs information of the information processing device, and processing of a response output step of the information processing device. This is the same as the third identification information for identifying the service that outputs the response.
[0053]
The program of the present invention is a program that can be executed by a computer that controls another information processing apparatus connected to a network via a communication control apparatus and an information processing apparatus that exchanges information via the network. Sent from the information processing device to the communication control device To identify other information processing devices The first unique information that is the information of the communication information, the request reception step for receiving the request for notification of the first identification information for identifying the service in the communication control device, and the first received by the processing of the request reception step A response output step for outputting a response including the notification of the first unique information and the first identification information of the communication control device in response to the request for the notification of the unique information and the first identification information, and other information processing An information transmission step of transmitting information to the device, wherein the information transmission step processing includes second identification information for identifying a service that outputs information of the information processing device, and processing of a response output step of the information processing device. This is the same as the third identification information for identifying the service that outputs the response.
[0062]
The present invention In, the notification of the first identification information for identifying the first unique information which is information for identifying the other information processing device in the communication control device and the service in the communication control device from the other information processing device In response to this request, a response including a notification of the first unique information of the communication control device and the first identification information is output. When information is transmitted to another information processing apparatus, the second identification information for identifying the service for outputting the information is the same as the third identification information for identifying the service for outputting the response.
[0066]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 8 shows a configuration example of a network system to which the present invention is applied.
[0067]
The
[0068]
The
[0069]
The
[0070]
The
[0071]
Further, the
[0072]
Now, it is assumed that the
[0073]
That is, the local address of the
[0074]
The local address of the
[0075]
The global address of the
[0076]
That is, the ports of the
[0077]
A communication process in the
[0078]
In step S101, the global
[0079]
The packet (inquiry packet (notification request packet)) output from the global
[0080]
Specifically, the
[0081]
The packet (inquiry packet) transmitted by the process of step S131 is received by the global address inquiry response unit 241 of the
[0082]
In step S162, if the global address inquiry response unit 241 of the
[0083]
The response packet transmitted by the process of step S162 is received by the
[0084]
In the response packet transferred by the processing in step S132, the destination (To) address is 192.168.0.2:10000 (IP address: port number), and the source (From) address is 11.22.33.44: 20000. Since it is (IP address: port number), it is received by the
[0085]
For example, suppose that the global address
[0086]
The
[0087]
However, since the
[0088]
In step S103, the
[0089]
This global IP address: port exchange can also be performed by a subsequent method. When the
[0090]
On the other hand, in step S134, the
[0091]
When the
[0092]
On the other hand, in step S135, the
[0093]
As described above, the role of the STUN server (for example, the
[0094]
Further, the STUN server unit (STUN
[0095]
Furthermore, the port number of the STUN server unit 203 (in the case of FIG. 9, the
[0096]
However, at least one of the streaming communications (
[0097]
An Internet service provider may be provided between the
[0098]
In the above description, the network is the Internet. However, the present invention can also be applied when a network other than the Internet is used. In addition to the personal computer, the client can be a PDA (Personal Digital Assistants), a mobile phone, or other information processing apparatus. The router can also be a communication control device that controls communications other than the router.
[0099]
Furthermore, in the above, the global IP address, the local IP address, and the router are used. However, the global IP address may be other information as long as it is information unique to the device, and the local IP address may also be used. Other information may be used as long as the information is unique within the limited range of the device. Further, the port number may be other information as long as it is identification information for identifying the service in the apparatus. Furthermore, the service is, for example, predetermined stream information.
[0100]
The series of processes described above can be executed by hardware, but can also be executed by software. When a series of processing is executed by software, a program constituting the software executes various functions by installing a computer incorporated in dedicated hardware or various programs. For example, it is installed in a general-purpose personal computer from a network or a program storage medium. In this case, for example, the
[0101]
In FIG. 11, a CPU (Central Processing Unit) 301 performs various processes according to a program stored in a ROM (Read Only Memory) 302 or a program loaded from a
[0102]
The
[0103]
The input /
[0104]
A
[0105]
When a series of processing is executed by software, various functions can be realized by installing a program that constitutes the software in a dedicated dedicated hardware computer or by installing various programs. For example, a general-purpose personal computer that can be executed is installed from a network or a program storage medium.
[0106]
As shown in FIG. 11, the program storage medium includes a magnetic disk 321 (including a floppy disk) on which a program is recorded and an optical disk 322 (distributed to provide a program to a user separately from a computer) It is simply composed of a package medium consisting of CD-ROM (compact disc-read only memory), DVD (including digital versatile disc), magneto-optical disc 323 (including MD (mini disc)),
[0107]
In the present specification, the step of describing a computer program includes not only processing performed in time series according to the described order but also processing executed in parallel or individually even if not necessarily processed in time series. Is also included.
[0109]
【The invention's effect】
The present invention According to the above, information can be exchanged via a network using a communication control device having an address conversion function. In particular, according to the present invention, communication independent of the type of communication control device can be performed without complicating the configuration of the network system and without increasing the cost.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration example of a network connected through a router having a function of a conventional full cone NAT.
FIG. 2 is a diagram illustrating a configuration example of a network connected through a router having a function of a conventional Restricted Cone NAT.
FIG. 3 is a diagram illustrating a configuration example of a network connected via a router having a function of a conventional Port Restricted Cone NAT.
FIG. 4 is a block diagram illustrating a configuration example of a network connected using conventional STUN.
FIG. 5 is a diagram for explaining the network of FIG. 4;
6 is a diagram illustrating streaming communication in the network of FIG. 4. FIG.
7 is an arrow chart for explaining processing in the network of FIG. 6;
FIG. 8 is a block diagram showing a configuration example of a network system to which the present invention is applied.
FIG. 9 is a diagram for explaining addresses of the network system of FIG. 8;
10 is an arrow chart for explaining processing in the network system of FIG. 8;
FIG. 11 is a block diagram illustrating a personal computer.
[Explanation of symbols]
120 clients, 121 STUN client sections, 122 RTP receiver sections, 123 STUN server sections, 124 RTP transmission sections, 141 global address inquiry sections, 142 global address reception sections, 161 global address inquiry response sections, 180 routers, 181 address conversion sections, 200 client, 201 STUN client part, 202 RTP receiver part, 203 STUN server part, 204 RTP transmitter part, 221 global address inquiry part, 222 global address receiver part, 241 global address inquiry response part
Claims (5)
前記他の情報処理装置から送信された、前記通信制御装置において前記他の情報処理装置を識別するための情報である第1の固有情報と、前記通信制御装置内のサービスを識別するための第1の識別情報の通知の要求を受信する要求受信手段と、
前記要求受信手段により受信された前記第1の固有情報と前記第1の識別情報の通知の要求に対応して、前記通信制御装置の前記第1の固有情報と前記第1の識別情報の通知を含む応答を出力する応答出力手段と、
前記他の情報処理装置に前記情報を送信する情報送信手段とを備え、
前記情報送信手段は、前記情報処理装置の前記情報を出力するサービスを識別するための第2の識別情報を、前記情報処理装置の前記応答出力手段が前記応答を出力するサービスを識別するための第3の識別情報と同じとする
ことを特徴とする情報処理装置。In another information processing apparatus connected to a network via a communication control apparatus and an information processing apparatus that exchanges information via the network,
First unique information, which is transmitted from the other information processing apparatus and is information for identifying the other information processing apparatus in the communication control apparatus, and a first information for identifying a service in the communication control apparatus. Request receiving means for receiving a request for notification of one identification information;
In response to the request for notification of the first unique information and the first identification information received by the request receiving means, notification of the first unique information and the first identification information of the communication control device Response output means for outputting a response including:
An information transmission means for transmitting the information to the other information processing apparatus;
The information transmission unit is configured to identify second identification information for identifying the service that outputs the information of the information processing apparatus, and to identify the service that the response output unit of the information processing apparatus outputs the response. An information processing apparatus characterized by being the same as the third identification information.
前記応答出力手段により出力される、前記通信制御装置の前記第1の固有情報と前記第1の識別情報の通知を含む応答には、送信元を表わす情報として、前記第2の固有情報と前記第3の識別情報が含まれ、送信先を表わす情報として、前記通信制御装置の前記第1の固有情報と前記第1の識別情報が含まれ、
前記情報送信手段により送信される前記情報には、送信元を表わす情報として、前記第2の固有情報と前記第2の識別情報が含まれ、送信先を表わす情報として、前記通信制御装置の前記第1の固有情報と前記第1の識別情報が含まれる
ことを特徴とする請求項1に記載の情報処理装置。In the request for notification of the first unique information and the first identification information received by the request receiving means, the first unique information and the first unique information of the communication control device are used as information representing a transmission source. 1 identification information is included, and the second identification information that is unique to the information processing apparatus and the third identification information for identifying the service in the information processing apparatus are included as information indicating the transmission destination. Included,
In the response including the notification of the first unique information and the first identification information of the communication control device, which is output by the response output means, the second unique information and the Third identification information is included, and the information representing the transmission destination includes the first unique information and the first identification information of the communication control device,
The information transmitted by the information transmitting means includes the second unique information and the second identification information as information representing a transmission source, and the information of the communication control device as information representing a transmission destination. The information processing apparatus according to claim 1 , comprising first unique information and the first identification information.
前記第2の固有情報は、グローバルIPアドレスであり、
前記第1の識別情報は、前記通信制御装置が通信のサービスを行なうポートのポート番号であり、
前記第2の識別情報は、前記情報処理装置が前記情報を送信するサービスを行なうポートのポート番号であり、
前記第3の識別情報は、前記情報処理装置が、前記応答を出力するサービスを行なうポートのポート番号である
ことを特徴とする請求項2に記載の情報処理装置。The first unique information is a global IP address;
The second unique information is a global IP address,
The first identification information is a port number of a port on which the communication control device performs communication service,
The second identification information is a port number of a port that performs a service in which the information processing apparatus transmits the information;
The information processing apparatus according to claim 2 , wherein the third identification information is a port number of a port that provides a service for the information processing apparatus to output the response.
前記他の情報処理装置から送信された、前記通信制御装置おいて前記他の情報処理装置を識別するための情報である第1の固有情報と、前記通信制御装置内のサービスを識別するための第1の識別情報の通知の要求を受信する要求受信ステップと、
前記要求受信ステップの処理により受信された前記第1の固有情報と前記第1の識別情報の通知の要求に対応して、前記通信制御装置の前記第1の固有情報と前記第1の識別情報の通知を含む応答を出力する応答出力ステップと、
前記他の情報処理装置に前記情報を送信する情報送信ステップとを含み、
前記情報送信ステップの処理は、前記情報処理装置の前記情報を出力するサービスを識別するための第2の識別情報を、前記情報処理装置の前記応答出力ステップの処理により前記応答を出力するサービスを識別するための第3の識別情報と同じとする
ことを特徴とする情報処理方法。In an information processing method of an information processing apparatus that exchanges information with another information processing apparatus connected to a network via a communication control apparatus, via the network,
First unique information transmitted from the other information processing apparatus, which is information for identifying the other information processing apparatus in the communication control apparatus, and a service for identifying the service in the communication control apparatus A request receiving step of receiving a request for notification of the first identification information;
In response to the notification request for the first unique information and the first identification information received by the processing of the request reception step, the first unique information and the first identification information of the communication control device A response output step for outputting a response including the notification of
An information transmission step of transmitting the information to the other information processing apparatus,
The processing of the information transmission step includes second identification information for identifying the service of the information processing device that outputs the information, and the service of outputting the response by the processing of the response output step of the information processing device. An information processing method characterized by being the same as the third identification information for identification.
前記他の情報処理装置から送信された、前記通信制御装置において前記他の情報処理装置を識別するための情報である第1の固有情報と、前記通信制御装置内のサービスを識別するための第1の識別情報の通知の要求を受信する要求受信ステップと、
前記要求受信ステップの処理により受信された前記第1の固有情報と前記第1の識別情報の通知の要求に対応して、前記通信制御装置の前記第1の固有情報と前記第1の識別情報の通知を含む応答を出力する応答出力ステップと、
前記他の情報処理装置に前記情報を送信する情報送信ステップとを含み、
前記情報送信ステップの処理は、前記情報処理装置の前記情報を出力するサービスを識別するための第2の識別情報を、前記情報処理装置の前記応答出力ステップの処理により前記応答を出力するサービスを識別するための第3の識別情報と同じとする
ことを特徴とするプログラム。A program executable by a computer that controls another information processing apparatus connected to a network via a communication control apparatus and an information processing apparatus that exchanges information via the network,
First unique information, which is transmitted from the other information processing apparatus and is information for identifying the other information processing apparatus in the communication control apparatus, and a first information for identifying a service in the communication control apparatus. A request receiving step for receiving a request for notification of one identification information;
In response to the notification request for the first unique information and the first identification information received by the processing of the request reception step, the first unique information and the first identification information of the communication control device A response output step for outputting a response including the notification of
An information transmission step of transmitting the information to the other information processing apparatus,
The processing of the information transmission step includes second identification information for identifying the service of the information processing device that outputs the information, and the service of outputting the response by the processing of the response output step of the information processing device. A program characterized by being the same as the third identification information for identification.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002262002A JP4078594B2 (en) | 2002-09-06 | 2002-09-06 | Information processing apparatus and method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002262002A JP4078594B2 (en) | 2002-09-06 | 2002-09-06 | Information processing apparatus and method, and program |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004104357A JP2004104357A (en) | 2004-04-02 |
JP2004104357A5 JP2004104357A5 (en) | 2005-10-27 |
JP4078594B2 true JP4078594B2 (en) | 2008-04-23 |
Family
ID=32262200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002262002A Expired - Fee Related JP4078594B2 (en) | 2002-09-06 | 2002-09-06 | Information processing apparatus and method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4078594B2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4269226B2 (en) | 2003-11-14 | 2009-05-27 | ソニー株式会社 | Information communication system and method, information processing apparatus and method, program, and recording medium |
WO2006049251A1 (en) * | 2004-11-08 | 2006-05-11 | Matsushita Electric Industrial Co., Ltd. | Communication terminal, and communication method |
JP4665568B2 (en) * | 2005-03-16 | 2011-04-06 | パナソニック株式会社 | Information processing apparatus, port detection apparatus, information processing method, and port detection method |
JP4557803B2 (en) * | 2005-05-27 | 2010-10-06 | 富士通株式会社 | Network system and communication method |
JP4722623B2 (en) * | 2005-08-24 | 2011-07-13 | パナソニック株式会社 | IP communication apparatus and control method thereof |
JP2008226039A (en) * | 2007-03-14 | 2008-09-25 | Nippon Telegr & Teleph Corp <Ntt> | INTERNET STORAGE NAME SERVICE (iSNS) METHOD, SERVER AND PROGRAM |
JP2010283594A (en) * | 2009-06-04 | 2010-12-16 | Panasonic Corp | Communication device, and method of determining communication possibility |
JP5241890B2 (en) * | 2011-07-12 | 2013-07-17 | キヤノン株式会社 | Receiving apparatus, method, and program |
-
2002
- 2002-09-06 JP JP2002262002A patent/JP4078594B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004104357A (en) | 2004-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7245622B2 (en) | Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload | |
US7627689B2 (en) | Information processing system, apparatus, method and computer program product having network-specific address features and global address features | |
US8194681B2 (en) | Bridging between AD HOC local networks and internet-based peer-to-peer networks | |
US7272650B2 (en) | Communication protocols operable through network address translation (NAT) type devices | |
US9722806B2 (en) | Service discovery across different networks | |
US20150120918A1 (en) | Traversal of symmetric network address translator for multiple simultaneous connections | |
US8650312B2 (en) | Connection establishing management methods for use in a network system and network systems using the same | |
JP2008205988A (en) | Data communication system and session management server | |
US20120036180A1 (en) | Service virtualization over content-centric networks | |
US20070027997A1 (en) | Technique for translating location information | |
US20070189486A1 (en) | Communication apparatus, system, method and computer readable medium | |
JP4784667B2 (en) | Terminal device and computer program | |
US20100040057A1 (en) | Communication method | |
US20130117460A1 (en) | Data management methods for use in a network system and network systems using the same | |
KR100607993B1 (en) | System and method for communication between heterogeneous networks | |
JP5091887B2 (en) | Terminal device, communication processing method, and program | |
JP4078594B2 (en) | Information processing apparatus and method, and program | |
WO2014030580A1 (en) | Synchronization transmission server | |
US8051157B2 (en) | Discovery apparatus and method | |
US20050111486A1 (en) | Device and method for controlling network devices located within private networks | |
JP2022052742A (en) | Method and system for enhancing communication between ipv6 dedicated sip client and ipv4 dedicated server or client | |
JP2008236278A (en) | Communication connection method and communication apparatus | |
JP4019848B2 (en) | Address translation device | |
JP5908411B2 (en) | Facilitates rapid establishment of human / machine communication links with private SIP-based IP networks by using pre-distributed static network address translation maps | |
WO2022201980A1 (en) | Communication method, router, server, communication system, and communication program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050906 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050906 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070926 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070928 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071012 |
|
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: 20080110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080123 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110215 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110215 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120215 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130215 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |