(57)【特許請求の範囲】
【請求項１】
通信制御装置を介してネットワークに接続されている他の情報処理装置と、前記ネットワークを介して情報を授受する情報処理装置において、
前記他の情報処理装置から送信された、前記通信制御装置において前記他の情報処理装置を識別するための情報である第１の固有情報と、前記通信制御装置内のサービスを識別するための第１の識別情報の通知の要求を受信する要求受信手段と、
前記要求受信手段により受信された前記第１の固有情報と前記第１の識別情報の通知の要求に対応して、前記通信制御装置の前記第１の固有情報と前記第１の識別情報の通知を含む応答を出力する応答出力手段と、
前記他の情報処理装置に前記情報を送信する情報送信手段とを備え、
前記情報送信手段は、前記情報処理装置の前記情報を出力するサービスを識別するための第２の識別情報を、前記情報処理装置の前記応答出力手段が前記応答を出力するサービスを識別するための第３の識別情報と同じとする
ことを特徴とする情報処理装置。
【請求項２】
前記要求受信手段により受信された、前記第１の固有情報と前記第１の識別情報の通知の要求には、送信元を表わす情報として、前記通信制御装置の前記第１の固有情報と前記第１の識別情報が含まれ、送信先を表わす情報として、前記情報処理装置に固有の情報である第２の固有情報と前記情報処理装置内のサービスを識別するための前記第３の識別情報が含まれ、
前記応答出力手段により出力される、前記通信制御装置の前記第１の固有情報と前記第１の識別情報の通知を含む応答には、送信元を表わす情報として、前記第２の固有情報と前記第３の識別情報が含まれ、送信先を表わす情報として、前記通信制御装置の前記第１の固有情報と前記第１の識別情報が含まれ、
前記情報送信手段により送信される前記情報には、送信元を表わす情報として、前記第２の固有情報と前記第２の識別情報が含まれ、送信先を表わす情報として、前記通信制御装置の前記第１の固有情報と前記第１の識別情報が含まれる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の固有情報は、グローバルＩＰアドレスであり、
前記第２の固有情報は、グローバルＩＰアドレスであり、
前記第１の識別情報は、前記通信制御装置が通信のサービスを行なうポートのポート番号であり、
前記第２の識別情報は、前記情報処理装置が前記情報を送信するサービスを行なうポートのポート番号であり、
前記第３の識別情報は、前記情報処理装置が、前記応答を出力するサービスを行なうポートのポート番号である
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
通信制御装置を介してネットワークに接続されている他の情報処理装置と、前記ネットワークを介して情報を授受する情報処理装置の情報処理方法において、
前記他の情報処理装置から送信された、前記通信制御装置おいて前記他の情報処理装置を識別するための情報である第１の固有情報と、前記通信制御装置内のサービスを識別するための第１の識別情報の通知の要求を受信する要求受信ステップと、
前記要求受信ステップの処理により受信された前記第１の固有情報と前記第１の識別情報の通知の要求に対応して、前記通信制御装置の前記第１の固有情報と前記第１の識別情報の通知を含む応答を出力する応答出力ステップと、
前記他の情報処理装置に前記情報を送信する情報送信ステップとを含み、
前記情報送信ステップの処理は、前記情報処理装置の前記情報を出力するサービスを識別するための第２の識別情報を、前記情報処理装置の前記応答出力ステップの処理により前記応答を出力するサービスを識別するための第３の識別情報と同じとする
ことを特徴とする情報処理方法。
【請求項５】
通信制御装置を介してネットワークに接続されている他の情報処理装置と、前記ネットワークを介して情報を授受する情報処理装置を制御するコンピュータが実行可能なプログラムであって、
前記他の情報処理装置から送信された、前記通信制御装置において前記他の情報処理装置を識別するための情報である第１の固有情報と、前記通信制御装置内のサービスを識別するための第１の識別情報の通知の要求を受信する要求受信ステップと、
前記要求受信ステップの処理により受信された前記第１の固有情報と前記第１の識別情報の通知の要求に対応して、前記通信制御装置の前記第１の固有情報と前記第１の識別情報の通知を含む応答を出力する応答出力ステップと、
前記他の情報処理装置に前記情報を送信する情報送信ステップとを含み、
前記情報送信ステップの処理は、前記情報処理装置の前記情報を出力するサービスを識別するための第２の識別情報を、前記情報処理装置の前記応答出力ステップの処理により前記応答を出力するサービスを識別するための第３の識別情報と同じとする
ことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、NAT機能を備えたルータを使用し、インターネットを介してストリーミング通信を行うことができるようにした情報処理装置および方法、並びにプログラムに関する。
【０００２】
【従来の技術】
複数のコンピュータをインターネットに接続する場合、各コンピュータを、ルータを介してインターネットに接続することが多い。このルータには、１つのグローバルＩＰ（Internet Protocol）アドレス（固有の情報であるグローバルＩＰアドレス）を複数のコンピュータで共有する技術であるNAT（Network Address Translation）が使用されているものがある。
【０００３】
NATには、大きく分けて、Full Cone NAT，Restricted Cone NAT、およびPort Restricted Cone NATの３種類がある。
【０００４】
図１は、Full Cone NATの機能を備えたルータが接続されたネットワークの構成例を示している。
【０００５】
クライアント１は、ローカルアドレス（ローカルのネットワーク内において（限定された範囲において）固有の情報であるローカルアドレス）として、aa.aa.aa.aaが割り当てられており、ポートbbbを介してルータ２に接続されている（以下、このような状態を、aa.aa.aa.aa：bbbと記述する）。また、ポート番号は、ルータ２内のサービスを識別するための識別情報とされる。クライアント１は、ルータ２から、インターネット（図示せず）を介して他の装置（この例の場合サーバ３，４）と通信する。ルータ２は、Full Cone NATの機能を備えており、グローバルアドレス（ルータ２に固有の情報である固有情報）として、tt.tt.tt.ttが割り当てられており、ポートsssを介してサーバ３およびサーバ４と接続されている（tt.tt.tt.tt：sss）。サーバ３は、グローバルアドレスとして、xx.xx.xx.xxが割り当てられており、ポートyyyとポートzzzが、ルータ２のポートtt.tt.tt.tt:：sssと接続されている（xx.xx.xx.xx：yyy、xx.xx.xx.xx：zzz）。また、サーバ４は、グローバルアドレスとして、pp.pp.pp.ppが割り当てられており、ポートqqqが、ルータ２のポートtt.tt.tt.tt:：sssと接続されている（pp.pp.pp.pp：qqq）。
【０００６】
ルータ２は、Full Cone NATの機能を備えているため、クライアント１のポートaa.aa.aa.aa：bbbから送信されたパケットを、ポートtt.tt.tt.tt：sssから、指定されたポート（図１の例の場合、ポートxx.xx.xx.xx：yyy）に送信するとともに、ポートtt.tt.tt.tt：sss宛に送信されてきた全てのパケットを、クライアント１のポートaa.aa.aa.aa：bbbに転送する。従って、サーバ３のポートxx.xx.xx.xx：yyy若しくはポートxx.xx.xx.xx：zzz、またはサーバ４のポートpp.pp.pp.pp：qqqのいずれから送信されたパケットであっても、クライアント１のポートaa.aa.aa.aa：bbbに転送される。
【０００７】
図２は、Restricted Cone NATの機能を備えたルータが接続されたネットワークの構成例を示している。
【０００８】
図２の例の場合、図１のルータ２（Full Cone NATの機能を備えるルータ）と異なり、ルータ１１は、Restricted Cone NATの機能を備えているため、クライアント１が、リクエストしたサーバと同一のグローバルアドレスを有するサーバ（図２の例の場合、サーバ３）からのパケットのみ受信し、クライアント１に転送する。従って、図２に、点線で示されるように、サーバ４からのクライアント１に対する通信は制限される。
【０００９】
すなわち、ルータ１１は、クライアント１のポートaa.aa.aa.aa:bbbから送信されたパケットを、ルータ１１のポートtt.tt.tt.tt:sssから、指定されたポート（図２例の場合、サーバ３のポートxx.xx.xx.xx:yyy）に送信するとともに、指定されたグローバルＩＰアドレス xx.xx.xx.xxを有するサーバ３のポートxx.xx.xx.xx:yyy若しくはポートxx.xx.xx.xx:zzz からポートtt.tt.tt.tt:sss宛に送信されてきた全てのパケットを、クライアント１のポートaa.aa.aa.aa:bbbに転送する。しかしながら、ルータ１１は、指定されたグローバルＩＰアドレス xx.xx.xx.xxを有しない（グローバルＩＰアドレス pp.pp.pp.ppを有する）サーバ４のポートpp.pp.pp.pp:qqqからポートtt.tt.tt.tt:sss宛に送信されてきた全てのパケットの受信を拒否する。
【００１０】
図３は、Port Restricted Cone NATの機能を備えたルータが接続されたネットワークの構成例を示している。
【００１１】
Port Restricted Cone NATは、Restricted Cone NATとほぼ同じ機能を有するが、これに加えて、ポート番号も制限する。
【００１２】
すなわち、Port Restricted Cone NATの機能を備えているルータ１２は、クライアント１のポートaa.aa.aa.aa:bbbから送信されたパケットを、ルータ１２のポートtt.tt.tt.tt:sssから、指定されたポート（図３例の場合、サーバ３のポートxx.xx.xx.xx:yyy）に送信するとともに、指定されたグローバルＩＰアドレスとポートxx.xx.xx.xx:yyyを有するサーバ３のポートxx.xx.xx.xx:yyyからポートtt.tt.tt.tt:sss宛に送信されてきた全てのパケットを、クライアント１のポートaa.aa.aa.aa:bbbに転送する。しかしながら、ルータ１２は、指定されたグローバルＩＰアドレスとポートxx.xx.xx.xx:yyyを有しない（グローバルＩＰアドレス pp.pp.pp.ppを有する）サーバ４のポートpp.pp.pp.pp:qqqからポートtt.tt.tt.tt:sss宛に送信されてきたパケットはもとより、グローバルIPアドレス とxx.xx.xx.xxは同一でも、ポートzzzが異なるサーバ３のポートxx.xx.xx.xx:zzzからポートtt.tt.tt.tt:sss宛に送信されてきたパケットの受信を拒否する。
【００１３】
また、近年、NAT機能を備えるルータに接続され、UDP(User Datagram Protocol)通信を行なう技術として、STUN(Simple Traversal of UDP through NAT)が知られている（例えば、非特許文献１乃至３参照）。
【００１４】
図４は、STUNを利用して接続されているネットワークの構成例を示す図である。
【００１５】
クライアント３０には、STUNクライアント部３１が設けられている。STUNクライアント部３１には、グローバルアドレス問い合わせ部４１と、グローバルアドレス受信部４２が設けられている。
【００１６】
クライアント３０に接続されているルータ１３には、アドレス変換部５１が設けられている。
【００１７】
インターネット６０を介してルータ１３と接続されているSTUNサーバ７０には、STUNサーバ部７１が設けられており、STUNサーバ部７１は、グローバルアドレス問い合わせ応答部８１を有する。
【００１８】
STUNプロトコルの目的は、図５に示されるようなルータ１３の下にいるクライアント３０が、ルータ１３の外のグローバルＩＰとポート（図５の例の場合、tt.tt.tt.tt：sss）を知ることである。しかしながら、一般的には、クライアント３０がルータ１３から、直接これらの情報を得ることはできない。
【００１９】
そこで、以下の手順により、クライアント３０が、ルータ１３の外の（インターネット６０側の）グローバルＩＰとポート（図５の例の場合、tt.tt.tt.tt：sss）を取得する。
【００２０】
最初に、既知のグローバルＩＰとポート（図５の例の場合、xx.xx.xx.xx：yyy）を持つSTUNサーバ７０をインターネット６０上に用意する。
【００２１】
次に、クライアント３０は、ルータ１３とインターネット６０を介して、STUNサーバ７０に対して、UDPパケットＡを送信する。このとき、始点（送信元アドレス）は、aa.aa.aa.aa：bbb（ローカルＩＰアドレス）であり、終点（送信先アドレス）は、xx.xx.xx.xx：yyy（グローバルＩＰアドレス）である。
【００２２】
ルータ１３のアドレス変換部５１は、パケットＡの始点を、tt.tt.tt.tt：sss（グローバルＩＰアドレス）に変換し、インターネット６０を介して、終点のxx.xx.xx.xx：yyyであるSTUNサーバ７０に送信する。またこのとき、ルータ１３のアドレス変換部５１は、グローバル側からtt.tt.tt.tt：sss（グローバルＩＰアドレス）宛に送信されてくるパケットを、aa.aa.aa.aa：bbb（ローカルＩＰアドレス）に転送するアドレス変換マップを生成する。
【００２３】
STUNサーバ７０のグローバルアドレス問い合わせ応答部８１は、インターネット６０を介してパケットＡを受信すると、パケットＡに応答するパケットＢを生成する。グローバルアドレス問い合わせ応答部８１は、このパケットＢに、パケットＡの送信元のグローバルＩＰアドレスtt.tt.tt.tt：sssを含める。STUNサーバ７０は、生成したパケットＢを、インターネット６０を介して、ルータ１３に返送する。このパケットＢの送信元のアドレスは、xx.xx.xx.xx：yyyとされ、送信先のアドレスは、tt.tt.tt.tt：sssとされる。
【００２４】
ルータ１３のアドレス変換部５１は、アドレス変換マップを参照し、受信したパケットＢの終点（送信先）を、aa.aa.aa.aa：bbbに変換し、これをクライアント３０に送信する。
【００２５】
クライアント３０は、この受信したパケットＢのデータに含まれるグローバルアドレスtt.tt.tt.ttとポートsssを取得する。これにより、クライアント３０は、ルータ１３のグローバルＩＰ：ポートが、tt.tt.tt.tt：sssであることを取得することができる。
【００２６】
そこで、このSTUNサーバ７０を使用して、ルータ１３にアドレス変換マップを生成した上で（上述した処理を実行した後）、そのマップを用いてUDPのストリーミング通信を行なうことが考えられる。これを、図６を参照して説明する。
【００２７】
図６に示されるように、クライアント３０が、ルータ１３を介して、インターネット６０に接続されており、STUNサーバ７０とクライアント９０も、それぞれ、インターネット６０に接続されている。
【００２８】
クライアント３０は、ポート１００００を有しており、ルータ１３は、ポート２７０００を有し、クライアント９０は、ポート１００００を有している。すなわち、図６の例の場合、クライアント３０とクライアント９０は、同じ番号のポート１００００を有している。また、ルータ１３の下に位置するクライアント３０は、ローカルＩＰアドレスを有しており、ルータを介さずに、インターネット６０に直接接続されているクライアント９０は、グローバルＩＰアドレスを有している。
【００２９】
次に、図７のアローチャートを参照して、図６のネットワークの構成における処理を説明する。なお、この処理は、クライアント３０のユーザにより、クライアント９０との間での、ストリーミング通信が指令されたとき、開始される。
【００３０】
ステップＳ１において、クライアント３０は、STUNサーバ７０に、ルータ１３のグローバルＩＰアドレス：ポートを問い合わせる。このとき、クライアント３０が、STUNサーバ７０に所定のパケットを送信すると、ルータ１３は、上述したようにパケットの始点を、ルータ１３が有するグローバルＩＰアドレス：ポートに変換し、グローバル側からローカル側に転送するマップを生成する。
【００３１】
このクライアント３０からの問い合わせ（ステップＳ１）が出力されると、ステップＳ３１において、STUNサーバ７０は、この問い合わせを受信する。STUNサーバ７０は、この問い合わせに対するパケットを生成する。このパケットには、上述したように、受信したパケットに記述されている送信元（ルータ１３）のグローバルＩＰアドレス：ポートが含められる。
【００３２】
ステップＳ３２において、STUNサーバ７０は、生成したパケット（ルータ１３のグローバルＩＰアドレス：ポートが含まれているパケット）を送信する。このパケットは、ルータ１３に送信され、ルータ１３は、生成したマップを参照し、受信したパケットの終点（送信先）を、クライアント３０のローカルＩＰアドレス：ポートに変換し、クライアント３０に転送する。
【００３３】
ステップＳ２において、クライアント３０は、ステップＳ３２の処理により送信されたパケット（上述したように、ルータ１３のグローバルＩＰアドレス：ポートが含まれるパケット）を受信する。これにより、クライアント３０は、ルータ１３のグローバルＩＰアドレス：ポートを取得することができる。
【００３４】
ステップＳ３とステップＳ５１において、クライアント３０とクライアント９０は、お互いのグローバルＩＰアドレス：ポートを交換する（自分が受信に使用するグローバルＩＰアドレス：ポートを相手に通知する）。例えば、クライアント３０は、取得したルータ１３のグローバルＩＰアドレス：ポートの情報を含むパケットを生成し、ルータ１３とインターネット６０を介して、クライアント９０に送信し、クライアント９０は、自分自身が保有しているグローバルＩＰアドレス：ポートをクライアント３０に送信することにより、お互いのグローバルＩＰアドレス：ポートを取得することができる。
【００３５】
これにより、クライアント３０とクライアント９０は、お互いのグローバルＩＰアドレス：ポートに対して情報を送信することができる。
【００３６】
ステップＳ４において、クライアント３０は、画像・音声のストリームを、ルータ１３とインターネット６０を介して、クライアント９０のグローバルＩＰアドレス：ポート宛に送信する。このとき、クライアント９０のポートは、１００００である。具体的には、クライアント３０が、画像・音声のストリームをクライアント９０のグローバルＩＰアドレス：ポートに送信すると、ルータ１３は、パケットの送信元としてのクライアント３０（送信元）のローカルＩＰアドレス：ポートを、ルータ１３が有するグローバルＩＰアドレス：ポートに変換し、クライアント９０に送信する。
【００３７】
ステップＳ５２において、クライアント９０は、ステップＳ４の処理によりクライアント３０により送信された画像・音声のストリームを受信し、再生する。
【００３８】
ステップＳ５３において、クライアント９０は、画像・音声のストリームを、インターネット６０を介して、ルータ１３のグローバルＩＰアドレス：ポート宛に送信する。ルータ１３は、マップを参照し、パケットの送信先のグローバルＩＰアドレス：ポート（ルータ１３のグローバルＩＰアドレス：ポート）を、クライアント３０のローカルＩＰアドレス：ポートに変換し、画像・音声のストリームを、クライアント３０に転送する。
【００３９】
ステップＳ５において、クライアント３０は、ステップＳ５３の処理によりクライアント９０により送信された画像・音声のストリームを受信し、再生する。
【００４０】
これにより、ルータ１３に接続されている、ローカルＩＰアドレス：ポートを有するクライアント３０においても、他のクライアント９０との間で画像・音声のストリームを授受することができる。
【００４１】
【非特許文献１】
MIDCOM WG,J. Rosenberg, dynamicsoft, J. Weinberger, dynamicsoft, C. Huitema, Microsoft, R. Mahy, Cisco著「STUN - Simple Traversal of UDP Through Network Address Translators」、［online］、２００２年３月１日、IETF(The Internet Engineering Task Force)、［２００２年８月１４日検索］、インターネット，<URL: http://www.ietf.org/internet-drafts/draft-rosenberg-midcom-stun-01.txt >、文書名（draft-rosenberg-midcom-stun-01.txt）
【非特許文献２】
MIDCOM WG,J. Rosenberg, dynamicsoft, J. Weinberger, dynamicsoft, C. Huitema, Microsoft, R. Mahy, Cisco著「STUN - Simple Traversal of UDP Through Network Address Translators」、［online］、２００２年３月１日、IETF(The Internet Engineering Task Force)、［２００２年８月１４日検索］、インターネット，<URL:  http://www.potaroo.net/ietf/ids/draft-rosenberg-midcom-stun-01.txt >、文書名（draft-rosenberg-midcom-stun-01.txt）
【非特許文献３】
MIDCOM WG,J. Rosenberg, dynamicsoft, J. Weinberger, dynamicsoft, C. Huitema, Microsoft, R. Mahy, Cisco著「STUN - Simple Traversal of UDP Through Network Address Translators」、［online］、２００２年３月１日、IETF(The Internet Engineering Task Force)、［２００２年８月１４日検索］、インターネット，<URL: http://www.watersprings.org/pub/id/draft-rosenberg-midcom-stun-01.txt>、文書名（draft-rosenberg-midcom-stun-01.txt）
【００４２】
【発明が解決しようとする課題】
しかしながら、図６のシステムでは、画像・音声などのストリーミング通信を行なう２者（図６の例の場合、クライアント３０とクライアント９０）の他に、グローバルアドレスを持たない機器が接続されているルータのグローバルアドレスを取得するためにSTUNサーバ７０が必要となるという課題があった。
【００４３】
また、ルータ１３は、図１に示されるようなFull Cone NATの機能を備えることが必要であり、ルータ外からのアクセスが制限されるRestricted Cone NATまたはPort Restricted Cone NATの機能を備えるルータを用いることができないという課題があった。
【００４４】
本発明は、このような状況に鑑みてなされたものであり、NAT機能を備えたルータを使用し、簡便に、インターネットを介するストリーミング通信を行なうことができるようにするものである。
【００４９】
【課題を解決するための手段】
本発明の情報処理装置は、他の情報処理装置から送信された、通信制御装置において他の情報処理装置を識別するための情報である第１の固有情報と、通信制御装置内のサービスを識別するための第１の識別情報の通知の要求を受信する要求受信手段と、要求受信手段により受信された第１の固有情報と第１の識別情報の通知の要求に対応して、通信制御装置の第１の固有情報と第１の識別情報の通知を含む応答を出力する応答出力手段と、他の情報処理装置に情報を送信する情報送信手段とを備え、情報送信手段は、情報処理装置の情報を出力するサービスを識別するための第２の識別情報を、情報処理装置の応答出力手段が応答を出力するサービスを識別するための第３の識別情報と同じとすることを特徴とする。
【００５０】
前記要求受信手段により受信された、第１の固有情報と第１の識別情報の通知の要求には、送信元を表わす情報として、通信制御装置の第１の固有情報と第１の識別情報が含まれ、送信先を表わす情報として、情報処理装置に固有の情報である第２の固有情報と情報処理装置内のサービスを識別するための第３の識別情報が含まれ、応答出力手段により出力される、通信制御装置の第１の固有情報と第１の識別情報の通知を含む応答には、送信元を表わす情報として、第２の固有情報と第３の識別情報が含まれ、送信先を表わす情報として、通信制御装置の第１の固有情報と第１の識別情報が含まれ、情報送信手段により送信される情報には、送信元を表わす情報として、第２の固有情報と第２の識別情報が含まれ、送信先を表わす情報として、通信制御装置の第１の固有情報と第１の識別情報が含まれるようにすることができる。
【００５１】
前記第１の固有情報は、グローバルＩＰアドレスであり、第２の固有情報は、グローバルＩＰアドレスであり、第１の識別情報は、通信制御装置が通信のサービスを行なうポートのポート番号であり、第２の識別情報は、情報処理装置が情報を送信するサービスを行なうポートのポート番号であり、第３の識別情報は、情報処理装置が、応答を出力するサービスを行なうポートのポート番号であるようにすることができる。
【００５２】
本発明の情報処理方法は、他の情報処理装置から送信された、通信制御装置おいて他の情報処理装置を識別するための情報である第１の固有情報と、通信制御装置内のサービスを識別するための第１の識別情報の通知の要求を受信する要求受信ステップと、要求受信ステップの処理により受信された第１の固有情報と第１の識別情報の通知の要求に対応して、通信制御装置の第１の固有情報と第１の識別情報の通知を含む応答を出力する応答出力ステップと、他の情報処理装置に情報を送信する情報送信ステップとを含み、情報送信ステップの処理は、情報処理装置の情報を出力するサービスを識別するための第２の識別情報を、情報処理装置の応答出力ステップの処理により応答を出力するサービスを識別するための第３の識別情報と同じとすることを特徴とする。
【００５３】
本発明のプログラムは、通信制御装置を介してネットワークに接続されている他の情報処理装置と、ネットワークを介して情報を授受する情報処理装置を制御するコンピュータが実行可能なプログラムであって、他の情報処理装置から送信された、通信制御装置において他の情報処理装置を識別するための情報である第１の固有情報と、通信制御装置内のサービスを識別するための第１の識別情報の通知の要求を受信する要求受信ステップと、要求受信ステップの処理により受信された第１の固有情報と第１の識別情報の通知の要求に対応して、通信制御装置の第１の固有情報と第１の識別情報の通知を含む応答を出力する応答出力ステップと、他の情報処理装置に情報を送信する情報送信ステップとを含み、情報送信ステップの処理は、情報処理装置の情報を出力するサービスを識別するための第２の識別情報を、情報処理装置の応答出力ステップの処理により応答を出力するサービスを識別するための第３の識別情報と同じとすることを特徴とする。
【００６２】
本発明においては、他の情報処理装置から通信制御装置において他の情報処理装置を識別するための情報である第１の固有情報と通信制御装置内のサービスを識別するための第１の識別情報の通知の要求が受信されると、この要求に対応して、通信制御装置の第１の固有情報と第１の識別情報の通知を含む応答が出力される。また、他の情報処理装置に情報を送信する場合、情報を出力するサービスを識別する第２の識別情報を、応答を出力するサービスを識別するための第３の識別情報と同じとする。
【００６６】
【発明の実施の形態】
図８は、本発明を適用したネットワークシステムの構成例を表わしている。
【００６７】
クライアント１２０は、NAT機能を有するルータ１８０を介して、インターネット６０に接続されている。また、クライアント２００は、ルータ（NAT機能を有するルータ）を介さずに、インターネット６０に直接接続されている。これらのクライアント１２０，２００およびルータ１８０は、例えば、パーソナルコンピュータ（例えば、後述する図１１のパーソナルコンピュータ３００）により構成される。
【００６８】
クライアント１２０は、図示せぬ他のクライアントとともに、ルータ１８０の下側（図８において左側のローカルネットワーク側）に接続され、ローカルＩＰアドレス：ポート（ローカルＩＰアドレスは、ルータ１８０の下側（図８において左側）のネットワーク（ローカルなネットワーク内）においてクライアント１２０に固有の情報である固有情報であり、ポート番号は、クライアント１２０内のサービスを識別するための識別情報である）が割り当てられている。より正確には、ローカルＩＰアドレスは、ルータ１８０により各クライアントに割り当てられたものであるが、ポートは、各クライアントが設定したものである。また、クライアント１２０には、STUNクライアント部１２１、RTP受信部１２２、STUNサーバ部１２３、および、RTP送信部１２４が設けられている。STUNクライアント部１２１には、グローバルアドレス問い合わせ部１４１、グローバルアドレス受信部１４２が設けられており、それぞれ、グローバルアドレスを問い合わせたり、グローバルアドレスを受信したりする。STUNサーバ部１２３には、グローバルアドレスの問い合わせに対する応答を行なうグローバルアドレス問い合わせ応答部１６１が設けられている。
【００６９】
ルータ１８０には、アドレス変換部１８１が設けられており、アドレス変換部１８１は、グローバルアドレスをローカルアドレスに変換したり、ローカルアドレスをグローバルアドレスに変換し、その変換マップに基づいて、ルーティング処理を実行する。
【００７０】
クライアント２００は、ルータを介さずに、インターネット６０に直接接続されており、グローバルＩＰアドレス：ポート（グローバルＩＰアドレスは、グローバルネットワークとしてのインターネット６０においてクライアント２００に固有の情報である固有情報であり、ポート番号は、クライアント２００内のサービスを識別するための識別情報である）が割り当てられている。この場合にも、より正確には、グローバルＩＰアドレスは割り当てられたものであるが、ポートは自分自身が設定したものである。
【００７１】
また、クライアント２００には、STUNクライアント部２０１、RTP受信部２０２、STUNサーバ部２０３、および、RTP送信部２０４が設けられている。STUNクライアント部２０１には、グローバルアドレス問い合わせ部２２１、グローバルアドレス受信部２２２が設けられており、STUNサーバ部１２３には、グローバルアドレス問い合わせ応答部２４１が設けられている。このように、クライアント２００の構成は、クライアント１２０の構成と同様であるため、その説明は省略する。
【００７２】
いま、クライアント１２０、ルータ１８０、クライアント２００は、それぞれ、図９に示されるようなＩＰアドレス：ポートを有するものとする。
【００７３】
すなわち、クライアント１２０のローカルアドレスは、192.168.0.2とされており、ポート１００００とポート２００００を有している。STUNサーバ部１２３は、ポート２００００を使用して情報の授受を行なう。また、クライアント１２０は、情報の受信をポート１００００で行い、情報の送信をポート２００００から行なっている。
【００７４】
ルータ１８０のローカルアドレスは、192.168.0.1とされており、グローバルアドレスは、12.34.56.78とされている。また、ルータ１８０は、グローバル側（インターネット６０の側）に、ポート２７０００と、ポート３７０００を有している。
【００７５】
クライアント２００のグローバルアドレスは、11.22.33.44とされており、ポート１００００とポート２００００を有している。また、STUNサーバ部２０３は、ポート２００００を使用して情報の授受を行なう。クライアント２００は、さらに、ポート１００００で情報を受信し、ポート２００００から情報を送信する。
【００７６】
すなわち、クライアント１２０とクライアント２００のポートは、同じ番号のポート（図９の例の場合、ポート１００００とポート２００００）とされている。
【００７７】
図１０のアローチャートを参照して、図９のクライアント１２０とクライアント２００における通信処理を説明する。なお、この処理は、クライアント１２０のユーザにより、クライアント２００との間の通信が指令されたとき開始される（例えば、クライアント２００から、画像・音声のストリームを送信するか、受信し、再生するように指令されたとき、開始される）。
【００７８】
ステップＳ１０１において、クライアント１２０のグローバルアドレス問い合わせ部１４１は、クライアント２００のSTUNサーバ部２０３に対して、グローバルＩＰアドレス：ポートの問い合わせ（ルータ１８０のグローバルＩＰアドレス：ポートの問い合わせ）をする（通知を要求する）。このとき、クライアント１２０が送信する要求のパケットには、送信元（From）のアドレスは、192.168.0.2：10000（ＩＰアドレス：ポート番号）とされ、送信先（To）のアドレスは、11.22.33.44：20000（ＩＰアドレス：ポート番号）とされている。
【００７９】
ステップＳ１０１の処理によりクライアント１２０のグローバルアドレス問い合わせ部１４１から出力されたパケット（問い合わせパケット（通知要求パケット））は、ステップＳ１３１において、ルータ１８０に受信される。ルータ１８０のアドレス変換部１８１は、このパケットの送信元（From）のアドレス192.168.0.2：10000（ＩＰアドレス：ポート番号）と、送信先（To）のアドレス11.22.33.44：20000（ＩＰアドレス：ポート番号）のうち、送信元（From）のアドレス192.168.0.2：10000（ＩＰアドレス：ポート番号）を、ルータ１８０自身が有するグローバルＩＰアドレス：ポートに変換し、２つのアドレスを対応付けるマップを生成する。その後、アドレス変換部１８１は、インターネット６０を介してこのパケットを送信先に送信する。
【００８０】
具体的には、ルータ１８０のアドレス変換部１８１は、送信元（From）のアドレス192.168.0.2：10000（ローカルＩＰアドレス：ポート番号）を、12.34.56.78：27000（グローバルＩＰアドレス：ポート番号）に変換する。このとき、上述したように、アドレス変換部１８１は、マップを生成する。マップには、ローカルＩＰアドレス：ポート192.168.0.2：10000に、グローバルＩＰアドレス：ポート12.34.56.78：27000が対応するという情報が含まれている。その後、ルータ１８０は、このパケットを、インターネット６０を介して、送信先であるクライアント２００（送信先（To）の11.22.33.44：20000（ＩＰアドレス：ポート番号））に送信する。このとき、送信されるパケットの送信元（From）のアドレスは12.34.56.78：27000（ＩＰアドレス：ポート番号）とされ、送信先（To）のアドレスは11.22.33.44：20000（ＩＰアドレス：ポート番号）とされている。
【００８１】
ステップＳ１３１の処理により送信されたパケット（問い合わせパケット）は、ステップＳ１６１において、クライアント２００のグローバルアドレス問い合わせ応答部２４１により受信される。具体的には、パケットの送信先（To）は、11.22.33.44：20000（ＩＰアドレス：ポート番号）とされているため、STUNサーバ部２０３のグローバルアドレス問い合わせ応答部２４１がこれを受信する。
【００８２】
ステップＳ１６２において、クライアント２００のグローバルアドレス問い合わせ応答部２４１は、受信したパケットが、その内容からグローバルＩＰアドレスとポートの通知を要求するパケットであると判定した場合、ステップＳ１６１の処理により受信した問い合わせに対する応答のパケットを生成する。グローバルアドレス問い合わせ応答部２４１は、この応答パケットに、問い合わせパケットの送信元（From）のアドレスとして記述されていた、ルータ１８０のグローバルＩＰアドレス：ポート12.34.56.78：27000（ＩＰアドレス：ポート番号）を、データ（パケットの内容）として記述するとともに、送信元（From）のアドレスとして、STUNサーバ部２０３のグローバルＩＰアドレス：ポート番号11.22.33.44：20000（ＩＰアドレス：ポート番号）を記述し、送信先（To）のアドレスとして、問い合わせパケットの送信元として記述されていたアドレス12.34.56.78：20000（ＩＰアドレス：ポート番号）を記述する。
【００８３】
ステップＳ１６２の処理により送信された応答パケットは、ステップＳ１３２において、ルータ１８０により受信される（応答パケットの送信先（To）のアドレスは、ルータ１８０のアドレスとなっているため）。ルータ１８０のアドレス変換部１８１は、ステップＳ１３１の処理により生成されたマップ（ローカルＩＰアドレス：ポート192.168.0.2：10000に、グローバルＩＰアドレス：ポート12.34.56.78：27000が対応するという対応関係が記述されているマップ）を参照し、応答パケットの送信先（To）のアドレス（12.34.56.78：20000）を、クライアント１２０のローカルＩＰアドレス（192.168.0.2：10000）に変換する。ルータ１８０は、その後、この応答パケットを、クライアント１２０に転送する。
【００８４】
ステップＳ１３２の処理により転送された応答パケットは、その送信先（To）のアドレスが、192.168.0.2：10000（ＩＰアドレス：ポート番号）であり、送信元（From）のアドレスが11.22.33.44：20000（ＩＰアドレス：ポート番号）であるため、ステップＳ１０２において、クライアント１２０のポート１００００により受信される。この応答パケットには、データとしてルータ１８０のグローバルＩＰアドレス：ポートである12.34.56.78：27000（ＩＰアドレス：ポート番号）が記述されている。従って、クライアント１２０のグローバルアドレス受信部１４２は、応答パケットのデータ部を読み取ることで、ルータ１８０の受信用のグローバルＩＰアドレス：ポートである12.34.56.78：27000（ＩＰアドレス：ポート番号）を取得することができる。
【００８５】
なお、例えば、仮に、ステップＳ１６３において、クライアント２００のグローバルアドレス問い合わせ応答部２２１が、クライアント１２０（クライアント１２０のSTUNサーバ部１２３）に、グローバルＩＰアドレス：ポートの問い合わせをしたとする。この問い合わせのパケットには、送信元（From）のアドレス11.22.33.44：10000と、送信先（To）のアドレス12.34.56.78：20000が記述されている。
【００８６】
送信先のアドレスのうちのポート２００００は、このネットワークシステムにおいて、STUNサーバ部２０３の共通のポート番号として、予め決められているものである。しかしながら、クライアント１２０のSTUNサーバ部１２３は番号２００００のポートを使用したとしても、クライアント１２０は、ルータの下に接続されており、ルータは、このポート番号を、ルータのポート番号として解釈する。ルータは、番号２００００のポートに関するマップを有していないので、結局、ルータは、クライアント２００からの問い合わせパケットの受信を拒絶することになる。
【００８７】
最も、クライアント２００は、ルータに接続されておらず、そのルータのグローバルIPアドレスを問い合わせる必要がないので、クライアント２００は、実際には、このような処理を行わない。
【００８８】
ステップＳ１０３において、クライアント１２０は、ステップＳ１０２の処理により取得したルータ１８０のグローバルＩＰアドレス：ポート（12.34.56.78：27000）（ルータ１８０は、ポート２７０００とポート３７０００を有しているが、受信するためのポートとしては、ポート２７０００を使用する）をクライアント２００に送信する。また、同様に、ステップＳ１６４において、クライアント２００は、自分自身が有するグローバルＩＰアドレス：ポート（11.22.33.44：10000）（クライアント２００は、ポート１００００とポート２００００を有するが、受信する為のポートとしては、ポート１００００を使用する）をクライアント１２０に送信する。すなわち、ステップＳ１０３とステップＳ１６４の処理により、クライアント１２０とクライアント２００は、相手側から送信されてきた受信用の、グローバルＩＰアドレス：ポートを受信することになる。
【００８９】
なお、このグローバルＩＰアドレス：ポートの交換は、その後の方法により行なうこともできる。クライアント１２０が、クライアント２００に対して画像・音声のストリームを送信する場合、ステップＳ１０４において、クライアント１２０のRTP送信部１２４は、パケットの送信先（To）を、ステップＳ１０３の処理により取得したクライアント２００のグローバルＩＰアドレス：ポート（図１０の例の場合、11.22.33.44：10000）とし、そのパケットのデータ部に、画像・音声のストリームを配置して、パケットを送信する。このとき、パケットの送信元（From）のアドレスは、192.168.0.2：20000とされる。
【００９０】
これに対して、ステップＳ１３４において、ルータ１８０のアドレス変換部１８１は、クライアント１２０から送信された画像・音声のストリームのパケットの送信元（From）とされているアドレス192.168.0.2：20000を、ルータ１８０のアドレス（送信に使用されるポート３７０００のアドレス）12.34.56.78：37000に変換し、クライアント２００（送信先のアドレスに指定されている11.22.33.44：10000）に送信する。クライアント２００のRTP受信部２０２は、ポート１００００から、このパケットを受信し、所定の処理を実行する（例えば、受信したパケットのデータ部に格納されている画像・音声のストリームを、表示部やスピーカ（いずれも図示せず）に出力する）。
【００９１】
クライアント２００が、クライアント１２０に対して画像・音声のストリームを送信する場合、ステップＳ１６６において、クライアント２００のRTP送信部２０４は、ステップＳ１６４の処理により取得したクライアント１２０のグローバルＩＰアドレス：ポート（実際には、ルータ１８０のグローバルＩＰアドレス：ポート）（図１０の例の場合、12.34.56.78：27000）をパケットの送信先（To）アドレスとし、画像・音声のストリームをパケットのデータ部に格納して送信する。このとき、パケットの送信元（From）のアドレスは、11.22.33.44：20000とされる。
【００９２】
これに対して、ステップＳ１３５において、ルータ１８０のアドレス変換部１８１は、クライアント２００から送信された画像・音声のストリームのパケットの送信先（To）とされているアドレス12.34.56.78：27000を、クライアント１２０のアドレス（受信に使用されるポート１００００（勿論、このアドレスは、ローカルＩＰアドレス：ポートである）に変換し、クライアント１２０（送信先のアドレスに指定されている192.168.0.2：10000）に転送する。クライアント１２０のRTP受信部１２２は、ポート１００００から、このパケットを受信し、所定の処理を実行する（例えば、受信した画像・音声のストリームを、表示部やスピーカに出力する）。
【００９３】
以上により、STUNサーバの役割（例えば、図６に示されるSTUNサーバ７０）を、ストリーミング通信を行なう相手（図９の例の場合、クライアント２００）が担うことにより（クライアント２００にSTUNサーバ部２０３を設けることにより）、ネットワークシステム上に、STUNサーバを設ける必要がなくなり、もって、STUNサーバに制限されない通信を行なうことができる。
【００９４】
また、ルータ１８０によりマップを生成するのに使用するSTUNサーバ部（図９の例の場合、STUNサーバ部２０３）と、画像・音声のストリームを送信する機器（図９の例の場合、クライアント２００）が、同一のグローバルＩＰアドレス（図９の例の場合、11.22.33.44）を有するため、ルータ１８０として、Full Cone NATは勿論のこと、Restricted Cone NATの機能を備えたルータを使用することができる。
【００９５】
さらに、STUNサーバ部２０３のポート番号（図９の例の場合、STUNサーバ部２０３のポート番号２００００）と、ストリームを送信するポート番号（図９の例の場合、クライアント２００のポート番号２００００、すなわち、RTP送信部２０４により使用されるポートのポート番号）を同一にするようにしたので、ルータ１８０として、Port Restricted Cone NATを使用することもできる。
【００９６】
ただし、ストリーミング通信をする少なくとも一方（図９の例の場合、クライアント２００）は、インターネット６０に、NATを介さずに直接接続されている必要がある。
【００９７】
なお、ルータ１８０とインターネット６０の間には、インターネットサービスプロバイダを設けるようにしてもよい。この場合、ルータ１８０のグローバルアドレスは、インターネットサービスプロバイダが、割り当てたものとなる。また、同様に、クライアント２００とインターネット６０の間に、インターネットサービスプロバイダを設けるようにしてもよい。この場合においても、クライアント２００のグローバルアドレスは、インターネットサービスプロバイダにより割り当てられたグローバルアドレスが使用される。
【００９８】
また、以上においては、ネットワークをインターネットとしたが、インターネット以外のネットワークが使用される場合にも、本発明は適用することができる。また、クライアントは、パーソナルコンピュータ以外に、PDA（Personal Digital Assistants）、携帯電話機、その他の情報処理装置とすることができる。また、ルータも、ルータ以外の通信を制御する通信制御装置とすることができる。
【００９９】
さらに、以上においては、グローバルＩＰアドレス、ローカルＩＰアドレス、およびルータを使用するようにしたが、グローバルＩＰアドレスは、その装置に固有の情報であれば、他の情報でもよく、ローカルＩＰアドレスについても、その装置の限定された範囲において固有の情報であれば、他の情報でもよい。また、ポート番号についても、その装置内のサービスを識別するための識別情報であれば、他のものでもよい。さらに、サービスとは、例えば、所定のストリーム情報である。
【０１００】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークやプログラム格納媒体からインストールされる。この場合、例えば、図９のクライアント１２０、ルータ１８０、またはクライアント２００は、図１１に示されるようなパーソナルコンピュータ３００により構成される。
【０１０１】
図１１において、CPU（Central Processing Unit）３０１は、ROM(Read Only Memory)３０２に記憶されているプログラム、または、記憶部３０８からRAM(Random Access Memory)３０３にロードされたプログラムに従って各種の処理を実行する。RAM３０３にはまた、CPU３０１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【０１０２】
CPU３０１、ROM３０２、およびRAM３０３は、内部バス３０４を介して相互に接続されている。この内部バス３０４にはまた、入出力インターフェース３０５も接続されている。
【０１０３】
入出力インターフェース３０５には、キーボード、マウスなどよりなる入力部３０６、CRT（cathode Ray Tube），LCD（Liquid Crystal Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部３０７、ハードディスクなどより構成される記憶部３０８、モデム、ターミナルアダプタなどより構成される通信部３０９が接続されている。通信部３０９は、衛星回線やCATVを含む各種のネットワークを介しての通信処理を行なう。
【０１０４】
入出力インターフェース３０５にはまた、必要に応じてドライブ３１０が接続され、磁気ディスク３２１、光ディスク３２２、光磁気ディスク３２３、あるいは半導体メモリ３２４などが適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部３０８にインストールされる。
【０１０５】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用の専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークやプログラム格納媒体からインストールされる。
【０１０６】
このプログラム格納媒体は、図１１に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク３２１（フロッピディスクを含む）、光ディスク３２２（CD-ROM（Compact Disc-Read Only Memory）、DVD（Digital Versatile Disc）を含む）、光磁気ディスク３２３（MD（Mini Disc）を含む）、半導体メモリ３２４などによりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM３０２や記憶部３０８が含まれるハードディスクなどで構成される。
【０１０７】
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１０９】
【発明の効果】
本発明によれば、アドレスの変換機能を備えた通信制御装置を使用し、ネットワークを介して情報を授受することができる。特に、この発明によれば、ネットワークシステムの構成を複雑にすることなく、かつ、コスト高とすることなく、通信制御装置の種類によらない通信を行なうことができる。
【図面の簡単な説明】
【図１】従来のFull Cone NATの機能を備えたルータを介して接続されたネットワークの構成例を示す図である。
【図２】従来のRestricted Cone NATの機能を備えたルータを介して接続されたネットワークの構成例を示す図である。
【図３】従来のPort Restricted Cone NATの機能を備えたルータを介して接続されたネットワークの構成例を示す図である。
【図４】従来のSTUNを利用して接続されているネットワークの構成例を示すブロック図である。
【図５】図４のネットワークを説明する図である。
【図６】図４のネットワークにおけるストリーミング通信を説明する図である。
【図７】図６のネットワークにおける処理を説明するアローチャートである。
【図８】本発明を適用したネットワークシステムの構成例を示すブロック図である。
【図９】図８のネットワークシステムのアドレスを説明する図である。
【図１０】図８のネットワークシステムにおける処理を説明するアローチャートである。
【図１１】パーソナルコンピュータを示すブロック図である。
【符号の説明】
１２０  クライアント，  １２１  STUNクライアント部，  １２２  RTP受信部，  １２３  STUNサーバ部，  １２４  RTP送信部，  １４１  グローバルアドレス問い合わせ部，  １４２  グローバルアドレス受信部，  １６１  グローバルアドレス問い合わせ応答部，  １８０  ルータ，  １８１  アドレス変換部，  ２００  クライアント，  ２０１  STUNクライアント部，  ２０２  RTP受信部，  ２０３  STUNサーバ部，  ２０４  RTP送信部，  ２２１  グローバルアドレス問い合わせ部，  ２２２  グローバルアドレス受信部，  ２４１  グローバルアドレス問い合わせ応答部
【図１】
0004078594.tif 000002
【図２】
0004078594.tif 000003
【図３】
0004078594.tif 000004
【図４】
0004078594.tif 000005
【図５】
0004078594.tif 000006
【図６】
0004078594.tif 000007
【図７】
0004078594.tif 000008
【図８】
0004078594.tif 000009
【図９】
0004078594.tif 000010
【図１０】
0004078594.tif 000011
【図１１】
0004078594.tif 000012