(57)【要約】サテライト・ネットワークを介してパケット化された情報のトランスポートを提供し、クライアント（３８０）とサーバ（３８８）の間での情報の双方向フローを第１サテライト・ゲートウェイ（３８４）から接続（３８６）を介して第２サテライト・ゲートウェイ（３８６）に提供し、ＴＣＰプロトコルとサテライト・プロトコルの間でのプロトコル変換を利用する遠隔通信装置、遠隔通信システム、および遠隔通信方法。また、ＴＣＰ接続を介して通信される情報を記憶するメモリを管理するため、かつＴＣＰ接続内の情報フローを制御する遠隔通信装置、遠隔通信システム、および遠隔通信方法も提供される。
2004520725.tif 000002
【特許請求の範囲】
【請求項１】
遠隔通信システム内のサテライト・リンクを介してパケット化した情報を伝送する通信装置であって、前記情報が、それぞれがデータとヘッダを含む複数のパケットを含み、前記システムが、複数の潜在的クライアントのうちから選択されたクライアントと、複数の潜在的サーバのうちから選択されたサーバと、第１遠隔通信リンクによって前記サーバに接続された第１ゲートウェイと、第２遠隔通信リンクによって前記サーバに接続された第２ゲートウェイと、前記第１ゲートウェイを前記第２ゲートウェイに接続する第３遠隔通信リンクとを含み、前記通信装置が、
前記第１ゲートウェイを前記クライアントとリンクするためのネットワーク・インターフェースと、
サテライト・ゲートウェイ・インターフェースと、
システム・メモリと、
前記ネットワーク・インターフェース、前記サテライト・ゲートウェイ・インターフェース、および前記システム・メモリをプロセッサと相互接続するバスであって、そのプロセッサが、
前記通信が前記クライアントによって開始され、前記サーバとの接続をインターセプトし、
前記第１ゲートウェイと前記第２ゲートウェイの間の接続を、前記遠隔通信リンクを介して確立し、
前記第１ゲートウェイと前記第２ゲートウェイの間の前記接続を使用して、前記クライアントから前記サーバに対する、また前記サーバから前記クライアントに対する情報の双方向フローを提供し、前記クライアントおよび前記サーバにトランスペアレントにで行われることとを実行するように動作可能に構成されているバスとを含む装置。
【請求項２】
前記プロセッサが、前記第１ゲートウェイで、前記情報を第１プロトコルから第２プロトコルに前記遠隔通信リンクを介する伝送のために変換し、かつ前記第２ゲートウェイで、前記第２プロトコルを前記第１プロセッサに変換するようにさらに、動作可能に構成された請求項１に記載の装置。
【請求項３】
前記第１プロトコルがＴＣＰを含み、かつ前記第２プロトコルがＸＴＰを含む請求項２に記載の装置。
【請求項４】
前記第２プロトコルが、ＴＣＰプロトコルを使用するよりも、サテライト・リンクを介する伝送に適している請求項２に記載の装置。
【請求項５】
ＴＣＰインターフェースと、
サテライト・ゲートウェイ・インターフェースと、
システム・メモリと、
前記ＴＣＰインターフェース、前記サテライト・ゲートウェイ・インターフェース、および前記システム・メモリをプロセッサと相互接続するバスとを含む通信装置であって、前記プロセッサが、
クライアントとサーバの間の第１通信接続をインターセプトし、
サテライト・リンクを介する第１サテライト・ゲートウェイと第２サテライト・ゲートウェイの間の第２通信接続を形成し、
前記第１接続を記述する情報を前記第２サテライト・ゲートウェイに伝送し、
前記第１接続を記述する前記情報を使用して、前記第２サテライト・ゲートウェイと宛先サーバの間での第３通信接続を形成することを実行するように動作可能に構成され、前記第２接続を形成すること、および前記第３接続を形成することが、前記ユーザおよび前記サーバにトランスペアレントに行われるプロセッサである装置。
【請求項６】
前記情報が、クライアント・アドレスおよび宛先サーバ・アドレスを含む請求項５に記載の装置。
【請求項７】
前記プロセッサが、前記第２サテライト・ゲートウェイからの応答を前記第１サテライト・ゲートウェイに、前記宛先サーバとの前記第３通信接続が行われたときに伝送するように、さらに動作可能に構成された請求項５に記載の装置。
【請求項８】
前記プロセッサが、前記第１サテライト・ゲートウェイからの応答を前記クライアントに、前記第３通信接続が失われたときに伝送するように、さらに動作可能に構成された請求項５に記載の装置。
【請求項９】
前記プロセッサが、前記第１サテライト・ゲートウェイからの障害応答を前記クライアントに、前記第３通信接続が失われたときに伝送するように、さらに動作可能に構成された請求項５に記載の装置。
【請求項１０】
第１コンピュータと複数の第２コンピュータのうちの１つとの間での通信を確立するための装置であって、
ネットワーク・インターフェースと、
サテライト・ゲートウェイ・インターフェースと、
システム・メモリと、
前記ネットワーク・インターフェース、前記サテライト・ゲートウェイ・インターフェース、および前記システム・メモリをプロセッサと相互接続するバスであって、前記プロセッサが、
第１プロトコルおよび第２プロトコルを提供するステップであって、前記複数の第２コンピュータのうちの少なくとも１つが、前記第１プロトコルを使用して、前記第１コンピュータと通信を行うことができ、かつ前記複数の第２コンピュータのうちの少なくとも１つが、前記第２プロトコルを使用して、前記第１コンピュータと通信を行うことができるステップと、
前記第１コンピュータと前記複数の第２コンピュータのうちの少なくとも１つとの間で、前記第１プロトコルを使用して接続が確立され得るかどうかを判定するステップと、
前記接続が確立され得ない場合には、前記第１コンピュータと前記複数の第２コンピュータのうちの前記少なくとも１つとの間の接続を、前記第２プロトコルを使用して確立するステップとを実行するように動作可能に構成されているバスとを含む装置。
【請求項１１】
前記複数の第２コンピュータの各々が、前記第２プロトコルを使用して、前記第１コンピュータと通信を行うことができる請求項１０に記載の装置。
【請求項１２】
前記第１プロトコルが、ＸＴＰである請求項１０に記載の装置。
【請求項１３】
前記第２プロトコルが、ＴＣＰ／ＩＰである請求項１０に記載の装置。
【請求項１４】
前記第１プロトコルが第１スループットを有し、かつ前記第２プロトコルが第２スループットを有し、前記第１スループットが、１×１０−７のビット・エラー率で、第２スループットよりも少なくとも７．５倍、大きい請求項１０に記載の装置。
【請求項１５】
前記第１プロトコルが第１スループットを有し、かつ前記第２プロトコルが第２スループットを有し、前記第１スループットが、１×１０−６のビット・エラー率で、第２スループットよりも少なくとも１０倍、大きい請求項１０に記載の装置。
【請求項１６】
前記第１プロトコルが、１×１０−８のビット・エラー率で、利用可能な帯域幅の少なくとも９５％のスループットを有する請求項１０に記載の装置。
【請求項１７】
クライアントとサーバの間で、ＴＣＰプロトコルでのパケット化された情報をトランスポートするための通信システム内で、サテライト・プロトコルでのパケット化された情報をトランスポートするシステムにシステムを変換する方法であって、
第１ゲートウェイを設置するステップであって、前記第１ゲートウェイが、前記クライアントから前記サーバに対する接続をインターセプトするように動作可能に構成され、前記第１ゲートウェイが、さらに、前記パケット化された情報をＴＣＰプロトコルからサテライト・プロトコルに変換するように動作可能に構成されているステップと、
第２ゲートウェイを設置するステップであって、前記第２ゲートウェイが、前記サーバとの接続を確立するように構成され、前記第２ゲートウェイが、さらに、前記パケット化された情報をサテライト・プロトコルからＴＣＰプロトコルに変換するように動作可能に構成され、前記第１ゲートウェイおよび前記第２ゲートウェイが、共通遠隔通信リンクを介して接続を確立するように動作可能に構成されているステップとを含む方法。
【請求項１８】
サテライト・リンクを介してパケット化された情報を伝送するための通信システムであって、前記情報が、複数のパケットを含み、前記パケットの各々が、データおよびヘッダを含み、前記通信システムは、
複数の潜在的クライアントのうちから選択されたクライアントと、
複数の潜在的サーバのうちから選択されたサーバと、
第１遠隔通信リンクによって前記クライアントと接続された第１ゲートウェイと、
第２遠隔通信リンクによって前記サーバと接続された第２ゲートウェイと、
前記第１ゲートウェイを前記第２ゲートウェイに接続する第３遠隔通信リンクと、
前記サーバとの接続の試行をインターセプトするためのコードであって、前記接続の試行が、前記クライアントによって開始されたものであるコードと、
前記第１ゲートウェイと前記第２ゲートウェイの間の接続を、前記第３遠隔通信リンクを介して確立するためのコードと、
前記第１ゲートウェイと前記第２ゲートウェイの間の前記接続を使用して、前記クライアントから前記サーバに対する、また前記サーバから前記クライアントに対する情報の双方向フローを提供するためのコードであって、双方向フローの前記提供が、前記クライアントおよび前記サーバにトランスペアレントに行われるコードと、
前記コードを記憶するためのコンピュータ可読記憶媒体とを含むシステム。
【請求項１９】
前記情報を前記第１ゲートウェイで、第１プロトコルから第２プロトコルに、前記遠隔通信リンクを介する伝送のために変換するためのコードと、
前記第２ゲートウェイで、前記第２プロトコルを前記第１プロトコルに変換するためのコードとをさらに含む請求項１８に記載のシステム。
【請求項２０】
変換するための前記コードが、前記ヘッダを除去して、前記データを実質的にそのままにしておくコードを含む請求項１９に記載のシステム。
【請求項２１】
変換するための前記コードが、前記ヘッダを除去して、前記データを実質的にそのままにしておくコードと、前記データをサテライト・プロトコル・ヘッダを使用してカプセル化するためのコードとを含む請求項１９に記載のシステム。
【請求項２２】
前記データが、情報の前記フローの一部である請求項２１に記載のシステム。
【請求項２３】
前記第２ゲートウェイによって、前記遠隔通信リンクを介して、情報の前記フローを受信するためのコードをさらに含む請求項１８に記載のシステム。
【請求項２４】
通信システムであって、
クライアントとサーバの間の第１通信接続をインターセプトするためのコードと、
サテライト・リンクを介しての、第１サテライト・ゲートウェイと第２サテライト・ゲートウェイの間の第２通信接続を形成するためのコードと、
前記第１接続を記述する情報を前記第２サテライト・ゲートウェイに伝送するためのコードと、
前記第１接続を記述する前記情報を使用して、前記第２サテライト・ゲートウェイと宛先サーバの間での第３通信接続を形成するためのコードであって、前記第２接続を形成するためのコード、および前記第３接続を形成するためのコードが、前記ユーザおよび前記サーバにトランスペアレントにで実行されるコードと、
前記コードを保持するためのコンピュータ可読記憶媒体とを含むシステム。
【請求項２５】
前記情報が、クライアント・アドレスおよび宛先サーバ・アドレスを含む請求項２４に記載のシステム。
【請求項２６】
第１コンピュータと複数の第２コンピュータのうちの１つの間で通信を確立するためのシステムであって、
第１プロトコルおよび第２プロトコルを提供するためのコードであって、前記複数の第２コンピュータのうちの少なくとも１つが、前記第１プロトコルを使用して、前記第１コンピュータと通信を行うことができ、前記複数の第２コンピュータのうちの少なくとも１つが、前記第２プロトコルを使用して、前記第１コンピュータと通信を行うことができるコードと、
前記第１コンピュータと前記複数の第２コンピュータのうちの少なくとも１つとの間で、前記第１プロトコルを使用して接続が確立され得るかどうかを判定するためのコードと、
判定するための前記コードが、前記第１コンピュータと前記複数の第２コンピュータのうちの少なくとも１つとの間で、前記第１プロトコルを使用して接続が確立され得ないことを判定した場合、前記第１ホスト・コンピュータと前記複数の第２ホスト・コンピュータのうちの少なくとも１つとの間の接続を、前記第２プロトコルを使用して確立するためのコードと、
前記コードを保持するためのコンピュータ可読記憶媒体とを含むシステム。
【請求項２７】
前記複数の第２コンピュータの各々が、前記第２プロトコルを使用して、前記第１コンピュータと通信を行うことができる請求項２６に記載のシステム。
【請求項２８】
前記第１プロトコルが、ＸＴＰである請求項２６に記載のシステム。
【請求項２９】
前記第２プロトコルが、ＴＣＰ／ＩＰである請求項２６に記載のシステム。
【請求項３０】
システム内で情報を伝送するための通信方法であって、前記情報が、複数のパケットを含み、前記パケットの各々が、データおよびヘッダを含み、前記システムが、複数の潜在的クライアントのうちから選択されたクライアントと、
複数の潜在的サーバのうちから選択されたサーバと、
第１遠隔通信リンクによって前記クライアントに接続された第１ゲートウェイと、
第２遠隔通信リンクによって前記サーバに接続された第２ゲートウェイと、
前記第１ゲートウェイを前記第２ゲートウェイに接続する第３遠隔通信リンクとを含み、前記通信方法は、
前記サーバとの接続の試行をインターセプトするステップであって、前記接続の試行が、前記クライアントによって開始されたものであるステップと、
前記第１ゲートウェイと前記第２ゲートウェイの間の接続を、前記第３遠隔通信リンクを介して確立するステップと、
前記第１ゲートウェイと前記第２ゲートウェイの間の前記接続を使用して、前記クライアントから前記サーバに対する、また前記サーバから前記クライアントに対する情報の双方向フローを提供するステップであって、前記双方向フローの提供が、前記クライアントおよび前記サーバにトランスペアレントに行われるステップとを含む方法。
【請求項３１】
前記情報を前記第１ゲートウェイで、第１プロトコルから第２プロトコルに、前記第３遠隔通信リンクを介する伝送のために変換するステップと、
前記第２プロトコルを前記第１プロトコルに前記第２ゲートウェイで変換するステップとをさらに含む請求項３０に記載の方法。
【請求項３２】
第１プロトコルが、ＴＣＰを含み、かつ第２プロトコルが、ＸＴＰを含む請求項３１に記載の方法。
【請求項３３】
前記第２プロトコルが、ＴＣＰプロトコルを使用するよりも、サテライト・リンクを介する伝送に適している請求項３１に記載の方法。
【請求項３４】
前記変換するステップが、前記ヘッダを除去して、前記データを実質的にそのままにしておくステップを含む請求項３１に記載の方法。
【請求項３５】
前記変換するステップが、前記ヘッダを除去して、前記データを実質的にそのままにしておくステップと、前記データをサテライト・プロトコル・ヘッダを使用してカプセル化するステップとを含む請求項３１に記載の方法。
【請求項３６】
前記データが、情報の前記フローの一部である請求項３５に記載の方法。
【請求項３７】
ゲートウェイによって、前記第３遠隔通信リンクを介して、情報の前記フローを受信するステップをさらに含む請求項３０に記載の方法。
【請求項３８】
クライアントとサーバの間の第１通信接続をインターセプトするステップと、
サテライト・リンクを介しての、第１サテライト・ゲートウェイと第２サテライト・ゲートウェイの間の第２通信接続を形成するステップと、
前記第１接続を記述する情報前記第２サテライト・ゲートウェイに伝送するステップと、
前記第１接続を記述する前記情報を使用して、前記第２サテライト・ゲートウェイと宛先サーバの間での第３通信接続を形成するステップであって、前記第２接続を形成するステップ、および前記第３接続を形成するステップが、前記ユーザおよび前記サーバにトランスペアレントに行われるステップとを含む通信方法。
【請求項３９】
前記情報が、クライアント・アドレスおよび宛先サーバ・アドレスを含む請求項３８に記載の方法。
【請求項４０】
前記第２サテライト・ゲートウェイからの応答を前記第１サテライト・ゲートウェイに、前記宛先サーバとの前記第３通信接続が行われたときに伝送するステップをさらに含む請求項３８に記載の方法。
【請求項４１】
前記第１サテライト・ゲートウェイからの応答を前記クライアントに、前記宛先サーバとの前記第３通信接続が行われたときに伝送するステップをさらに含む請求項３８に記載の方法。
【請求項４２】
前記第１サテライト・ゲートウェイからの障害応答を前記クライアントに、前記第３通信接続が失われたときに伝送するステップをさらに含む請求項３８に記載の方法。
【請求項４３】
第１コンピュータと複数の第２コンピュータのうちの１つの間で通信を確立するための方法であって、
第１プロトコルおよび第２プロトコルを提供するステップであって、前記複数の第２コンピュータのうちの少なくと１つが、前記第１プロトコルを使用して、前記第１コンピュータと通信を行うことができ、かつ前記複数の第２コンピュータのうちの少なくとも１つが、前記第２プロトコルを使用して、前記第１コンピュータと通信を行うことができるステップと、
前記第１コンピュータと前記複数の第２コンピュータのうちの少なくとも１つとの間で、前記第１プロトコルを使用して接続が確立され得るかどうかを判定するステップと、
前記判定するステップが、前記第１コンピュータと前記複数の第２コンピュータのうちの少なくとも１つとの間で、前記第１プロトコルを使用して接続が確立され得ないことを判定した場合、前記第１ホスト・コンピュータと前記複数の第２ホスト・コンピュータのうちの少なくとも１つとの間の接続を、前記第２プロトコルを使用して確立するステップとを含む方法。
【請求項４４】
前記複数の第２コンピュータの各々が、前記第２プロトコルを使用して、前記第１コンピュータと通信を行うことができる請求項４３に記載の方法。
【請求項４５】
前記第１プロトコルが第１スループットを有し、かつ前記第２プロトコルが第２スループットを有し、前記第１スループットが、１×１０−７のビット・エラー率で、第２スループットよりも少なくとも７．５倍、大きい請求項４３に記載の方法。
【請求項４６】
前記第１プロトコルが第１スループットを有し、かつ前記第２プロトコルが第２スループットを有し、前記第１スループットが、１×１０−６のビット・エラー率で、第２スループットよりも少なくとも１０倍、大きい請求項４３に記載の方法。
【請求項４７】
前記第１プロトコルが、１×１０−８のビット・エラー率で、利用可能な帯域幅の少なくとも９５％のスループットを有する請求項４３に記載の方法。
【請求項４８】
システム内で、情報をバッファリングするためのメモリを管理するための方法であって、前記情報が、複数のパケットを含み、前記パケットの各々が、データおよびヘッダを含み、前記システムが、複数の潜在的クライアントのうちから選択されたクライアントと、
複数の潜在的サーバのうちから選択されたサーバと、
第１遠隔通信リンクによって前記クライアントに接続された、第１バッファと第２バッファを含む第１ゲートウェイと、
第２遠隔通信リンクによって前記サーバに接続された第２ゲートウェイと、
前記第１ゲートウェイを前記第２ゲートウェイに接続する第３遠隔通信リンクとを含み、前記方法は、
前記サーバとの接続の試行をインターセプトするステップであって、前記接続の試行が、前記クライアントによって開始されたものであり、前記クライアントが、接続を第１特性データ通信速度で確立することができるステップと、
前記第１ゲートウェイと前記第２ゲートウェイの間の接続を、前記第３遠隔通信リンクを介して確立し、前記接続が、第２特性データ通信速度を有するステップであって、前記第１バッファが前記第３遠隔通信リンクを介して受信された情報を記憶し、かつ前記第２バッファが前記クライアントに対する情報を記憶するステップと、
前記第１バッファ内での状態を判定するステップであって、前記状態が、前記第３遠隔通信リンク内の前記第２特性データ通信速度が、前記クライアント対する前記第１特性データ通信速度よりも高いことを示すステップと、
前記クライアントに対して、前記第３遠隔通信リンクを介して受信されるデータの量を抑えるように、前記第１ゲートウェイで前記クライアントに対する受信ウィンドウ・サイズを設定するステップとを含む方法。
【請求項４９】
前記状態が、バッファ・フル状態を含む請求項４８に記載の方法。
【請求項５０】
前記状態が、バッファ容量に対するしきい値が達せられたことを含む請求項４８に記載の方法。
【請求項５１】
前記受信ウィンドウ・サイズを設定する前記ステップが、受信ウィンドウ・サイズをおよそ５０％だけ縮小するステップを含む請求項４８に記載の方法。
【請求項５２】
前記サーバとの前記クライアントによる接続の試行が、ＴＣＰプロトコルを含む請求項４８に記載の方法。
【請求項５３】
前記第１ゲートウェイと前記第２ゲートウェイの間の前記接続が、サテライト・プロトコルを含む請求項４８に記載の方法。
【請求項５４】
前記サテライト・プロトコルが、ＸＴＰプロトコルをさらに含む請求項５３に記載の方法。
【請求項５５】
システム内で情報をバッファリングするためのメモリを管理するためのコンピュータ・プログラム製品であって、前記情報が、複数のパケットを含み、前記パケットの各々が、データおよびヘッダを含み、前記システムが、複数の潜在的クライアントのうちから選択されたクライアントと、
複数の潜在的サーバのうちから選択されたサーバと、
第１遠隔通信リンクによって前記クライアントに接続された、第１バッファと第２バッファを含む第１ゲートウェイと、
第２遠隔通信リンクによって前記サーバに接続された第２ゲートウェイと、
前記第１ゲートウェイを前記第２ゲートウェイに接続する第３遠隔通信リンクとを含み、コンピュータ・プログラム製品は、
前記サーバとの接続の試行をインターセプトするためのコードであって、前記接続の試行が、前記クライアントによって開始されたものであり、前記クライアントが、接続を第１特性データ通信速度で確立することができるコードと、
前記第１ゲートウェイと前記第２ゲートウェイの間の接続を、前記第３遠隔通信リンクを介して確立するための、前記接続が第２特性データ通信速度を有するコードであって、前記第１バッファが、前記第３遠隔通信リンクを介して受信された情報を記憶し、かつ前記第２バッファが、前記クライアントに対する情報を記憶するコードと、
前記第１バッファ内での状態を判定するためのコードであって、前記状態が、前記第３遠隔通信リンク内の前記第２特性データ通信速度が、前記クライアント対する前記第１特性データ通信速度よりも高いことを示すコードと、
前記クライアントに対して、前記第３遠隔通信リンクを介して受信されるデータの量を抑えるように、前記第１ゲートウェイで前記クライアントに対する受信ウィンドウ・サイズを設定するためのコードと
前記コードを保持するためのコンピュータ可読記憶媒体とを含む製品。
【請求項５６】
前記状態が、バッファ・フル状態を含む請求項５５に記載のコンピュータ・プログラム製品。
【請求項５７】
前記状態が、バッファ容量に対するしきい値が達せられたことを含む請求項５５に記載のコンピュータ・プログラム製品。
【請求項５８】
前記受信ウィンドウ・サイズを設定するための前記コードが、受信ウィンドウ・サイズをおよそ５０％だけ縮小するためのコードを含む請求項５５に記載のコンピュータ・プログラム製品。
【請求項５９】
前記サーバとの前記クライアントによる接続の試行が、ＴＣＰプロトコルを含む請求項５５に記載のコンピュータ・プログラム製品。
【請求項６０】
前記第１ゲートウェイと前記第２ゲートウェイの間の前記接続が、サテライト・プロトコルを含む請求項５５に記載のコンピュータ・プログラム製品。
【請求項６１】
前記サテライト・プロトコルが、ＸＴＰプロトコルをさらに含む請求項６０に記載のコンピュータ・プログラム製品。
【請求項６２】
サテライトを介する情報のフローをバッファリングするためのメモリを管理するためのシステムであって、
複数の潜在的クライアントのうちから選択されたクライアントと、
複数の潜在的サーバのうちから選択されたサーバと、
第１遠隔通信リンクによって前記クライアントと接続された第１ゲートウェイであって、第１バッファおよび第２バッファを含むゲートウェイと、
第２遠隔通信リンクによって前記サーバと接続された第２ゲートウェイと、
前記第１ゲートウェイを前記第２ゲートウェイに接続する第３遠隔通信リンクとを含み、前記第１ゲートウェイが、
前記サーバとの接続の試行をインターセプトするステップであって、前記接続の試行が、前記クライアントによって開始されたものであり、前記クライアントが、接続を第１特性データ通信速度で確立することができるステップと、
前記第１ゲートウェイと前記第２ゲートウェイの間の接続を、前記第３遠隔通信リンクを介して確立し、前記接続が、第２特性データ通信速度を有するステップであって、前記第１バッファが、前記第３遠隔通信リンクを介して受信された情報を記憶し、かつ前記第２バッファが、前記クライアントに対する情報を記憶するステップと、
前記第１バッファ内での状態を判定するステップであって、前記状態が、前記第３遠隔通信リンク内の前記第２特性データ通信速度が、前記クライアント対する前記第１特性データ通信速度よりも高いことを示すステップと、
前記クライアントに対して、前記第３遠隔通信リンクを介して受信されるデータの量を抑えるように、前記第１ゲートウェイで前記クライアントに対する受信ウィンドウ・サイズを設定するステップとを実行するように動作可能に構成されているシステム。
【請求項６３】
前記状態が、バッファ・フル状態を含む請求項６２に記載のシステム。
【請求項６４】
前記状態が、バッファ容量に対するしきい値が達せられたことを含む請求項６２に記載のシステム。
【請求項６５】
前記受信ウィンドウ・サイズを設定するステップが、受信ウィンドウ・サイズをおよそ５０％だけ縮小するステップを含む請求項６２に記載のシステム。
【請求項６６】
前記サーバとの前記クライアントによる接続の試行が、ＴＣＰプロトコルを含む請求項６２に記載のシステム。
【請求項６７】
前記第１ゲートウェイと前記第２ゲートウェイの間の前記接続が、サテライト・プロトコルを含む請求項６２に記載のシステム。
【請求項６８】
前記サテライト・プロトコルが、ＸＴＰプロトコルをさらに含む請求項６７に記載のシステム。
【請求項６９】
システム内で情報のフローを制御するための方法であって、前記情報が、複数のパケットを含み、前記パケットの各々が、データおよびヘッダを含み、前記システムが、複数の潜在的クライアントのうちから選択されたクライアントと、
複数の潜在的サーバのうちから選択されたサーバと、
第１遠隔通信リンクによって前記クライアントと接続された第１ゲートウェイと、
第２遠隔通信リンクによって前記サーバと接続された第２ゲートウェイと、
前記第１ゲートウェイを前記第２ゲートウェイに接続する第３遠隔通信リンクとを含み、前記方法は、
前記サーバとの接続をインターセプトするステップであって、前記接続の試行が、前記クライアントによって開始されたものであるステップと、
前記第１ゲートウェイと前記第２ゲートウェイの間の接続を、前記第３遠隔通信リンクを介して確立するステップと、
データが、前記第１ゲートウェイから前記第２ゲートウェイまで前記接続を介して伝わるのにかかる往復時間を判定するステップと、
前記接続に関するデータ通信速度を判定するステップと、
前記往復時間および前記データ通信速度から帯域幅遅延積を判定するステップと、
前記帯域幅遅延積から前記接続に対するフロー制御制限を判定するステップと、
前記フロー制御制限に基づいて前記接続を介するデータ転送を制限するステップとを含む方法。
【請求項７０】
前記接続が、サテライト・プロトコルを使用する請求項６９に記載の方法。
【請求項７１】
前記接続に関する往復時間を判定する前記ステップが、ユーザから前記往復時間を得るステップをさらに含む請求項６９に記載の方法。
【請求項７２】
前記接続に関するデータ通信速度を判定する前記ステップが、ユーザから前記往復時間を得るステップをさらに含む請求項６９に記載の方法。
【請求項７３】
前記接続に関する帯域幅遅延積を判定する前記ステップが、前記往復時間と前記データ通信速度を掛けるステップをさらに含む請求項６９に記載の方法。
【請求項７４】
前記接続に対するフロー制御制限を判定する前記ステップが、前記帯域幅遅延積に倍率を掛けて、それを前記リンクに関する接続の数で割るステップをさらに含む請求項６９に記載の方法。
【請求項７５】
前記倍率が８である請求項７４に記載の方法。
【請求項７６】
前記第１ゲートウェイでの複数の接続のうちの少なくとも１つから、フロー制御を活用できるものを判定するステップをさらに含む請求項６９に記載の方法。
【請求項７７】
前記判定するステップが、前記複数の接続のうちから、初期設定中ではないものを選択するステップを含む請求項７６に記載の方法。
【請求項７８】
前記判定するステップが、前記複数の接続のうちから、しきい値を越えてデータをバッファリングしているものを選択するステップを含む請求項７６に記載の方法。
【請求項７９】
サテライトを介する情報のフローを制御するためのシステムであって、
複数の潜在的クライアントのうちから選択されたクライアントと、
複数の潜在的サーバのうちから選択されたサーバと、
第１遠隔通信リンクによって前記クライアントと接続された第１ゲートウェイと、
第２遠隔通信リンクによって前記サーバと接続された第２ゲートウェイと、
前記第１ゲートウェイを前記第２ゲートウェイに接続する第３遠隔通信リンクとを含み、前記クライアントが、
データが、前記第１ゲートウェイから前記第３遠隔通信リンクを介して前記第２ゲートウェイに接続上を渡るのにかかる往復時間を判定するステップと、
前記接続に関するデータ通信速度を判定するステップと、
前記往復時間および前記データ通信速度から帯域幅遅延積を判定するステップと、
前記帯域幅遅延積から前記接続に対するフロー制御制限を決定するステップと、
前記フロー制御制限に基づいて前記接続を介するデータ転送を制限するステップとを実行するように動作可能に構成されているシステム。
【請求項８０】
前記接続が、サテライト・プロトコルを使用する請求項７９に記載のシステム。
【請求項８１】
前記接続に関する往復時間を判定する前記ステップが、ユーザから前記往復時間を得るステップをさらに含む請求項７９に記載のシステム。
【請求項８２】
前記接続に関するデータ通信速度を判定する前記ステップが、ユーザから前記往復時間を得るステップをさらに含む請求項７９に記載のシステム。
【請求項８３】
前記接続に関する帯域幅遅延積を判定する前記ステップが、前記往復時間と前記データ通信速度を掛けるステップをさらに含む請求項７９に記載のシステム。
【請求項８４】
前記接続に対するフロー制御制限を判定する前記ステップが、前記帯域幅遅延積に倍率を掛けて、それを前記リンクに関する接続の数で割るステップをさらに含む請求項７９に記載のシステム。
【請求項８５】
前記倍率が８である請求項８４に記載のシステム。
【請求項８６】
前記クライアントが、
複数の接続のうちの少なくとも１つから、フロー制御を活用できるものを判定するステップを実行するように、さらに動作可能に構成された請求項８４に記載のシステム。
【請求項８７】
前記判定するステップが、前記複数の接続のうちから、初期設定中ではないものを選択するステップを含む請求項８６に記載のシステム。
【請求項８８】
前記判定するステップが、前記複数の接続のうちから、しきい値を越えてデータをバッファリングしているものを選択するステップを含む請求項８６に記載のシステム。
【請求項８９】
データ・リンクを介する情報のフローを制御するためのコンピュータ・プログラム製品であって、前記データ・リンクが、複数の接続のうちの少なくとも１つを含み、前記コンピュータ・プログラム製品は、
データが、前記接続を介して前記データ・リンクを渡るのにかかる往復時間を判定するためのコードと、
前記接続に関するデータ通信速度を判定するためのコードと、
前記往復時間および前記データ通信速度から帯域幅遅延積を判定するためのコードと、
前記帯域幅遅延積から前記接続に対するフロー制御制限を決定するためのコードと、
前記フロー制御制限に基づいて前記接続を介するデータ転送を制限するためのコードと、
前記コードを保持するためのコンピュータ可読記憶媒体とを含む製品。
【請求項９０】
前記接続が、ＴＣＰ接続を含む請求項８９に記載のコンピュータ・プログラム製品。
【請求項９１】
前記接続に関する往復時間を判定するための前記コードが、ユーザから前記往復時間を得るためのコードをさらに含む請求項８９に記載のコンピュータ・プログラム製品。
【請求項９２】
前記接続に関するデータ通信速度を判定するための前記コードが、ユーザから前記往復時間を得るためのコードをさらに含む請求項８９に記載のコンピュータ・プログラム製品。
【請求項９３】
前記接続に関する帯域幅遅延積を判定するための前記コードが、前記往復時間と前記データ通信速度を掛けるためのコードをさらに含む請求項８９に記載のコンピュータ・プログラム製品。
【請求項９４】
前記接続に対するフロー制御制限を判定するための前記コードが、前記帯域幅遅延積に倍率を掛けて、それを前記リンクに関する接続の数で割るためのコードをさらに含む請求項８９に記載のコンピュータ・プログラム製品。
【請求項９５】
前記倍率が８である請求項９４に記載のコンピュータ・プログラム製品。
【請求項９６】
複数の接続のうちの少なくとも１つから、フロー制御を活用できるものを判定するためのコードをさらに含む請求項８９に記載のコンピュータ・プログラム製品。
【請求項９７】
前記判定するためのコードが、前記複数の接続のうちから、初期設定中ではないものを選択するためのコードを含む請求項９６に記載のコンピュータ・プログラム製品。
【請求項９８】
前記判定するためのコードが、前記複数の接続のうちから、しきい値を越えてデータをバッファリングしているものを選択するためのコードを含む請求項９６に記載のコンピュータ・プログラム製品。
【請求項９９】
サテライト・データ・リンクを介する情報のフローを制御するための方法であって、前記サテライト・データ・リンクが、複数の接続のうちの少なくとも１つを有し、前記方法は、
データが、前記サテライト・データ・リンク上の第１ノードから前記サテライト・データ・リンク上の第２ノードまで前記接続を介して伝わるのにかかる往復時間を判定するステップと、
前記接続に関するデータ通信速度を判定するステップと、
前記往復時間および前記データ通信速度から帯域幅遅延積を判定するステップと、
前記帯域幅遅延積から前記接続に対するフロー制御制限を判定するステップと、
前記フロー制御制限に基づいて前記接続を介するデータ転送を制限するステップとを含む方法。
【発明の詳細な説明】
【０００１】
（関連出願の相互参照）
本出願は、１９９９年２月２日、Ｊｅｒｏｍｅ  Ｄ．Ｔｏｐｏｒｅｋ他の名義で出願され、「Ｉｎｔｅｒｎｅｔ  Ｏｖｅｒ  Ｓａｔｅｌｌｉｔｅ  Ａｐｐａｒａｔｕｓ」と題された米国仮特許出願第６０／１１８２２７号（整理番号１６６２５−００１１００）の優先権を主張し、その完全な開示が、参照により、本明細書に組み込まれる。
【０００２】
また、本出願は、下記の５つの共有される同時係属出願からの優先権も主張し、これらも、その全体が参照により、本明細書に組み込まれる。
１．１９９９年２月２日、Ｊｅｒｏｍｅ  Ｄ．Ｔｏｐｏｒｅｋ他の名義で出願され、「Ｉｎｔｅｒｎｅｔ  Ｏｖｅｒ  Ｓａｔｅｌｌｉｔｅ  Ｓｙｓｔｅｍ」と題された米国特許出願第０９／２４３１８５号（整理番号１６６２５−００１２００）
２．１９９９年２月２日、Ｊｅｒｏｍｅ  Ｄ．Ｔｏｐｏｒｅｋ他の名義で出願され、「Ｉｎｔｅｒｎｅｔ  Ｏｖｅｒ  Ｓａｔｅｌｌｉｔｅ  Ｍｅｔｈｏｄ」と題された米国特許出願０９／２４３５５４号（整理番号１６６２５−００１３００）
３．１９９９年５月６日、Ｊｅｒｏｍｅ  Ｄ．Ｔｏｐｏｒｅｋ他の名義で出願され、「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍａｎａｇｉｎｇ  Ｍｅｍｏｒｙ  ｉｎ  ａｎ  Ｉｎｔｅｒｎｅｔ  Ｏｖｅｒ  Ｓａｔｅｌｌｉｔｅ  Ｃｏｎｎｅｃｔｉｏｎ」と題された米国特許出願第０９／３０６６７８号（整理番号１６６２５−００１２１０）
４．１９９９年５月６日、Ｊｅｒｏｍｅ  Ｄ．Ｔｏｐｏｒｅｋ他の名義で出願され、「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｃｏｎｔｒｏｌｌｉｎｇ  Ｄａｔａ  Ｆｌｏｗ  ｉｎ  ａｎ  Ｉｎｔｅｒｎｅｔ  Ｏｖｅｒ  Ｓａｔｅｌｌｉｔｅ  Ｃｏｎｎｅｃｔｉｏｎ」と題された米国特許出願第０９／３０６２３６号（整理番号１６６２５−００１２２０）
５．２０００年１月２８日、Ｊｅｒｏｍｅ  Ｄ．Ｔｏｐｏｒｅｋ他の名義で出願され、「Ｉｎｔｅｒｎｅｔ  Ｏｖｅｒ  Ｓａｔｅｌｌｉｔｅ  Ａｐｐａｒａｔｕｓ」と題され、やはり米国仮特許出願第６０／１１８２２７号の優先権を主張する米国特許出願第＿＿＿＿＿＿＿＿号（整理番号１６６２５−００１１１０）
【０００３】
（発明の背景）
本発明は、遠隔通信の装置、システム、および技法に関する。より詳細には、本発明は、インターネットなどのコンピュータのワイド・エリア・ネットワーク内での使用のために、サテライト・システムを介するＴＣＰ接続を使用して、メモリを管理し、かつ／または情報を伝送するための装置、システム、および方法を提供する。本発明は、例えば、Ｘｐｒｅｓｓ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ（本明細書では、「ＸＴＰ」）プロトコルを使用して、サテライト・システムを介して、遠隔ロケーションに対する信号の高速、高品質の伝送を提供する。また、本発明は、例えば、ＸＴＰプロトコルを使用する、サテライト・システムを介して、遠隔ロケーションに対する信号の高速、高品質の伝送のための装置内での制御されたメモリ管理も提供する。ただし、本発明はずっと広範囲の適用可能性を有することを理解されたい。これは、専用ブリッジされたネットワーク、地上無線ネットワーク・リンクなどにも適用できる。
【０００４】
インターネットは、数百万の個別コンピュータ・ネットワークおよび個別コンピュータを一緒に接続する国際的「スーパー・ネットワーク」である。インターネットは、一般的に、単一エンティティではない。それは、どの単一エンティティも完全な権限または制御を有さない、極めて拡散した複雑なシステムである。インターネットは、ワールド・ワイド・ウェブ（本明細書では「ウェブ」）を介して情報を提供する方法のうちの１つとして広く知られているが、一般的なインターネット・プロトコルおよびインフラストラクチャに基づいて現在、利用可能な多くの他のサービスが存在する。
【０００５】
ウェブは、一般的に、コンピュータに慣れていない人々にとっても使用することが容易である。ウェブ上の情報は、同一セットのデータ・ファイル（すなわち、ウェブ・サイト）内、あるいは他のコンピュータ・ネットワーク上にあるデータ・ファイル内の他のページに対する「リンク」を含む、グラフィックスおよびテキストの「ページ」上に提供することができる。ユーザは、しばしば、カリフォルニア州Ｍｏｕｎｔａｉｎ  ＶｉｅｗのＮｅｔｓｃａｐｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｃｏｒｐｏｒａｔｉｏｎ、またはワシントン州ＲｅｄｍｏｎｄのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されるものなどの「ブラウザ」プログラムを使用して、ウェブで情報にアクセスすることができる。ブラウザ・プログラムは、ウェブ・サイトからの情報を処理して、その情報をグラフィックス、サウンド、およびアニメーションを使用して表示する。したがって、ウェブは、商品およびサービスを消費者に宣伝するための人気のある媒体となっている。
【０００６】
インターネットは、多くの他の形式の通信をサポートする。例えば、インターネットは、通常、「ｅメール」として知られている電子メールを介する１対１通信を可能にする。インターネットは、また、他の人々がそれを読み、それに応答するカラフルなテキストおよびグラフィックスを掲示するために、ユーザによって使用される「掲示板」も有する。リアルタイム通信のため、インターネットは、「チャット・ルーム」などを有する。これらでタイプ入力したメッセージを使用して、ユーザが互いに通信を行うことができる。いくつかのケースでは、インターネットは、ユーザ間の音声通信のためにも使用することができる。これらの形式の通信のすべてが、少なくとも部分的に、重要な接続を使用して可能であり、この接続によって、情報が、インターネット上の多くの異なるサーバから伝送されることを可能にする。
【０００７】
インターネットは、ＴＣＰ／ＩＰプロトコルに基づいている。ネットワーク層で、ＩＰとして知られるインターネット・プロトコルが、個々のコンピュータにアドレス指定されたパケットを送るための機構を提供する。インターネットは、ＩＰを実施する複数のコンピュータ・システムを有し、これらは、一般的に、ローカル・エリア・ネットワークおよび専用伝送回線を使用して互いに相互接続されて、コンピュータのワイド・エリア・ネットワークを形成する。ＩＰパケットは、ベスト・エフォート基準で送達され、その目的の宛先に到着することが保証されず、これは、「信頼できない」サービスとして知られる。
【０００８】
信頼できるデータ送達サービスを必要とする多くの適用形態の場合、インターネットは、ＴＣＰとして知られる伝送制御プロトコルと呼ばれる接続機構を使用する。ＴＣＰは、それがインターネットで通信するのに適している様々な望ましい特性を有する。例えば、ＴＣＰは、送信サーバから通信メディアを介して受信サーバに送信するデータ・サイズまたは最適サイズ・セグメントのデータを考慮する。さらに、ＴＣＰはタイマを維持する。これは、受信サーバが、送信サーバからのデータ・セグメントの受信の肯定応答を送信するのを待つ。肯定応答が受信される前に、タイマがタイムアウトになった場合、ＴＣＰは、データ・セグメントを再送信し、これが、通信での信頼性を提供する。また、ＴＣＰは、そのヘッダおよびデータ上にチェックサムを維持する。これが転送中のデータ内のいかなる変更も監視する。データが、無効なチェックサムを伴って到着した場合、ＴＣＰは、そのデータを廃棄して、そのデータを受信したことを認知しない。データ・セグメントが、誤った順序で到着した場合、ＴＣＰは、それらのセグメントを受信サーバで順序正しく再結合することもできる。さらに、ＴＣＰは、フロー制御を提供する。これは、有限量のデータだけが、受信サーバ上のバッファに送信されるようにする。これは、高速サーバ・コンピュータが、より遅いサーバ・コンピュータ上のすべてのバッファをオーバーフローさせるのを防止する。
【０００９】
ＴＣＰは、同様の特性を有する従来の電話システムおよび電話回線を使用して互いに結合された複数のサーバ間で、インターネット・データを伝送するのによく適しているが、多くの限界も有する。例えば、ＴＣＰは、「短いホップ」に適しているが、しばしば、相当な待ち時間を有し得る極めて長距離にわたる通信（例えば、サテライトを介する大陸間ホップ）をスローダウンする。この場合、フロー制御機能および肯定応答機能が、送信および受信をするのに時間がかかり過ぎ、これが、通信を遅くする。さらに、効率を高める機会がまだ存在する。詳細には、ＴＣＰは、遅いことが判明しており、例えば、サテライト・ネットワークを介するインターネット・データの伝送には面倒である。さらに、例えば、モデムなどの比較的遅い受信側に対しての、サテライト・ネットワークを介するインターネット・データの高速伝送は、輻輳を引き起こす可能性がある。さらに、ＴＣＰ接続のさらなる減速につながるシステム内でのリソースの消耗を引き起こし得る、サテライトを使用するネットワーキングでの異常な状態が発生する可能性がある。さらに、サテライトを使用するネットワーキングは、しばしば、ＴＣＰ接続のさらなる減速につながる相当なビット・エラー率に遭遇する。これらの限界および他の限界を、下記の図により、さらに完全に説明する。
【００１０】
以上のことから、無線通信メディアを使用する広い地理的領域にわたる、インターネット・サービスをトランスポートするより効率的な方法、およびその伝送で、メモリを管理するより効率的な方法が、大変、望ましい。
【００１１】
（発明の概要）
本発明によれば、無線ワイド・エリア・ネットワーク上でのＴＣＰパフォーマンスを改善するための技法が提供される。例としての実施態様では、本発明は、ＴＣＰ接続を使用する情報を、例えば、Ｘｐｒｅｓｓ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ（本明細書では、「ＸＴＰ」）接続に変換するための装置、システム、および方法を提供し、後者の接続は、サテライト・システムなどの無線ネットワーク・システムを介する伝送により適している。
【００１２】
本発明によれば、ＴＣＰ接続での情報フローを制御するための技法、および無線ワイド・エリア・ネットワーク上の１つまたは複数のＴＣＰ接続を介して通信される情報を記憶するためのメモリを管理する技法が提供される。例としての実施態様では、本発明は、情報のバッファリングおよび／または、情報がＴＣＰ接続を介して、例えば、Ｘｐｒｅｓｓ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ（本明細書では、「ＸＴＰ」）接続に流れる速度を制御する方法およびシステムを提供する。
【００１３】
特定の実施態様では、本発明は、サテライト・リンクを介して情報を伝送するための通信装置を提供する。この装置は、ＴＣＰ接続を使用して、データおよびヘッダを有する双方向フローの情報を提供するための、サテライト・ゲートウェイ・インターフェースに結合されたＴＣＰインターフェースを含む。単に例としてあげると、双方向フローの情報は、インターネット、またはコンピュータのインターネット様のネットワーク、あるいはＴＣＰ／ＩＰプロトコルを使用する任意のネットワークからのものでよい。また、この装置は、ＴＣＰ接続を使用して、サテライト・リンクを介する伝送のためのサテライト・プロトコルに情報を変換するプロセッサも含む。このサテライト・プロトコルは、サテライト・リンクを介するそうした情報の伝送のための適切な特性を有する。このプロトコルには、とりわけ、ＸＴＰ、ＸＴＰ様のプロトコルなどが含まれ得る。
【００１４】
代替の実施態様では、本発明は、ＴＣＰ接続を使用するサテライト・リンクを介した情報の伝送のために、複数の接続を確立するための通信装置を提供する。この装置は、第１クライアント（例えば、ユーザ・コンピュータ）と第１サテライト・ゲートウェイの間での第１通信接続を形成するためのＴＣＰインターフェースを含む。また、この装置は、サテライト・リンクを介して第１サテライト・ゲートウェイと第２サテライト・ゲートウェイの間で第２通信接続を形成するためのサテライト・ゲートウェイ・インターフェースも含む。第１接続の特性（例えば、送信元および宛先のＩＰアドレスおよびポート番号）を記述する情報が、第２サテライト・ゲートウェイに伝送される。第３通信接続が、第２サテライト・ゲートウェイと宛先サーバの間で形成される。これらの接続の結合が、元の第１クライアントから宛先サーバまでのトランスペアレントな接続を形成する。
【００１５】
特定の実施態様では、本発明は、サテライト・リンクを介して情報を伝送する通信システムを提供する。このシステムは、データおよびヘッダを有する双方向フローの情報を提供するためのコードを有する第１ゲートウェイを含み、この第１ゲートウェイは、ＴＣＰ接続に結合されている。単に例としてあげると、双方向フローの情報は、インターネット、またはコンピュータのインターネット様のネットワーク、あるいはＴＣＰ／ＩＰプロトコルを使用する任意のネットワークからのものでよい。また、このシステムは、ＴＣＰプロトコルからの情報をサテライト・リンクを介する伝送のためのサテライト・プロトコルに変換するためのコードも含む。また、このシステムは、サテライト・リンクを介して、第１ゲートウェイからの情報を受信するための第２ゲートウェイも含む。第２ゲートウェイは、サテライト・リンクを介する伝送のための適切な特性を有するサテライト・プロトコルからの情報をＴＣＰプロトコルに変換するためのコードも含む。このサテライト・プロトコルには、とりわけ、ＸＴＰ、ＸＴＰ様のプロトコルなどが含まれ得る。
【００１６】
代替の実施態様では、本発明は、ＴＣＰ接続を使用するサテライト・リンクを介した情報の伝送のために、複数の接続を確立することができる通信システムを提供する。このシステムは、第１クライアント（例えば、ユーザ・コンピュータ）と第１サテライト・ゲートウェイの間での第１通信接続をインターセプトするためのコードを含む。また、このシステムは、サテライト・リンクを介して第１サテライト・ゲートウェイと第２サテライト・ゲートウェイの間で第２通信接続を形成するためのコードも含む。第１接続の特性（例えば、送信元および宛先のＩＰアドレスおよびポート番号）を記述する情報が、第２サテライト・ゲートウェイに伝送される。第３通信接続が、第２サテライト・ゲートウェイと宛先サーバの間で形成される。これらの接続の結合が、元の第１クライアントから宛先サーバまでのトランスペアレントな接続を形成する。
【００１７】
特定の実施態様では、本発明は、サテライト・リンクを介して情報を伝送するための通信方法を提供する。この方法は、ＴＣＰ接続を使用して、データおよびヘッダを有する双方向フローの情報を提供するステップを含む。単に例としてあげると、双方向フローの情報は、インターネット、またはコンピュータのインターネット様のネットワーク、あるいはＴＣＰ／ＩＰプロトコルを使用する任意のネットワークからのものでよい。また、この方法は、ＴＣＰ接続を使用して、サテライト・リンクを介する伝送のためのサテライト・プロトコルに情報を変換するステップも含む。このサテライト・プロトコルは、サテライト・リンクを介するそうした情報の伝送のための適切な特性を有する。このプロトコルには、とりわけ、ＸＴＰ、ＸＴＰ様のプロトコルなどが含まれ得る。
【００１８】
代替の実施態様では、本発明は、ＴＣＰ接続を使用するサテライト・リンクを介した情報の伝送のために、複数の接続を確立する通信方法を提供する。この方法は、第１クライアント（例えば、ユーザ・コンピュータ）と第１サテライト・ゲートウェイの間での第１通信接続をインターセプトするステップを含む。また、この方法は、サテライト・リンクを介して第１サテライト・ゲートウェイと第２サテライト・ゲートウェイの間で第２通信接続を形成するステップも含む。第１接続の特性（例えば、送信元および宛先のＩＰアドレスおよびポート番号）を記述する情報が、第２サテライト・ゲートウェイに伝送される。第３通信接続が、第２サテライト・ゲートウェイと宛先サーバの間で形成される。これらの接続の結合が、元の第１クライアントから宛先サーバまでのトランスペアレントな接続を形成する。
【００１９】
特定の実施態様では、本発明は、メモリを管理するため、かつサテライト・リンクを介して確立されたインターネット接続を介して通信される情報をバッファリングする方法を提供する。この方法は、１つまたは複数のクライアントと、１つまたは複数のサーバと、少なくとも１つのクライアントに接続された第１ゲートウェイと、少なくとも１つのサーバに接続された第２ゲートウェイと、これらのゲートウェイ間の無線遠隔通信リンクとを含むシステムなどの、多種多様なシステム上で実行できる。この方法は、クライアントによって開始されたサーバとの接続の試行をインターセプトするステップを含む。クライアントは、第１特性データ通信速度を有することになる接続を試みる。接続は、サテライト・リンクまたはそれに類するものであり得る遠隔通信リンクを介して、第１ゲートウェイと第２ゲートウェイの間で確立される。この接続は、第２特性データ通信速度を有することになる。第１ゲートウェイは、遠隔通信リンクを介して第２ゲートウェイから受信した情報を記憶するバッファと、クライアントに送信される情報を記憶するバッファとを含む。この方法は、受信バッファ内の状態を判定するステップを実行することができる。その状態は、遠隔通信リンク内での特性データ通信速度が、クライアントに対する特性データ通信速度よりも相当に高いかどうかを示すことができる。クライアントに対して遠隔通信リンクを介して受信されるデータの量を抑えるように、第１ゲートウェイで、クライアントに対する受信ウィンドウ・サイズを設定するステップもまた、この方法の一部であり得る。これらのステップの結合が、第１ゲートウェイ内で遠隔通信リンクから着信する情報をバッファリングするためにメモリを管理する方法を提供することができる。
【００２０】
本発明の別の態様では、サテライトを介する情報のフローを制御するシステムが提供される。このシステムは、複数の潜在的クライアントのうちから選択された少なくとも１つのクライアントと、複数の潜在的サーバのうちから選択された少なくとも１つのサーバとを含み得る。また、このシステムは、第１遠隔通信リンクによってクライアントに接続された第１ゲートウェイと、第２遠隔通信リンクによってサーバに接続された第２ゲートウェイとを含み得る。また、第１ゲートウェイと第２ゲートウェイを接続する第３遠隔通信リンクも、このシステムの一部であることが可能である。このシステムは、クライアントによって開始された、第１特性データ通信速度での、サーバとの接続の試行をインターセプトするように動作する。次に、このシステムは、第３遠隔通信リンクを介して、第１ゲートウェイと第２ゲートウェイの間での接続を確立することができる。この接続は、第２特性データ通信速度を有することになる。第１バッファが、第３遠隔通信リンクを介して受信した情報を記憶して、第２バッファが、クライアントに送信される情報を記憶する。このシステムは、第１バッファ内での状態を判定することができる。その状態は、第３遠隔通信リンク内の第２特性データ通信速度が、クライアントに対する第１特性データ通信速度よりも高いことを示す。また、このシステムは、クライアントに対して第３遠隔通信リンクを介して受信されるデータの量を抑えるように、第１ゲートウェイで、クライアントに対する受信ウィンドウ・サイズを設定することもできる。
【００２１】
本発明によるさらなる態様では、無線データ・リンクを介する情報のフローを制御するコンピュータ・プログラム製品が提供される。このデータ・リンクは、１つまたは複数の接続を含み得る。このコンピュータ・プログラム製品は、複数のコードを保持するコンピュータ可読記憶媒体を含む。クライアントによって開始された、第１特性データ通信速度での、サーバとの接続の試行をインターセプトするコードが、このプログラム製品に含まれる。さらに、遠隔通信リンクを介して、第２特性データ通信速度で、第１ゲートウェイと第２ゲートウェイの間で接続を確立するコードも含まれる。第１ゲートウェイ内の第１バッファが、遠隔通信リンクを介して受信された情報を記憶して、第２バッファが、クライアントに送信される情報を記憶する。この製品は、また、第１バッファ内の状態を判定するコードも含む。その状態は、遠隔通信リンクの特性データ通信速度が、クライアントのそれよりも相当に高い状況を示す。この状況が検出された場合には、この製品は、クライアントに対する遠隔通信リンクを介して受信されるデータの量を抑えるように、第１ゲートウェイでクライアントに対する受信ウィンドウを設定するコードを呼び出す。
【００２２】
特定の実施態様では、本発明は、サテライト・リンクを介して確立されたインターネット接続を介する情報のフローを制御する方法を提供する。この方法は、１つまたは複数のクライアントと、１つまたは複数のサーバと、少なくとも１つのクライアントに接続された第１ゲートウェイと、少なくとも１つのサーバに接続された第２ゲートウェイと、これらのゲートウェイ間の無線遠隔通信リンクとを含むシステムなどの、多種多様なシステム上で実行され得る。この方法は、クライアントによって開始されたサーバとの接続の試行をインターセプトするステップを含む。接続は、サテライト・リンクまたはそれに類するものであり得る遠隔通信リンクを介して、第１ゲートウェイと第２ゲートウェイの間に確立され得る。この方法は、データが、クライアントからサーバまで接続を介して伝わるのにかかる往復時間を判定するステップを含み得る。接続に関するデータ通信速度を判定することができる。往復トリップ時間およびデータ通信速度から、帯域幅遅延積（ｂａｎｄｗｉｄｔｈ−ｄｅｌａｙ ｐｒｏｄｕｃｔ）が、この方法によって判定され得る。この方法は、また、その帯域幅遅延積から、その接続に対するフロー制御制限を決定することもできる。フロー制御制限に基づいて、接続を介するデータ転送を制限するステップをこの方法の一部としてもよい。こられのようなステップの結合が、無線通信メディアなどを使用する、広い地理的領域にわたるネットワーク上で、ＴＣＰデータのフローを制御する方法を提供する。
【００２３】
別の実施態様では、本発明は、接続のうちから、フロー制御されることによって利用可能なシステム・リソースに有益であり得るものを選択することができる。いくつかの実施態様は、フロー制御のために、初期設定中ではない接続、あるいはしきい値を下回って、またはしきい値を上回って、ブロックでデータを転送している接続などをスクリーニングすることができる。多くの実施態様では、接続に関する帯域幅遅延積は、往復時間とデータ通信速度を掛けることによって判定される。いくつかの実施態様では、接続に対するフロー制御制限は、帯域幅遅延積に倍率を掛けて、そのリンクに関する接続の数でそれを割ることによって決定される。
【００２４】
本発明の別の態様では、サテライトを介する情報のフローを制御するシステムが提供される。このシステムは、複数の潜在的クライアントのうちから選択された、少なくとも１つのクライアントと、複数の潜在的サーバのうちから選択された少なくとも１つのサーバとを含む。また、このシステムは、第１遠隔通信リンクによってクライアントに接続された第１ゲートウェイと、第２遠隔通信リンクによってサーバに接続された第２ゲートウェイとを含み得る。また、第１ゲートウェイと第２ゲートウェイを接続する第３遠隔通信リンクも、このシステムの一部であることが可能である。このシステムは、データが、クライアントから、第１遠隔通信リンク、第２遠隔通信リンク、および第３遠隔通信リンクを介して、接続上でサーバまで渡るのにかかる往復時間を判定するように動作する。このシステムは、その接続に関するデータ通信速度を判定することができる。さらに、このシステムは往復時間とデータ通信速度から帯域幅遅延積を判定することができる。このシステムは、帯域幅遅延積から接続に対するフロー制御制限を決定して、そのフロー制御制限に基づいて、その接続を介するデータ転送を制限することができる。そうした方式でデータ転送を制限することは、例えば、遠隔通信リンク上での比較的高速のデータ転送をクライアントでの比較的遅いデータ転送にインターフェースすることができる。
【００２５】
本発明によるさらなる態様では、無線データ・リンクを介する情報のフローを制御するコンピュータ・プログラム製品が提供される。データ・リンクは、１つまたは複数の接続を含み得る。このコンピュータ・プログラム製品は、複数のコードを保持するコンピュータ可読記憶媒体を含む。データが、接続を介して無線データ・リンクを渡るのにかかる往復時間を判定するコードが、この製品の一部であり得る。さらに、このコンピュータ・プログラム製品は、接続に関するデータ通信速度を判定するコードを含み得る。また、往復時間およびデータ通信速度から帯域幅遅延積を判定するコードも含まれ得る。帯域幅遅延積から接続に対するフロー制御制限を決定するコード、およびそのフロー制御制限に基づいて、その接続を介するデータ転送を制限するためにコードもまた、このコンピュータ・プログラム製品の一部であり得る。
【００２６】
本発明の別の態様では、サテライトなどの、ネットワーク内の所定ポイントを通って流れる情報に関するデータ通信速度を、そのネットワーク上の遠隔ポイントのデータ通信速度能力にマッチさせるための技法が提供される。一実施態様では、本発明は、サテライト装置を介する適切なデータ通信速度または所定のデータ通信速度を維持するため、転送速度制御を提供する。この転送速度制御は、着信データをバッファリングする複数の待ち行列を提供する。着信データは、所定の長さに照らして検査される。その所定の長さを越えるデータが、その待ち行列内に記憶される。所定の間隔で、情報が、１つまたは複数の待ち行列から取り出されて、発信データ・パスに沿って伝送される。この処理は、本発明によるシステムが、サテライト・リンクなどのネットワークに沿った特定のポイントを通るデータ通信速度制御を提供することを可能にする。
【００２７】
本発明の別の態様では、クライアントとサーバの間のＴＣＰプロトコルでのパケット化された情報をトランスポートする通信システムを、クライアントとサーバの間のサテライト・プロトコルでのパケット化された情報をトランスポートするシステムに変換する方法が、クライアントからサーバへの接続をインターセプトするように動作可能に構成された第１ゲートウェイを設置するステップを含む。第１ゲートウェイは、さらに、ＴＣＰプロトコルからサテライト・プロトコルにパケット化された情報を変換することができる。また、サーバとの接続を確立することができ、さらに、サテライト・プロトコルからＴＣＰプロトコルにパケット化された情報を変換するように動作可能に構成された第２ゲートウェイを設置するステップも、この方法に含まれる。第１ゲートウェイおよび第２ゲートウェイは、共通遠隔通信リンクを介して接続を確立することができる。これらの要素の結合が、ＴＣＰ遠隔通信のためのシステムをサテライト・プロトコル通信に変換する方法を提供することができる。
【００２８】
本発明を使用して、従来の技法に優る多数の利点が実現される。特定の実施態様では、本発明は、従来のシステムよりも高いスループットを提供する。さらに、本発明は、サテライト・ネットワークを介するＴＣＰパフォーマンスをトランスペアレントに向上させる方法を提供する。他の実施態様では、本発明は、サテライト通信に特有の長い待ち時間、高い損失、および非対称帯域幅条件に適した斬新なプロトコルを提供する。
【００２９】
特定の実施態様では、本発明による技法は、受信ウィンドウを迅速にサイズ変更して、サテライト・リンクを介する、送信側のデータ通信速度とＴＣＰ接続の受信側のデータ通信速度との間のマッチを実現することができる。いくつかの実施態様では、本発明の技法は、各サテライト接続に別々に提供することが可能であり、したがって、１つの遅い受信側が、同一リンクを介する他の接続のパフォーマンスを低下させることがない。いくつかの実施態様では、本発明は、サテライト通信に特有の、長い待ち時間、高い損失、および非対称性帯域幅条件に適した斬新なプロトコルでのバッファ・メモリの管理を提供する。特定の実施態様では、本発明は、従来システムよりも均等なネットワーク・リソースの配分を提供する。本発明による多くの実施態様は、接続間でネットワーク・リンク／サテライト・リンクを共用することを提供する。多くの実施態様では、１つの特定の接続からのデータのバーストが、他の接続に対するデータに先立って、リンクを介する伝送のために待ち行列化される可能性がより低い。他の実施態様では、本発明は、サテライト通信に特有の長い待ち時間、高い損失、および非対称帯域幅条件でのデータ・フロー制御を提供する。
【００３０】
また、本発明は、従来のサテライト・システム内での比較的簡単な実装、またはそれとの比較的簡単なインターフェースを提供する。実施態様に応じて、これらの利点のうちの１つまたは複数が存在し得る。これらの、また他の利点および利益は、本明細書全体にわたって記載しており、また下記により詳細に記載する。
【００３１】
本発明のこれらの実施態様および他の実施態様は、下記のテキストおよび添付の図に関連して、より詳細に記載する。
【００３２】
（特定の実施形態の説明）
様々な実施形態を論ずる前に、サテライト・ネットワークを介してＴＣＰを使用することの制限をより完全に理解することは読者の助けとなろう。以下でこの制限をより完全に説明する。
【００３３】
輻輳回避：  輻輳ネットワーク・メルトダウンの可能性を回避するために、一般にＴＣＰは、全てのデータ損失が輻輳によって引き起こされ、伝送速度を減少させることによって応答すると想定する。しかし、サテライト・リンクを介して、ＴＣＰは、しばしば長い往復時間およびビット・エラーを輻輳と誤解し、不適切に応答する。同様に、ＴＣＰ「スロー・スタート（ｓｌｏｗ  ｓｔａｒｔ）」アルゴリズムは、地上のインフラストラクチャを介して新しい接続が既に輻輳したネットワークを氾濫するのを防止し、サテライトを介して新しい各接続に対して過剰に長いランプアップ（ｒａｍｐ−ｕｐ）を強制する。これらの輻輳回避機構は、経路指定環境で重要であるが、サテライト・リンクにはしばしば不適切である。
【００３４】
データ肯定応答：  ＴＣＰによって使用される単純でヒューリスティックなデータ肯定応答方式は、一般に長い待ち時間または非常に非対称な帯域幅条件に対してはあまり適合しない。信頼できるデータ伝送とするために、ＴＣＰ受信機は、しばしば、送信側に送り返されるデータに対する肯定応答を絶えず送信する。送信側は、一般に肯定応答を受信することなく多数の往復時間が経過するまで、何らかのデータが紛失または壊れるとは想定しない。パケットが紛失または壊れた場合、ＴＣＰは、最初の欠落パケットから始まるデータの全てを再送信する。アルゴリズムは、往復時間が長く、エラー率が高いサテライト・ネットワークを介しては十分には応答することができない。さらに、肯定応答の一定ストリームは、しばしば貴重なバック・チャネル帯域幅を浪費する。バック・チャネル帯域幅が小さい場合、送信側への肯定応答の戻りは、ある場合には、システム・ボトルネックとなる可能性がある。
【００３５】
ウィンドウ・サイズ：  ＴＣＰは、スライド式ウィンドウ機構を使用してフライト中のデータ量を制限する。ウィンドウが実質上満杯になった場合、送信側は、宛先サーバからの新しい肯定応答を受け取るまでデータの送信を停止する。肯定応答の戻りが低速なサテライト・ネットワークを介して、ＴＣＰウィンドウ・サイズは、一般に最大データ・スループット・レートに対して厳しい制限を設定する。エラーのないリンクを完全に利用するためにしばしば必要な、「帯域幅遅延積」として知られる最小ウィンドウ・サイズは、例えばＴ１サテライト・リンクに対しては１００Ｋバイトであり、１０ＭＢｐｓリンクに対しては６７５Ｋバイトである。ビット・エラーは、必要なウィンドウ・サイズをさらに増加させる可能性がある。しかし、ＴＣＰ／ＩＰの大部分の実装は、しばしば最大ウィンドウ・サイズ６４ＫＢに制限され、多くの共通オペレーティング・システムは、デフォルト・ウィンドウ・サイズ８ＫＢのみを使用し、データ・パイプの帯域幅に関わらず、サテライト・リンクを介する最大スループット速度が１接続あたり１２８Ｋｂｐｓとなる。
【００３６】
本発明によれば、広域無線ネットワークを介するＴＣＰ接続を行う技術が提供される。例示的実施形態では、本発明は、ＸＴＰ接続へのＴＣＰ接続を使用して情報を変換する装置、システム、および方法を提供する。ＸＴＰ接続は、サテライト・システムなどの無線ネットワーク・システムを介した伝送により適している。
【００３７】
さらに、本発明によれば、ＴＣＰ接続中の情報フローを制御し、無線広域ネットワークを介する１つまたは複数のＴＣＰ接続に対してメモリを管理する技術が提供される。例示的実施形態では、本発明は、無線ネットワーク・システムを介して送信される、情報のフローおよび／またはバッファリング情報のためのメモリ管理を制御する方法およびシステムを提供する。ＸＴＰ接続は、サテライト・システムなどの無線ネットワーク・システムを介した伝送により適している。本発明の詳細を本明細書を通して、より具体的に以下で説明する。
【００３８】
図１は、本発明の実施形態によるサテライト・システム１００の単純化したダイアグラムである。このダイアグラムは、単に図示したに過ぎず、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。とりわけ、システム１００は、サテライト１０１を有するサテライト・ネットワーク・システムを含む。サテライト１０１は、複数の地上局１０７、１０８、またはサテライト・ディッシュの間で情報を受信し、送信する。各サテライト地上局は、サテライト・ディッシュ、およびサテライト・モデム１０９Ａ、１０９Ｂ、またはＶＳＡＴインドア・ユニットなどの他の形態の受信機を含む。ＶＳＡＴインドア・ユニットは、サテライト・ゲートウェイ１１１Ａ、１１１Ｂに直接に、または間接に結合する。
【００３９】
サテライト・アンテナ１０８は、サテライト１０１を介して信号１０３を受信し、送信する。サテライト・アンテナ１０８は、インターネット１２９またはインターネットなどの広域ネットワークに結合するサテライト・ゲートウェイ１１１Ｂに接続する。広域ネットワークは、サーバ１３１に結合する。ゲートウェイ１１１Ｂも、サテライト・モデム１０９Ｂを介して結合する。サーバおよびインターネット通信は、ＴＣＰ／ＩＰ、ＵＤＰ／ＩＰなどの共通プロトコルで行われる。サテライト・ゲートウェイを以下でより詳細に説明する。
【００４０】
サテライト・アンテナ１０７は、サテライト１０１を介して信号１０５を受信し、送信する。サテライト・アンテナ１０７は、イーサネット、トークン・リング、ＦＤＤＩなどのローカル・エリア・ネットワーク１２１に結合するサテライト・ゲートウェイ１１１Ａに接続する。ローカル・エリア・ネットワーク１２１は、端末１２３またはクライアントに結合する。ここで、サテライト・ゲートウェイは、モデム１１９を介してラップトップ１１７に結合する。クライアント、ラップトップ、およびローカル・エリア・ネットワークは、ＴＣＰ／ＩＰ、ＩＰＸ／ＳＰＸなどの共通接続フォーマットを使用する。サテライト・ゲートウェイを以下でより詳細に説明する。
【００４１】
特定の実施形態では、サテライト・ゲートウェイ１１１Ａは、クライアントからのＴＣＰ接続をインターセプトし、サテライト１０１を介して送信するためにデータ１０５をサテライト・プロトコルに変換する。ゲートウェイ１１１Ａは、データをサテライト１０１に送信するサテライト・モデム１０９Ａを介しても結合する。サテライト・リンクの反対側のサテライト・ゲートウェイ１１１Ｂは、サーバ１３１と通信するためにサテライト・プロトコルでのデータをＴＣＰに変換し戻す。特定の実施形態では、本発明は、従来技術を超えて性能を向上させる。加えて、本発明の技術は、実質上エンド・ユーザにトランスペアレントのままであり、完全にインターネットまたはインターネット・インフラストラクチャと適合する。全ての態様でないとしても、多くの場合、クライアントまたはサーバには実質上の変更は必要ではない。好ましい実施形態では、アプリケーションは、実質上のハードウェアおよび／またはソフトウェア修正なしに引き続き機能する。
【００４２】
上記では、特定のネットワーキング・ダイアグラムの点から説明したが、他の構成でこのサテライト・ゲートウェイを実装することが可能である。例えば、このサテライト・ゲートウェイは、複数のリモート・ゲートウェイの働きをする１つの「ハブ」または中央ゲートウェイでよい。各リモート・ゲートウェイは、中央ゲートウェイに接続され、個々のサテライト・リンクが作成される。
【００４３】
他の共通ネットワーク・トポロジも使用することができる。さらに、ある実施形態では、異なる電気通信リンクを使用して、接続の順方向または逆方向パスを搬送することができる。例えば、サテライト・リンクを使用して、順方向パス上でデータを搬送することができ、同時に逆方向パスのために電話線を使用することができる。本発明の範囲を逸脱することなく、ここで述べた例示的ハードウェアを他のタイプの電気通信ハードウェアで置き換えることもできる。
【００４４】
加えて、このサテライト・ゲートウェイを一般に独立型ユニットとして説明する。しかし、このゲートウェイをクライアント・マシン中に実装または一体化することができることは理解されよう。例えば、このゲートウェイは、サテライト・カードを使用してパーソナル・コンピュータ上に実装することができる。このサテライト・カードは、ウィンドウズ（商標）９８マシン中に挿入することができる。このゲートウェイは、ウィンドウズＮＴ、ＭａｃＯＳ、およびＬｉｎｕｘなどの他のオペレーティング・システム上に実装することもできる。もちろん、実装の厳密な方式は、アプリケーションに依存することになる。加えて、このサテライト・ゲートウェイは、独立型サテライト・モデム、ＶＳＡＴハードウェア、ルータ、または他のネットワーク装置中に一体化することもできる。
【００４５】
Ｉ．プロトコル設計
特定の実施形態では、本発明は、サテライト・ネットワークについてのスループットを向上する新規サテライト・プロトコルを含む。本プロトコルは、典型的なサテライト待ち時間、ビット・エラー、および非対称な帯域幅条件に対して効果的に応答するように設計することができる。このプロトコルは、固定帯域幅を有するポイントツーポイント・リンク上で可能な最適化も利用することができる。ＸＴＰなどのサテライト・プロトコルに関するより詳しい情報は、Ｔｉｍ  Ｓｔｒａｙｅｒの「Ａ  Ｂｒｉｅｆ  Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  ｔｈｅ  Ｘｐｒｅｓｓ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ，」から得ることができ、その全体を参照することにより実際上本明細書に組み込む。このサテライト・プロトコルのこれらおよび他の特徴を以下でより詳細に説明する。
【００４６】
このプロトコルは、効果的なデータの肯定応答用選択的再送信アルゴリズムを利用する。サテライトを介するホップが、中間経路指定を用いないポイントツーポイント・リンクのために、パケット中のどんなギャップも破壊によるデータ紛失であると想定することができる。受信側サテライト・ゲートウェイは、送信側サテライト・ゲートウェイからの欠落データを検出すると即時に再送信を要求する。
【００４７】
このプロトコルは、実質上従来のＴＣＰの頻繁な肯定応答機能に束縛されない。ある実施形態では、このプロトコルは、紛失データを識別する主な手段のようには肯定応答機能を使用しない。これらの実施形態において、このプロトコルで必要なのはデータ到着およびバッファを消去する低頻度の肯定応答機能だけである。（従来のＴＣＰは、リバース・チャネルを介して肯定応答の一定ストリームを送信する。）このプロトコルは、７０％以上バック・チャネル使用を低減し、それによって限定的バック・チャネル帯域幅がシステムのボトルネックであるネットワークの性能を向上する。
【００４８】
このプロトコルは、サテライト・ゲートウェイ間でデータを転送するのに十分大きいウィンドウ・サイズを提供する。サテライト・ゲートウェイ間のサテライトを介する帯域幅遅延積が、サテライト・ゲートウェイからエンド・ノードへの帯域幅遅延積よりもずっと大きいので、この大きいプロトコル・ウィンドウにより、ウィンドウ・サイズ比に対する帯域幅遅延の生成が比較的一定のままとどまることが可能となる。このゲートウェイは、ネットワークに対するバッファとなり、クライアントおよびサーバのウィンドウ・サイズに依存しない高スループットが可能となる。
【００４９】
このプロトコルは、一般には、サテライト・ゲートウェイ間のサテライトを介するホップ用の不必要な輻輳回避機構を使用しないが、このゲートウェイとエンド・ノードの間の地上接続用の「スロー・スタート」および全ての他の標準ＴＣＰ輻輳回避アルゴリズムを引き続き使用する。このプロトコルは、ストリームライン式ハンドシェーク機構を使用して、接続セットアップに必要な往復回数を低減することもできる。
【００５０】
この装置、システム、および方法は、経路指定ネットワークとの互換性を有するようにＩＰを介して実行することができる。あるいは、この装置は、大部分の例で性能を実質上向上させるために、リンク層を介して直接実行することができる。実施形態に応じてこれらの機能のうちの１つまたは複数を利用することができる。
【００５１】
上記を本サテライト・プロトコルの望ましい特徴によって一般的に説明した。多くの他のタイプの特徴が利用可能であることを理解されよう。加えて、本発明は、必ずしも前述の各特徴を必要としない。適用例に応じてどんな組み合わせも使用することができる。他の変形形態、修正形態、および代替形態を当業者は理解されよう。
【００５２】
ＩＩ．ＸＰＲＥＳＳ移送プロトコル
好ましい実施形態では、本発明は、一般にＸＴＰとして知られている「Ｘｐｒｅｓｓ移送プロトコル」を提供する。ＸＴＰは、ポリシーからの実装の分離、転送速度およびフロー制御の分離、マルチキャスト用の明示的ファーストクラス・サポート、およびデータ送達サービス独立性のための直交プロトコル機能を提供する。ＸＴＰは、サテライト・リンクを介したデータの送信に適した様々な特徴を有し、それらを以下でより完全に説明する。
【００５３】
特定の実施形態では、本プロトコルは、その機能性が直交性である１組の機構を含む。この最も特筆すべき効果は、ＸＴＰが、利用されるエラー制御ポリシーから通信機構（例えば、データグラム、仮想回路、トランザクションなど）を分離することである（未修正でも完全に信頼できる）。さらに、通信に対してフローおよび転送速度制御ならびにエラー制御を手元で調整することができる。望む場合には、これらの制御処理のどんな組もオフにすることができる。
【００５４】
本プロトコルは、転送速度およびフロー制御の分離も提供する。一般には、フロー制御は、エンドツーエンド・バッファ空間上で動作する。転送速度制御は、プロセッサ速度および輻輳を考慮に入れる生成側／消費側の概念である。ＴＣＰは、転送速度制御を提供せず、スロースタートおよび他のヒューリスティックを用いて輻輳に対処する。ＸＴＰは、転送速度制御およびフロー制御を独立に形成する機構を提供する。
【００５５】
特定の実施形態では、本プロトコルは、明示的マルチキャスト・サポートを提供する。ここで、マルチキャストは、ＸＴＰ中の追加部分ではない。ユニキャスト通信をするために使用される各機構はマルチキャストでも利用可能である。
【００５６】
本プロトコルは、データ送達サービス独立性も有する。具体的には、ＸＴＰは、トランスポート・プロトコルであるが、経路指定ネットワークではなく交換ネットワークの出現に伴って、従来のネットワーキング層サービスは、あらゆる例において適切ではない可能性がある。ＸＴＰは、基礎となるデータ送達サービスがあるＸＴＰ装備ホストから別のＸＴＰ装備ホストにパケットをフレーム指示し、送ることを一般に必要とする。これは、ロウＭＡＣまたはＩＰまたはＡＡＬ５でよい。ＸＴＰは、パラメトリック・アドレス指定も利用し、パケットをいくつかの標準アドレス指定フォーマットのうちのいずれか１つでアドレス指定することが可能となる。ＸＴＰの他の特徴には、とりわけ仮想回線パラダイムに対する暗黙高速接続セットアップ、キーベース・アドレス指定ルックアップ、メッセージ優先度およびスケジューリング、カプセル化および収束プロトコルに対するサポート、選択的再送信および肯定応答、ならびに固定サイズ６４ビット位置合わせフレーム設計が含まれる。
【００５７】
ＸＴＰは、１つの末端システムから１つまたは複数の他の末端システムにユーザ・データを送るのに必要な機構を定義する。各ＸＴＰ実装は、その各通信の状態を維持する。ユーザ・データまたは制御情報を含む明確なパケット構造は、ユーザ・データの転送を実施するために交換される。制御情報は、正確な要求された層を提供し、転送を効果的に行うよう助けるために使用される。正確さの保証は、エラー制御アルゴリズムおよび接続状態マシンの維持を介して行われる。可能な限り効果的に要求されたサービスの品質を提供するためにフローおよび転送速度制御アルゴリズム、あるプロトコル・モード、およびトラフィック形成情報が使用される。
【００５８】
末端システムでのＸＴＰ状態を含む情報のコレクションは、コンテキストと呼ばれる。この情報は、２つ（またはそれ以上）のアクティブ通信の１つのインスタンスを表す。コンテキストは、ＸＴＰパケットを送信または受信する前に作成し、インスタンス化すべきである。末端システムで各アクティブ会話またはメッセージについての多くのアクティブ・コンテキストがある可能性がある。
【００５９】
各コンテキストは、発信データ・ストリームおよび着信データ・ストリームのどちらも管理する。データ・ストリームは、各バイトがシーケンス番号によって表される連続バイトの任意長ストリングである。アクティブ・コンテキストの対の集合およびそれらの間のデータ・ストリームは、アソシエーションと呼ばれる。
【００６０】
末端システムでのコンテキストは、初めは静止状態にある。通信サービスを必要とするユーザは、コンテキストが聴取状態に配置されることを要求する。次いでコンテキストは適切なＦＩＲＳＴパケットを求めて聴取する。ＦＩＲＳＴパケットは、アソシエーションの初期パケットである。ＦＩＲＳＴパケットは、明示的アドレス指定情報を含む。ユーザは、ＸＴＰが着信ＦＩＲＳＴパケットと聴取コンテキストとをマッチングするのに必要な情報の全てを提供する。
【００６１】
別の末端システムでは、ユーザは、ＸＴＰからの通信サービスを要求する。このユーザは、アソシエーションを開始するので、コンテキストは、静止状態からアクティブ状態に直接移る。アクティブ・コンテキストは、ＦＩＲＳＴパケットを構築し、ユーザからの明示的アドレス指定情報で完成する。ＦＩＲＳＴパケットは、基礎となるデータ送達サービスを介して送信される。
【００６２】
ＦＩＲＳＴパケットが第１ホストのＸＴＰ実装で受信されたとき、アドレスが、全ての聴取コンテキストに対して比較される。マッチが見つかった場合、聴取コンテキストは、アクティブ状態に移る。この点から、アソシエーションの転送が確立され、通信を完全に対称とすることができる。アソシエーション中で、各方向の２つのデータ・ストリームがあるからである。さらに、アソシエーションの存続期間の間に他のパケットは、明示的アドレス指定情報を搬送しないことになる。むしろ、パケットを適切なコンテキストにマップする固有「キー」が各パケット中で搬送される。
【００６３】
あるユーザから全てのデータが送信されると、そのユーザのコンテキストからのそのデータ・ストリームを閉じることができる。パケット中のオプションの形態の標識が、交換され、接続が適切にクローズされる。他の形態のより適切さの欠けるクロージングも、この交換を省略することによって可能である。両方のユーザが行い、両方のデータ・ストリームがクローズしたとき、コンテキストは、非アクティブ状態に移行する。コンテキストのうちの１つは、アソシエーションの解消を引き起こす標識を送信することになる。この時点では、両方のコンテキストは静止状態に戻る。
【００６４】
一般には、ＸＴＰのパケット・タイプの全ては共通ヘッダ構造を使用する。処理の適切な点にパケットのペイロードをステアするのに必要な情報の全ては、ヘッダ中で搬送する。ＸＴＰコンテキストの動作の仕方の多くは、パケット・ヘッダ中の１つのフィールドに集中する１組のビット・フラグによって制御される。接続シャットダウンを制御するビット・フラグ、肯定応答ポリシーを制御するビット・フラグ、データ・ストリーム中のマーカであるビット・フラグを含む１５個のフラグが定義される。残りのビット・フラグは、エンドツーエンド・オペレーティング・モードを制御する。例は、エラー制御またはフロー制御のイネーブルまたはディセーブル、あるいはマルチキャスト・モードのイネーブルを含む。
【００６５】
ＸＴＰは、６４ビット・シーケンス番号および６４ビット・スライド式ウィンドウに基づく。ＸＴＰは、転送速度制御も提供し、それによって末端システムまたは中間システムは、接続時に受け入れることになる最大帯域幅およびバースト・サイズを指定することができる。トラフィック・セグメントは、トラフィックの形状を指定する手段を提供し、その結果末端システムおよび中間システムが、そのリソースを管理し、サービス品質保証を容易にすることができる。
【００６６】
ＸＴＰでのエラー制御は、正および適切なときには負の肯定応答を取り込み、欠落または損傷データ・パケットの再送信を実施する。再送信は、ｇｏ−ｂａｃｋ−Ｎまたは選択式のいずれかで良い。再送信アルゴリズムは保守的である。すなわち、制御メッセージを介して欠落していることが示されるデータのみを送信することができる。これは、スプリアスおよび可能な輻輳誘発再送信を回避する。エラー制御アルゴリズムは、基本的には保守的ながら、活動的になることもできる。すなわち、速動エラー通知に関するシステム、技術、および方法が提供される。
【００６７】
ＸＴＰは、エラー制御をマルチキャスト環境に拡張する技術も指定する。マルチキャストでのエラー制御アルゴリズムは、ユニキャスト・アルゴリズムと同一である。とはいえ、状態変数を管理し、連続ストリーミングを実現するために追加の高度化が必要である。したがって、ＸＴＰは、本発明による好ましいサテライト・プロトコルである。
【００６８】
前述ではＸＴＰプロトコルを用いて一般に説明したが、他のタイプのプロトコルも使用することができることを理解されよう。例えば、プロトコルは、修正ＴＣＰ、修正ＸＴＰなどで良い。加えて、プロトコルは、サテライトを介する伝送に適するどんなものでも良い。加えて、当業者は、他の変形形態、修正形態、および代替形態を理解されよう。
【００６９】
図２は、本発明の実施形態によるシステム・アーキテクチャ２００の単純化したダイアグラムである。このダイアグラムは、単に図示したに過ぎず、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。システム・アーキテクチャ２００は、少なくともクライアント２０１を含み、クライアント２０１はサテライト・ゲートウェイ２０３に結合し、サテライト・ゲートウェイ２０３は、サテライト・リンク２０９を介してサテライト・ゲートウェイ２０５からの情報を送受信する。サテライト・ゲートウェイ２０５は、サーバ２０７に結合する。サテライト・ゲートウェイおよびサーバは、インターネットまたはインターネットライクなコンピュータのネットワークを介して互いに結合する。
【００７０】
クライアント２０１は、アプリケーションおよび物理層を含む多層で表すことができる。この層は、ブラウザ２１１を含むことができる。ブラウザ２１１により、ゲートウェイに送信するために、ユーザがアプリケーション層から物理層に情報を通信することが可能となる。ブラウザ２１１は、一般には、情報を提供するアプリケーション層中にある。例えば、ブラウザは、カリフォルニア州マウンテンビューのＮｅｔｓｃａｐｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｃｏｒｐｏｒａｔｉｏｎ、またはワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎと呼ばれる会社、あるいは他の会社によって行われた適切な設計のうちの１つとすることができる。ブラウザに加えて、ＦＴＰファイル転送を含む他のＴＣＰアプリケーションも、クライアントとサーバ間で通信するために使用することができる。
【００７１】
情報は、トランスポート層（例えばＴＣＰ）を介して、次いでＩＰ層２１５を介して進む。ＩＰ層２１５は、ネットワーキング層である。トランスポート層は、クライアントとゲートウェイとの間のデータのフローを提供する。ＩＰ層は、クライアントとゲートウェイ、または他のネットワークとの間のパケットを含むデータの移動を扱う。情報は、物理層を介して送信され、物理層はドライバ２１７を含む。ドライバ２１７は、電気通信リンク２２１を介してゲートウェイ２０３に接続されるハードウェア２１９を介してゲートウェイ２０３に情報を送信する。電気通信リンク２２１は、ワイヤ、ケーブル、光ファイバ、または他の物理通信媒体でよい。あるいは、ドライバ２１７は、リンク２２１およびハードウェア２１９を介してゲートウェイ２０３から情報を受信する。例えば、ドライバは、クライアント・コンピュータ中のネットワーク・インターフェース・カードを有するネットワーク・オペレーティング・システムで良い。
【００７２】
情報は、物理接続２２１からゲートウェイ２０３へわたる。ゲートウェイは、物理層２２３を有し、物理層２２３はドライバ２２５と対話する。ゲートウェイは、ネットワーキング層２２７およびトランスポート層２２９も含む。トランスポート層２２９は、変換モジュール２３１に結合する。ネットワーキング層２２７は、情報をサテライト・プロトコルを介して発送できるかどうかを判定する。発送できる場合は、データは、上部のトランスポート層２２９に渡される。発送できない場合は、データは、非変換形態でサテライト・リンク２３９に送るために転送速度制御モジュール２３４に即時に転送される。変換モジュール２３１は、衛星リンクを介して使用するのに適したサテライト・プロトコル２３３に情報を変換する。転送速度制御モジュール２３４は、情報を即時にサテライト接続に渡すことができるか、それとも後に送るために待ち行列化するどうかを判定する。サテライト接続は、ドライバ２３５によって物理層２３７に結合し、ドライバ２３５は、情報を衛星２０９に、かつそこから伝送する。情報は、無線媒体２３９、２４１中を衛星に向かって、かつ衛星から送られる。
【００７３】
情報は、サテライト・ゲートウェイ２０５によって受信される。サテライト・ゲートウェイ２０５は、物理層、および他の層の多層を含む。物理層２４３は、ドライバ２４５に結合する。ネットワーキング層およびトランスポート層は、サテライト・プロトコル２４７および転送速度制御２４４を含む。ネットワークおよびトランスポート層は、変換モジュール２４９を含むセッション層に接続する。変換モジュールは、サテライト・プロトコルを使用して情報をＴＣＰ／ＩＰに変換し戻す。情報は、トランスポート層（すなわちＴＣＰ）２５１およびネットワーキング層（すなわちＩＰ）を通って送られる。サテライト・ゲートウェイ２０５からの情報は、ドライバ２５５を介して物理層２５７に入る。ドライバは、電気通信リンク２５９を介して情報をサーバ２０７に送信する。ドライバ２５５は、逆方向パスでサーバ２０７から情報を受信することもできる。
【００７４】
電気通信リンク２５９から、情報は、物理層２６１を介してサーバ２０７中のドライバ２６３に送られる。情報は、ドライバからネットワーキング層に移る。ネットワーキング層はＩＰ  ２６５を含む。情報は、ネットワーキングからトランスポート層にも送られる。トランスポート層は、ＴＣＰ  ２６７を含む。情報は、例えばウェブ・サーバ・アプリケーション２６９に送られる。サーバ２０７およびサテライト・ゲートウェイ２０５の間は、アプリケーションに応じて、インターネットまたは別のＩＰネットワークとなる。
【００７５】
特定の実施形態では、情報は、トランスポートおよびアプリケーション層を完全に迂回して、ネットワーク層ゲートウェイ２０３、２０５などのゲートウェイを介して流れることができる。例えば、ゲートウェイ２０３では、情報は、電気通信リンク２２１を介してクライアント２０１から入ることができる。物理層２２３は、情報をドライバ２２５に渡す。その結果、ドライバ２２５は、ネットワーク層２２７に情報を渡す。ネットワーク層２２７は、ＩＰを使用して情報をその宛先に発送することができる。次いで情報は、ネットワーク層２２７からドライバ２３５に流れる。ドライバ２３５は、物理層２３７と対話し、電気通信リンク２３９を介して、サテライト２０９に沿って情報を渡す。
【００７６】
特定の実施形態では、変換モジュールは、ＴＣＰ接続を使用してサテライト・システムを介する伝送に適した接続に情報を変換する。サテライトに適した接続は、一般にＯｒｉｏｎ  Ｗｏｒｏｌｄｃａｓｔ（商標）またはＰａｎＡｍＳａｔ（商標）  ＳｐｏｔＢｙｔｅ（商標）サービスなどの無線ネットワークを介した伝送に対して回復力がある。この接続は、長い待ち時間および非対称帯域幅条件にも適しているべきである。この接続はクライアントまたはサーバ位置のエンド・ユーザにトランスペアレントでもあるべきである。長い待ち時間は、一般にサテライト・ホップあたり約２００ミリ秒〜約７００ミリ秒であるが、その値に限定されない。
【００７７】
特定の実施形態では、例えば図２Ａに示すように、この変換モジュールは、サテライト・リンクを介して伝送するためにＴＣＰ接続を使用して情報をＸＴＰ、修正ＴＣＰまたはＸＴＰライク・プロトコルに変換する。ここで、ＴＣＰモジュールは、ＴＣＰ接続を含む情報３５０を受信する。この情報は、データ３３３、ＴＣＰヘッダ３３５、およびＩＰヘッダ３３７を含む。ＴＣＰモジュールは、情報３５１が実質上全てのデータ３３３を含み、あるＴＣＰヘッダ情報と共に変換モジュールにデータを渡すように、この情報からＴＣＰヘッダを削除する。変換モジュールは、サテライト・プロトコル・ヘッダ３３９がデータ上に付加されるサテライト・プロトコル・モジュールに、データまたはデータの部分を渡す。ヘッダは、ＸＴＰヘッダなどである。次いで情報３５２は、サテライト・リンクを介した伝送に適したＸＴＰヘッダを含む。特定の実装に応じて、ＸＴＰヘッダおよびデータにサテライト・リンクを介して伝送するためにＩＰヘッダを付加することもできる。具体的には、この情報は、物理層およびドライバに転送される。ドライバおよび物理層は、追加のヘッダを付加することができる受信側サテライト・ゲートウェイに情報を送信する。
【００７８】
サテライト・リンクからは、ＸＴＰヘッダを含む情報が受信側ＸＴＰモジュールに入る。受信側ＸＴＰまたはサテライト・プロトコル・モジュールは、データ３５３を残し、ＸＴＰヘッダを情報から削除する。受信側サテライト・プロトコル・モジュールは変換モジュールにデータを渡す。変換モジュールはデータを適切なプロトコルに経路指定するために使用される経路指定モジュールで良い。次いで変換モジュールは、ＴＣＰモジュールにデータを渡す。受信側ＴＣＰモジュールは、データ上にＴＣＰヘッダ３４３およびＩＰヘッダ３４１を付加し、次いでネットワークを介して受信側サーバ宛先に伝送する準備ができた情報を形成する。ＴＣＰ接続を使用する情報は、ネットワークを介して宛先サーバに横切る。
【００７９】
他の実施形態では、変換モジュールは、データおよびＴＣＰ／ＩＰヘッダを含む情報の部分をＸＴＰプロトコルを使用する情報に変換することもできる。あるいは、変換モジュールは、多数のＴＣＰ／ＩＰヘッダを含む情報の複数のセグメントを、サテライト・リンクを介して伝送するＸＴＰヘッダを含む情報の単一の部分に変換することもできる。アプリケーションに応じて、変換モジュールは、ＴＣＰ接続を含む情報を上記のいずれか１つまたはいずれかの組み合わせに変換することができる。これらの技術や他のより一層の詳細を以下でより詳細に説明する。
【００８０】
図３Ａおよび３Ｂは、本発明の実施形態によるプロセス・ダイアグラムの単純化したダイアグラムである。これらのダイアグラムは、単に図示したに過ぎず、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。特定の実施形態では、本発明は、図３Ａに図示する接続プロセス３００を使用する。この接続プロセスは、エンド・ユーザにトランスペアレントなＴＣＰ接続を行うサテライト・システム中で「ハンドシェーキング・ルーチン」を使用する、複数の別々の接続を使用する。サテライト・システムは、本明細書で説明するシステムに類似するようにできるが、それに限定されない。このプロセスは、ステップ３０１のスタートで始まる。特定の実施形態では、複数の接続が提供される。具体的には、このプロセスは、ステップ３０３の第１接続を行う。第１接続は、クライアントと、サテライト・リンクへのインターフェースをとるクライアント側ゲートウェイとの間のＴＣＰ接続である。このプロセスは、ステップ３０５の第２接続を行う。第２接続は、無線（例えばサテライト）リンクを介するクライアント側ゲートウェイと宛先ゲートウェイとの間の接続を行う。無線リンクは、ＸＴＰまたはＸＴＰライク接続などのどんな適切な接続でも良い。このプロセスは、ステップ３０７の第３接続を行う。第３接続は、宛先ゲートウェイと宛先サーバとの間のＴＣＰ接続を形成し、インターネットまたはインターネットを介して横切ることができる。これらの接続が行われた後は、これらの接続は、維持される（ステップ３０９）。このプロセスは、ストップ３１１で終了し、そこで全ての３つの接続が終了する。
【００８１】
特定の実施形態では、このプロセスは、ステップの選択したシーケンスによって行われる。ここで、ＴＣＰ  ＳＹＮパケットは、サテライト・ゲートウェイによってトランスペアレントにインターセプトされる。サテライト・ゲートウェイは、サテライト・リンクを横切って他のサテライト・ゲートウェイへの新しいＸＴＰ接続を確立する。ＩＤアドレスおよびポート番号を含む、要求側クライアントおよび宛先サーバについての情報は、サテライト・リンクを介して他のサテライト・ゲートウェイに転送される。次いで宛先ゲートウェイは、クライアントのアドレス指定情報を使用して宛先サーバとのＴＣＰ接続をセットアップし、その結果、サーバは、クライアント自体が接続を確立した場合と同様にＴＣＰ接続を認識する。サテライト・ゲートウェイは、パケットをサテライト電気通信リンクを介して送付すべきかどうかを決定するために、ゲートウェイに入るパケットのＩＰヘッダ中の送信元および宛先アドレスに基づいて経路指定の決定を行う。サーバへのＴＣＰ接続が確立された後は、宛先ゲートウェイは、送信側ゲートウェイに通信し戻し、次いで送信側ゲートウェイは、クライアントとの接続を確認する。
【００８２】
１つまたは複数の実施形態では、ステップのこのシーケンスは利点を有する。具体的には、クライアントは、サーバがこの接続を受諾するまでは、接続が確立されているとはみなさず、これにより正常接続確立の偽の指示を減らし、さらにはなくす傾向がある。加えて、クライアントおよびサーバのどちらも、サテライト接続がクライアントとサーバとの間に生じていることを検出せずに、そのうちの２つの間で即座に生じているものとして接続を認識する。すなわち、本発明は、実質上接続の「エンドツーエンド・セマンティクス」を保持する。他の実施形態では、接続性は対称である。ここで、「クライアント」は、サテライト・リンクのどちらの側にも存在することができ、かつ「サーバ」はどちらの側にも存在することができる。一方の側のシステムは、他方の側のシステムに接続を要求することができ、サテライト・ゲートウェイは接続をインターセプトすることになる。
【００８３】
図３Ｂは、本発明による特定の実施形態での、開始ステップ３２１で始まる新規経路指定プロセス３２０の単純化した流れ図である。このダイアグラムは、単なる例であって、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。ステップ３２３では、クライアント・ホストは、特定のＩＰアドレス宛てのＴＣＰパケットをサテライト・ゲートウェイに送信する。ある例では、サテライト・ゲートウェイは、前述の１１１Ａと同様にすることができるが、他のものにすることもできる。決定ステップ３２５では、サテライト・ゲートウェイは、パケットを受信し、送信する前に、ＸＴＰ接続を介してパケットを搬送すべきかどうかを判定する。ＸＴＰプロトコルの例を本明細書で説明したが、請求の範囲を制限するものではない。本発明のある実施形態に従って、どんな適切なサテライト・プロトコルも使用することができる。ＴＣＰパケットの宛先アドレスが、ＸＴＰプロトコル・フォーマットに変換されるように構成される場合、パケットは、ステップ３３１でＸＴＰプロトコルに変換される。そうでない場合、パケットは、そのＴＣＰフォーマットで、ステップ３２７への代替分岐を介して送信される。この決定プロセスによって、単一サテライト・ゲートウェイが、一部がＸＴＰプロトコルと互換のゲートウェイを有し、他のサイトが対応するゲートウェイを含まない多数のリモート・サイトと通信するサイトに対して、本発明は有用である。加えて、本発明により、ネットワーク管理者の方針決定に基づいて、特定のアドレスをプロトコル変換用に構成し、他のアドレスを非変換用に構成することが可能となる。
【００８４】
特定の実施形態では、本発明は、転送速度制御ステップ（ステップ３２７）も備えている。ステップ３２７では、サテライト装置を介する適切な、または所定のデータ通信速度を維持するために処理が実行される。ステップ３２７の処理は、サテライト・リンクに過負荷をかけることを回避するために、図１の１０５および１０３などのパケットのバッファリングを必要とする可能性がある。これは、図３Ｃ〜３Ｄに示すプロセスを使用して実施することができるが、このプロセスに限定されない。次いで、ステップ３２９では、送信側サテライト・ゲートウェイからサテライト・リンクをたどって送信されたパケットが接続に沿って送信される。次いで、ステップ３３３では、パケットがステップ３３１で変換された場合に、パケットがＴＣＰに変換し戻される。次いで、ステップ３３５では、パケットがそのリモート宛先に送付される。単一サテライト・ゲートウェイが、一部がＸＴＰプロトコルと互換であり、他のサイトが互換ではない多数のリモート・ゲートウェイと通信するサイトに対して本発明は特に有用である。ある構成ではサテライト・ゲートウェイごとに多数のリモート・サイトを有することができる。これらのサイトの一部は、インストールされたサテライト・ゲートウェイを有し、他のサイトはインストールされたサテライト・ゲートウェイを有さないようにすることができる。したがってリモート側では、サテライト・ゲートウェイが存在することができず、ＩＰ経路指定構成だけが存在する。このプロセスは、情報が宛先サーバ１３１に入ったときに経路指定を完了し（ステップ３３５）、宛先サーバ１３１は、宛先クライアントに情報を転送する。このプロセスは、接続が終了したときに停止する（ステップ３３７）。
【００８５】
本発明による特定の実施形態では、ＴＣＰ接続は、接続の宛先側可能な限り早く送らなければならないプロトコル・ヘッダ中の１つの情報を時々渡す。この１つの情報は、「緊急ポインタ」として知られる。実施形態の選択において、例えば図２のサテライト・ゲートウェイ２０３などの、クライアント側サテライト・ゲートウェイの部分であるＴＣＰ実装は、ＴＣＰヘッダからこの緊急ポインタを抽出することができる。しかし、このオぺレーションは、図２のシステムでは必要ではなく、請求の範囲を制限するものではない。例えば図２のＴＣＰモジュール２２９などのＴＣＰモジュールは、緊急ポインタを抽出することができ、サテライト・ゲートウェイ変換モジュールにそれを渡すことができる。サテライト・ゲートウェイ変換モジュールは、図２のサテライト・ゲートウェイ変換モジュール２３１またはその均等物でよい。緊急ポインタは、図２のサテライト・プロトコル・モジュール２３３またはその均等物などのサテライト・プロトコル・モジュールに渡される。次いで緊急ポインタは、サテライト・プロトコル・ヘッダ中で図２のサテライト・ゲートウェイ２０５または他の受信側サテライト・ゲートウェイなどのサテライト・ゲートウェイに搬送することができる。受信側サテライト・ゲートウェイでは、緊急ポインタは、図２のサテライト・プロトコル・モジュール２４７などのサテライト・プロトコル・モジュールによって抽出し、変換モジュール２４９または別のサテライト変換モジュールなどの変換モジュールに渡すことができる。変換モジュールは、ＴＣＰモジュール２５１などのＴＣＰモジュールに緊急ポインタを送ることができる。次いでＴＣＰモジュールは、サーバ２０７などの末端サーバに即時に送るために、ＴＣＰヘッダ中のそのターゲット・フィールドに緊急ポインタを取り込む。サーバに送るこのヘッダは、第２サテライト・ゲートウェイ・マシンにまだ到着していないデータ・ストリーム中の点を参照する。いくつかの実施形態では、適切な緊急ポインタ処理が誤動作を緩和する。
【００８６】
図３Ｃは、本発明による特定の実施形態での図３Ｂのデータ通信速度制御ステップ３２７などのデータ通信速度制御プロセスの単純化した流れ図を示す。このダイアグラムは、単に図示したに過ぎず、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。図３Ｃは、着信パケットが到着する時にキューが空であるかどうかを判定する第１決定ステップ３４１を示す。現在好ましい実施形態では、高優先度（ＨＩＰＲＩ）トラフィックを待ち行列化するキューと、「通常の」トラフィックを待ち行列化するキューの２つのキューがある。キューの数は、本発明による実施形態を直接的に拡張することによって、拡張または減少させることができることを当業者は理解されよう。キューが空である場合、処理は決定ステップ３４３に進む。そうでない場合、処理は、決定ステップ３４５に進む。
【００８７】
決定ステップ３４３は、現システム・クロック・チック・カウントが格納されたクロック・チック・カウントと同じであるかどうかを判定する。システム・クロック・チックおよび格納されたクロック・チックが同じである場合、処理は決定ステップ３９４に進む。決定ステップ３９４は、ここでは「ＭＡＸ」として示す所望の送信速度に基づいて、バイト・カウンタおよび着信パケットの長さが所定の最大値よりも大きいかどうかを判定する。最大値を超過しない場合、処理はステップ３５５に進む。ステップ３５５では、パケットが送信され、バイト・カウンタがパケット長だけ増分される。そうではなく、ステップ３４９で最大値を超過する場合は、処理は、ステップ３５７に進む。ステップ３５７では、ＭＡＸと、バイト・カウンタの現在の値との間の差が「ＥＸＴＲＡ」として格納され、タイマをスタートさせることができる。次いで処理は、ステップ３４５に進む。そうではなく、ステップ３４３でクロック・チックと格納されたクロック・チックが異なる場合、処理はステップ３４７に進む。ステップ３４７では、バイト・カウンタがクリアされ、格納されたクロック・チックが更新される。次いで処理は、前述と同様にステップ３５５に進む。
【００８８】
決定ステップ３４１がキューのうちの少なくとも１つが空でないと判定した場合、またはパケット長がステップ３４９でＭＡＸを超えてバイト・カウンタを増加させた場合、決定ステップ３４５では、着信パケットが再送信であるかどうかの判定が行われる。パケットが再送信である場合、ステップ３５１では、パケットが高優先度（ＨＩＰＲＩ）キューに加えられる。そうでない場合、ステップ３５３では、パケットが通常キューに加えられる。
【００８９】
図３Ｄは、本発明による特定の実施形態での、図３Ｃで示したデータ通信速度制御プロセスと共に有用なタイマ・サービス・プロセスの単純化した流れ図を示す。このダイアグラムは、単に図示したに過ぎず、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。図３Ｄは、ステップ３５７でのタイマ・セットが満了するときにはいつでも起動されるステップ３６１を示す。ステップ３４１では、バイト・カウンタがクリアされ、ローカルの最大が、ＥＸＴＲＡに加えられる最大ＭＡＸに設定される。次いで、ステップ３６３では、高優先度（ＨＩＰＲＩ）キューがチェックされ、パケットがキュー上にあるかどうかが判定される。パケットがＨＩＰＲＩキュー上にある場合、処理は決定ステップ３６５に進む。そうでない場合、処理は、決定ステップ３６７に進む。
【００９０】
ＨＩＰＲＩキュー上にパケットがある場合、決定ステップステップ３６５では、バイト・カウンタおよびパケット長がローカルの最大よりも小さいかどうかの判定が行われる。実際にこれが当てはまる場合、処理はステップ３６９に進む。ステップ３６９では、パケットがＨＩＰＲＩキューから待機解除され、送信される。さらに、パケット中のデータの長さを反映するようにバイト・カウンタが増分される。そうでない場合、決定ステップ３６５は、バイト・カウンタおよびパケット長がローカルの最大を超過するかどうかが判定され、次いでステップ３７１ではタイマが再スタートし、処理は起動プロセスに戻る。処理は、タイマが満了するときに続行することができる。
【００９１】
決定ステップ３６３がＨＩＰＲＩキュー上にパケットが無いと判定した場合、処理は決定ステップ３６７に進む。決定ステップ３６７は、通常キュー上にパケットがあるかどうかを判定する。決定ステップ３６７が通常キュー上にパケットがないと判定した場合、処理はステップ３７５に進み、ステップ３７５では現クロック・チックがグローバル・セル中に格納される。そうでない場合、決定ステップ３６７が、パケットが通常キューであると判定した場合、処理は決定ステップ３７３に進む。決定ステップ３７３では、バイト・カウンタおよびパケット長がローカルの最大よりも小さいかどうかが判定される。実際にそうである場合、処理はステップ３７７に進む。ステップ３７７では、パケットが通常キューから待機解除され、送信される。さらに、バイト・カウンタがパケット中のデータの長さを反映するように増分される。そうでない場合、決定ステップ３７３がバイト・カウンタおよびパケット長がローカルの最大を超過するかどうかを判定し、ステップ３７９ではタイマが再スタートし、処理は起動プロセスに戻る。処理は、タイマが満了するときに続行することができる。
【００９２】
図３Ｅは、本発明による特定の実施形態での代表的システムの概観を示す。このダイアグラムは、単に例示に過ぎず、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。クライアント３８０は、ＴＣＰサーバ３８８への接続要求を開始する。サテライト・ゲートウェイ３８４は、接続要求をインターセプトし、第２サテライト・ゲートウェイ３８６との第２接続３８５を確立する。次いで第２サテライト・ゲートウェイ３８６は、サーバ３８８との第３接続３８７を開始する。接続３８７が確立され、情報がサテライト・ゲートウェイ３８４に戻されると、クライアント３８０とサテライト・ゲートウェイ３８４との間の第１ＴＣＰ接続３８３を確認することができる。
【００９３】
ある実施形態では、ＴＣＰ接続がデータをクライアント３８０に送信するサテライト・ゲートウェイ３８４および／またはサテライト・ゲートウェイ３８６によってバッファに入れられるデータの集合量を制限するのに有用なデータ・フロー制御プロセス３８２が提供される。選択実施形態は、例えばデータがその接続上のクライアントに対してバッファに入れられたとき、ＴＣＰ上のデータ・フローを制御することができる。図３Ｆからわかるように、データ・フロー制御プロセス３８２を介してクライアント３８０とサテライト・ゲートウェイ３８４との間で第１ＴＣＰ接続３８３を確認することができる。選択実施形態では、データ・フロー制御プロセス３８２は、接続３８５の両側のサテライト・ゲートウェイ３８４およびサテライト・ゲートウェイ３８６に格納されるデータ量を制御する目的で、クライアントＴＣＰ接続３８３などのクライアントＴＣＰ接続がサテライト・ゲートウェイ３８４などのサテライト・ゲートウェイに送ることができるメモリ量を制限することができる。接続３８３内のクライアント３８０とサテライト・ゲートウェイ３８４との間に挿入された別々の制御プロセス３８２によって示したが、本発明は、他の形態でも実施することができる。例えば、制御プロセス３８２は、クライアント３８０のマシン内の第１サテライト・ゲートウェイ内に共通に位置するか、または別々のマシン内の第１サテライト・ゲートウェイ３８４などと共に配置することができる。
【００９４】
サテライトおよびサテライト・ゲートウェイによって示したが、本発明は、他の形態のネットワーク・ハードウェアでも実施することができる。例えば、第１ゲートウェイ３８４および第２ゲートウェイ３８６を無線ネットワークなどによって接続することができる。
【００９５】
図３Ｇは、本発明による特定の実施形態での接続フロー接続選択プロセスの単純化した流れ図を示す。このダイアグラムは、単なる例示であって、本明細書の請求の範囲を制限するものではない。当業者は、他の変形形態、修正形態、および代替形態を理解されよう。図３Ｇは、入力データ・フロー３９０を示す。決定ステップ３９１は、入力データ・フロー３９０が受信される接続が新しい接続かどうかを判定する。新しい接続である場合、この新しい接続は、フロー制御に対してマークされない。新しい接続でない場合、決定ステップ３９２では、接続に関連するバッファの内容のサイズがしきい値に対してチェックされる。バッファの内容がしきい値を超過する場合、ステップ３９３では、フロー制御制限計算に対して接続が選択される。そうでない場合、接続はフロー制御に対して選択されない。図３Ｇに示すステップは、初期化中またはデータを断続的に転送している接続を遮蔽する能力を有する実施形態を提供することができる。そのような接続は、フロー制御計算に対して選択される必要はない。そのような接続は、十分大きいシステム・リソースを消費しないからである。新しい接続は、データのしきい値量が新しい接続に対してバッファに入れられるまで、フロー制御計算に対して選択される必要はない。現在好ましい実施形態では、接続がメモリ中にデータのしきい値量をバッファに入れた場合に、しきい値に達する。この特定の実施形態では、しきい値量よりも小さいデータを送り、待機し、次いでより多くのデータを送信する接続は、フロー制御制限計算に対して選択する必要はない。データのしきい値量のうちのすべてが一度にメモリ中に常駐しないからである。しかし、別の実施形態では、バッファ中のデータの平均または特定の時間間隔にわたるデータのバッファ化した量は、本発明の範囲から逸脱することなく、接続上のフローを制御する基礎として使用することもできる。現在好ましい実施形態では、しきい値限界は、５０Ｋバイトにすることができる。しかし、当業者は、本発明の方法およびシステムを他のしきい値に容易に適用することができる。
【００９６】
図３Ｈは、本発明による特定の実施形態での、図３Ｆに示すサテライト・ゲートウェイ・システムに関して有用なデータ・フロー制御プロセスの単純化した流れ図を示す。このダイアグラムは、単なる例であって、本明細書の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。図３Ｈは、特定の接続に対する入力データ・フロー３９４を示す。決定ステップ３９５は、入力データ３９４に対応する接続がフロー制御されているものかどうかを判定する。フロー制御されているものである場合、ステップ３９６ではリンクを渡ってデータのバイトを送信し、接続に対して送信し戻すための往復時間（ＲＴＴ）を判定することがきる。往復時間は、ユーザからの入力によって、またはデータのサンプルの１つがリンクを横切る時間などを自動的に判定することができる。次いでステップ３９７では、接続に対するデータ通信速度、または帯域幅が判定される。データ通信速度は、ユーザからの入力によって、またはデータのサンプルの１つなどによって自動的に判定することができる。この実施形態では、ユーザは、転送速度および往復時間を別々の入力として入力する。しかし、他の実施形態も、ユーザが事前計算した帯域幅遅延積を入力することを可能とし、またはリンクを検出することによって往復時間を判定することができる。次いでステップ３９８では、帯域幅遅延積は、バイト単位のリンクの帯域幅に、往復時間を乗じることによって決定することができる。
【００９７】
ステップ３９９では、接続に対するフロー制御制限を決定することができる。フロー制御制限は、接続に対するバッファへのデータ量などにすることができる。現在好ましい実施形態では、フロー制御制限は、図３Ｇで詳述した処理の間に選択される各アクティブ・データ接続に割り振られるメモリ量にすることができる。フロー制御制限は、帯域幅遅延積に倍数を乗じ、次いでその合計をアクティブデータ接続で除算することによって計算することができる。この倍数は、ネットワーク・リンクを完全に使用し続けるために、十分なデータをバッファに入れることが可能となるように選ばれる。現在好ましい実施形態では、倍数８が選ばれる。しかし、実施形態は、本発明の範囲から逸脱することなく、他の倍数またはスケーリング関数、あるいは複数の規格化因子の組み合わせを使用することができる。次いで、ステップ４０１では、接続上のデータを着信データを最大ステップ３９９によって決定される制限まで接続上のバッファに入れることによって、制限することができる。システムは、物理システム・メモリで利用可能な割り振られた空間よりも多くバッファリングすることを抑制することができる。
【００９８】
本発明による多くの実施形態が、アクティブ接続の変更に適合することができることは注目に値する。１つの接続がアクティブである場合、その接続は、帯域幅全体の使用を許可されることになる。第２接続アクティブであるとき、フロー制御制限は、新しいデータが到着したときはいつでも、フロー制御制限を計算することによって、第１および第２接続のどちらに対しても調整することができる。この方式では、接続が確立された順番には関わりなく接続の間で帯域幅を割り振ることができる。加えて、本発明による実施形態により、１つの特定の接続からのデータのバーストが、他の接続についてのデータの前に、リンクを介する送信のために待ち行列化される可能性を低減させることによって接続間でサテライト・リンクを共用することが可能となる。これにより、ネットワーク・スループットが多数の接続にわたってより一貫したものとなる。
【００９９】
図３Ｉは、本発明による特定の実施形態の代表的バッファ・アーキテクチャの単純化した構造構成要素ダイアグラムを示す。このダイアグラムは、単なる例示であって、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。図３Ｉは、サテライト・ゲートウェイ３８４を示す。サテライト・ゲートウェイ３８４は、接続３８３を介して図３Ｅのクライアント３８０などのクライアントとインターフェースをとるＴＣＰバッファ４０５を備える。さらに、サテライト・ゲートウェイ３８４は、接続３８５を介して図３Ｅのサテライト１０１などのサテライトとインターフェースをとるサテライト・プロトコル・バッファ４０６を備える。サテライト・システム３８４を介するＴＣＰは、サテライト・ゲートウェイ３８４中のＴＣＰプロトコル層およびサテライト・プロトコル層によって制御される１つまたは複数のバッファ中に、データを一時的に格納することができる。例えば図３Ｅのクライアント３８０などの端点へのデータは、ＴＣＰバッファ４０５などの、１つまたは複数のＴＣＰバッファから導出することができる。空間がＴＣＰバッファ４０５中で利用可能となったとき、データは、サテライト・プロトコル・バッファ４０６からＴＣＰバッファ４０５に転送することができる。空間がサテライト・プロトコル・バッファ４０６中で利用可能になったとき、サテライト・プロトコルにより、より多くのデータを例えば図３Ｅのサテライト・リンク３８５などのサテライト・リンクを介して送信することが可能となる。本発明による実施形態の適用の代表例では、サテライト・ゲートウェイ３８４などのサテライト・ゲートウェイは、複数のモデムにデータを供給することができる。モデム・リンクは、サテライト・リンクと同じ転送速度でデータを受諾することができない。そのような状況では、本発明による技術は、モデムについてのデータを保持する比較的大きな量のバッファ空間を消費することを回避することができる。
【０１００】
図３Ｊは、本発明による特定の実施形態の代表的バッファ・アーキテクチャの単純化した構造構成要素ダイアグラムを示す。このダイアグラムは、単なる例示であって、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。図３Ｊは、例えば図３Ｉのサテライト・プロトコル・バッファ４０６中に常駐することができる出力データ４０２を示す。受諾可能な転送速度でデータがＴＣＰ層からエンド・クライアントに送達されていないとき、サテライト・リンク中の輻輳が生じる可能性がある。この輻輳は、サテライト・プロトコルによって決定ステップ４０３で検出することができる。決定ステップ４０３では、サテライト・プロトコルがサテライト・プロトコル・バッファ４０６の状態が飽和に達したかどうかを判定する。ある実施形態では、バッファに対してしきい値を確立することができる。このしきい値を超過することにより、飽和条件があることを示すことができる。プロトコル・バッファが飽和した場合、ステップ４０４では、サテライト・プロトコルは、サテライト・リンク３８５にわたって受け入れられることになるデータに対する最大受信ウィンドウを減少因子だけ減少させる。現在好ましい実施形態では、減少因子５０％を使用することができる。特定の実施形態では、ウィンドウがゼロにまで減少しないことを保証するように、受信ウィンドウに対する最小値を構成することができる。そうでない場合、クライアントがシステムのデータ通信速度と互換のデータ通信速度で受信している場合、飽和条件には到達しないことになる。
【０１０１】
本発明による実施形態では、比較的遅いデータ通信速度を有する、例えばクライアント３８４などの受信側への接続は、フルサイズの受信ウィンドウで開始することができる。本発明による技術を用いて、受信ウィンドウは送信側のデータ通信速度と受信側のデータ通信速度との間の一致を達成するようにサイズ変更することができる。したがって、ある実施形態では、新しい接続は、システムがより低いデータ通信速度受験を検出し、追加の新しいデータが接続のためにバッファに入れられる量を制限する前に、メモリのフル・ウィンドウを消費する能力を有する。現在好ましい実施形態では、本発明の技術は、各サテライト接続に別々に適用することができ、その結果ある低速な受信側が同じリンクを介する他の接続の性能を低下させることがないことになる。
【０１０２】
図７は、本発明による特定の実施形態での代表的装置を示す。このダイアグラムは、単なる例であって、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。図７は、プロトコル・ゲートウェイ１１１Ａなどの、本発明による特定の実施形態でのプロトコル・ゲートウェイのブロック・ダイアグラムを示す。プロトコル・ゲートウェイ１１１Ａは、中央処理装置１１４などの主要なサブシステムと相互接続するバス１１２と、システム・メモリ１１６（一般にはＲＡＭ）と、表示アダプタ１２６を介する表示画面１２４、キーボード１３２、および入出力コントローラ１１８を介するマウス１４６、フロッピィ・ディスク１３８を受けるように動作するフロッピィ・ディスク・ドライブ１３６などのいくつかの追加の外部装置を含む。記憶インターフェース１３４は、固定ディスク・ドライブ１４４への記憶インターフェースとして動作することができる。ＣＤ−ＲＯＭ１４２を受け入れるように動作する任意選択のＣＤ−ＲＯＭプレーヤ１４０も含むことができる。フラッシュ・メモリ１４７などの他の形態の記憶装置も含むことができる。ネットワーク・インターフェース１４８Ａは、電話線を介するリモート・サーバへの直接接続、またはＴＣＰ／ＩＰなどの共通プロトコルを使用するインターネットへの直接接続を実現することができる。ネットワーク・インターフェース１４８Ａは、１つまたは複数の外部ネットワークとインターフェースをとることができる。その外部ネットワークは、イーサネット、トークン・リング、ＡＴＭ、ＩＥＥＥ  ８０２．３、Ｘ．２５、シリアル・リンク・インターネット・プロトコル（ＳＬＩＰ）、ＦＤＤＩなどの、当技術分野で周知の何らかのネットワーク・フォーマットを利用することができる。ネットワーク・インターフェース１４８Ｂは、サテライト・ゲートウェイ１０９Ａ、あるいは他のネットワーク相互接続装置またはコンピュータ・システムなどのサテライト・ゲートウェイに接続することもできる。ネットワーク・インターフェース１４８Ａは、１つまたは複数の外部ネットワークとインターフェースをとることができる。その外部ネットワークは、イーサネット、トークン・リング、ＡＴＭ、ＩＥＥＥ  ８０２．３、Ｘ．２５、シリアル・リンク・インターネット・プロトコル（ＳＬＩＰ）、ＦＤＤＩなどの、当技術分野で周知の何らかのネットワーク・フォーマットを利用することができる。多くの他の装置またはサブシステム（図示せず）も、同様に接続することができる。さらに、以下で論ずるように、本発明を実施するためには、図７に示す装置のすべてが存在する必要はない。この装置およびサブシステムは、様々な実施形態において、図７に示すのとは異なる方式で相互接続することができる。本発明を実装するコードは、システム・メモリ１１６、固定ディスク１４４、ＣＤ−ＲＯＭ１４０、またはフロッピィ・ディスク１３８などのコンピュータ可読格納媒体中に操作可能に配置または格納することができる。
【０１０３】
システム１１１Ａは、本発明を実施する構成の単なる１つの例である。多くのシステム・タイプ、構成、および上記装置の組み合わせが、本開示に照らした使用に適していることは当業者には明らかであろう。
【０１０４】
上記は、特定のシステム、方法、および実施形態により本発明を一般的に説明したが、本発明は、より広い範囲の適用可能性を有する。具体的には、本発明はサテライト通信に限定されず、改良および最適化プロトコルをネットワークの特定の部分を介して使用することが望ましく、エンド・システムが改良プロトコルを使用するために更新することができないどんなネットワーキング状態にも適用することができる。したがって、ある実施形態では、サテライト・ゲートウェイは、すべての種類の無線または有線ネットワークおよびインターネットワークへのアクセスを提供することができる。もちろん、当業者は他の変形形態、修正形態、および代替形態を理解されよう。
【０１０５】
実験：
このシステムの原理およびオペレーションを検証するために、実験を実行した。この実験では、従来のＴＣＰと本発明とを多様な異なるＴＣＰウィンドウ・サイズ、リンク帯域幅、往復遅延時間、およびビット・エラー率にわたって比較する一連の単一クライアントＦＴＰファイル転送スループット・テストを実行した。１つの実験では、例えば図４のダイアグラム４００で示すように、「ウィンドウ・サイズ」を「スループット」に対して比較した。このダイアグラムは、単なる例であって、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。性能向上またはＴＣＰウィンドウ・サイズ・チューニングを行わない場合、大部分のクライアントは、往復時間が５４０ｍｓのときにスループット速度が１００Ｋｂｐｓに制限された。図４のデータが示すように、３２ＫＢウィンドウを有するクライアントでも、単にスループット４００Ｋｂｐｓにしか到達することができなかった。このシステムにより、クライアントまたはサーバのウィンドウ・サイズに関わらず、クライアントが利用可能帯域幅を利用することが可能となった。
【０１０６】
代替実験では、例えば図５の単純化したダイアグラム５００に示すように、「往復遅延」が「スループット」に対して解析された。このダイアグラムは、単なる例であって、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。ここで、本発明は、ネットワークの往復時間へのＴＣＰの依存を除いた。性能は、エラーのない対称２Ｍｂｐｓおよび１０Ｍｂｐｓリンクを介して測定された。ＴＣＰは、地上低遅延ネットワークを完全に飽和することができるが、遅延が増加するにつれてＴＣＰ性能は急速に降下することをこれらの結果は示した。それとは対称的に、このシステムを使用したネットワークは、ネットワークの往復時間に関わらず、リンクのほぼ完全な使用を維持することができた。
【０１０７】
代替実験では、「ビット・エラー率」が、例えば図６の単純化したダイアグラム６００によって示される「スループット」に対してモニタされた。このダイアグラムは、単なる例であって、本明細書の請求の範囲を制限するものではない。他の変形形態、修正形態、および代替形態を当業者は理解されよう。本発明を取り込んだネットワークは、リンクのビット・エラー率にも敏感である。このダイアグラムは、スループットを、往復時間５４０ｍｓおよびＴＣＰウィンドウ・サイズ１ＭＢの対称１０Ｍｂｐｓサテライト・ネットワークに対するビット・エラー率の関数として示す。低エラー率であっても、ＴＣＰは、１．２Ｍｂｐｓしか送ることができなかった。エラー率１．０×１０−５では、ＴＣＰのスループットは、０．０５Ｍｂｐｓに落ち込んだ。本発明を使用したネットワークは、低エラー率でリンクを完全に飽和し、エラー率１．０×１０−５でも２．７Ｍｂｐｓを送ることができた。
【０１０８】
上記は、特定の実施形態の完全な説明であるが、様々な修正形態、代替構造、および均等物を使用することができる。例えば、上記は、ＸＴＰをサテライト・プロトコルとして使用することによって一般に説明した。他のタイプのプロトコルも利用可能である。例えば、プロトコルは、修正したＴＣＰなどを含むことができる。したがって、前述の説明および図示は、添付の請求の範囲によって定義される本発明の範囲を限定するものとして用いたのではない。
【図面の簡単な説明】
【図１】
本発明の一実施形態によるサテライト・システムの単純化した図である。
【図２】
本発明の一実施形態によるシステム・アーキテクチャの単純化した図である。
【図２Ａ】
本発明の一実施形態によるシステム・アーキテクチャの単純化した図である。
【図３Ａ】
本発明の一実施形態によるプロセス図の単純化した図である。
【図３Ｂ】
本発明の一実施形態によるプロセス図の単純化した図である。
【図３Ｃ】
本発明の一実施形態によるプロセス図の単純化した図である。
【図３Ｄ】
本発明の一実施形態によるプロセス図の単純化した図である。
【図３Ｅ】
本発明の一実施形態によるプロセス図の単純化した図である。
【図３Ｆ】
本発明の一実施形態によるプロセス図の単純化した図である。
【図３Ｇ】
本発明の一実施形態によるプロセス図の単純化した図である。
【図３Ｈ】
本発明の一実施形態によるプロセス図の単純化した図である。
【図３Ｉ】
本発明の一実施形態によるプロセス図の単純化した図である。
【図３Ｊ】
本発明の一実施形態によるプロセス図の単純化した図である。
【図４】
本発明の一実施形態による実験データの単純化した図である。
【図５】
本発明の一実施形態による実験データの単純化した図である。
【図６】
本発明の一実施形態による実験データの単純化した図である。
【図７】
本発明の一実施形態によるゲートウェイ・インターフェースの単純化した図である。
【図１】
2004520725.tif 000003
【図２】
2004520725.tif 000004
【図３Ａ】
2004520725.tif 000005
【図３Ｂ】
2004520725.tif 000006
【図３Ｃ】
2004520725.tif 000007
【図３Ｄ】
2004520725.tif 000008
【図３Ｅ】
2004520725.tif 000009
【図３Ｆ】
2004520725.tif 000010
【図３Ｇ】
2004520725.tif 000011
【図３Ｈ】
2004520725.tif 000012
【図３Ｉ】
2004520725.tif 000013
【図３Ｊ】
2004520725.tif 000014
【図４】
2004520725.tif 000015
【図５】
2004520725.tif 000016
【図６】
2004520725.tif 000017
【図７】
2004520725.tif 000018
【国際公開パンフレット】
2004520725.tif 000019
2004520725.tif 000020
2004520725.tif 000021
2004520725.tif 000022
2004520725.tif 000023
2004520725.tif 000024
2004520725.tif 000025
2004520725.tif 000026
2004520725.tif 000027
2004520725.tif 000028
2004520725.tif 000029
2004520725.tif 000030
2004520725.tif 000031
2004520725.tif 000032
2004520725.tif 000033
2004520725.tif 000034
2004520725.tif 000035
2004520725.tif 000036
2004520725.tif 000037
2004520725.tif 000038
2004520725.tif 000039
2004520725.tif 000040
2004520725.tif 000041
2004520725.tif 000042
2004520725.tif 000043
2004520725.tif 000044
2004520725.tif 000045
2004520725.tif 000046
2004520725.tif 000047
2004520725.tif 000048
2004520725.tif 000049
2004520725.tif 000050
2004520725.tif 000051
2004520725.tif 000052
2004520725.tif 000053
2004520725.tif 000054
2004520725.tif 000055
2004520725.tif 000056
2004520725.tif 000057
2004520725.tif 000058
2004520725.tif 000059
2004520725.tif 000060
2004520725.tif 000061
2004520725.tif 000062
2004520725.tif 000063
2004520725.tif 000064
2004520725.tif 000065
2004520725.tif 000066
2004520725.tif 000067
2004520725.tif 000068
2004520725.tif 000069
2004520725.tif 000070
2004520725.tif 000071
2004520725.tif 000072
2004520725.tif 000073
2004520725.tif 000074
2004520725.tif 000075
2004520725.tif 000076
2004520725.tif 000077
2004520725.tif 000078
2004520725.tif 000079
2004520725.tif 000080
2004520725.tif 000081
2004520725.tif 000082
2004520725.tif 000083
2004520725.tif 000084
2004520725.tif 000085
2004520725.tif 000086
2004520725.tif 000087
2004520725.tif 000088
【国際公開パンフレット（コレクトバージョン）】
2004520725.tif 000089
2004520725.tif 000090
【国際公開パンフレット（コレクトバージョン）】
2004520725.tif 000091
2004520725.tif 000092
2004520725.tif 000093
2004520725.tif 000094
2004520725.tif 000095
2004520725.tif 000096
2004520725.tif 000097
2004520725.tif 000098
2004520725.tif 000099
2004520725.tif 000100
2004520725.tif 000101
2004520725.tif 000102
2004520725.tif 000103
2004520725.tif 000104
2004520725.tif 000105
2004520725.tif 000106
2004520725.tif 000107
2004520725.tif 000108
2004520725.tif 000109
2004520725.tif 000110
2004520725.tif 000111
2004520725.tif 000112
2004520725.tif 000113
2004520725.tif 000114
2004520725.tif 000115
2004520725.tif 000116
2004520725.tif 000117
2004520725.tif 000118
2004520725.tif 000119
2004520725.tif 000120
2004520725.tif 000121
2004520725.tif 000122
2004520725.tif 000123
2004520725.tif 000124
2004520725.tif 000125
2004520725.tif 000126
2004520725.tif 000127
2004520725.tif 000128
2004520725.tif 000129
2004520725.tif 000130
2004520725.tif 000131
2004520725.tif 000132
2004520725.tif 000133
2004520725.tif 000134
2004520725.tif 000135
2004520725.tif 000136
2004520725.tif 000137
2004520725.tif 000138
2004520725.tif 000139
2004520725.tif 000140
2004520725.tif 000141
2004520725.tif 000142
2004520725.tif 000143
2004520725.tif 000144
2004520725.tif 000145
2004520725.tif 000146
2004520725.tif 000147
2004520725.tif 000148
2004520725.tif 000149
2004520725.tif 000150
2004520725.tif 000151
2004520725.tif 000152
2004520725.tif 000153
2004520725.tif 000154
2004520725.tif 000155
2004520725.tif 000156
2004520725.tif 000157
2004520725.tif 000158
2004520725.tif 000159
2004520725.tif 000160
【国際調査報告】
2004520725.tif 000161
2004520725.tif 000162
2004520725.tif 000163
2004520725.tif 000164