(57)【特許請求の範囲】
【請求項１】
送信元デバイスと宛先デバイスとの間のトランスペアレント性能拡張プロキシを動作させるための方法であって、
前記宛先デバイスに転送されることになるパケットであって、前記送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するステップと、
前記パケットに対する伝送制御プロトコル接続セットアップ段階の間、伝送制御プロトコル接続セマンティクスを保存するステップと、
前記パケットに対する伝送制御プロトコル・データ転送段階の間、前記宛先デバイスに対して前記送信元デバイスになりすまし、前記送信元デバイスに対して前記宛先デバイスになりすますことにより伝送制御プロトコルを実行させて、前記パケットを前記宛先デバイスに、前記保存されるパケット・ヘッダ情報によって伝送するステップと、
前記伝送制御プロトコル接続セットアップ段階の間の、前記送信元デバイスと前記宛先デバイスとの間の接続の確立の際に、前記接続を前記トランスペアレント性能拡張プロキシでローカルに終結させ、前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の接続を生成するステップと
を含む、方法。
【請求項２】
変換することなく保存される前記パケット・ヘッダ情報は、
前記パケットの伝送制御プロトコル通信に対しての、伝送制御プロトコル・ポート番号、伝送制御プロトコル・シーケンス番号、および伝送制御プロトコル・ヘッダ・オプションの少なくとも１つ、
前記パケットのインターネット・プロトコル通信に対しての、インターネット・プロトコル・アドレス、インターネット・プロトコル・ホップ・リミット、インターネット・プロトコル生存時間、インターネット・プロトコル・タイプ・オブ・サービス、および明示的輻輳通知の少なくとも１つ、ならびに、
前記パケットの媒体アクセス制御通信に対しての、媒体アクセス制御アドレス、および仮想ローカル・エリア・ネットワーク・タグの少なくとも１つ
の少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
変換することなく保存される前記パケット・ヘッダ情報は、前記ヘッダのすべての必須フィールドで指定されるすべての情報を含む、請求項１または２に記載の方法。
【請求項４】
変換することなく保存される前記パケット・ヘッダ情報は、前記ヘッダの少なくとも一部の必須オプション・フィールドで指定されるすべての情報をさらに含む、請求項３に記載の方法。
【請求項５】
同期確認応答が前記宛先デバイスから返るのを待ち、前記送信元デバイスと前記宛先デバイスとの間の接続の終結を、前記送信元デバイスおよび前記宛先デバイスの両方が、前記接続に対する、前記送信元デバイスおよび前記宛先デバイスのそれぞれの接続確立シーケンスを完了するまで防止することにより、前記伝送制御プロトコル接続セマンティクスは、前記伝送制御プロトコル接続セットアップ段階の間保存される、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の接続を閉じ、前記トランスペアレント性能拡張プロキシと前記宛先デバイスとの間の接続を閉じ、前記接続に対するすべての割り振られたリソースを解放することにより、伝送制御プロトコル接続セマンティクスを、前記パケットに対する接続終結段階の間保存するステップをさらに含む、請求項１ないし５のいずれかに記載の方法。
【請求項７】
前記パケットを前記送信元デバイスから受信することに応答して、前記パケットのコピーを生成し、前記パケットの前記コピーをキャッシュし、前記パケットの前記コピーを前記宛先デバイスに伝送するステップと、
前記パケットに対する確認応答を前記送信元デバイスから受信することに応答して、キャッシュされている前記パケットの前記コピーを破棄するステップと、
前記パケットに関係するパケット損失の検出に応答して、キャッシュされている前記パケットの前記コピーを再送するステップと
をさらに含む、請求項１ないし６のいずれかに記載の方法。
【請求項８】
前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の前記接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の前記接続に対して、前記送信元デバイスと前記宛先デバイスとの間で、前記送信元デバイスと前記宛先デバイスとの間の前記接続に対して、以前にネゴシエートされた任意の伝送制御プロトコル・オプションを保存するステップをさらに含む、請求項７に記載の方法。
【請求項９】
前記伝送制御プロトコル・オプションは、経路最大伝送ユニット、選択的確認応答、および明示的輻輳通知の少なくとも１つを含む、請求項８に記載の方法。
【請求項１０】
トランスペアレント性能拡張プロキシを動作させるためのコンピュータ・プログラムであって、前記トランスペアレント性能拡張プロキシに、
宛先デバイスに転送されることになるパケットであって、送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存することと、
前記パケットに対する伝送制御プロトコル接続セットアップ段階の間、伝送制御プロトコル接続セマンティクスを保存することと、
前記パケットに対する伝送制御プロトコル・データ転送段階の間、前記宛先デバイスに対して前記送信元デバイスになりすまし、前記送信元デバイスに対して前記宛先デバイスになりすますことにより伝送制御プロトコルを実行して、前記パケットを前記宛先デバイスに、前記保存されるパケット・ヘッダ情報によって伝送することと、
前記伝送制御プロトコル接続セットアップ段階の間の、前記送信元デバイスと前記宛先デバイスとの間の接続の確立の際に、前記接続を前記トランスペアレント性能拡張プロキシでローカルに終結させ、前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の接続を生成することと
を実行させる、コンピュータ・プログラム。
【請求項１１】
変換することなく保存される前記パケット・ヘッダ情報は、
前記パケットの伝送制御プロトコル通信に対しての、伝送制御プロトコル・ポート番号、伝送制御プロトコル・シーケンス番号、および伝送制御プロトコル・ヘッダ・オプションの少なくとも１つ、
前記パケットのインターネット・プロトコル通信に対しての、インターネット・プロトコル・アドレス、インターネット・プロトコル・ホップ・リミット、インターネット・プロトコル生存時間、インターネット・プロトコル・タイプ・オブ・サービス、および明示的輻輳通知の少なくとも１つ、ならびに、
前記パケットの媒体アクセス制御通信に対しての、媒体アクセス制御アドレス、および仮想ローカル・エリア・ネットワーク・タグの少なくとも１つ
の少なくとも１つを含む、請求項１０に記載のコンピュータ・プログラム。
【請求項１２】
同期確認応答が前記宛先デバイスから返るのを待ち、前記送信元デバイスと前記宛先デバイスとの間の接続の終結を、前記送信元デバイスおよび前記宛先デバイスの両方が、前記接続に対する、前記送信元デバイスおよび前記宛先デバイスのそれぞれの接続確立シーケンスを完了するまで防止することにより、前記伝送制御プロトコル接続セマンティクスは、前記伝送制御プロトコル接続セットアップ段階の間保存される、請求項１０または１１に記載のコンピュータ・プログラム。
【請求項１３】
前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の接続を閉じ、前記トランスペアレント性能拡張プロキシと前記宛先デバイスとの間の接続を閉じ、前記接続に対するすべての割り振られたリソースを解放することにより、伝送制御プロトコル接続セマンティクスを、前記パケットに対する接続終結段階の間保存することをさらに前記トランスペアレント性能拡張プロキシに実行させる、請求項１０ないし１２のいずれか一項に記載のコンピュータ・プログラム。
【請求項１４】
前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の前記接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の前記接続に対して、前記送信元デバイスと前記宛先デバイスとの間で、前記送信元デバイスと前記宛先デバイスとの間の前記接続に対して、以前にネゴシエートされた任意の伝送制御プロトコル・オプションを保存することをさらに前記トランスペアレント性能拡張プロキシに実行させる、請求項１０ないし１３のいずれか一項に記載のコンピュータ・プログラム。
【請求項１５】
送信元デバイスと宛先デバイスとの間に配置するためのトランスペアレント性能拡張プロキシであって、
前記宛先デバイスに転送されることになるパケットであって、前記送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するためのプロセッサと、
前記パケットのコピーを記憶するためのメモリと
を備え、
前記パケットに対する伝送制御プロトコル接続セットアップ段階の間、前記プロセッサは、伝送制御プロトコル接続セマンティクスを保存し、
前記パケットに対する伝送制御プロトコル・データ転送段階の間、前記プロセッサは、前記宛先デバイスに対して前記送信元デバイスになりすまし、前記送信元デバイスに対して前記宛先デバイスになりすますことにより伝送制御プロトコルを実行して、前記パケットを前記宛先デバイスに、前記保存されるパケット・ヘッダ情報によって伝送し、
前記プロセッサは、前記伝送制御プロトコル接続セットアップ段階の間の、前記送信元デバイスと前記宛先デバイスとの間の接続の確立の際に、前記接続を前記トランスペアレント性能拡張プロキシでローカルに終結させ、前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の接続を生成する、トランスペアレント性能拡張プロキシ。
【請求項１６】
同期確認応答が前記宛先デバイスから返るのを待ち、前記送信元デバイスと前記宛先デバイスとの間の接続の終結を、前記送信元デバイスおよび前記宛先デバイスの両方が、前記送信元デバイスと前記宛先デバイスとの間の前記接続に対する、前記送信元デバイスおよび前記宛先デバイスのそれぞれの接続確立シーケンスを完了するまで防止することにより、前記伝送制御プロトコル接続セマンティクスは、前記伝送制御プロトコル接続セットアップ段階の間保存される、請求項１５に記載のトランスペアレント性能拡張プロキシ。
【請求項１７】
前記プロセッサは、前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の前記接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の前記接続に対して、前記送信元デバイスと前記宛先デバイスとの間で、前記送信元デバイスと前記宛先デバイスとの間の前記接続に対して、以前にネゴシエートされた任意の伝送制御プロトコル・オプションを保存する、請求項１５または１６に記載のトランスペアレント性能拡張プロキシ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には情報処理に関し、特に、性能拡張プロキシ（performance-enhancing proxy）のためのハイブリッド手法に関する。
【背景技術】
【０００２】
伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）を、ワイヤレス・ネットワークを介して使用する際の根本的な問題は、パケット損失をネットワーク輻輳の兆候と解釈することによるＴＣＰのデフォルトの挙動である。この想定は、パケット損失が主にルータでのバッファリング制限により引き起こされる、ワイヤード・ネットワークでは有用である。一方で、この想定は、ワイヤレス・ネットワークでは問題を引き起こす。ワイヤレス・ネットワークでは、パケット損失が、フェージング、減衰、およびコリジョンなどの問題点、大気を伝送チャネルとして使用することに特有の問題に起因して起こる場合があるからである。これらのパケット損失は、ワイヤレス・チャネルを十分に利用されないままにして、性能を不必要に制約する場合がある。
【０００３】
例えば、この問題を軽減することを、以下の２つの手法、すなわち
（ａ）エンド・ホストＴＣＰプロトコル・スタックを修正すること、または、
（ｂ）性能拡張プロキシとして知られているミドルボックスを、ワイヤレス・リンクの近くに挿入すること
によって、パケット損失を輻輳制御から切り離すことにより行うための手法が存在している。
【０００４】
第１の手法は、展開するのが困難である。これは、ワイヤレス・リンクを利用するクライアントおよびサーバをすべてアップグレードすること、典型的には、多種多様のモバイル・デバイスおよびサーバ・オペレーティング・システムに起因するきわめて困難なプロセスに依拠するからである。
【０００５】
第２の手法は、展開するのがより容易である。これは、クライアントおよびサーバに対して、漸次に、およびトランスペアレントに行われ得るからである。しかしながら、従来技術で実装されるような第２の手法は、多くの欠陥から不利を招いている。そのような欠陥は、送信器による正しくない挙動を引き起こす場合がある、ＴＣＰ接続のセマンティクスを望ましくない様式で変化させることを含むが、それに限定されない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、トランスペアレント性能拡張プロキシを動作させるための方法、コンピュータ・プログラム、および、トランスペアレント性能拡張プロキシを提供することである。
【課題を解決するための手段】
【０００７】
本原理の態様によれば、送信元デバイスと宛先デバイスとの間のトランスペアレント性能拡張プロキシを動作させるための方法が提供される。方法は、宛先デバイスに転送されることになるパケットであって、送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するステップを含む。方法は、パケットに対する伝送制御プロトコル接続セットアップ段階の間、伝送制御プロトコル接続セマンティクスを保存するステップをさらに含む。さらに、方法は、パケットに対する伝送制御プロトコル・データ転送段階の間、宛先デバイスに対して送信元デバイスになりすまし、送信元デバイスに対して宛先デバイスになりすますことにより伝送制御プロトコルを実行させて、パケットを宛先デバイスに、保存されるパケット・ヘッダ情報によって伝送するステップを含む。
【０００８】
本原理の別の態様によれば、トランスペアレント性能拡張プロキシを動作させるためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含む。プログラム命令は、トランスペアレント性能拡張プロキシに含まれるプロセッサにより、トランスペアレント性能拡張プロキシが、宛先デバイスに転送されることになるパケットであって、送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するように実行可能である。さらに、トランスペアレント性能拡張プロキシに含まれるプロセッサにより実行可能なプログラム命令は、トランスペアレント性能拡張プロキシが、パケットに対する伝送制御プロトコル接続セットアップ段階の間、伝送制御プロトコル接続セマンティクスを保存するようにする。さらに、トランスペアレント性能拡張プロキシに含まれるプロセッサにより実行可能なプログラム命令は、トランスペアレント性能拡張プロキシが、パケットに対する伝送制御プロトコル・データ転送段階の間、宛先デバイスに対して送信元デバイスになりすまし、送信元デバイスに対して宛先デバイスになりすますことにより伝送制御プロトコルを実行して、パケットを宛先デバイスに、保存されるパケット・ヘッダ情報によって伝送するようにする。
【０００９】
本原理のさらに別の態様によれば、送信元デバイスと宛先デバイスとの間に配置するためのトランスペアレント性能拡張プロキシが提供される。プロキシは、宛先デバイスに転送されることになるパケットであって、送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するためのプロセッサを含む。プロキシは、パケットのコピーを記憶するためのメモリをさらに含む。パケットに対する伝送制御プロトコル接続セットアップ段階の間、プロセッサは、伝送制御プロトコル接続セマンティクスを保存する。さらに、パケットに対する伝送制御プロトコル・データ転送段階の間、プロセッサは、宛先デバイスに対して送信元デバイスになりすまし、送信元デバイスに対して宛先デバイスになりすますことにより伝送制御プロトコルを実行して、パケットを宛先デバイスに、保存されるパケット・ヘッダ情報によって伝送する。
【００１０】
これらおよび他の、特徴および利点は、付随する図面とともに読むことになる、それらの特徴および利点の例示的な実施形態の以下の詳細な説明から明らかとなろう。
【００１１】
本開示は、以下の図を参照する、好ましい実施形態の以下の説明での詳細を提供する。
【図面の簡単な説明】
【００１２】
【図１】本原理の実施形態による、本原理が適用され得る例示的な環境１００を示す図である。
【図２】本原理の実施形態による、本原理が適用され得る別の例示的な環境２００を示す図である。
【図３】本原理の実施形態による、図１のトランスペアレント性能拡張プロキシ（ＰＥＰ）１３０、および、図２のＰＥＰ２３０をさらに示す図である。
【図４】本原理の実施形態による、トランスペアレント性能拡張プロキシ（ＰＥＰ）により実行される例示的な方法４００を示す図である。
【図５】本原理の実施形態による、例示的なハイブリッド（分割−スヌープ（Split-Snoop））ＴＣＰハンドシェイク５００を示す図である。
【発明を実施するための形態】
【００１３】
本原理は、性能拡張プロキシのためのハイブリッド手法を対象とする。本明細書で説明する性能拡張プロキシは、送信デバイスと受信デバイスとの中間に配置されることが意図される。本明細書では用語「中間」は、性能拡張プロキシ（ＰＥＰ）のイン・バンド構成（図１）、および、ＰＥＰのサイド・バンド構成（図２）の任意のものを指す。
【００１４】
本願では、以下の用語、すなわち、送信デバイス、送信器、送信元、およびサーバが、本明細書では互換的に使用されるということに留意されたい。本願では、以下の用語、すなわち、受信デバイス、受信器、宛先、クライアント・デバイス、およびクライアントもまた、本明細書では互換的に使用されるということにさらに留意されたい。そのような用語の互換性は、当業者により容易に察知されるものである。
【００１５】
図１は、本原理の実施形態による、本原理が適用され得る例示的な環境１００を示す。環境１００は、サーバ１１０、ワイド・エリア・ネットワーク（ＷＡＮ）１２０、性能拡張プロキシ（ＰＥＰ）１３０、アクセス・ポイント１４０、およびクライアント・デバイス１５０（本明細書では以降、一言で「クライアント」）を含む。ＰＥＰ１３０は、アクセス・ポイント１４０に、ローカル・エリア・ネットワーク（ＬＡＮ）１６０を介して接続される。
【００１６】
環境１００ではＰＥＰ１３０は、イン・バンド構成で接続される。したがってすべてのトラフィックは、ＰＥＰ１３０を通って流れる。ゆえにＰＥＰ１３０は、ＰＥＰ１３０がすべてのパケットをとらえるという点で、ルータと同様である。
【００１７】
図２は、本原理の実施形態による、本原理が適用され得る別の例示的な環境２００を示す。環境２００は、サーバ２１０、ワイド・エリア・ネットワーク（ＷＡＮ）２２０、ルータ２２５、性能拡張プロキシ（ＰＥＰ）２３０、アクセス・ポイント２４０、およびクライアント・デバイス２５０（本明細書では以降、一言で「クライアント」）を含む。ＰＥＰ２３０は、アクセス・ポイント２４０に、ローカル・エリア・ネットワーク（ＬＡＮ）２６０を介して接続される。当然ながら本原理は、図２または３で示す構成に限定されない。例えば図２に関しては、別の実施形態ではＰＥＰ２３０は、ＬＡＮ２６０の代わりに、ワイド・エリア・ネットワーク（ＷＡＮ）に接続される場合がある。さらに別の実施形態ではＰＥＰ２３０は、アクセス・ポイント２４０の内部に組み込まれる場合がある。本明細書で説明した先の構成は、単に例示的なものであり、したがって当業者であれば、ＰＥＰ２３０（および、図３に関して下記で説明するＰＥＰ３３０）が使用され得る、これらおよび他の構成を考えることを、本明細書で提供する本原理の教示を与えられることで、本原理の趣旨を守りながら行うであろう。
【００１８】
環境２００ではＰＥＰ２３０は、サイド・バンド構成で接続される。ルータ２２５は、パケットをＰＥＰ２３０にリダイレクトする。ルータ２２５によるリダイレクションは、例えば、ただし次のものに限定されないが、ＭＡＣ層リライティングまたはトンネリングで実行され得る。したがってＰＥＰ２３０は、ルータ２２５によりそのＰＥＰ２３０にリダイレクトされるトラフィックをとらえるのみである。
【００１９】
図３は、本原理の実施形態による、図１のトランスペアレント性能拡張プロキシ（ＰＥＰ）１３０、および、図２のＰＥＰ２３０をさらに示す。ＰＥＰ１３０／２３０は、他の構成要素にシステム・バス３０２を介して動作可能に結合される、少なくとも１つのプロセッサ（ＣＰＵ）３０４を含む。キャッシュ３０６、読み出し専用メモリ（ＲＯＭ）３０８、ランダム・アクセス・メモリ（ＲＡＭ）３１０、入出力（Ｉ／Ｏ）アダプタ３２０、２つのネットワーク・アダプタ３４１および３４２、ユーザ・インターフェイス・アダプタ３５０、ならびにディスプレイ・アダプタ３６０が、システム・バス３０２に動作可能に結合される。
【００２０】
第１の記憶デバイス３２２、および第２の記憶デバイス３２４が、システム・バス３０２に、Ｉ／Ｏアダプタ３２０により動作可能に結合される。第１の記憶デバイス３２２、および第２の記憶デバイス３２４は、ディスク記憶デバイス（例えば、磁気または光学ディスク記憶デバイス）、ソリッド・ステート磁気デバイス等々の任意のものであり得る。第１の記憶デバイス３２２、および第２の記憶デバイス３２４は、同じタイプの記憶デバイス、または、異なるタイプの記憶デバイスであり得る。
【００２１】
ネットワーク・アダプタ３４１および３４２は、ワイヤード・ネットワーク・アダプタ、またはワイヤレス・ネットワーク・アダプタ、あるいはその両方の任意のものであり得る。すなわちネットワーク・アダプタ３４１および３４２は、同じタイプ（両方ともワイヤード、または両方ともワイヤレス）、または異なるタイプのものであり得る。実施形態では、ネットワーク・アダプタ３４１はワイヤレス・ネットワーク・アダプタであり、ネットワーク・アダプタ３４２はワイヤード・ネットワーク・アダプタである。当然ながら、任意の数のネットワーク・アダプタが、本原理の教示によって、実装形態に応じて使用され得る。
【００２２】
第１のユーザ入力デバイス３５２、第２のユーザ入力デバイス３５４、および第３のユーザ入力デバイス３５６が、システム・バス３０２に、ユーザ・インターフェイス・アダプタ３５０により動作可能に結合される。第１のユーザ入力デバイス３５２、第２のユーザ入力デバイス３５４、および第３のユーザ入力デバイス３５６は、キーボード、マウス、キーパッド、画像取り込みデバイス、動き検知デバイス、マイクロホン、先のデバイスの少なくとも２つの機能性を組み込むデバイス等々の任意のものであり得る。当然ながら、他のタイプの入力デバイスがさらには、本原理の趣旨を守りながら使用され得る。第１のユーザ入力デバイス３５２、第２のユーザ入力デバイス３５４、および第３のユーザ入力デバイス３５６は、同じタイプのユーザ入力デバイス、または、異なるタイプのユーザ入力デバイスであり得る。第１のユーザ入力デバイス３５２、第２のユーザ入力デバイス３５４、および第３のユーザ入力デバイス３５６は、ＰＥＰ１３０／２３０への、およびＰＥＰ１３０／２３０からの情報を、入力および出力するために使用される。
【００２３】
ディスプレイ・デバイス３６２が、システム・バス３０２に、ディスプレイ・アダプタ３６０により動作可能に結合される。
【００２４】
実施形態では、ＰＥＰ１３０／２３０はサーバであり得る。ＰＥＰ１３０／２３０は、例えば、ＷＡＮアクセラレータ、ウェブ・キャッシュ、およびネットワーク・オプティマイザ・アプライアンス／ＷＩＦＩ（Ｒ）アクセラレータ（ＮＯＡ／ＷＡＸ）として実装され得るが、それらに限定されない。
【００２５】
当然ながら、ＰＥＰ１３０／２３０はさらには、当業者により容易に企図されるように、他の要素（示さない）を含む、および、ある決まった要素を省略する場合がある。例えば、様々な他の入力デバイスまたは出力デバイスあるいはその両方が、当業者により容易に理解されるように、ＰＥＰ１３０／２３０に、その特定の実装形態に応じて含まれる場合がある。例えば様々なタイプの、ワイヤレスまたはワイヤードあるいはその両方の、入力または出力あるいはその両方のデバイスが使用され得る。さらに一部の実施形態では、ユーザ直接入力デバイスが省略される場合があり、ユーザ入力は、ネットワーク・アダプタ３４１および３４２の一方または両方によって、リモートで提供される。さらに、様々な構成での追加的なプロセッサ、コントローラ、メモリ等々もまた、当業者により容易に察知されるように利用され得る。ＰＥＰ１３０／２３０のこれらおよび他の変形形態は、本明細書で提供する本原理の教示を与えられることで、当業者により容易に企図される。
【００２６】
図４は、本原理の実施形態による、トランスペアレント性能拡張プロキシ（ＰＥＰ）により実行される例示的な方法４００を示す。トランスペアレントＰＥＰは例えば、図１で示すＰＥＰ１３０、または、図２で示すＰＥＰ２３０であり得る。トランスペアレントＰＥＰは、送信器と受信器との中間に配置される。送信器は例えば、図１で示すサーバ１１０、または、図２で示すサーバ２１０であり得る。受信器は例えば、図１で示すクライアント・デバイス１５０、または、図２で示すクライアント・デバイス２５０であり得る。
【００２７】
ステップ４１０では、接続が送信器と受信器との間で確立されることに応答して、接続を終結させ、ＴＣＰプロトコルを、受信器に対して送信器として、および、送信器に対して受信器として実行させ、２つの接続を有効に作成する。
【００２８】
ステップ４２０では、経路最大伝送ユニット（ＭＴＵ）（path Maximum Transmission Unit）、ＳＡＣＫ、明示的輻輳通知（ＥＣＮ）等々のような、受信器および送信器がネゴシエートしたＴＣＰオプションを保存する。
【００２９】
ステップ４３０では、新しいデータ・パケットを受信することに応答して、新しいデータ・パケットをコピーし、新しいデータ・パケットのコピーをキャッシュし、新しいデータ・パケットのコピーを受信器に転送する。
【００３０】
ステップ４４０では、受信器に転送される新しいデータ・パケットのコピーに対するパケット損失の識別に応答して、キャッシュされている新しいデータ・パケットのコピーを再送する。パケット損失の識別は例えば、重複ＡＣＫ、選択的確認応答（ＳＡＣＫ）ブロック、再送タイムアウト等々によって行われ得る。
【００３１】
ステップ４５０では、受信器に転送される新しいパケットのコピーに対する確認応答（ＡＣＫ）を受信することに応答して、キャッシュされている新しいデータ・パケットのコピーを破棄する。
【００３２】
ステップ４３０に関しては、同じことが、パケットのコピーを「破棄すること」を必然的に含むように説明される。用語「破棄すること」または「破棄する」は、例えば、パケットを除去する、取り消す、削除する、リストから外す、もしくは参照解除する、または、パケットを使用不可能もしくはアクセス不可能にすることの効果を有する、種々のアクションの任意のものを包含する。例としてパケットは、パケットに関連するメモリを割り振り解除し、そのメモリをオペレーティング・システムに返上することにより、または、メモリをメモリ・プールに返上することにより「破棄され」得る。
【００３３】
次に、ＴＣＰシーケンス番号、同期（ＳＹＮ）フラグ、および確認応答（ＡＣＫ）に関して説明する。ＴＣＰは、シーケンス番号を使用して、データの各々のバイトを識別する。シーケンス番号は、データが、例えば、伝送の間の再順序付けまたはパケット損失にかかわらず、適正な意図される順序で再構築され得るように、送信元デバイスおよび宛先デバイスから送信されるバイトの順序を識別する。さらにはシーケンス番号によって、宛先デバイスが、重複パケットを放棄することが可能となる。送信元デバイスと宛先デバイスとの間で交換される初期シーケンス番号（ＩＳＮ）は、任意のものである（例えば、シーケンス予測攻撃を防止する）。ＳＹＮフラグがセットされる（１）場合、これは、実際の第１のデータ・バイトの初期シーケンス番号であり、対応するＡＣＫ内の確認応答される番号は、したがって、このシーケンス番号に１を加えたものである。ＳＹＮフラグがクリアである（０）場合、これは、現在のセッションに対するこのセグメントの第１のデータ・バイトの累算されたシーケンス番号である。ＡＣＫフラグがセットされる（１）場合、ＡＣＫフィールドの値は、受信器が待ち受けられるという次のシーケンス番号であり、そのことは、存する場合にはすべての先行のバイトの受信について確認応答することに役立つ。送信元および宛先により送信される第１のＡＣＫは、他方の初期シーケンス番号自体について確認応答するが、データについては確認応答しない。
【００３４】
次に、性能拡張プロキシに関して説明する。
【００３５】
性能拡張プロキシ（ＰＥＰ）は、多くの形式（リンク・レベル、ＴＣＰレベル、ハイパーテキスト転送プロトコル（ＨＴＴＰ）プロキシ）のものが入手可能であるが、好都合な手法はＴＣＰ層でのものである。これは、すべてのＴＣＰトラフィック（インターネット上のトラフィックの大部分である）の利益になるからである。
【００３６】
ＴＣＰ  ＰＥＰは、２つのカテゴリ、すなわち、分割ＴＣＰおよびスヌープＴＣＰに分けられる。両方とも、ワイヤレス・リンクに対する性能を、異なる形ではあるが改善し、異なる利点および欠点を有する。
【００３７】
分割ＴＣＰの事例では、ＰＥＰは、送信元から宛先への接続を２つの接続に、明示的に、さもなければ暗黙的に分割する。接続を明示的に分割する際には、分割ＴＣＰは、異なるＩＰアドレスおよびＴＣＰポート番号を使用する。接続を暗黙的に分割する際には、ＰＥＰは、各々の方向で、送信元から宛先への接続のエンドポイント（宛先）であるふりをする。すなわちＰＥＰは、同じＩＰアドレスを使用して、宛先に対して送信元に、および、送信元に対して宛先になりすます。分割ＴＣＰのどちらの事例でも、送信元および宛先は、それらの間のＰＥＰの使用を認識するようにされる必要はない。
【００３８】
スヌープＴＣＰの事例では、ＰＥＰは、両方の方向でのＴＣＰセグメントの伝送を、例えば、既存の（非分割）接続でのＡＣＫフィルタリングおよび再構築により制御する。重複ＴＣＰ  ＡＣＫが受信される時、そのような状況は、パケット損失の高い公算と関連するので、対応する失われたパケットが、送信元がパケット損失を何ら知ることのない状態で再送される。
【００３９】
本原理は、分割−スヌープ、ＴＣＰレベル性能拡張プロキシに対するハイブリッド手法を提案するものである。分割−スヌープは、２つの手法の利点の最良の状態、および最小限のセットの欠点を伴う、類のない設計点に到達する特徴の、新規の、および自明でない組合せである。
【００４０】
次に、分割ＴＣＰに関して説明する。
【００４１】
分割ＴＣＰは、明示的に（異なるＩＰアドレスおよびＴＣＰポート番号を使用して）、さもなければ暗黙的に（同じＩＰアドレスを使用し、クライアントに対してサーバに、および、サーバに対してクライアントになりすますことにより）、ＰＥＰでのＴＣＰ接続を終結させる。
【００４２】
分割ＴＣＰは、それが性能を少なくとも４つの形で改善するという点で、以下の利点を有する。
（１）分割ＴＣＰによって、ワイヤレス・リンクに対する、より迅速な損失回復が可能となる。
（２）分割ＴＣＰによって、送信器の輻輳ウィンドウが、より短いラウンドトリップ時間に起因して、より迅速に増大することが可能となる。
（３）分割ＴＣＰは、元の受信器より大きな受信ウィンドウを告知することにより、送信器が利用可能なバッファ空間のサイズを増加させる。
（４）分割ＴＣＰによって、利用可能な、ある決まったＴＣＰ機能性を行うことによる（例えば、ワイヤレス構成要素に対する選択的確認応答（ＳＡＣＫ）、または、ワイヤード・リンクに対する大きなウィンドウを可能にすることによる）、ネットワークの部分に対するプロトコル挙動の改善が可能となる。
【００４３】
分割ＴＣＰは、以下の欠点を有する。
（１）分割ＴＣＰは、ＴＣＰ接続のセマンティクスを、２つの重要な形で変化させる。
（ａ）接続失敗エラー・コードが（例えば、応答エラーなしとなるものを接続リセット・エラーに変換することにより）変化させられ、そのことが、送信器による正しくない挙動を引き起こす場合がある。
（ｂ）データ確認応答が、ＰＥＰにより送信器に、クライアントにより確認応答される前に返され、そのことが、受信器が情報を得たと、受信器が得なかった時に送信器が確信することにつながり、やはり潜在的に、正しくない送信器挙動につながる。
（２）分割ＴＣＰは、スヌープＴＣＰより多くの処理およびメモリ・リソースを要する。
（３）分割ＴＣＰは、検出するのが相対的に容易であり、なぜならば、外側の観察者に対して、分割ＴＣＰはＴＣＰパケット（例えば、シーケンス番号、ＴＣＰオプション、パケット・チェックサム等々）を修正するからである。
【００４４】
次に、スヌープＴＣＰに関して説明する。
【００４５】
スヌープＴＣＰは、ＴＣＰ会話を監視し、いつパケットが失われたかを（元の送信器が行う前に）決定し、そのパケットを送信器に代わって再送する、インテリジェントなＴＣＰ認識パケット・キャッシュである。
【００４６】
スヌープＴＣＰは、受信器に対して、送信器が受信器に対するよりも近いので、このことによって、より迅速な損失回復、およびしたがって、より良好な性能が可能となる。スヌープＴＣＰは、ＴＣＰ接続を終結させない。
【００４７】
スヌープＴＣＰは、以下の利点を有する。
（１）スヌープＴＣＰによって、ワイヤレス・リンクに対する、より迅速な損失回復が可能となる。
（２）スヌープＴＣＰは、いかなるＴＣＰセマンティクスも破らない。
（３）スヌープＴＣＰは、分割ＴＣＰより少ないリソース（ＣＰＵおよびメモリ／状態）を要する。
（４）スヌープＴＣＰは、検出するのがより難しく、なぜならばスヌープＴＣＰは、ＴＣＰ接続挙動に対して、引き起こす変化がより少ないからである。
【００４８】
スヌープＴＣＰは、以下の欠点を有する。
（１）接続は、分割ＴＣＰと比較して、スヌープによってより長いレイテンシを経ることになる。
（２）スヌープＴＣＰは、分割ＴＣＰと比較して、より低い性能ゲインを示す。
【００４９】
分割ＴＣＰおよびスヌープＴＣＰの関連性のある態様を説明したが、次に、本原理の実施形態によって分割−スヌープをさらに説明する。
【００５０】
上記で記したように、本原理は、分割−スヌープ、ＴＣＰレベル性能拡張プロキシに対するハイブリッド手法を提案する。有利には分割−スヌープは、２つの手法の利点の最良の状態、および欠点の最小限の一団を伴う、類のない設計点を提供する。
【００５１】
例として、ただし全く網羅的ではなく、本願では以下のことを述べる。スヌープＴＣＰと同様に、分割−スヌープは、パケットをキャッシュし、それらのパケットを送信器の代わりに、必要な時に再送する。さらにはスヌープＴＣＰと同様に、分割−スヌープは、接続セットアップ・セマンティクスを保存することを、接続を、両方の側が、それらの側の接続確立シーケンスを完了するまで終結させないことにより行う。加えてスヌープＴＣＰと同様に、分割−スヌープは、送信器により送信されるデータについて、データが受信器に到着する前に確認応答する。
【００５２】
したがって、実施形態では分割−スヌープは、以下の利点を有し得る。
（１）分割−スヌープによって、ワイヤレス・リンクに対する、より迅速な損失回復が可能となる。
（２）分割−スヌープによって、送信器の輻輳ウィンドウが、より短いラウンドトリップ時間に起因して、より迅速に増大することが可能となる。
（３）分割−スヌープは、スヌープＴＣＰは行うが、分割ＴＣＰは行わないように、スヌープＴＣＰの接続セットアップ・セマンティクスを保存する（例えば分割−スヌープは、ＴＣＰ接続失敗エラー・コードを変化させず、データＡＣＫを、ＰＥＰにより送信元に、宛先により確認応答される前に返すこともなく、接続を、両方の側が、それらの側の接続確立シーケンスを完了するまで終結させることもない）。
（４）分割−スヌープは、分割ＴＣＰより少ないＣＰＵおよびメモリ・リソースを要する。
（５）分割−スヌープは、分割ＴＣＰより検出するのが難しい。分割−スヌープを検出することは、より複雑な動態を理解することを要する。
（６）分割−スヌープは、分割ＴＣＰに対して、より良好な相互運用性（例えば、有効性のための機会）を提供する。例えば分割−スヌープは、パケット・シーケンスを乱すことが、分割ＴＣＰより少ない。さらに分割−スヌープは、分割ＴＣＰより、予期されない相互作用に対して堅牢である。
（７）分割−スヌープは、分割ＴＣＰに対して、同等の、または匹敵する性能を有する。
【００５３】
実施形態では分割−スヌープは、以下の欠点を有し得る。
（１）分割−スヌープは、分割ＴＣＰは行うが、スヌープＴＣＰは行わないように、ＴＣＰのデータ転送セマンティクスを破る。送信器ＴＣＰスタックは、データがクライアントに届けられたと、データが届けられなかった場合がある時に判断することになる。
（２）分割−スヌープは、スヌープＴＣＰより多くのＣＰＵおよびメモリ・リソースを要する。
（３）分割−スヌープは、スヌープＴＣＰより検出するのが容易である。
【００５４】
図５は、本原理の実施形態による、例示的なハイブリッド（分割−スヌープ）ＴＣＰハンドシェイク５００を示す。
【００５５】
ステップ５１０では、ＰＥＰ１３０／２３０により、サーバ１１０／２１０により送信されるシーケンス番号Ｘを傍受する。
【００５６】
ステップ５２０では、ＰＥＰ１３０／２３０により、シーケンス番号Ｘをクライアント・デバイス１５０／２５０に転送する。
【００５７】
ステップ５３０では、ＰＥＰ１３０／２３０により、クライアント・デバイス１５０／２５０により送信されるシーケンス番号Ｙ、ＡＣＫ＝Ｘ＋１を傍受する。
【００５８】
ステップ５４０では、ＰＥＰ１３０／２３０により、シーケンス番号＝ｙ、ＡＣＫ＝Ｘ＋１をサーバ１１０／２１０に転送する。
【００５９】
ステップ５５０では、ＰＥＰ１３０／２３０から、ＡＣＫ＝Ｙ＋１をクライアント・デバイス１５０／２５０に送信する。
【００６０】
ステップ５６０では、ＰＥＰ１３０／２３０により、サーバ１１０／２１０からのＡＣＫ＝Ｙ＋１を傍受する。
【００６１】
分割−スヌープはこのように、実装形態の大部分に関しての分割ＴＣＰの性能利益、および、スヌープＴＣＰのセマンティクの利益の大部分を実現する、類のない設計点を提供する。
【００６２】
このように、分割−スヌープで具現化されるハイブリッド手法は、有利には積極的に、すべてのパケット・ヘッダを保存する。分割−スヌープは、同じヘッダ情報を使用して、検出を回避する。ゆえに、ヘッダ情報の変換（translation）は必要でない。伝送制御プロトコル（ＴＣＰ）を必然的に含む実施形態では、パケット・ヘッダ情報は、例えば、以下のもの、すなわち、少なくとも１つのＴＣＰポート番号（例えば、送信元ポート番号または宛先ポート番号あるいはその両方）、ＴＣＰシーケンス番号、ＴＣＰヘッダ・オプション（例えば、オプション種類フィールド、オプション長さフィールド、およびオプション日付フィールドの、１つまたは複数での情報）、ＴＣＰ明示的輻輳通知情報等々を含むが、それらに限定されない。インターネット・プロトコル（ＩＰ）を必然的に含む実施形態では、パケット・ヘッダ・オプションは、例えば、以下のもの、すなわち、少なくとも１つのＩＰアドレス（例えば、送信元アドレスまたは宛先アドレスあるいはその両方）、ＩＰホップ・カウント、ＩＰ生存時間（ＴＴＬ）、ＩＰタイプ・オブ・サービス（別名、差別化サービス・コード・ポイント（ＤＳＣＰ））、ＩＰ明示的輻輳通知情報等々を含むが、それらに限定されない。媒体アクセス制御（ＭＡＣ）を必然的に含む実施形態では、パケット・ヘッダ・オプションは、例えば、以下のもの、すなわち、ＭＡＣアドレス、仮想ローカル・エリア・ネットワーク・タグ等々を含むが、それらに限定されない。
【００６３】
実施形態では、変換することなく保存されるパケット・ヘッダ情報は、ＴＣＰヘッダのすべての１０個の必須フィールドで指定されるすべての情報を含む。実施形態では、トランスレーションなしで保存されるパケット・ヘッダ情報は、ヘッダの少なくともすべての必須オプション・フィールドで指定されるすべての情報をさらに含む。
【００６４】
本願では、ＴＣＰプロトコル動作、ゆえに、ＰＥＰ１３０／２３０の動作を、接続セットアップ段階、データ転送段階、および接続終結段階を必然的に含むように説明する場合があるということに留意されたい。送信元とＰＥＰとの間の、および、ＰＥＰと宛先との間の接続は、データ転送段階に入ることに先立つ接続セットアップ段階に属する、図５で示すハイブリッド（分割−スヌープ）ＴＣＰハンドシェイク５００で確立される。データ転送段階の間のデータ伝送の完了の後、接続終結段階は、前述の接続を閉じ、その接続に対するすべての割り振られたリソースを解放する。
【００６５】
分割−スヌープで具現化されるハイブリッド手法は、接続セットアップ段階（別名、接続確立段階）の間、スヌープＴＣＰのように挙動を行う。ゆえに分割−スヌープは、ＴＣＰ接続セマンティクスを、接続セットアップ段階の間保存する。したがって例えば分割−スヌープは、同期確認応答（ＳＹＮ−ＡＣＫ）が宛先デバイスから返ってくるのを待ち、送信元デバイスと宛先デバイスとの間の接続の終結を、送信元デバイスおよび宛先デバイスの両方が、それらの送信元デバイスおよび宛先デバイスのそれぞれの接続確立シーケンス（すなわち、送信元デバイスと宛先デバイスとの間の全二重通信に対するＳＹＮ、ＳＹＮ−ＡＣＫ、ＡＣＫ）を完了するまで防止する。
【００６６】
さらに、分割−スヌープで具現化されるハイブリッド手法は、接続終結段階の間、分割ＴＣＰのように挙動を行う。ゆえに分割−スヌープはさらには、ＴＣＰ接続セマンティクスを、接続終結段階の間保存する。すなわち、データ転送段階の間のデータ伝送の完了の後、接続終結段階は、送信元デバイスとプロキシとの間の接続、および、プロキシと宛先デバイスとの間の接続を閉じ、それらの接続に対するすべての割り振られたリソースを解放する。
【００６７】
さらには、分割−スヌープで具現化されるハイブリッド手法は、データ転送段階の間、分割ＴＣＰのように挙動を行う。したがって分割−スヌープは、データ転送段階の間、宛先デバイスに対して送信元デバイスになりすまし、送信元デバイスに対して宛先デバイスになりすますことにより伝送制御プロトコルを実行させる。そのようななりすまし（masquerading）の結果として、分割−スヌープによって、送信器の輻輳ウィンドウが、より短いラウンドトリップ時間に起因して、より迅速に増大することが可能となる。すなわち分割−スヌープは、送信元デバイスの輻輳ウィンドウ・サイズの増大レートを、より短いラウンドトリップ時間に起因して増加させる。より短いラウンドトリップ時間は、ＰＥＰが、送信元デバイスより宛先デバイスに近いことに起因する。このように、実施形態では分割−スヌープは、分割ＴＣＰに対して利用可能な同じ性能改善を実現することが可能である。
【００６８】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるための、コンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体（または、複数の媒体）を含み得る。
【００６９】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または、上述のものの任意の適した組合せであり得るが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル・バーサタイル・ディスク（ＤＶＤ）、memory stick（Ｒ）、フロッピィ（Ｒ）・ディスク、命令が記録されるパンチ・カードまたは溝内の一段高い構造などの機械的に符号化されるデバイス、および、上述のものの任意の適した組合せを含む。コンピュータ可読記憶媒体を、本明細書では、本質的には、電波もしくは他の自由伝搬する電磁波、導波路もしくは他の伝送媒体を介して伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、または、電線を介して伝送される電気信号などの、一時的な信号であると解釈すべきではない。
【００７０】
本明細書で説明するコンピュータ可読プログラム命令は、それぞれのコンピューティング／処理デバイスにコンピュータ可読記憶媒体から、あるいは、外部コンピュータまたは外部記憶デバイスに、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを介してダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備え得る。各々のコンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスが、コンピュータ可読プログラム命令をネットワークから受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイスの内部のコンピュータ可読記憶媒体での記憶のために転送する。
【００７１】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定・データ、または、１つもしくは複数のプログラミング言語の任意の組合せで書き表される、ソース・コードもしくはオブジェクト・コードのいずれかであり得るものであり、それらのプログラミング言語は、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋、または類するものなどのオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語または同様のプログラミング言語などの従来型の手続き型プログラミング言語を含む。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アローン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上、および部分的にリモート・コンピュータ上で、または、全体的にリモート・コンピュータもしくはサーバ上で実行し得る。後の方のシナリオではリモート・コンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介して接続され得るものであり、または接続は、外部コンピュータに対して（例えば、インターネットを介して、インターネット・サービス・プロバイダを使用して）行われ得る。一部の実施形態では、例えば、プログラマブル論理回路網、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路網が、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電子回路網をパーソナライズすることにより、コンピュータ可読プログラム命令を実行し得る。
【００７２】
本発明の態様を、本明細書では、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の、フローチャート例示またはブロック図あるいはその両方を参照して説明している。フローチャート例示またはブロック図あるいはその両方の各々のブロック、および、フローチャート例示またはブロック図あるいはその両方でのブロックの組合せが、コンピュータ可読プログラム命令により実装され得るということが理解されよう。
【００７３】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定される機能／行為を実装するための手段を生成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はさらには、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定される機能／行為の態様を実装する命令を含む製造品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに、特定の様式で機能するように指図するものであってもよい。
【００７４】
コンピュータ可読プログラム命令はさらには、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定される機能／行為を実装するように、コンピュータ実装プロセスを生み出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【００７５】
図でのフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を例示するものである。この点に関して、フローチャートまたはブロック図での各々のブロックは、指定される論理機能を実装するための１つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または小部分を表し得る。一部の代替的実装形態では、ブロックで記される機能は、図で記される順序から外れて行われる場合がある。例えば、連続して示す２つのブロックは、実際には、実質的に同時に実行される場合があり、またはブロックは時には、必然的に含まれる機能性に応じて、逆の順序で実行される場合がある。ブロック図またはフローチャート例示あるいはその両方の各々のブロック、および、ブロック図またはフローチャート例示あるいはその両方でのブロックの組合せは、指定される機能もしくは行為を実行する、または、専用ハードウェアおよびコンピュータ命令の組合せを実行する、専用ハードウェア・ベースのシステムにより実装され得るということが、さらには留意されよう。
【００７６】
本明細書で、本原理の「１つの実施形態」または「実施形態」、および、それらの他の変形に言及することは、実施形態に関して説明した、特定の特徴、構造、特性等々が、本原理の少なくとも１つの実施形態に含まれるということを意味する。したがって、本明細書の全体を通して様々な場所に出現する、語句「１つの実施形態で」または「実施形態で」、および、任意の他の変形の出現は、必ずしもすべてが同じ実施形態に言及しているわけではない。
【００７７】
例えば「Ａ／Ｂ」、「ＡまたはＢあるいはその両方」、および「ＡおよびＢの少なくとも１つ」の事例での、以下の「／」、「〜または…あるいはその両方」、および「〜の少なくとも１つ」のいずれかの使用は、第１の列挙される選択肢（Ａ）のみの選択、または、第２の列挙される選択肢（Ｂ）のみの選択、または、両方の選択肢（ＡおよびＢ）の選択を包含することが意図されるということを察知すべきである。さらなる例として、「Ａ、Ｂ、またはＣ、あるいはその組合せ」、および「Ａ、Ｂ、およびＣの少なくとも１つ」の事例では、そのような言い回しは、第１の列挙される選択肢（Ａ）のみの選択、または、第２の列挙される選択肢（Ｂ）のみの選択、または、第３の列挙される選択肢（Ｃ）のみの選択、または、第１および第２の列挙される選択肢（ＡおよびＢ）のみの選択、または、第１および第３の列挙される選択肢（ＡおよびＣ）のみの選択、または、第２および第３の列挙される選択肢（ＢおよびＣ）のみの選択、または、すべての３つの選択肢（ＡおよびＢおよびＣ）の選択を包含することが意図される。このことは、当技術分野および関係する技術分野の当業者により容易に明らかなように、同じように多くの列挙される項目に対して拡大され得る。
【００７８】
システムおよび方法の好ましい実施形態（例示的であり、限定的ではないことが意図される）を説明したが、変更および変形が、当業者により、上記の教示に鑑みて行われ得るということが留意される。したがって、添付の特許請求の範囲により概説されるような本発明の範囲内のものである変更が、開示する特定の実施形態において行われ得るということを理解すべきである。このように本発明の態様を、特許法により要される詳細および特殊性とともに説明したが、何が請求され、特許証により保護されるように所望されるかは、添付の特許請求の範囲で論述される。
【図１】
0006541697.tif 000002
【図２】
0006541697.tif 000003
【図３】
0006541697.tif 000004
【図４】
0006541697.tif 000005
【図５】
0006541697.tif 000006