(57)【要約】本発明は、ファイアウォール内のプライベートネットワークに設置されたプライベートＩＰ端末（クライアント端末）４０が、ファイアウォールを通過可能な通信路を自動的に探索して公開サーバ５０への接続を行うデータ通信システムを提供する。ファイアウォール内に設置される端末に、接続種別、ポート番号及び通信プロトコルの組合せを逐次変更しながら公開サーバ５０への接続を試行することでファイアウォールを通過可能な接続種別、ポート番号及び通信プロトコルの組合せを自動探索する経路探索手段と、探索された接続種別、ポート番号及び通信プロトコルの組合せに基づいて公開サーバ５０と通信路を形成してデータ通信を行うデータ通信手段とを備える。
2005029337.tif 000002
【特許請求の範囲】
【請求項１】
グローバルＩＰ端末との通常あり得る通信接続設定を記憶する接続試行情報テーブルと、
該接続試行情報テーブルに記憶されている通信接続設定によって次々と前記グローバルＩＰ端末への接続を試行することでファイアウォールを通過可能な通信接続設定を自動探索する経路探索手段と、
該経路探索手段によって探索されたファイアウォールを通過可能な通信接続設定に基づいて前記グローバルＩＰ端末と通信路を形成してデータ通信を行うデータ通信手段と
を備えることを特徴とするプライベートＩＰ端末用のデータ通信システム。
【請求項２】
前記接続試行情報テーブルは、接続種別、ポート番号及び通信プロトコルの組合せを前記通信接続設定として記憶することを特徴とする請求項１記載のデータ通信システム。
【請求項３】
前記データ通信手段は、ファイアウォールを通過可能な複数の通信接続設定に基づいて複数の通信路を形成してデータ通信を行うことを特徴とする請求項１又は２記載のデータ通信システム。
【請求項４】
コンピュータを、
グローバルＩＰ端末との通常あり得る通信接続設定を記憶する接続試行情報テーブルと、該接続試行情報テーブルに記憶されている通信接続設定によって次々と前記グローバルＩＰ端末への接続を試行することでファイアウォールを通過可能な通信接続設定を自動探索する経路探索手段と、該経路探索手段によって探索されたファイアウォールを通過可能な通信接続設定に基づいて前記グローバルＩＰ端末と通信路を形成してデータ通信を行うデータ通信手段とを備えることを特徴とするプライベートＩＰ端末用のデータ通信システム
として機能させるためのプログラム。
【請求項５】
コンピュータを、
グローバルＩＰ端末との通常あり得る通信接続設定を記憶する接続試行情報テーブルと、該接続試行情報テーブルに記憶されている通信接続設定によって次々と前記グローバルＩＰ端末への接続を試行することでファイアウォールを通過可能な通信接続設定を自動探索する経路探索手段と、該経路探索手段によって探索されたファイアウォールを通過可能な通信接続設定に基づいて前記グローバルＩＰ端末と通信路を形成してデータ通信を行うデータ通信手段とを備えることを特徴とするプライベートＩＰ端末用のデータ通信システム
として機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】  本発明は、ファイアウォール内のプライベートネットワークに設置された端末とインターネット上のサーバ等との間のデータ通信システムに関する。詳しくは、ファイアウォールを通過可能な通信路を自動的に探索してサーバへの接続を行うデータ通信システム、プログラム及び記録媒体に関する。
【背景技術】  プライベートネットワークとインターネットとの接続点にファイアウォール（ゲートウェイ）を設けて、インターネットとプライベートネットワークとの接続通信路（ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）の通信種別及びポート番号やプロトコル）をセキュリティ上制限している場合が多い。
例えば、図５に示す従来のデータ通信システムは、プライベートネットワーク１１０とインターネット１２０との接続点にファイアウォール（ゲートウェイ）１３０が設けられており、このファイアウォール（ゲートウェイ）１３０によって接続を許可するポート及び接続を許可する通信プロトコルが設定されている。したがって、プライベートネットワーク１１０内に設置されているプライベートＩＰアドレス端末（以下「プライベートＩＰ端末」という）１４０は、接続が許可されているポートと接続が許可されている通信プロトコルを使用して、インターネット上の公開サーバ１５０とデータ通信を行う。
このため、プライベートネットワーク上の端末で動作している独自プロトコルを使用するアプリケーションプログラム等がインターネット上のグローバルＩＰアドレス端末（サーバ）（以下「グローバルＩＰ端末」又は「公開サーバ」という）と通信する場合、ファイアウォール（ゲートウェイ）で制限されている通信路の一部をアプリケーションプログラム等が使用する通信路だけ通過できるように設定変更を行うか、アプリケーションプログラム等をリコンパイルして通信ポートを変更する等の必要があった。
【発明の開示】
本発明は、プログラム自身がダイナミックに通信可能な通信路を検出及び設定することで、ファイアウォール（ゲートウェイ）の設定変更やプログラムのリコンパイル等の面倒な作業を行うことなく、プライベートＩＰ端末とグローバルＩＰ端末との間の通信を可能にする。アプリケーションプログラム等のユーザは、ファイアウォール（ゲートウェイ）の制限を気にすることなく、透過的にインターネット上の端末に接続してそのサービスを享受できる。
本発明のデータ通信システムは、グローバルＩＰ端末との通常あり得る通信接続設定を記憶する接続試行情報テーブルと、該接続試行情報テーブルに記憶されている通信接続設定によって次々と前記グローバルＩＰ端末への接続を試行することでファイアウォールを通過可能な通信接続設定を自動探索する経路探索手段と、該経路探索手段によって探索されたファイアウォールを通過可能な通信接続設定に基づいて前記グローバルＩＰ端末と通信路を形成してデータ通信を行うデータ通信手段とを備えるプライベートＩＰ端末用のものである。
また、前記接続試行情報テーブルは、接続種別、ポート番号及び通信プロトコルの組合せを前記通信接続設定として記憶することで、基本的にすべての通信接続設定に対応することができる。
また、前記データ通信手段は、ファイアウォールを通過可能な複数の通信接続設定に基づいて複数の通信路を形成してデータ通信を行うことで、制御用、音声用及び画像用などの複数の通信路を必要とする通信接続の場合であっても、人為的な設定の必要なく自動的にグローバルＩＰ端末に接続することができる。
また、本発明は、コンピュータを、グローバルＩＰ端末との通常あり得る通信接続設定を記憶する接続試行情報テーブルと、該接続試行情報テーブルに記憶されている通信接続設定によって次々と前記グローバルＩＰ端末への接続を試行することでファイアウォールを通過可能な通信接続設定を自動探索する経路探索手段と、該経路探索手段によって探索されたファイアウォールを通過可能な通信接続設定に基づいて前記グローバルＩＰ端末と通信路を形成してデータ通信を行うデータ通信手段とを備えることを特徴とするプライベートＩＰ端末用のデータ通信システムとして機能させるためのプログラムである。
また、本発明は、コンピュータを、グローバルＩＰ端末との通常あり得る通信接続設定を記憶する接続試行情報テーブルと、該接続試行情報テーブルに記憶されている通信接続設定によって次々と前記グローバルＩＰ端末への接続を試行することでファイアウォールを通過可能な通信接続設定を自動探索する経路探索手段と、該経路探索手段によって探索されたファイアウォールを通過可能な通信接続設定に基づいて前記グローバルＩＰ端末と通信路を形成してデータ通信を行うデータ通信手段とを備えることを特徴とするプライベートＩＰ端末用のデータ通信システムとして機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体である。
【図面の簡単な説明】  図１は、本発明の一実施の形態のデータ通信システムの説明図である。
図２は、プライベートＩＰ端末の接続処理手順を示すフローチャートである。
図３は、接続試行情報テーブルの一具体例を示す図である。
図４は、公開サーバの接続処理手順を示すフローチャートである。
図５は、従来のデータ通信システムの説明図である。
【発明を実施するための最良の形態】  以下、添付図面を参照しながら本発明の好適な実施の形態について詳細に説明する。ただし、本発明はこれら実施の形態によりその技術的範囲が限定されるものではない。
図１は、本発明の一実施の形態のデータ通信システムの説明図である。このデータ通信システムは、プライベートネットワーク１１０とインターネット１２０との接続点にファイアウォール（ゲートウェイ）１３０が設けられている。プライベートＩＰ端末４０は、ファイアウォール（ゲートウェイ）１３０の内側であるプライベートネットワーク１１０に接続されている。プライベートＩＰ端末４０には、例えば独自プロトコルを使用するアプリケーションプログラムがインストールされる。これにより、プライベートＩＰ端末４０は、接続種別、ポート番号及び通信プロトコルの組合せを逐次変更しながらインターネット１２０上の公開サーバ５０への接続を試行することでファイアウォール１３０を通過可能な接続種別、ポート番号及び通信プロトコルの組合せを自動探索する経路探索手段と、探索された接続種別、ポート番号及び通信プロトコルの組合せに基づいてインターネット上のサーバと通信路を形成してデータ通信を行うデータ通信手段とを備える。
なお図１では、ＴＣＰポート８０番のＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルによってファイアウォール１３０を通過できる例を示している。この場合、通信データはＨＴＴＰプロトコルの電文フォーマットにカプセル化されて送受信される。
図２は、プライベートＩＰ端末の接続処理手順を示すフローチャート、図３は、接続試行情報テーブルの一具体例を示す図である。
プライベートＩＰ端末４０は、ステップＳ１で、接続試行情報テーブル６０を読み込む。図３に示すように、接続試行情報テーブル６０には、ＴＣＰ，ＵＤＰ等の接続種別、ポート番号（接続元ポート番号）及びプロトコルの通常あり得るすべての組合せが記録されている。
図３は、ＴＣＰポート番号２０番、２１番のそれぞれでＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルによる接続試行を行い、次いで、ＴＣＰポート番号７５番〜８５番と８０７０番〜８０８０番までの各ポートでそれぞれＨＴＴＰプロトコルによる試行を行い、次いで、ＴＣＰポート番号２０００番と２００１番のそれぞれでアプリケーション独自プロトコル及び指定されたプロトコルによる接続試行を行い、次いで、ＵＤＰポート番号１５０００番〜１５１００番までの各ポートでアプリケーション独自プロトコル及び指定されたプロトコルによる接続試行を行う例を示している。ここで、「アプリケーション独自プロトコル」は、文字通りインストールするアプリケーションに特有のものであり非公開であることが多い。また、「指定されたプロトコル」はＷｅｂページの閲覧時にＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）サーバとＷｅｂブラウザの間で使用されているＨＴＴＰプロトコルやメールの送信時にメールサーバとメールクライアントとの間使用しているＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコル等のことであり、これらのプロトコルは、一般公開されており、サーバでの受信用ソケットのポート番号等も知られている。通常のファイアウォール（ゲートウェイ）ではこのようなプロトコルによるプライベートネットワークとインターネット上のサーバとの通信を許可している場合がほとんどである。
なお、接続試行情報テーブル６０は、他の端末等から受信するようにしてもよいし、設定ファイル等のファイルに保存されていてもよいし、プログラムコードにハードコーティングされていてもよい。
プライベートＩＰ端末４０は、ステップＳ２〜ステップＳ８に示すように、接続試行情報テーブル６０で指定されている接続種別、ポート番号、プロトコルに従ったソケット関数呼び出しを行うことで、接続したい公開サーバ５０に対して接続を試行する。
具体的には、ＴＣＰの場合は（ステップＳ３でＵＤＰでないと判定された場合は）、ステップＳ６でＴＣＰによる接続要求がエラーになるかどうかを試行する。ＵＤＰの場合は、公開サーバ５０に対して試験パケットを送信し（ステップＳ４）、公開サーバ５０から返答パケットが返るか否かを確認する（ステップＳ５）。
接続エラーが起こらない場合、そのポートでアプリケーション独自のプロトコルで通信が行えるかを試験する（ステップＳ７）。アプリケーション独自のプロトコルで通信ができない場合は、接続試行情報テーブル６０で指定されているプロトコルで通信が行えるか試験する（ステップＳ８）。
アプリケーション独自のプロトコルで通信が可能な場合、ステップＳ１１で、確立に成功した通信路の情報（接続種別、ポート番号、プロトコル）をアプリケーションプログラムの内部に保持する。これにより、２回目以降の接続は、アプリケーションプログラムの内部に保持した通信路の情報（接続種別、ポート番号、プロトコル）を用いて行うことができる。すなわち、経路探索の実行を初回のみとすることができる。
アプリケーション独自のプロトコルで通信できないが指定プロトコル（接続試行情報テーブル６０で指定されているプロトコル）で通信可能な場合は、通信データを通信可能と判別されたプロトコルの電文フォーマット内にカプセル化し（ステップＳ１０）、通信を開始する（ステップＳ１２）。なお、指定プロトコルで通信が行える場合は、ステップＳ１１で、確立に成功した通信路の情報（接続種別、ポート番号、プロトコル）をアプリケーションプログラムの内部に保持する。これにより、２回目以降の接続は、アプリケーションプログラムの内部に保持した通信路の情報（接続種別、ポート番号、プロトコル）を用いて行うことができる。すなわち、経路探索の実行を初回のみとすることができる。
プライベートＩＰ端末４０は、接続試行情報テーブル６０に登録されているすべての通信路に対して接続試行を行ってもファイアウォール１３０を通過できる通信路が見つからない場合には、ステップＳ９でファイアウォール１３０を通過できる通信路がない旨をユーザ等に表示する等の失敗処理を行った後に、接続処理を終了する。
図１に示すように、プライベートＩＰ端末４０は、最初に確立した通信路を例えば制御用通信路として確保しておいて、接続元ポート番号を変更して他の通信路（例えば画像用通信路、音声用通信路等）を確立することで、複数の通信路を確立するようにしてもよい。
図４は、公開サーバの接続処理手順を示すフローチャートである。公開サーバ５０は、ステップＳ２１で、図３に示した接続試行情報テーブル６０を読み込む。なお、接続試行情報テーブル６０は、他の端末等から受信するようにしてもよいし、設定ファイル等のファイルに保存されていてもよいし、プログラムコードにハードコーティングされていてもよい。
公開サーバ５０は、接続試行情報テーブル６０に基づいて指定ポート毎に受信用ソケットをすべてのポートについて作成する（ステップＳ２２，Ｓ２３）。公開サーバ５０は、接続試行情報テーブル６０で指定されている接続種別、ポート番号、プロトコルに従って待ち受けソケットの関数呼び出しを行うことで、クライアントであるプライベートＩＰ端末４０からの接続待ち状態にする（ステップＳ２４）。これにより接続受信処理が開始される。
公開サーバ５０は、ＵＤＰの試験パケットを受信した場合には（ステップＳ２５，Ｓ２６，Ｓ２７）、クライアントであるプライベートＩＰ端末４０へ返答パケットを返す（ステップＳ２８）。
公開サーバ５０は、クライアントであるプライベートＩＰ端末４０からＴＣＰ接続要求を受け付けた場合（ステップＳ２９）、そのポートでアプリケーション独自のプロトコル（独自プロトコル）で通信可能かチェックする（ステップＳ３０）。具体的には、独自プロトコルの電文フォーマットのデータ形式か否か検査する。
公開サーバ５０は、ステップＳ３０での通信が独自プロトコルの電文フォーマットでない場合（独自プロトコルで通信できない場合）、接続試行情報テーブル６０で指定されているプロトコルで通信可能かチェックする（ステップＳ３１）。公開サーバ５０は、接続試行情報テーブル６０で指定されているプロトコル（指定プロトコル）で通信できる場合は、指定プロトコルにて接続要求を受け付ける。そして、公開サーバ５０は、通信データをステップＳ３１で判定した指定プロトコルの電文フォーマット内にカプセル化し（ステップＳ３２）、通信を開始する（ステップＳ３５）。指定プロトコルで通信できない場合は、ステップＳ３３で通信拒否の処理がなされる。
なお、公開サーバ５０は、ステップＳ３４で、確立に成功した通信路の情報（接続種別、ポート番号、プロトコル）をプログラムの内部に保持する。
また、最初の確立された通信路の他に、クライアント（プライベートＩＰ端末４０）側の接続元ポート番号を変更することで、複数の通信路を確立することもできる。
なお、本発明は上記実施の形態に限定されるものではない。
上述の実施の形態では、公開サーバ５０でも接続試行情報テーブル６０を読み込んで、予め接続試行情報テーブル６０で指定した受信用ソケットを作るように構成し、これにより接続待ち受けの負担を軽くしているが、資源が許すのであれば、可能性のあるすべての受信用ソケットを作る構成にして、公開サーバ５０では接続試行情報テーブル６０を読み込まなくてもよい。
また、本発明のデータ通信システムは、コンピュータを本データ通信システムとして機能させるためのプログラムでも実現される。このプログラムは、コンピュータで読み取り可能な記録媒体に格納されていてもよい。
このプログラムを記録した記録媒体は、図１に示されるプライベートＩＰ端末４０又は公開サーバ５０内の記憶装置そのものであってもよいし、また、外部記憶装置としてＣＤ−ＲＯＭドライブ等のプログラム読取装置が設けられ、そこに記録媒体を挿入することで読み取り可能なＣＤ−ＲＯＭ等であってもよい。
また、上記記録媒体は、磁気テープ、カセットテープ、フレキシブルディスク、ハードディスク、ＭＯ／ＭＤ／ＤＶＤ等、又は半導体メモリであってもよい。
【産業上の利用の可能性】
本発明により、人為的な通信接続設定の必要がなく、ファイアウォールを通過可能な通信路を自動的に探索してグローバルＩＰ端末に接続できるプライベートＩＰ端末用のデータ通信システムが提供される。
【図１】
2005029337.tif 000003
【図２】
2005029337.tif 000004
【図３】
2005029337.tif 000005
【図４】
2005029337.tif 000006
【図５】
2005029337.tif 000007
【国際調査報告】
2005029337.tif 000008
2005029337.tif 000009
2005029337.tif 000010
2005029337.tif 000011