(57)【要約】【課題】NATルータおよびファイヤウォール装置を通過するネットワーク接続。【解決手段】各々ファイヤウォール装置の背後にある別個の私設ネットワークに所在する２つ以上のシステム間の通信およびデータ交換の方法はプロキシ・サーバとのＴＣＰ接続の確立を含む。ＴＣＰ監視用パケットが送信され、ネットワーク内の各システム向けに各ファイヤウォール装置のポートおよびアドレスのマッピングを明らかにし、マッピングはシステムに提供される。プロキシ・サーバは他方システム宛にＳＹＮパケットを送信し、次にＳＹＮ＋ＡＣＫパケットを送信するよう各システムに命令する。プロキシ・サーバはシステム同士が基本的に直接の通信を確立することを促進し、引き続きプロキシ・サーバが関わることなくＴＣＰデータ・パケットを交換することを可能にする。【選択図】    図２
2006081177.tif 000002
【特許請求の範囲】
【請求項１】
交信用のシステムで、
第１私設ネットワークに所在する第１コンピュータ装置と、第２私設ネットワークに所在する第２コンピュータ装置と、ネットワーク・アドレス変換を行なうよう構成され、第１私設ネットワークを保護する第１ファイヤウォール装置と、ネットワーク・アドレス変換を行なうよう構成され、第２私設ネットワークを保護する第２ファイヤウォール装置と、第１私設ネットワークおよび第２ネットワークのいずれの一部でもないプロキシ・サーバと、を含み、第１コンピュータ装置および第２コンピュータ装置は基本的に直接通信パケットを交換することができ、第１コンピュータ装置は第１ファイヤウォール装置を通して第２ファイヤウォールの背後にある第２コンピュータ装置に通信パケットを送信し、第２ファイヤウォール装置および第１ファイヤウォール装置を通して第２コンピュータ装置から通信パケットを受信するよう構成され、第２コンピュータ装置は第２ファイヤウォール装置を通して第１ファイヤウォールの背後にある第１コンピュータ装置に通信パケットを送信し、第１ファイヤウォール装置および第２ファイヤウォール装置を通して第１コンピュータ装置から通信パケットを受信するよう構成されるシステム。
【請求項２】
プロキシ・サーバは第１コンピュータ装置および第１ファイヤウォール装置のＩＰおよびポート・アドレスのマッピングを第２コンピュータ装置に明らかにし、さらにプロキシ・サーバは第２コンピュータ装置および第２ファイヤウォール装置のＩＰおよびポート・アドレスのマッピングを第１コンピュータ装置に明らかにするよう構成される請求項１に記載されるシステム。
【請求項３】
プロキシ・サーバはさらに第１コンピュータ装置および第２コンピュータ装置が各々基本的に直接の交信を確立することを可能にするよう構成され、該基本的に直接の交信は該基本的に直接の交信の通信パケットがプロキシ・サーバを通してルーティングされない請求項２に記載されるシステム。
【請求項４】
請求項１に記載されるシステムであって、第１コンピュータ装置および第２コンピュータ装置が各々基本的に直接の交信を確立することを可能にすることが、
第１コンピュータ装置およびプロキシ・サーバ間でＴＣＰ接続を確立すること、第２コンピュータ装置およびプロキシ・サーバ間でＴＣＰ接続を確立すること、第２コンピュータ装置宛にＳＹＮパケットを送信するよう第１コンピュータ装置に指示することと、第１コンピュータ装置宛にＳＹＮパケットを送信するよう第２コンピュータ装置に指示することと、第２コンピュータ装置宛にＳＹＮ＋ＡＣＫパケットを送信するよう第１コンピュータ装置に指示すること、第１コンピュータ装置宛にＳＹＮ＋ＡＣＫパケットを送信するよう第２コンピュータ装置に指示することと、第２コンピュータ装置でＳＹＮ＋ＡＣＫパケットを受信することと、第２コンピュータ装置がＴＣＰ接続確立状態に移行することと、接続確立を完了するためＡＣＫパケットを送信するよう第１コンピュータ装置に指示することと、第１コンピュータ装置でＳＹＮ＋ＡＣＫパケットを受信することと、第１コンピュータ装置がＴＣＰ接続確立状態に移行することと、第１コンピュータ装置および第２コンピュータ装置間で基本的に直接の通信の確立を完了するためＡＣＫパケットを送信するよう第２コンピュータ装置に指示することとを含む請求項３に記載されるシステム。
【請求項５】
第１コンピュータが第１ファイヤウォール装置の背後にあり第２コンピュータが第２ファイヤウォール装置の背後にある、少なくとも２つの私設ネットワーク上にある２台以上のコンピュータ間の通信方法であって、
プロキシ・サーバと通信を確立することで、第１コンピュータおよび第２コンピュータがプロキシ・サーバとＴＣＰ接続を確立することと、ＴＣＰ  ＳＹＮ監視用パケットを送信することで、第１コンピュータおよび第２コンピュータが各々プロキシ・サーバにＴＣＰ  ＳＹＮ監視用パケットを送信することと、ＴＣＰプロトコルに従い第１コンピュータおよび第２コンピュータを接続確立状態に移行させることと、第１ファイヤウォールの背後にある第１コンピュータおよび第２ファイヤウォールの背後にある第２コンピュータ間でＴＣＰデータ・パケットを交換することで、交換は第１ファイヤウォールの背後にある第１コンピュータおよび第２ファイヤウォールの背後にある第２コンピュータ間で基本的に直接の通信であることと、を含む方法。
【請求項６】
ＴＣＰプロトコルに従い第１コンピュータおよび第２コンピュータを接続確立状態に移行させることが、
ＳＹＮパケットを送信することで、プロキシ・サーバが第２コンピュータ宛にＳＹＮパケットを送信するよう第１ファイヤウォールの背後にある第１コンピュータに命令し、プロキシ・サーバが第１コンピュータ宛にＳＹＮパケットを送信するよう第２ファイヤウォールの背後にある第２コンピュータに命令することと、ＳＹＮ＋ＡＣＫパケットを送信することで、プロキシ・サーバが第２コンピュータ宛にＳＹＮ＋ＡＣＫパケットを送信するよう第１ファイヤウォールの背後にある第１コンピュータに命令し、プロキシ・サーバが第１コンピュータ宛にＳＹＮ＋ＡＣＫパケットを送信するよう第２ファイヤウォールの背後にある第２コンピュータに命令することと、を含む、請求項５に記載される方法。
【請求項７】
ＴＣＰのＳＹＮ監視用パケットの送信がプロキシ・サーバに対しポートおよびＩＰのマッピングを明らかにする、請求項５に記載される方法。
【請求項８】
請求項７に記載される方法で、さらに、
第１ファイヤウォールの背後にある第１コンピュータのポートおよびＩＰのマッピングを第２コンピュータに明らかにすることと、第２ファイヤウォールの背後にある第２コンピュータのポートおよびＩＰのマッピングを第１コンピュータに明らかにすることと、を含む方法。
【請求項９】
プロキシ・サーバとの通信の確立が、プロキシ・サーバと第１コンピュータ間およびプロキシ・サーバと第２コンピュータ間の命令チャンネルを定義する請求項５に記載される方法。
【請求項１０】
別個の私設ネットワークに所在するシステム間の交信を行なう方法において、別個の私設ネットワークは各々ファイヤウォール装置を有し、方法は、
プロキシ・サーバおよび第１ファイヤウォールの背後にある第１システム間でＴＣＰ接続を確立することと、プロキシ・サーバおよび第２ファイヤウォールの背後にある第２システム間でＴＣＰ接続を確立することと、第１システムから第２システム宛にＳＹＮパケットを送信することと、第２システムから第１システム宛にＳＹＮパケットを送信することと、第１システムから第２システム宛にＳＹＮ＋ＡＣＫパケットを送信することと、第２システムから第１システム宛にＳＹＮ＋ＡＣＫパケットを送信することと、第１ファイヤウォールの背後にある第１システムおよび第２ファイヤウォールの背後にある第２システム間でＴＣＰパケットを交換することと、を含む方法。
【請求項１１】
第１システムから第２システムにＳＹＮパケットを送信することは、プロキシ・サーバが第２システム宛にＳＹＮパケットを送信するよう第１ファイヤウォールの背後にある第１システムに命令し、ＳＹＮパケットは第２ファイヤウォールに阻止されるにも拘わらずファイヤウォール状態がＳＹＮ＿ＳＥＮＴ状態に移行することを含む請求項１０に記載される方法。
【請求項１２】
第２システムから第１システムにＳＹＮパケットを送信することは、プロキシ・サーバが第１システム宛にＳＹＮパケットを送信するよう第２ファイヤウォールの背後にある第２システムに命令し、ＳＹＮパケットは第１ファイヤウォールに阻止されるにも拘わらずファイヤウォール状態がＳＹＮ＿ＳＥＮＴ状態に移行することを含む請求項１０に記載される方法。
【請求項１３】
第１システムから第２システムにＳＹＮ＋ＡＣＫパケットを送信することは、プロキシ・サーバが第２システム宛にＳＹＮパケットを送信するよう第１ファイヤウォールの背後にある第１システムに命令し、ＳＹＮ＋ＡＣＫパケットは第２ファイヤウォールを通過することが許され、ファイヤウォール状態はＥＳＴＡＢＬＩＳＨＥＤ状態に移行する、請求項１０に記載される方法。
【請求項１４】
第２システムから第１システムにＳＹＮ＋ＡＣＫパケットを送信することは、プロキシ・サーバが第１システム宛にＳＹＮパケットを送信するよう第２ファイヤウォールの背後にある第２システムに命令し、ＳＹＮ＋ＡＣＫパケットは第１ファイヤウォールを通過することが許され、ファイヤウォール状態はＥＳＴＡＢＬＩＳＨＥＤ状態に移行する、請求項１０に記載される方法。
【請求項１５】
第１システムから第２システムに送信されたＳＹＮ＋ＡＣＫパケットを第２システムが受信すると、第２システムはＴＣＰ接続確立状態に移行する請求項１０に記載される方法。
【請求項１６】
第２システムから第１システムに送信されたＳＹＮ＋ＡＣＫパケットを第１システムが受信すると、第１システムはＴＣＰ接続確立状態に移行する請求項１０に記載される方法。
【請求項１７】
別個の私設ネットワークに所在するシステム間で通信リンクを確立する方法において、別個の私設ネットワークは各々ファイヤウォール装置を有し、方法は
第１コンピュータおよびプロキシ・サーバ間でＴＣＰ接続を確立することと、第２コンピュータおよびプロキシ・サーバ間でＴＣＰ接続を確立することと、第２コンピュータ宛にＳＹＮパケットを送信するよう第１コンピュータに指示することと、第１コンピュータ宛にＳＹＮパケットを送信するよう第２コンピュータに指示することと、第２コンピュータ宛にＳＹＮ＋ＡＣＫパケットを送信するよう第１コンピュータに指示することと、第１コンピュータ宛にＳＹＮ＋ＡＣＫパケットを送信するよう第２コンピュータに指示することと、第２コンピュータでＳＹＮ＋ＡＣＫパケットを受信することと、第２コンピュータがＴＣＰ接続確立状態に移行することと、接続確立を完了するためＡＣＫパケットを送信するよう第１コンピュータに指示することと、第１コンピュータでＳＹＮ＋ＡＣＫパケットを受信することと、第１コンピュータ装置がＴＣＰ接続確立状態に移行することと、接続確立を完了するためＡＣＫパケットを送信するよう第２コンピュータに指示することと、を含む方法。
【請求項１８】
第２コンピュータ宛にＳＹＮパケットを送信するよう第１コンピュータに指示することおよび第２コンピュータ宛にＳＹＮ＋ＡＣＫパケットを送信するよう第１コンピュータに指示することはプロキシ・サーバから第１コンピュータに対してなされる、請求項１７に記載される方法。
【請求項１９】
第１コンピュータ宛にＳＹＮパケットを送信するよう第２コンピュータに指示することおよび第１コンピュータ宛にＳＹＮ＋ＡＣＫパケットを送信するよう第２コンピュータに指示することはプロキシ・サーバから第２コンピュータに対してなされる、請求項１７に記載される方法。
【請求項２０】
第１コンピュータより第２コンピュータに送信されたＳＹＮパケットは第２ファイヤウォール装置で阻止され、第２コンピュータは第２ファイヤウォール装置の背後にあるにも拘わらずファイヤウォール状態はＳＹＮ＿ＳＥＮＴ状態に移行する、請求項１７に記載される方法。
【請求項２１】
第２コンピュータより第１コンピュータに送信されたＳＹＮパケットは第１ファイヤウォール装置で阻止され、第１コンピュータは第１ファイヤウォール装置の背後にあるにも拘わらずファイヤウォール状態はＳＹＮ＿ＳＥＮＴ状態に移行る、請求項１７に記載される方法。
【請求項２２】
第１コンピュータより第２コンピュータに送信されたＳＹＮ＋ＡＣＫパケットは第２ファイヤウォール装置を通過することが許され、第２コンピュータは第２ファイヤウォール装置の背後にあり、ファイヤウォール状態はＥＳＴＡＢＬＩＳＨＥＤ状態に移行する、請求項１７に記載される方法。
【請求項２３】
第２コンピュータより第１コンピュータに送信されたＳＹＮ＋ＡＣＫパケットは第１ファイヤウォール装置を通過することが許され、第１コンピュータは第１ファイヤウォール装置の背後にあり、ファイヤウォール状態はＥＳＴＡＢＬＩＳＨＥＤ状態に移行する、請求項１７に記載される方法。
【請求項２４】
別個の私設ネットワークに所在するシステム間でデータ交換を確立するための集積回路チップにおいて、別個の私設ネットワークは各々ファイヤウォール装置を有し、集積回路チップは
第１コンピュータおよびプロキシ・サーバ間でＴＣＰ接続を確立するためのロジックと、第２コンピュータおよびプロキシ・サーバ間でＴＣＰ接続を確立するためのロジックと、第２コンピュータ宛にＳＹＮパケットを送信するよう第１コンピュータに指示するためのロジックと、第１コンピュータ宛にＳＹＮパケットを送信するよう第２コンピュータに指示するためのロジックと、第２コンピュータ宛にＳＹＮ＋ＡＣＫパケットを送信するよう第１コンピュータに指示するためのロジックと、第１コンピュータ宛にＳＹＮ＋ＡＣＫパケットを送信するよう第２コンピュータに指示するためのロジックと、接続確立を完了するためＡＣＫパケットを送信するよう第１コンピュータに指示するためのロジックと、接続確立を完了するためＡＣＫパケットを送信するよう第２コンピュータに指示するためのロジックと、を含む集積回路チップで、第１システムから送信されたＳＹＮ＋ＡＣＫパケットを第２システムが受信すると、第２システムはＴＣＰ接続確立状態に移行し、第２システムから第１システムに送信されたＳＹＮ＋ＡＣＫパケットを第１システムが受信すると、第１システムはＴＣＰ接続確立状態に移行する集積回路チップ。
【請求項２５】
別個の私設ネットワークに所在するシステム間でデータ交換を確立するためのプログラム命令を有するコンピュータ読み取り可能な媒体において、別個の私設ネットワークは各々ファイヤウォール装置を有し、コンピュータ読み取り可能な媒体は、
第１コンピュータおよびプロキシ・サーバ間でＴＣＰ接続を確立するためのプログラム命令と、第２コンピュータおよびプロキシ・サーバ間でＴＣＰ接続を確立するためのプログラム命令と、第２コンピュータ宛にＳＹＮパケットを送信するよう第１コンピュータに指示するためのプログラム命令と、第１コンピュータ宛にＳＹＮパケットを送信するよう第２コンピュータに指示するためのプログラム命令と、第２コンピュータ宛にＳＹＮ＋ＡＣＫパケットを送信するよう第１コンピュータに指示するためのプログラム命令と、第１コンピュータ宛にＳＹＮ＋ＡＣＫパケットを送信するよう第２コンピュータに指示するためのプログラム命令と、接続確立を完了するためＡＣＫパケットを送信するよう第１コンピュータに指示するためのプログラム命令と、接続確立を完了するためＡＣＫパケットを送信するよう第２コンピュータに指示するためのプログラム命令と、を含むコンピュータ読み取り可能な媒体で、第１システムから送信されたＳＹＮ＋ＡＣＫパケットを第２システムが受信すると、第２システムはＴＣＰ接続確立状態に移行し、第２システムから第１システムに送信されたＳＹＮ＋ＡＣＫパケットを第１システムが受信すると、第１システムはＴＣＰ接続確立状態に移行するコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にネットワーク通信に関し、より具体的にはネットワーク・アドレス変換器（ＮＡＴ）およびファイヤウォール装置の環境内のデータ交換に関する。
【背景技術】
【０００２】
インターネットの一層の拡大と使用はそれと対応して必然的に帯域幅およびＩＰアドレス共有などインターネットのインフラに負担をかけることになる。ＩＰアドレス共有の負担はインターネット（ＩＰｖ４）が対応できるアドレス数が非常に限定されているということに根本原因を有する。ＩＰｖ４は現在業界において最も普及しているＩＰアドレス規格である。しかし、ＩＰｖ４がサポートするアドレスの最大数は４０億強のアドレスと限定されている。利用可能なＩＰアドレスが限られていることは同様に同時にインターネットに接続できるユーザの数も限定する。ユーザ数が増えるにつれ、４０億のアドレスでは急速に不充分になりつつある。
【０００３】
利用可能なＩＰアドレスの制限を克服する一方法は１つのＩＰアドレスを多数のコンピュータで共有することである。ローカルエリア・ネットワーク（ＬＡＮ）では数台のコンピュータを相互接続しながら、インターネットに接続するために１つだけＩＰアドレスを有することができる。ＮＡＴはインターネット通信を操作し変換することによりこの数台のコンピュータ間で送受信されるすべてのＩＰパケットについて１つ（または３，４）のソースおよび宛先アドレスを維持することによりこの数台のコンピュータ各々がインターネットに接続するようにできる。周知のように、ＮＡＴルータと呼ばれるＮＡＴを実現するようにデザインされたルータが存在し、本明細書で使用される「ＮＡＴ」という用語はＮＡＴおよびＮＡＴルータ双方を含む。ＮＡＴルータの例にはLinksys Etherfast ケーブル／ＤＳＬファイヤウォール・ルータ、Netgearケーブル／ＤＳＬルータその他が含まれる。
【０００４】
ＮＡＴの制限の１つは、数台のコンピュータが１つのＩＰアドレスを使用してインターネットを通して通信できるものの、異なったＮＡＴの背後にある異なったＬＡＮ上の２台以上のコンピュータは直接の通信ができないという点である。
【０００５】
図１はＮＡＴを実施した典型的なインターネット通信を示すシステム図10である。コンピュータ12a、12b、および12cは各々ＮＡＴ−１14を通じてインターネット22に接続することができる。同様に、コンピュータ16a、16b、および16cは各々ＮＡＴ−２18を通じてインターネット22に接続することができる。コンピュータ12aまたはコンピュータ16aのいずれかが見ることのできる唯一のＩＰアドレスは各々のＮＡＴ14、18のＩＰアドレスであるため、例えばコンピュータ12aは通常直接コンピュータ16aに接続することはできない。
【０００６】
ＮＡＴ−１14の背後にあるコンピュータ12aおよびＮＡＴ−２18の背後にあるコンピュータ16aの間でＴＣＰパケット交換のために接続を確立し維持する一方法は中央サーバ20の使用を通じてである。コンピュータ12aからのパケットはＮＡＴ−１14により中央サーバ20にルーティングされ、サーバは次にトラフィックをＮＡＴ−２18にルーティングし、後者は続いてトラフィックをコンピュータ16aにルーティングする。同様にコンピュータ16aからのトラフィックはＮＡＴ−２18を通じて中央サーバ20にルーティングされ、後者はトラフィックをコンピュータ12aにルーティングするためにトラフィックをＮＡＴ−１14に送信する。
【０００７】
【特許文献１】米国特許出願公開第2002/0122416号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記説明の解決法の１つ明白な短所は、コンピュータ12aおよび16aの間には通信が有効に確立されるが、プロキシ・サーバ20の送受信により通信トラフィックが基本的に２倍にされるという点である。本発明の実施形態は、２つのＮＡＴルータで分離された、異なるＬＡＮ上にある２台のコンピュータ間により直接の通信パスを確立する。ファイヤウォール保護の到来および現在の一般的な実施により、本発明の実施形態はさらにファイヤウォール環境におけるこのより直接の通信パスを供する。本発明の実施形態は今日市場に見られる殆どのＮＡＴルータに対し、ＮＡＴルータの変更なしに効果を有する利点がある。
【課題を解決するための手段】
【０００９】
おおまかに言って、本発明はＮＡＴルータおよびファイヤウォールの背後にある２台のコンピュータ間の交信の方法を提供することにより上記ニーズを満足する。本発明はプロセス、装置、システム、デバイス、方法、コンピュータ集積論理、またはコンピュータ読み取り可能な媒体を含み、多数の形で実施することができる。本発明の実施形態をいくつか以下に説明する。
【００１０】
一実施形態で、交信のシステムが提供される。システムは第１私設ネットワークに所在する第１コンピュータ装置および第２私設ネットワークに所在する第２コンピュータ装置を含む。システムはさらに第１私設ネットワークを保護する第１ファイヤウォールを含む。第１ファイヤウォールはネットワーク・アドレス変換を行なうように構成される。さらに第２私設ネットワークを保護する第２ファイヤウォールが備わる。第２ファイヤウォールは ネットワーク・アドレス変換を行なうように構成される。システムはさらにプロキシ・サーバを含む。プロキシ・サーバは第１私設ネットワークまたは第２私設ネットワークのいずれの一部でもない。第１コンピュータ装置および第２コンピュータ装置は基本的に通信パケットを直接交換することができる。第１コンピュータ装置は第１ファイヤォール装置を通して通信パケットを第２ファイヤウォールの背後にある第２コンピュータ装置に送信し、第２コンピュータ装置から第２ファイヤウォール装置および第１ファイヤウォール装置を通して通信パケットを受信するように構成される。第２コンピュータ装置は第２ファイヤォール装置を通して通信パケットを第１ファイヤウォールの背後にある第１コンピュータ装置に送信し、第１コンピュータ装置から第１ファイヤウォール装置および第２ファイヤウォール装置を通して通信パケットを受信するように構成される。
【００１１】
別の実施形態で、少なくとも２つの私設ネットワーク上の２つ以上のコンピュータ間で交信する方法が提供される。第１コンピュータが第１ファイヤウォール装置の背後にあり、第２コンピュータが第２ファイヤウォール装置の背後にある。方法はプロキシ・サーバと通信を確立することを含む。第１コンピュータおよび第２コンピュータがプロキシ・サーバとＴＣＰ接続を確立する。方法はさらにＴＣＰ  ＳＹＮ監視用パケットを送信することを含む。第１コンピュータおよび第２コンピュータが各々ＴＣＰ  ＳＹＮ監視用パケットをプロキシ・サーバに送信する。方法はさらに第１コンピュータおよび第２コンピュータをＴＣＰプロトコルに従い接続確立状態に移行させることを含む。最後に、方法は第１ファイヤウォール装置の背後にある第１コンピュータおよび第２ファイヤウォール装置の背後にある第２コンピュータ間でＴＣＰデータ・パケットを交換することを提供する。交換は基本的に第１ファイヤウォール装置の背後にある第１コンピュータおよび第２ファイヤウォール装置の背後にある第２コンピュータ間の直接通信である。
【００１２】
さらなる実施形態で、別個の私設ネットワークに所在するシステム間の交信を行なう方法が提供される。別個の私設ネットワークは尾のオンファイヤウォール装置を有する。方法はプロキシ・サーバと第１ファイヤウォール装置の背後にある第１システムとの間にＴＣＰ接続を確立すること、およびプロキシ・サーバと第２ファイヤウォール装置の背後にある第２システムとの間にＴＣＰ接続を確立することを含む。次に、方法は第１システムから第２システムにＳＹＮパケットを送信すること、および第２システムから第１システムにＳＹＮパケットを送信することを提供する。次に方法は第１システムから第２システムにＳＹＮ＋ＡＣＫパケットを送信し、第２システムから第１システムにＳＹＮ＋ＡＣＫパケットを送信することを提供する。最後に、方法は第１ファイヤウォール装置の背後にある第１コンピュータおよび第２ファイヤウォール装置の背後にある第２コンピュータ間でＴＣＰデータ・パケットを交換することを提供する。
【００１３】
また別の実施形態で、別個の私設ネットワークに所在する２つ以上のコンピュータ間に通信リンクを確立する方法が提供される。別個の私設ネットワークは各々ファイヤウォール装置を有する。方法は第１コンピュータとプロキシ・サーバとの間にＴＣＰ接続を確立すること、および第２コンピュータとプロキシ・サーバとの間にＴＣＰ接続を確立することを含む。次に方法は第２コンピュータにＳＹＮパケットを送信するよう第１コンピュータに指示し、第１コンピュータにＳＹＮパケットを送信するよう第２コンピュータに指示することを提供する。方法はさらに第２コンピュータにＳＹＮ＋ＡＣＫパケットを送信するよう第１コンピュータに指示し、第１コンピュータにＳＹＮ＋ＡＣＫパケットを送信するよう第２コンピュータに指示することを含む。方法は第２コンピュータでＳＹＮ＋ＡＣＫパケットを受信すること、および第２コンピュータによるＴＣＰ接続確立状態への移行を含む。方法はさらに第１コンピュータでＳＹＮ＋ＡＣＫパケットを受信すること、および第１コンピュータによるＴＣＰ接続確立状態への移行を含む。
【００１４】
さらに別途の実施形態で、別個の私設ネットワークに所在するシステム間でデータ交換を確立するための集積回路チップが提供される。別個の私設ネットワークは各々ファイヤウォール装置を有する。集積回路チップは第１コンピュータとプロキシ・サーバとの間にＴＣＰ接続を確立するためのロジック、および第２コンピュータとプロキシ・サーバとの間にＴＣＰ接続を確立するためのロジックを含む。加えて集積回路チップは第２コンピュータにＳＹＮパケットを送信するよう第１コンピュータに指示するためのロジック、および第１コンピュータにＳＹＮパケットを送信するよう第２コンピュータに指示するためのロジックを含む。さらに集積回路チップは第２コンピュータにＳＹＮ＋ＡＣＫパケットを送信するよう第１コンピュータに指示するためのロジック、および第１コンピュータにＳＹＮ＋ＡＣＫパケットを送信するよう第２コンピュータに指示するためのロジックを含む。第１コンピュータにより送信されたＳＹＮ＋ＡＣＫパケットを第２コンピュータが受信すると第２コンピュータはＴＣＰ接続確立状態に移行する。第２コンピュータにより送信されたＳＹＮ＋ＡＣＫパケットを第１コンピュータが受信すると第１コンピュータはＴＣＰ接続確立状態に移行する。
【００１５】
別の実施形態で、別個の私設ネットワークに所在するシステム間で通信リンクを確立するためのプログラム命令を有するコンピュータ読み取り可能な媒体が提供される。別個の私設ネットワークは各々ファイヤウォール装置を有する。コンピュータ読み取り可能な媒体は第１コンピュータとプロキシ・サーバとの間にＴＣＰ接続を確立するためのプログラム命令、および第２コンピュータとプロキシ・サーバとの間にＴＣＰ接続を確立するためのプログラム命令を含む。さらにコンピュータ読み取り可能な媒体は第２コンピュータにＳＹＮパケットを送信するよう第１コンピュータに指示するためのプログラム命令、および第１コンピュータにＳＹＮパケットを送信するよう第２コンピュータに指示するためのプログラム命令を含む。加えてコンピュータ読み取り可能な媒体は第２コンピュータにＳＹＮ＋ＡＣＫパケットを送信するよう第１コンピュータに指示するためのプログラム命令、および第１コンピュータにＳＹＮ＋ＡＣＫパケットを送信するよう第２コンピュータに指示するためのプログラム命令を含む。第１コンピュータにより送信されたＳＹＮ＋ＡＣＫパケットを第２コンピュータが受信すると第２コンピュータはＴＣＰ接続確立状態に移行する。第２コンピュータにより送信されたＳＹＮ＋ＡＣＫパケットを第１コンピュータが受信すると第１コンピュータはＴＣＰ接続確立状態に移行する。
【００１６】
従来の技術に対する本発明の利点は数多くあり、発明の原理を例示する添付図面と併せて以下の詳細な説明により明らかにされる。
【発明を実施するための最良の形態】
【００１７】
通信および情報交換の方法およびシステムに関する発明が説明される。好ましい実施形態では、ファイヤウォールの背後にある別個の私設ネットワークに所在するシステム間で基本的に直接のデータ交換が可能になる。以下の説明では本発明の充分な理解を提供するために多数の具体的な内容が述べられる。しかし本発明は以下の具体的な内容の一部あるいはすべてがなくても実施することができることは当業者であれば明らかであろう。また本発明を不必要に不明確にしないよう、公知の処理操作は詳しく説明していない。
【００１８】
本発明の一実施形態でＮＡＴルータは、ポート・マッピングがソースＩＰおよびソース・ポートで決まるソース・ネットワーク・アドレス変換（ＳＮＡＴ）のみ行なう（フルコーン型ＮＡＴとしても知られる）。加えて、ポート・ブロッキング、ＵＤＰパケット・ブロッキング、接続トラッキング等々、ファイヤウォール機能も一切実施されない。２つのＮＡＴルータで分離される２台のコンピュータ間でＵＤＰパケットの交換を可能にするために、ＮＡＴのポート・マッピングを発見し、接続される２台のコンピュータ間でポート・マッピング情報を交換するためにプロキシ・サーバが使用される。
【００１９】
図２は本発明の一実施形態により、各々ＮＡＴ104、108の背後に所在する２台のコンピュータ102、106間でＵＤＰパケット交換を確立する方法を示すシステム図100である。コンピュータ−１102はＩＰ１というＩＰアドレスを有する。ＩＰ１から送られた監視用パケットはＰ１というＵＤＰソース・ポート番号を有する。ＮＡＴ−１104はＩＰｒ１というＩＰアドレスを有する。監視用パケットを転送するために使用されるＩＰｒ１のＵＤＰソース・ポート番号はＰｒ１である。コンピュータ−２106はＩＰ２というＩＰアドレスを有する。ＩＰ２から送られた監視用パケットはＰ２というＵＤＰソース・ポート番号を有する。ＮＡＴ−２108はＩＰｒ２というＩＰアドレスを有する。監視用パケットを転送するために使用されるＩＰｒ２のＵＤＰソース・ポート番号はＰｒ２である。本明細書内で使用される場合、アドレスおよびポートはＸ：Ｙという表記で示され、ここでＸはＩＰアドレスを意味し、Ｙはポートを意味する。例えば、ＩＰ１：Ｐ１はＵＤＰソース・アドレスおよびポートをＩＰアドレスＩＰ１およびポートＰ１と特定する。
【００２０】
発明の一実施形態で、コンピュータ−１102およびコンピュータ−２106は各々のポート・マッピング情報を明らかにし交換するためにプロキシ・サーバ110に対しＴＣＰ接続をする。コンピュータ−１102はポートＰ１を用いて監視用ＵＤＰパケットをプロキシ・サーバ110に送信する。ＮＡＴ−１104が監視用パケットを受信すると、ＩＰ１：Ｐ１をＩＰｒ１：Ｐｒ１にマッピングするマッピング表が作成される。同様に、コンピュータ−２106はポートＰ２を用いて監視用ＵＤＰパケットをプロキシ・サーバ110に送信する。ＮＡＴ−２108が監視用パケットを受信すると、ＩＰ２：Ｐ２をＩＰｒ２：Ｐｒ２にマッピングするマッピング表が作成される。
【００２１】
プロキシ・サーバ110が監視用ＵＤＰパケットを受信すると、マッピング情報はＵＤＰパケット・ヘッダでプロキシ・サーバに明らかにされる。例えばＩＰ１：Ｐ１がＴＣＰ接続によりプロキシ・サーバ110に送信される。監視用パケットがプロキシ・サーバ110に到着すると、パケット・ヘッダのソースＩＰおよびポートはＩＰｒ１：Ｐｒ１で、ＩＰ１：Ｐ１アドレスおよびポートはＵＤＰパケット・ヘッダにある。アドレス変換はコンピュータ−１102とプロキシ・サーバ110の間でＮＡＴルータにより行なわれる。このように、ＮＡＴ−１104のＩＰ１：Ｐ１⇔ＩＰｒ１：Ｐｒ１のマッピングはプロキシ・サーバに明らかにされる。同様にＩＰ２：Ｐ２がＴＣＰ接続によりプロキシ・サーバ110に送信される。監視用パケットがプロキシ・サーバ110に到着すると、パケット・ヘッダのソースＩＰおよびポートはＩＰｒ２：Ｐｒ２で、ＩＰ２：Ｐ２アドレスおよびポートはＵＤＰパケット・ヘッダにある。このように、ＮＡＴ−２108のＩＰ２：Ｐ２⇔ＩＰｒ２：Ｐｒ２のマッピングはプロキシ・サーバに明らかにされる。
【００２２】
本発明の一実施形態で、明らかにされたマッピングは次にコンピュータ102、106に送られ、その結果各コンピュータ102、106は他方のポート・マッピングを有し、コンピュータ−１102およびコンピュータ−２106の間でＵＤＰパケットの基本的に直接の交換が可能になる。一旦マッピングが明らかにされると、ＩＰ１：Ｐ１を用いるコンピュータ−１102はＵＤＰパケットを直接ＩＰ２：Ｐ２にあるコンピュータ−２106に送信し、その逆もしかりである。図２に示すように、通信線112はプロキシ・サーバ110が明らかにされたＩＰ１：Ｐ１⇔ＩＰｒ１：Ｐｒ１のマッピングをコンピュータ−２106に転送し、ＩＰ１：Ｐ１に転送されるＵＤＰパケットのＩＰｒ１：Ｐｒ１による受領を示すことを反映している。同様に通信線114はプロキシ・サーバ110が明らかにされたＩＰ２：Ｐ２⇔ＩＰｒ２：Ｐｒ２のマッピングをコンピュータ−１102に転送し、ＩＰ２：Ｐ２に転送されるＵＤＰパケットのＩＰｒ２：Ｐｒ２による受領を示すことを反映している。
【００２３】
一実施形態で、ＮＡＴ−１104の背後にあるコンピュータ−１102とＮＡＴ−２108の背後にあるコンピュータ−２106は帯域幅およびコンピュータ上の負荷を殆ど必要とせず互いに接続することができる。一旦ＮＡＴマッピング情報が明らかにされると、プロキシ・サーバ110は交信にもはや必要なくなり、プロキシ・サーバ110の帯域幅およびコンピュータ上の負荷がかなり削減される。
【００２４】
上記実施形態において、ＮＡＴ104、108はＵＤＰパケットの通過を許すと仮定されている。ＮＡＴおよびファイヤウォール装置によってはＵＤＰパケットがすべて阻止される。本発明の別の実施形態では、すべてのＵＤＰパケットを阻止するファイヤウォールまたはＮＡＴの類似の機能を有する環境において基本的に直接の通信チャンネルが確立される。
【００２５】
本発明の一実施形態では、２つのファイヤウォール装置または同様に機能するＮＡＴルータ（以後集合的ファイヤウォール装置と呼ばれる）により分離される異なった私設ＬＡＮ上に所在する２台のコンピュータ間で基本的に直接の通信が確立され維持される。図３はファイヤウォール環境におけるネットワークおよびインターネット通信を示すシステム図150である。クライアント・コンピュータ152a、152b、および152cはファイヤウォール−１154の背後にある施設ＬＡＮを表す。クライアント・コンピュータ156a、156b、および156cはファイヤウォール−２158の背後にある別の施設ＬＡＮを表す。プロキシ・サーバ160は最初に接続を確立するために使用される。本実施形態で、ファイヤウォール装置154、156[158?]はＴＣＰ接続を許し、ポート番号は制限されず、フルコーン型ＮＡＴがＲＦＣ３４８９に従い実施されている。
【００２６】
一実施形態で、命令チャンネル（即ちＴＣＰ接続）が開かれ、プロキシ・サーバ160は各クライアント・コンピュータと通信し、クライアント・コンピュータ同士の直接通信を確立することができる。例えば、プロキシ・サーバ160がファイヤウォール−１154の背後にあるクライアント−１152aと通信し、ファイヤウォール−２158の背後にあるクライアント−２156aと通信するために命令チャンネルが確立される。一旦命令ＴＣＰ接続が確立されると、プロキシ・サーバ160はクライアント・コンピュータ152a、156aを各々命令することができる。一実施形態で、プロキシ・サーバ160はクライアント・コンピュータ152a、156a各々に例えばＴＣＰ  ＳＹＮパケットなど監視用ＴＣＰパケットを送信するよう命令する。
【００２７】
クライアント・コンピュータ152a、156aが監視用ＴＣＰ  ＳＹＮパケットを送信し、監視用パケットがプロキシ・サーバ160により受信されると、図２に関連して説明された通り、マッピングが明らかにされる。監視用ＴＣＰパケットが送信されると、コンピュータＩＰおよびポートを対応ファイヤゥオールＩＰおよびポートにマッピングするファイヤウォール・マッピング表が作成される。監視用パケットがプロキシ・サーバ160により受領されるとマッピングがプロキシ・サーバ160に明らかにされ、次にプロキシ・サーバ160は共働コンピュータにマッピング情報を送信する。図３で例えばコンピュータ152aおよび156aが通信を確立ことが意図される場合、プロキシ・サーバ160はコンピュータ152aについて明らかにされたマッピング情報をコンピュータ156aに送信し、コンピュータ156aについて明らかにされたマッピング情報をコンピュータ152aに送信する。この例は下記の図５においてより詳しく示される。
【００２８】
図４はＴＣＰ接続を確立する場合の典型的なＴＣＰ接続クライアント182およびサーバ184の状態進行を示す状態図180である。周知のように、このような状態進行はＴＣＰプロトコルによって定義され、図４に描かれる簡略化されたプロセスはＴＣＰ接続が確立されるために何が起こらなければならないかを示すために使用される。後の図面は本発明の実施形態で、ファイヤウォール環境においてＴＣＰの状態進行のために必要なプロセスがどのように達成されるかを示している。図４に示す通り、クライアント182およびサーバ184は双方とも当初閉鎖186状態にある。サーバ・プログラムがＴＣＰ「リッスン（）」システム・コールを呼び出すと、サーバ184はリッスン状態190に移行する。クライアント182がサーバ184とＴＣＰ接続を確立したい場合、クライアント182はＳＹＮパケット188をサーバ184に送信する。ＳＹＮパケット188を送信すると、クライアントはＳＹＮ＿ＳＥＮＴ状態192に移行する。サーバ184がＳＹＮパケット188を受信すると、サーバ184はリッスン190からＳＹＮ＿ＳＥＮＴ状態192に移行する。サーバ184は次にＳＹＮ＋ＡＣＫパケット196を送信する。クライアント182はＳＹＮ＋ＡＣＫパケット196を受信し、ＴＣＰパケット交換に必要なデータ転送状態の確立200に移行してＡＣＫパケット198をサーバ184に送信する。ＡＣＫパケット198を受信すると、サーバ184は確立状態200に移行する。クライアント182とサーバ184双方が確立状態200にあると、ＴＣＰ接続が開かれ、データ転送および交換が可能になる。
【００２９】
図３に戻り、本発明の実施形態はファイヤウォール154、158各々の背後にある２台のクライアント・コンピュータ152a、156a間のＴＣＰ接続を提供する。周知の通り、ファイヤウォール装置は通常ＵＤＰパケットを阻止し、ポート阻止等々を行なう。ファイヤウォール装置はまた到着するＳＹＮパケットを阻止し、外部の機械（例えばハッカー）が私設ネットワーク内の機械に接続することを防ぐ。本発明の実施形態において、ファイヤウォールに送られ、到着するＳＹＮパケットは無視され、接続確立に対しマイナスの効果を与えない。図３において、プロキシ・サーバ16ファイヤウォール154、158を通して２台のクライアント・コンピュータ152a、156a間でＴＣＰ接続の確立を調整するために使用される。
【００３０】
図５は本発明の一実施形態により、図３に示すファイヤウォール環境においてファイヤウォール−１154の背後にあるクライアント・コンピュータ１（クライアント−１）152aおよびファイヤウォール−２158の背後にあるクライアント・コンピュータ２（クライアント−１）156aのネットワークおよびインターネット通信を示す簡略システム図210である。プロキシ・サーバ160は監視用ＴＣＰパケットの送信を既に開始してＩＰおよびポートのマッピングを明らかにし、次にコンピュータ152a、156a間でＩＰおよびポートのマッピングを交換した上、クライアント−１152aおよびクライアント−２156aの各々にＴＣＰ接続確立パケットのシーケンスを送信し、ファイヤウォール154、158双方を通してＴＣＰのトンネル作成を促進する。クライアント−１152aはソースＩＰおよびポートＣ１：Ｐ１から、ＩＰおよびポートＦＷ１：ＦＰ１を有するファイヤォール−１154を通してパケットを送信する。クライアント−２156aはソースＩＰおよびポートＣ２：Ｐ２から、ＩＰおよびポートＦＷ２：ＦＰ２を有するファイヤォール−２158を通してパケットを送信する。
【００３１】
本発明の一実施形態で、クライアント−１152aおよびプロキシ・サーバ160間、ならびにクライアント−２156aおよびプロキシ・サーバ160間のＴＣＰ接続を用いて、クライアント−１152aおよびクライアント−２156a間で基本的に直接のＴＣＰ接続を確立する調整が行なわれる。図４に関連して上述のように、ＴＣＰプロトコルは接続状態を達成するためにクライアントまたはサーバ状態のシーケンスを必要とする。図５において、クライアント状態はクライアント−１152aおよびクライアント−２156a各々の下に特定される。クライアント−１152aおよびクライアント−２156aは双方ともＴＣＰ接続が意図される対応クライアントに対し閉鎖状態212で開始すると仮定される。
【００３２】
発明の一実施形態で、プロキシ・サーバ160はクライアント−２156a宛にＳＹＮパケットを送信するようクライアント−１152aに命令する。ファイヤウォール−２158はＳＹＮパケットを阻止し、ファイヤウォール−２158の背後に所在するクライアント−２156aを保護する。クライアント−１152aから送信されたＳＹＮパケットはファイヤウォール−１154には阻止されない。言い換えれば、ファイヤウォール−１154はファイヤウォール−１154の背後にあるクライアント−１152aから発せられるＳＹＮパケットは阻止しないが、逆にファイヤウォール−１154の外部のＳＹＮパケットでクライアント−１152aに送信されるものを阻止する。ＳＹＮパケットを送信するとクライアント−１152aはＳＹＮ＿ＳＥＮＴ状態214に移行する。
【００３３】
同様に、プロキシ・サーバ160はクライアント−１152a宛にＳＹＮパケットを送信するようクライアント−２156aに命令する。ファイヤウォール−１154はＳＹＮパケットを阻止かつ無視し、クライアント−２156aに関連して上述の通りファイヤウォール−１154の背後に所在するクライアント−１152aを保護する。しかし、ＳＹＮパケットを送信するとクライアント−２156aはＳＹＮ＿ＳＥＮＴ状態214に移行する。
【００３４】
周知の通り、ファイヤウォール装置は一般的にファイヤウォールの背後に所在するクライアントおよびシステムを保護するためにＵＤＰパケット等々を阻止する。保護されたクライアントが例えばサーバとＴＣＰパケットの交換を行なうなど別装置と接続したい場合、正しいＴＣＰ状態の移行がなされる限りクライアントから宛先装置への送信が許される。さらに、このような送信は通常受信確認パケットと組になっている。例として、ＳＹＮパケットは通常返送用のＳＹＮ＋ＡＣＫ受信確認パケットを生成すると予想される。ＳＹＮパケットがファイヤウォールの背後から発せられ、応答にＳＹＮ＋ＡＣＫパケットが期待されるため、ファイヤウォールはＳＹＮパケットがクライアントから送信されている場合、応答のＳＹＮ＋ＡＣＫパケットがファイヤウォールを通過してクライアントに行くことを許す。
【００３５】
再び図５を見ると、クライアント−１152aおよびクライアント−２156a双方がＳＹＮ＿ＳＥＮＴ状態214で、プロキシ・サーバ160はクライアント−２[156a]にＳＹＮ＋ＡＣＫパケットを送信するようクライアント−１152aに命令し、さらにクライアント−１152aにＳＹＮ＋ＡＣＫパケットを送信するようクライアント−２156aに命令する。クライアント152a、156a各々がＳＹＮ＿ＳＥＮＴ状態214にあるので、各ＳＹＮ＋ＡＣＫパケットは各々のファイヤウォール154、158を通過する。クライアント−１152aがクライアント−２156aからＳＹＮ＋ＡＣＫパケットを受信すると、クライアント−１152aは確立状態200に移行する。クライアント−２156aがクライアント−１152aからＳＹＮ＋ＡＣＫパケットを受信すると、クライアント−２156aは確立状態200に移行する。これでクライアント−１152aおよびクライアント−２156a間で基本的に直接のＴＣＰパケット交換が可能になる。
【００３６】
図６は本発明の一実施形態により、図５に示すファイヤウォール−１154およびファイヤウォール−２158各々のクライアント−１／クライアント−２のＴＣＰ接続状態移行を示す状態図である。ファイヤウォール154、158は双方とも接続の閉鎖状態200で開始する。ファイヤウォール状態への言及は一般的にクライアント−１およびクライアント−２のＴＣＰ接続状態を意味する事が理解されよう。周知の通り、ファイヤウォールは複数の機械の接続／接続状態を監視することができる。クライアント−１152a（図５参照）がＳＹＮパケット254を送信すると、パケットはファイヤウォール−１154の背後で発せられるので通過が許される。ＳＹＮパケットの通過が許されるとファイヤウォール−１154の状態はＳＹＮ＿ＳＥＮＴ256に移行する。クライアント−１152aにより送られたＳＹＮパケットはファイヤウォール−２158で阻止されるが、ＳＹＮパケット254の送信によりファイヤウォール−１154はＳＹＮ＿ＳＥＮＴ状態256に移行する。同様にクライアント−２156a（図５参照）がＳＹＮパケット254を送信すると、パケットはファイヤウォール−２158の背後で発せられるので通過が許される。ＳＹＮパケットの通過が許されるとファイヤウォール−２158の状態はＳＹＮ＿ＳＥＮＴ256に移行する。クライアント−２156aにより送られたＳＹＮパケットはファイヤウォール−１154で阻止されるが、ＳＹＮパケット254の送信によりファイヤウォール−２158はＳＹＮ＿ＳＥＮＴ状態256に移行する。
【００３７】
ファイヤウォール−１154およびファイヤウォール−２158の双方がＳＹＮ＿ＳＥＮＴ状態256にある中で、クライアント−１152a（図５参照）はクライアント−２156a（図５参照）にＳＹＮ＋ＡＣＫパケット258を送信し、クライアント−２156aはクライアント−１152aにＳＹＮ＋ＡＣＫパケット258を送信する。クライアント−１152aにより送信されたＳＹＮ＋ＡＣＫパケット258をファイヤウォール−２158が受信すると、ファイヤウォール−２158はパケットがクライアント−２156aに通じることを許し、ファイヤウォール−２158は確立状態260に移行する。クライアント−２156aにより送信されたＳＹＮ＋ＡＣＫパケット258をファイヤウォール−１254[154]が受信すると、ファイヤウォール−１154はパケットがクライアント−１152aに通じることを許し、ファイヤウォール−１154は確立状態260に移行する。最後にクライアント−１152aはクライアント−２156aにＡＣＫパケット259を送信し、クライアント−２156aはクライアント−１152aにＡＣＫパケット259を送信して接続確立を完了する。確立状態260では、ファイヤウォール−１154およびファイヤウォール−２158は双方とも準備ができ、ＴＣＰデータ・パケットを受信し転送するように構成される。
【００３８】
図７は本発明の一実施形態により、２つの異なったファイヤウォールの背後にある異なったＬＡＮ上の２台のコンピュータ間でＴＣＰ接続を確立する際に行なわれる方法操作を示すフローチャート図である。方法は各クライアントがプロキシ・サーバと接続を確立する操作282で開始される。図５および６に関連して上述の通り、プロキシ・サーバは発明の一実施形態において、２台のクライアント・コンピュータにＴＣＰ接続確立パケットを送信するように命令するのに用いられ、これにより２台のクライアント・コンピュータ間で基本的に直接の接続を確立することを促進する。
【００３９】
方法は続いて操作284で、プロキシ・サーバが各クライアントにＩＰ監視用パケットを送信するように命令する。一実施形態で、ＩＰ監視用パケットはＴＣＰ監視用パケットである。前述の通り、アドレス・マッピングは一般的にＩＰ監視用パケットのヘッダでプロキシ・サーバに明らかにされる。プロキシ・サーバは次にＩＰおよびポートのマッピングを対応する参加クライアント各々に明らかにする。
【００４０】
操作286で、プロキシ・サーバは各クライアントに対し他方にＳＹＮパケットを送信するよう命令する。一実施形態で、クライアントは各々ファイヤウォール装置の背後にある。ファイヤウォール装置の背後からＳＹＮパケットを送信するクライアントは出て行くパケットについてはファイヤウォールを通して送信できるが、入って来るＳＹＮパケットはいずれも目的の受信クライアントがファイヤウォールの背後にあるのでファイヤウォールにより止められるか落とされる。しかしＳＹＮパケットを送信するとクライアントは各々ＳＹＮ＿ＳＥＮＴ状態に移行する。一実施形態で、ファイヤウォールはクライアント状態の移行を認識し、続いて応答ＡＣＫ（またはＳＹＮ＋ＡＣＫ）がファイヤウォール通過してクライアントに届くことを許す。
【００４１】
方法は続いて操作288でプロキシ・サーバが各クライアントにＳＹＮ＋ＡＣＫパケットを送信するよう命令する。上述の通り、操作286でＳＹＮパケットの送信に続き、クライアントは各々ＳＹＮ＿ＳＥＮＴ状態に移行する。ＳＹＮ＿ＳＥＮＴ状態においてはＳＹＮ＋ＡＣＫパケットが各々ファイヤウォールを通過して目的の受信クライアントに届くこと許される。
【００４２】
ＳＹＮ＋ＡＣＫパケットを受信すると、各クライアント・コンピュータは確立状態に移行することを操作290は示しており、操作292で各クライアント・コンピュータはＡＣＫパケットを送信してＴＣＰ接続確立を完了する。この時点で接続は確立され、クライアント間でＴＣＰデータ交換が可能になる。一実施形態で、別個のファイヤウォールの背後にある各クライアントはＴＣＰ接続が可能になった他方のクライアントとのＴＣＰデータ・パケット交換をすることができる。ＴＣＰパケットをプロキシ・サーバ経由で通すよりも、ＴＣＰパケットはクライアント間で直接に交換される。
【００４３】
引き続き参加クライアント間によるＴＣＰデータ・パケットの交換を意味する操作294で方法は終了する。データ交換が完了、もはや望まれない、または接続が割り込みもしくは切断されると方法は終わる。ＴＣＰプロトコルに従い、接続が除去された場合ＴＣＰ  ＦＩＮパケットを各コンピュータが送信しＴＣＰ接続を切断または除去することが理解されよう。
【００４４】
本発明の実施形態は複数参加のテレビ会議システム、ファイル転送、プリケーション共有プログラム、データのマルチメディア・ストリーミング、およびその他大量データのデータ送信および交換操作向けに実施されると特に利点が多いことが理解されよう。
【００４５】
上記実施形態を念頭に、本発明はコンピュータ・システムに格納されるデータに係わる各種のコンピュータ実行操作を用いることができることが理解されよう。これらの操作は物理量を物理的に操作する必要があるものである。必ずしもではないが、通常これらの量は格納、移転、組み合わせ、比較、およびその他の方法で操作される電気または磁気信号の形を取る。さらに実行される操作はしばしば生成、特定、判断、または比較などの用語で言及されるものである。
【００４６】
発明はまたコンピュータ読み取り可能な媒体上のコンピュータ読み取り可能なコードとして実施することができる。コンピュータ読み取り可能な媒体とは後にコンピュータ・システムにより読み取れるデータを格納することができるデータ記憶装置である。コンピュータ読み取り可能な媒体の例にはハードドライブ、ネットワーク接続記憶装置（ＮＡＳ）、読み取り専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびにその他光学的および非光学的データ記憶装置を含む。またコンピュータ読み取り可能な媒体はコンピュータ読み取り可能なコードが分散された形で格納され実行されるようにネットワーク結合のコンピュータ・システム上に分散されても良い。
【００４７】
前記の発明は明瞭な理解を図るためかなり詳細に説明されたが、添付請求項の範囲内で一定の変更および修正を実施することは可能であることは明らかであろう。従って、本実施形態は例示とみなされるもので限定するものではなく、発明はここで叙述された詳細に限定されるものではなく、添付請求項の範囲および同等内容において修正できるものである。
【図面の簡単な説明】
【００４８】
【図１】ＮＡＴを実施した典型的なインターネット通信を示すシステム図。
【図２】本発明の一実施形態により、各々ＮＡＴの背後に所在する２台のコンピュータ間でＵＤＰパケット交換を確立する方法を示すシステム図。
【図３】ファイヤウォール環境におけるネットワークおよびインターネット通信を示すシステム図。
【図４】ファイヤウォール保護などのバリアまたは制限が存在しない状態でＴＣＰ接続を確立する場合の典型的なクライアントおよびサーバの状態進行を示す状態図。
【図５】本発明の一実施形態により、図３に示すファイヤウォール環境においてファイヤウォール−１の背後にあるクライアント・コンピュータ１およびファイヤウォール−２の背後にあるクライアント・コンピュータ２のネットワークおよびインターネット通信を示す簡略システム図。
【図６】本発明の一実施形態により、図５に示すファイヤウォール−１およびファイヤウォール−２各々の状態移行を示す状態図。
【図７】本発明の一実施形態により、２つの異なるファイヤウォールの背後にある、異なったＬＡＮ上の２台のコンピュータ間でＴＣＰ接続を確立する際に行なわれる方法操作を示すフローチャート図。
【符号の説明】
【００４９】
22  インターネット
182  クライアント
186  閉鎖
192  ＳＹＮ＿ＳＥＮＴ
200  確立
184  サーバ
186  閉鎖
190  リッスン
192  ＳＹＮ＿ＲＣＶＤ
200  確立
212  閉鎖
214  ＳＹＮ＿ＳＥＮＴ
216  確立
212  閉鎖
214  ＳＹＮ＿ＳＥＮＴ
216  確立
252  閉鎖
256  ＳＹＮ＿ＳＥＮＴ
260  確立
252  閉鎖
256  ＳＹＮ＿ＳＥＮＴ
260  確立
【図１】
2006081177.tif 000003
【図２】
2006081177.tif 000004
【図３】
2006081177.tif 000005
【図４】
2006081177.tif 000006
【図５】
2006081177.tif 000007
【図６】
2006081177.tif 000008
【図７】
2006081177.tif 000009