(57)【特許請求の範囲】
【請求項１】
ネットワークを介して、アプリケーションと関連づけられたデータパケットを、データサーバに送信するコンピュータ実装方法であって、
前記データパケットが前記データサーバに到達するために通過する前記ネットワークにおける、第１の複数のデバイスを含むネットワーク接続を介して、前記データパケットを前記データサーバに送信する段階を含み、ネットワークスタックは、アプリケーションによる要求に応答して、前記ネットワーク接続の開始を実行し、
前記ネットワークスタックと一体化されたライブラリにおいて、前記アプリケーションによるリクエストに応答して前記ネットワークスタックが開始した前記ネットワーク接続に関する機能性要件を受信する段階と、
ネットワークの前記機能性要件の受信に応答して、前記機能性要件を示し、第２のネットワーク接続を決定することによって前記機能性要件を提供すべく前記ネットワークを構成するようにネットワークコントローラに命令する制御パケットを送信するように前記ネットワークスタックに命令する段階であって、前記第２のネットワーク接続は、前記ネットワークにおける第２の複数のデバイスと、前記機能性要件を供給するサービスプロバイダとを含み、前記データパケットは前記データサーバに到達するために前記第２のネットワーク接続を通過する、段階とを備え、
前記データパケットが送信される間に前記制御パケットが送信される、方法。
【請求項２】
前記ネットワーク内の転送デバイスに前記制御パケットを送信する段階と、
前記ネットワーク接続を介しての前記データサーバへの送信のために、送信された前記データパケットを前記転送デバイスで受信する段階とをさらに備え、
前記転送デバイスは前記制御パケットに認証情報を追加する、
請求項１に記載の方法。
【請求項３】
機能性モジュールが前記ネットワークに接続され、
前記転送デバイスが前記機能性モジュールのアドレスを前記制御パケットに追加する段階と、
前記転送デバイスが認証情報を有する前記制御パケットを前記機能性モジュールに転送する段階であって、前記制御パケットを受信した後に、前記機能性モジュールは、前記制御パケットに基づいて前記第２のネットワーク接続を決定すべく、前記ネットワークを構成するようにネットワークコントローラに命令する、段階とをさらに備える、
請求項２に記載の方法。
【請求項４】
転送デバイス内の機能性モジュールによって前記制御パケットを受信する段階と、
前記機能性要件を提供すべく前記第２のネットワーク接続を決定するように、前記制御パケットを使用する前記機能性モジュールによって、前記ネットワークコントローラに命令する段階とをさらに備える、
請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記機能性要件が、ユーザによって操作されている他のアプリケーションを通じて受信される、
請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記アプリケーションが前記ネットワーク接続を介して前記データパケットの送信を開始する前に、前記機能性要件がユーザから受信される、
請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記データパケットが前記ネットワーク接続を介して送信されている間に、ユーザによって操作された他のアプリケーションを通じて前記機能性要件が受信される、
請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記ライブラリによって、前記ネットワーク接続に関する第２の機能性要件を受信する段階、および、
前記第２の機能性要件の受信に応答して、他の制御パケットが前記ネットワーク接続に関する前記機能性要件および前記第２の機能性要件を示すように、前記制御パケットを送信する段階をさらに備える、
請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記ライブラリによって、前記ネットワーク接続を使用する第２のアプリケーションから、前記ネットワーク接続に関する第２の機能性要件を受信する段階と、
前記ネットワーク接続に関する第１の前記機能性要件と前記第２の機能性要件との両方を示す他の制御パケットであって、前記第１の機能性要件と前記第２の機能性要件との両方を提供するように前記ネットワークに命令する、他の制御パケットを送信する段階とをさらに備える、
請求項１から８のいずれか一項に記載の方法。
【請求項１０】
前記機能性要件を終了させるための前記アプリケーションからの終了リクエストの受信まで前記制御パケットを定期的に再送する段階と、
ある期間、制御パケットが送信されない場合、それ以降前記機能性要件を提供しないように前記ネットワークコントローラが前記ネットワークを再構成する段階とをさらに備える、
請求項１から９のいずれか一項に記載の方法。
【請求項１１】
ネットワークスタックを使用してアプリケーションを実行するよう構成されたユーザデバイスから、ネットワークを介してデータサーバに、前記アプリケーションと関連づけられたデータパケットを送信するシステムであって、
前記データパケットが前記データサーバに到達するために通過する前記ネットワークにおける、第１の複数のデバイスを含むネットワーク接続を介して、前記データパケットを前記データサーバに送信するように構成される第１のネットワーク接続であって、前記ネットワークスタックが、アプリケーションによる要求に応答して、前記ネットワーク接続の開始を実行する、第１のネットワーク接続と、
第１のコンピューティングデバイス上に実装されたライブラリモジュールであって、前記アプリケーションによるリクエストに応答して前記ネットワークスタックが開始した前記ネットワーク接続に関する機能性要件を受信し、
前記機能性要件の前記受信に応答して、前記機能性要件を示す制御パケットを送信するように前記ネットワークスタックに通知するよう構成され、前記データパケットが送信される間に前記制御パケットが送信される、ライブラリモジュールと、
前記ネットワークを介して前記第１のコンピューティングデバイスに接続された第２のコンピューティングデバイスと、
前記第２のコンピューティングデバイス上に実装され、前記制御パケットに基づいて、前記機能性要件を提供すべく前記ネットワークを構成するようにネットワークコントローラに命令するよう構成された機能性モジュールとを備え、
機能性要件を提供すべく前記ネットワークを構成することは、第２のネットワーク接続を決定することを含み、前記第２のネットワーク接続は、前記ネットワークにおける第２の複数のデバイスと、前記機能性要件を供給するサービスプロバイダとを含み、前記データパケットは前記データサーバに到達するために前記第２のネットワーク接続を通過する、
システム。
【請求項１２】
前記制御パケットを受信し、
前記ネットワーク接続を介した送信のために前記アプリケーションから送信される前記データパケットを受信し、および、
前記制御パケットに認証情報を追加するよう構成された転送デバイスをさらに備える、
請求項１１に記載のシステム。
【請求項１３】
前記転送デバイスはさらに、
認証情報を有する前記制御パケットを前記ネットワークへ接続された前記機能性モジュールに転送し、
前記機能性モジュールのアドレスを前記制御パケットに追加するよう構成される、
請求項１２に記載のシステム。
【請求項１４】
前記転送デバイスが前記ネットワークのエッジに配置され、ローカルエリアネットワーク上の前記ユーザデバイスに接続される、
請求項１２または１３に記載のシステム。
【請求項１５】
前記制御パケットを受信するよう構成された転送デバイスをさらに備え、前記転送デバイスは、前記ネットワーク接続に関する前記機能性要件を提供すべく前記ネットワークを構成するように、前記制御パケットを使用して前記ネットワークコントローラに命令するよう構成された第２の機能性モジュールを有する、
請求項１１から１４のいずれか一項に記載のシステム。
【請求項１６】
前記ライブラリモジュールがさらに、
前記ネットワーク接続を使用する第２のアプリケーションから、前記ネットワーク接続に関する第２の機能性要件を受信し、
前記第２の機能性要件の受信に応答して、前記機能性要件と前記第２の機能性要件とを示す他の制御パケットを送信するように前記ネットワークスタックに通知するよう構成される、
請求項１１から１５のいずれか一項に記載のシステム。
【請求項１７】
前記ライブラリモジュールがさらに、
前記機能性要件を終了させるための前記アプリケーションからの終了リクエストの受信まで前記制御パケットを定期的に再送するように前記ネットワークスタックに通知するよう構成され、
前記機能性モジュールがさらに、
ある期間制御パケットの再送が受信されない場合、それ以降前記機能性要件を提供しないように前記ネットワークを再構成するように前記ネットワークコントローラに命令するよう構成される、
請求項１１から１６のいずれか一項に記載のシステム。
【請求項１８】
前記ネットワークが、プライベートなサービスプロバイダネットワークであり、前記データサーバが、他の公衆ネットワークを通じて前記ネットワークに接続される、
請求項１１から１７のいずれか一項に記載のシステム。
【請求項１９】
ネットワークを介してデータパケットを送信する、請求項１から１０のいずれか一項に記載の方法を実行する少なくとも１つの機械によって実行可能な命令を含む、
プログラム。
【請求項２０】
ネットワークを介して、アプリケーションと関連づけられたデータパケットを送信するコンピュータ実装方法であって、
前記ネットワークにおける第１の複数のデバイスを含むネットワーク接続を介して、前記データパケットをデータサーバに送信する段階と、
ネットワークスタックと一体化されたライブラリで、前記アプリケーションによるリクエストに応答して前記ネットワークスタックが開始した前記ネットワーク接続に関する機能性要件を受信する段階と、
前記機能性要件の受信に応答して、前記ライブラリから、前記機能性要件を示す制御パケットであって、第２のルートを生成するように機能性モジュールに命令する制御パケットを送信する段階であって、前記第２のルートは複数の第２のデバイスと、前記機能性要件を供給するサービスプロバイダとを含み、前記データパケットは前記データサーバへと前記第２のルートを通過する、段階とを備え、前記データパケットが送信される間に前記制御パケットが送信される、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本分野は概して通信ネットワークに関する。
【背景技術】
【０００２】
通信ネットワークは、例えば、２つの地理的に離れた位置間でデータが転送されることを可能にするネットワーク接続を提供し得る。ネットワークユーザは、ネットワーク上のサーバへ、またはサーバからデータを転送すべくネットワーク接続を使用し得る。単にデータを転送することに加えて、ネットワーク接続は、おそらく特定レベルのサービスに対応すべく、他の機能性を提供し得る。例えば、ネットワークは特定の帯域幅容量または輻輳制御機能を提供し得る。接続を介して転送されるデータを変更する何らかの機能性が適用され得る。例えば、トランスポート制御プロトコル（ＴＣＰ）リクエストのソースを秘匿するＴＣＰプロキシが適用され得る。
【０００３】
これらの機能性は、ユーザによって指定され得る。一例において、ユーザは、ネットワーク接続に割り当てられた容量が、接続におけるトラフィック負荷レベルなどの基準に基づいて動的に変化することを指定し得る。ネットワーク機能性に関するユーザ要件を受信すべく、いくつかの通信ネットワークは、その接続に関する機能性要件をユーザが入力するためのアプリケーションプロトコルインタフェース（ＡＰＩ）を提供する。
【０００４】
接続に関する特定の機能性要件を入力するためのＡＰＩを使用することで、ネットワークにユーザの要件を通知し得るが、そのようなＡＰＩを使用しなければならないことは、ユーザには面倒であり得る。
【発明の概要】
【０００５】
実施形態において、コンピュータに実装される方法は、通信ネットワークを介してユーザデータを送信する。方法は、ネットワークスタックと一体化されたライブラリにおいて、ネットワーク接続に関するネットワーク機能性要件の仕様を受信する段階を含む。ネットワークスタックは、アプリケーションによるリクエストに応答してネットワーク接続を開始し得る。ネットワーク機能性要件の仕様の受信に応答して、ライブラリは、制御パケットを送信するようにネットワークスタックに命令し得る。ネットワークは、ネットワーク接続に関するネットワーク機能性要件を提供すべく、制御パケットに基づいて、構成される。
【０００６】
システムおよびコンピュータプログラム製品の実施形態も開示される。
【０００７】
本発明のさらなる実施形態、特徴、および利点、ならびに様々な実施形態の構造および動作が、複数の添付図面を参照して以下に詳細に説明される。
【図面の簡単な説明】
【０００８】
本明細書に組み込まれて本明細書の一部を形成する添付図面は本開示を図示し、説明と合わせて、さらに、本開示の複数の原理を説明し、当業者が本開示を作成し使用することを可能にするのに役立つ。
【０００９】
【図１】ネットワーク接続に関する機能性要件をネットワークスタックから提供するためのシステムを図示する図である。
【００１０】
【図２】ユーザからの制御パケットおよびデータパケットの送信例を図示する図である。
【００１１】
【図３】ネットワーク接続に関するネットワーク機能性を提供する例を図示する図である。
【００１２】
【図４】ネットワーク接続に関するネットワーク機能性をリクエストする方法を図示するフローチャートである。
【００１３】
【図５】ネットワーク接続に関する機能性を提供するようにネットワークを構成する方法を図示するフローチャートである。
【００１４】
【図６】ネットワーク接続に関するネットワーク機能性をリクエストする方法を図示するフローチャートである。
【００１５】
【図７】ネットワーク接続に関するネットワーク機能性をリクエストする方法を図示するフローチャートである。
【００１６】
ある要素が最初に現れる図面は、概して、対応する参照番号の左端の１または複数の桁の数字によって示される。複数の図面において、同じ参照番号は同一のまたは機能的に類似する要素を示すことがある。
【発明を実施するための形態】
【００１７】
上述のように、ユーザがネットワーク接続に関する固有の機能性を要求するたびにＡＰＩを通じてユーザによってネットワークを構成することが、オーバヘッドを引き起こし得る。ユーザは、アプリケーションに関する複数の機能性を要求することがある。ユーザはまた、ネットワークを介してデータを送信する異なるタイプのユーザアプリケーションに関する異なる機能性を要求することがある。
【００１８】
ネットワーク接続に関するユーザの機能性要件を提供するようにネットワークを効率的に構成すべく、ここで開示されているいくつかの実施形態はユーザのコンピュータにインストールされたライブラリ、特にコンピュータのネットワークスタックを使用する。ライブラリはネットワークを構成すべく制御パケットを送信する。ユーザまたはユーザアプリケーションは、ネットワーク接続に関する固有の機能性を提供すべくライブラリを構成し得る。機能性のリクエスト後、ユーザアプリケーションがネットワーク接続を介してアプリケーションデータを送信する間、ライブラリはネットワーク接続に関する機能性をリクエストすべく制御パケットを生成するであろう。
【００１９】
制御パケットの受信後、ネットワークコントローラは、ネットワーク接続に関する要求される機能性を提供すべくネットワークに必要な変更を行う。例えば、ユーザがネットワーク接続に関してＴＣＰプロキシを要求する場合、ネットワークコントローラは接続をＴＣＰプロキシサーバにルート変更し得る。
【００２０】
複数の実施形態において、制御パケットはユーザによって要求された機能性のタイプを示す情報を含む。ネットワークコントローラは、この情報を使用して、要求された機能性を提供し得る。制御パケット内の情報は、例えば、ＴＣＰプロキシまたは動的サービスレベルを提供するようにネットワークを構成するようにネットワークコントローラに命令する。ネットワーク接続のサービスレベルは、例えば、ネットワーク接続における帯域幅、レイテンシ、またはジッタであり得る。
【００２１】
ユーザは、特定のアプリケーションによって生成されたデータに関する複数の要件を有し得る。複数のアプリケーションがネットワーク接続を使用し得、各アプリケーションが要件の異なる組を有し得る。実施形態において、ユーザデバイスから生成される制御パケットは、ネットワーク接続に関するユーザのすべての要件を示す情報を含むであろう。
【００２２】
制御パケットを生成するようにネットワークスタックに命令するライブラリの使用は、ネットワーク接続に関するユーザの機能要件を提供する効率的な態様である。遠く離れたネットワークコントローラを構成するためのＡＰＩの使用は、時間および処理のオーバヘッドを引き起こし得る。しかし、ネットワークコントローラを構成するためのＡＰＩを使用する代わりにローカルライブラリを使用することによって、ユーザはネットワーク接続に関するその機能要件をより効率的にリクエストし得る。
【００２３】
後述の詳細な説明は４つのセクションに分けられている。図１−３に関して、第１のセクションは、ネットワーク接続に関するネットワーク機能性要件を提供するシステムを説明する。図４に関して、第２のセクションは、制御パケットを使用してネットワーク接続に関する機能性要件を提供する方法を説明する。図４−６に関して、第３のセクションは、ネットワーク接続に関する機能性要件を提供すべくネットワークを構成することを説明する。図７に関して、第４のセクションは、接続に関する機能性要件を提供すべくネットワークを構成するために、定期的に制御パケットを再送することを説明する。
ネットワーク接続に関するネットワーク機能性要件を提供するシステム
【００２４】
図１は通信ネットワーク１０２を含むシステム１００を図示する。通信ネットワーク１０２は、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、または広域ネットワーク（ＷＡＮ）であってよい。通信ネットワーク１０２は、任意のポイントツーポイント、またはマルチポイントツーマルチポイントのネットワーキングプロトコルを利用してよい。用いられる複数のネットワークアクセスプロトコルは、例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）、イーサネット（登録商標）、非同期転送モード（ＡＴＭ）、ハイレベルデータリンク制御（ＨＤＬＣ）、またはフレームリレーを含み得る。 
【００２５】
通信ネットワーク１０２は、ユーザデバイス１０４に接続された転送デバイス１１２などの複数の転送デバイスを含む。ここで、用語「転送デバイス」は、データリンクレイヤ（開放型システム間相互接続、ＯＳＩ、レイヤ２）およびネットワークレイヤ（ＯＳＩレイヤ３）におけるデバイスを含む、パケットをスイッチングまたはルーティングするデバイスを指す。転送デバイス１１２は、直接的なリンクを介してユーザデバイス１０４に接続され得、または間接的にローカルネットワークを介して接続され得る。ユーザデバイス１０４は、データサーバ１１４へのネットワーク接続１１３を確立し得、通信ネットワーク１０２上のネットワーク接続を介して送信するためのデータトラフィックを生成し得る。
【００２６】
ユーザデバイス１０４は、プロトコルスタックと呼ばれることがある、ネットワークスタック１０８を介してアプリケーション１０６を実行させる。アプリケーション１０６は、ユーザデバイス１０４のユーザ１０５とインタフェースし得、ネットワークスタック１０８がネットワーク１０２を介したネットワーク接続１１３をセットアップすることをリクエストし得る。次に、アプリケーション１０６はネットワーク接続１１３を介してデータを送信する。
【００２７】
ネットワークスタック１０８は、コンピュータネットワークプロトコルスイートの実装である。コンピュータネットワークプロトコルスイートは、ＯＳＩモデル内で指定されるものなどの、異なる抽象レイヤを有するプロトコルを含み得る。実施形態において、ネットワークスタック１０８はアプリケーションデータに関するネットワーク接続をセットアップする。ネットワークスタック１０８は、トランスポート層およびネットワーク層においてトランスポート制御プロトコル（ＴＣＰ）／インターネットプロトコル（ＩＰ）を使用してネットワーク１０２を介した接続を確立するＴＣＰ／ＩＰネットワークスタックであり得る。トランスポート層およびネットワーク層の下に、ネットワークスタック１０８は、イーサネット（登録商標）規格によって指定されたものなどの、データリンクプロトコルおよび物理レイヤプロトコルをも実装し得る。アプリケーション１０６からのアプリケーションデータの受信後、アプリケーションデータは複数のネットワークスタック１０８レイヤを通過し得、アプリケーションデータを複数のパケットなどのより小さい複数のユニットに区切り得、任意の必要なヘッダ情報と共に複数のユニットをカプセル化するデータをカプセル化し得る。そのレイヤを通過後、ネットワークスタック１０８は接続１１３を介してパケットを送信する。
【００２８】
実施形態において、ユーザ１０５がネットワーク接続に関する固有の機能性を要求する場合、ユーザ１０５はライブラリ１１０に通知する。ライブラリ１１０はネットワークスタック１０８に組み込まれ得る。ユーザ１０５は、管理アプリケーションなどの別個のアプリケーションを使用して、ネットワーク接続１１３に関する機能要件をライブラリ１１０に通知し得る。
【００２９】
別個の管理アプリケーションの使用に加えて、ユーザ１０５はネットワークスタック１０８を通じてライブラリ１１０と通信する。他の実施形態において、特定のシステム呼び出しを行うことによって、ユーザ１０５はアプリケーションを通じてライブラリ１１０と直接的に通信し得る。このように、別個の管理アプリケーションを通じて、またはアプリケーション１０６による直接のシステムコールを通じてのいずれかで、ライブラリ１１０は接続１１３に関する新規要件を学習する。
【００３０】
ライブラリが新規要件を学習した場合、ライブラリ１１０はネットワーク接続１１３に関する要件を提供すべくネットワークを構成する制御パケットを生成し得る。実施形態において、ライブラリ１１０は、ネットワークを構成する制御パケットを生成するようにネットワークスタック１０８に命令する。ネットワークスタック１０８は、ＴＣＰまたはＵＤＰフォーマットで、または、イーサネット（登録商標）フォーマットで、転送デバイス１１２に制御パケットを送信し得る。
【００３１】
制御パケットを受信したことに応答して、転送デバイス１１６は機能性モジュール１１６に制御パケットを転送する。機能性モジュール１１２は、制御パケット内の情報を使用して、ネットワーク接続１１３に関する機能性要件を提供すべくネットワーク１０２を構成するように、ネットワークコントローラ１１８に命令する。このように、ネットワークプロトコルスタックにとってローカルであり、ネットワークプロトコルスタックと一体化され、ネットワークプロトコルスタック内におそらく含まれるライブラリは、要件を提供すべくネットワークを構成する。動作例は、図２−３に関してより詳細に図示される。
【００３２】
図２は、一実施形態に従って、ユーザデバイス１０４から機能性モジュール１１６に制御パケットが送信される動作例を図示する図２００である。ユーザデバイス１０４におけるネットワークスタック１０８は、制御パケット２０２を生成し得、制御パケット２０２を転送デバイス１１２に送信し得る。一実施形態に従って、ユーザプロトコルスタック１０８は、１つの制御パケット２０２を転送デバイス１１２に送信し得る。他の実施形態に従って、プロトコルスタック１０８は定期的に制御パケットを送信し、任意の新規要件によって機能性モジュールを更新し得る。転送デバイス１１２が制御パケット２０２を受信する場合、転送デバイス１１２は制御パケット２０２を機能性モジュール１１６に転送する。実施形態において、転送デバイス１１２は制御パケット上の送信先アドレスから制御パケットを検出する。他の実施形態において、転送デバイス１１２は、制御パケットを一意に識別する識別子から制御パケットを検出する。識別子は、例えば、パケットヘッダであり得る。
【００３３】
転送デバイス１１２が制御パケット２０２を受信する場合、転送デバイス１１２は制御パケットパス２１３を介して機能性モジュール１１６に制御パケット２０２を転送する。一実施形態において、転送デバイス１１２が制御パケット２０２を受信した場合、転送デバイス１１２は制御パケットパス２１３を確立し得る。他の実施形態において、転送デバイス１１２が制御パケットを受信する前に、制御パケットパス２１３はあらかじめ決定され得る。
【００３４】
制御パケット２０２の送信に加えて、ネットワークスタック１０８はまた、転送デバイス１１２にデータパケット２０４を送信する。転送デバイス１１２は、この例ではデータサーバ１１４であるパケット２０４の送信先に、ネットワークデータ接続１１３上でデータパケット２０４を転送する。
【００３５】
ネットワークスタック１０８は、ネットワークデータ接続１１３上でデータストリームを送信し得る。データストリームは、共通の（１）プロトコル、（２）複数の送信元／送信先インターネットプロトコル（ＩＰ）アドレス、および（３）複数の送信元／送信先ＴＣＰまたはＵＤＰポートを有する、互いに時間近接した１又は複数のパケットであり得る。
【００３６】
ひとたび機能性モジュール１１６が制御パケット２０２を受信すると、機能性モジュール１１６は、例えば図３に図示されたように、リクエストされた機能性を提供すべく接続１１３を構成する。
【００３７】
図３は、リクエストされた機能性を提供するためのネットワークの構成を図示する図３００である。機能性モジュール１１６が制御パケット２０２を受信した後、機能性モジュール１１６は接続１１３に関する機能性要件を示す情報を使用し、ネットワークを構成するようにネットワークコントローラ１１８に命令する。ネットワークコントローラ１１８は、接続１１３に関する機能性要件を提供すべくネットワークを構成する。
【００３８】
図３に示された実施形態例において、接続１１３に関するネットワーク機能性要件は、その接続に関するＴＣＰプロキシを提供している。この例において、ネットワークデータ接続１１３を使用するデータが新規接続３０４上にルート変更されるように、ネットワークコントローラ１１８はネットワーク１０２を構成する。新規接続３０４上のデータパケットは、ＴＣＰプロキシサーバ３０２を通る。このように制御パケット２０２内に示されたようなＴＣＰプロキシ機能性要件が接続１１３に関して提供される。
【００３９】
ネットワークコントローラ１１８は、例えば、ＴＣＰプロキシサーバ３０２を通過するような、転送デバイス１１２からデータサーバ１１４へのパスを決定することによって、新規接続３０４上にデータをルート変更し得る。ネットワークコントローラは次に、決定されたパス上のアプリケーション１０６のデータをサーバ１１４にルーティングするように、決定されたパス上に転送デバイス１１２および他の転送デバイスを構成し得る。他の例において、ネットワークコントローラ１１８は、ＴＣＰプロキシサーバのアドレスを有する新しいパケット内に、ユーザデバイス１０４からのデータパケットをカプセル化し得る。ＴＣＰプロキシサーバは次に、そのデータをデータサーバ１１４に送信し得る。
【００４０】
ネットワークコントローラ１１８はまた、ＴＣＰプロキシサーバ３０２に構成メッセージを送信し得る。このようにネットワークコントローラ１１８は、接続１１３に関する何らかの特定の機能性要件を提供すべく、ＴＣＰプロキシサーバ３０２を構成し得る。構成メッセージはまた、データパケットの送信先アドレスをＴＣＰプロキシサーバ３０２に通知し得る。送信先アドレスを使用して、ＴＣＰプロキシサーバ３０２はデータをその送信先に転送し得る。
【００４１】
他の機能性要件の例は、動的サービスレベルがあり得る。接続のサービスレベルの動的な変化が、転送デバイス１１２上で発生し得る。実施形態において、サービスレベルは接続１１３の容量である。接続１１３上に動的容量を提供すべく、ネットワークコントローラ１１８は、接続１１３に割り当てられる容量を動的に調整するように転送デバイス１１２を構成するためのメッセージを送信し得る。実施形態において、ネットワークコントローラは、要求された動的容量を提供すべく、接続１１３が使用するすべての転送デバイスを構成するためのメッセージを送信し得る。
【００４２】
実施形態において、転送デバイス１１２は機能性モジュール１１６を含み得る。実施形態において、転送デバイス１１２は制御パケットを受信した後、接続１１３に関する機能性要件を提供すべくネットワークを構成するようにネットワークコントローラ１１８に命令する。
制御パケットを使用してネットワーク接続に関する機能性要件を提供する方法
【００４３】
図４は、ネットワーク接続に関するネットワーク機能性をリクエストする方法４００を図示する図である。方法４００は図１−３における実施形態例に関して説明される。
【００４４】
実施形態において、段階４０２で、アプリケーション１０６はデータサーバ１１４へのネットワーク接続をリクエストする。ネットワークスタック１０８は、ネットワーク接続の確立のリクエストを受信する。ネットワークスタック１０８は、段階４０４で、ネットワーク接続１１３を確立する。段階４０６で、ネットワークスタック１０８はネットワーク接続１１３を介してアプリケーションデータを送信する。いくつかの実施形態において、ネットワークスタック１０８は、ＴＣＰ／ＩＰまたはイーサネット（登録商標）プロトコルを使用してネットワーク接続１１３を確立し得る。ネットワークスタック１０８は、ＴＣＰ、ＵＤＰ、ＭＰＬＳ、ＡＴＭ、またはイーサネット（登録商標）などの送信プロトコルを使用してネットワーク接続１１３を介してアプリケーションデータを送信し得る。
【００４５】
段階４０８で、ユーザ１０５はネットワーク接続１１３に関するネットワーク機能性要件をリクエストする。ユーザ１０５は、機能性要件をリクエストするための具体的なアプリケーションを使用してライブラリ１１０にリクエストを送信し得る。他の実施形態において、ユーザの代わりにアプリケーション１０６が、アプリケーションがデータを送信するために使用している接続に関する機能性要件を送信し得る。
【００４６】
実施形態において、ライブラリ１１０は段階４１０で、ユーザのネットワーク機能性要件を受信する。段階４１２で、ライブラリ１１０はネットワーク機能性要件を示す制御パケットを送信するようにネットワークスタック１０８に命令する。実施形態において、ライブラリ１１０は制御パケットを生成し得る。他の実施形態において、ネットワークスタック１０８はライブラリ１１０からの命令に応答して制御パケットを生成する。
【００４７】
ネットワーク接続１１３を使用するアプリケーションデータが送信されている間、制御パケットが送信され得る。制御パケットは、ＴＣＰ、ＵＤＰ、ＭＰＬＳ、ＡＴＭ、またはイーサネット（登録商標）などのプロトコルを使用して送信され得る。
【００４８】
ネットワークスタック１０８は、段階４１４で、制御パケットを転送デバイス１１２に送信する。アプリケーション１０６のデータを送信する間、ネットワークスタック１０８は制御パケットを送信し得る。実施形態において、転送デバイス１１２は広域ネットワーク（ＷＡＮ）のエッジにあり、ローカルエリアネットワーク（ＬＡＮ）を介してユーザデバイス１０４に接続する。
【００４９】
図５は、ネットワーク接続に関する機能性を提供すべくネットワークを構成する方法５００を図示するフローチャートである。方法５００は図１−３における実施形態例に関して説明される。
【００５０】
実施形態において、転送デバイス１１２は段階５０２で、制御パケットを受信する。実施形態において、転送デバイス１１２は自動的に制御パケットを検出し、機能性モジュール１１６の送信先アドレスを制御パケットに追加する。他の実施形態において、制御パケットが転送デバイス１１２によって受信される場合、制御パケットはその送信先として機能性モジュール１１６のアドレスを含む。
【００５１】
転送デバイス１１２はまた、認証情報を制御パケットに追加し得る。認証情報は、ネットワーク１０２における他の転送デバイスおよび機能性モジュール１１６が制御パケットの認証を検証することに役立ち得る。段階５０４で、転送デバイス１１２は制御パケットを機能性モジュール１１６に送信する。
【００５２】
機能性モジュール１１６は、段階５０６で、制御パケットを受信する。制御パケットの受信後、機能性モジュール１１６は、ネットワーク接続１１３に関する機能性要件を示す情報を制御パケットから抽出し得る。段階５０８で、機能性モジュール１１６は、ネットワーク接続１１３に関する機能性要件を提供すべくネットワーク１０２を構成するようにネットワークコントローラ１１８に命令する。実施形態において、機能性モジュール１１６はＡＰＩを通じてネットワークコントローラ１１８に命令し得る。代替的に、機能性モジュール１１６はネットワーク１０２を介して、または機能性モジュールとネットワークコントローラとの間の直接の接続を介して、命令メッセージを送信することによってネットワークコントローラ１１８に命令し得る。
【００５３】
段階５１０で、ネットワークコントローラはネットワーク接続１１３に関する機能性要件を提供すべくネットワーク１０２を構成する。例えば、ネットワークコントローラ１１８は、動的サービスレベルを提供すべく、またはＴＣＰプロキシサーバなどの中間処理サーバにルート変更すべく、ネットワーク１０２を構成し得る。
【００５４】
ネットワーク接続に関する動的サービスレベルを提供すべく、いくつかの実施形態は、ネットワーク接続のリアルタイムの利用状況に従ってサービスレベルを動的に変更する。これらの実施形態において、ユーザは、特定の利用状況レベルをふまえてのサービスレベルをどのように変更するか指定するビジネスルールをセットアップし得る。例えば、ユーザは、利用される帯域幅が特定の閾値を超える場合に、割り当てられる帯域幅が２倍にされることを宣言するビジネスルールをセットアップし得る。
【００５５】
これらの複数のルールは、ネットワークサービスプロバイダとユーザとの間のサービスレベル合意（ＳＬＡ）に基づいて決定され得る。例えば、容量または帯域幅の割り当てを動的に変更することによって、ユーザはそのアプリケーションの変動する要求を満たすべく、そのネットワーク容量を容易に拡張し得る。前もって定義されたスケジュールまたは利用状況のいずれかに基づいて、実施形態はネットワーク接続のサービスレベルを動的に更新する。
【００５６】
利用の変更、およびサービスレベル、例えば容量の調整は、また、接続内に集約されたフローに関してではなく、接続における各フローに関して実行され得る。換言すれば、本明細書で説明された動的サービスレベルの方法は、個々のトラフィックのフローに適用され得る。例えば、実施形態は動的サービスレベルをウェブ（ＨＴＴＰ）トラフィックに提供し得、それは与えられた接続におけるトラフィック全体の１つのスライシングであり得る。
【００５７】
フローレベルの動的サービスレベル管理は、異なるフローまたは異なるタイプのトラフィックを、異なる態様でユーザが取り扱うことを可能にする。換言すれば、それは異なるトラフィックタイプに関するクラスのサービスをユーザが使用することを可能とする。例えば、ユーザがボイストラフィックに関する特定のサービスレベルの保証を望む場合、それはボイストラフィックに割り当てられたサービスレベルを動的に変更し得、それで、接続における集約されたトラフィック負荷に関わらず、ボイストラフィックの各フローは保証されたサービスレベルを享受する。
【００５８】
ＳＬＡは異なるクラスのサービスに関する異なる保証を提供し得る。例えば、ストリーミングビデオは大量の容量を要求するかもしれないが、レイテンシは比較的重要でないことがある。逆に、ボイスオーバーＩＰデータは、比較的容量をほとんど要求しないかもしれないが、レイテンシは非常に重要であり得る。ＳＬＡは、異なるクラスのサービスおよびサービスレベル保証に分解され得、それぞれに関してルールが生成され得る。
【００５９】
図６は、ネットワーク接続に関するネットワーク機能性をリクエストする方法６００を図示するフローチャートである。方法６００は、図１−３における実施形態例に関して説明される。
【００６０】
実施形態において、ユーザ１０５は、段階６０２で、ネットワーク接続１１３に関する複数のネットワーク機能性要件をリクエストする。例えば、ユーザ１０５は、アプリケーション１０６がデータを送信するために使用しているネットワーク接続１１３に関する複数の要件を送信し得る。他の実施形態において、複数のアプリケーションがネットワークスタック１０８上で動作していてよく、それぞれが、それらが使用するネットワーク接続１１３に関する異なる要件を有し得る。ユーザ１０５は、すべてのアプリケーションの要件をライブラリ１１０に送信し得る。
【００６１】
実施形態において、ユーザ１０５はすべてのネットワーク接続機能性要件をライブラリ１１０に直接的に送信し得る。他の実施形態において、ネットワークスタック１０８上で動作する異なるアプリケーションが、それらが有する何らかのネットワーク接続機能性要件をライブラリ１１０に送信するであろう。
【００６２】
段階６０４で、ライブラリ１１０は、ユーザによるすべてのネットワーク機能性要件を示す情報を含む制御パケット２０２を送信するようにネットワークスタック１０８に依頼し得る。例えば、ライブラリ１１０は、制御パケット２０２を生成するようにネットワークスタック１０８に依頼する場合、１つのアプリケーションのすべての要件、または異なるアプリケーションのすべての要件を集約し得る。実施形態において、ライブラリ１１０は、ネットワーク接続に関するすべての要件の集約情報を含む制御パケット２０２を生成する。
【００６３】
ネットワークスタック１０８は、段階６０６で、すべての機能性要件を示す情報を含む制御パケット２０２を転送デバイス１１２に送信する。転送デバイス１１２は、制御パケットをネットワーク機能性モジュールまたはネットワークコントローラに転送し、それに応じてネットワークを構成する。
定期的な制御パケットの再送
【００６４】
図７は、ネットワーク接続に関するネットワーク機能性をリクエストする方法７００を図示するフローチャートである。方法７００は、図１−３における実施形態例に関して説明される。
【００６５】
実施形態において、ネットワークスタック１０８は、段階７０２で、制御パケット２０２を転送デバイス１１２に定期的に再送する。段階７０４で、転送デバイス１１２は制御パケット２０２を機能性モジュール１１６に転送する。
【００６６】
段階７０６で、機能性モジュール１１６は、ネットワーク接続に関する機能性要件を提供すべくネットワークを構成するように、ネットワークコントローラ１１８に命令する。段階７０８で、ネットワークコントローラ１１８はネットワーク接続に関する機能性要件を提供すべくネットワーク１０２を構成する。
【００６７】
接続に関するネットワーク機能性がそれ以降要求されない場合、ネットワークスタック１０８は段階７１０で、制御パケット２０２の再送をストップし得る。機能性モジュール１１６がある期間制御パケットを受信しない場合、段階７１２で、それはネットワーク接続１１３に関する機能性要件を提供するためのネットワーク構成を終了するようにネットワークコントローラ１１８に命令する。ネットワークコントローラ１１８は、段階７１４で、接続１１３に関する機能性要件を提供するためのネットワーク構成を終了する。
結論
【００６８】
本明細書で用いられる用語「ユーザ」は、ネットワーク接続サービスを利用する企業の従業者などのネットワーク接続サービスの顧客と、サービスプロバイダ自体のネットワーク管理者との両方を包含し得る。複数のユーザが、異なる複数の会社または組織に存在してもよい。
【００６９】
図１のサーバおよびモジュールのそれぞれは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。
【００７０】
図１のサーバおよびモジュールのそれぞれは、同じまたは異なるコンピューティングデバイス上に実装され得る。そのようなコンピューティングデバイスは、パーソナルコンピュータ、携帯電話などのモバイルデバイス、ワークステーション、組み込みシステム、ゲームコンソール、テレビ、セットトップボックス、または任意の他のコンピューティングデバイスを含み得るが、それらに限定されない。さらに、コンピューティングデバイスは、命令を実行および格納するためのプロセッサと、非一時的メモリを含むメモリとを有するデバイスを含み得るが、それに限定されない。メモリはデータおよびプログラム命令を有形に具現化し得る。ソフトウェアは１又は複数のアプリケーションとオペレーティングシステムとを含み得る。ハードウェアは、プロセッサ、メモリ、およびグラフィカルユーザインタフェースディスプレイを含み得るが、それらに限定されない。コンピューティングデバイスは、また、複数のプロセッサおよび複数の共有または別個のメモリ構成要素を有し得る。例えば、コンピューティングデバイスはクラスタ化されたまたは分散された、コンピューティング環境またはサーバファームの一部または全体であり得る。
【００７１】
（ａ）、（ｂ）、（ｉ）、（ｉｉ）などの識別子が異なる要素または段階に関して用いられることがある。これらの識別子は明確にするために用いられ、必ずしも要素または段階の順序を示すものではない。
【００７２】
本発明は、複数の特定の機能およびそれらの関係の実装を説明する複数の機能的構成単位を用いて上述された。これらの機能的構成単位の境界は，説明の利便性のために本明細書で任意に画定された。複数の特定の機能およびそれらの関係が適切に実行される限り、代替の境界が画定され得る。
【００７３】
複数の具体的な実施形態についての前述の説明は、本発明の一般的な性質を十分に明らかにしているであろうため、他人は、当技術分野の技術内の知識の適用によって、過度な実験を行うことなく、本発明の一般的概念から逸脱することなく、そのような具体的な実施形態を様々な用途に関して容易に修正および／または改作し得る。したがって、そのような改作および変更は、本明細書に提供された教示および指導に基づいて、開示された複数の実施形態の均等物の趣旨および範囲内にあることが意図されている。本明細書の語句または用語は説明を目的とするものであり限定を目的とするものではなく、これにより、本明細書の用語または語句は教示および指導を考慮して当業者によって解釈されるべきものとなることが理解されるべきである。
【００７４】
本発明の広さおよび範囲は、上述された複数の例示的実施形態のいずれによっても限定されるべきではなく、以下の特許請求の範囲およびその均等物のみに基づいて定義されるべきである。
［項目１］
通信ネットワークを介してユーザデータを送信するコンピュータ実装方法であって、
ネットワークスタックと一体化されたライブラリにおいて、アプリケーションによるリクエストに応答して上記ネットワークスタックが開始したネットワーク接続に関する機能性要件の仕様を受信する段階と、
ネットワークの上記機能性要件の上記仕様の受信に応答して、上記ライブラリによって、上記機能性要件を示す制御パケットを送信するように上記ネットワークスタックに命令する段階と、
上記ネットワーク接続に関する上記機能性要件を提供すべく、上記制御パケットに基づいて上記通信ネットワークを構成する段階とを備える、方法。
［項目２］
上記ネットワーク内の転送デバイスに上記制御パケットを送信する段階であって、上記転送デバイスは上記制御パケットに認証情報を追加し、上記ネットワーク接続を介しての送信のために上記アプリケーションから送信された上記ユーザデータを受信する、送信する段階をさらに備える、
項目１に記載の方法。
［項目３］
上記ユーザデータが送信される間に上記制御パケットが送信される、
項目２に記載の方法。
［項目４］
上記ネットワークに接続された機能性モジュールのアドレスを上記制御パケットに追加する段階と、
認証情報を有する上記制御パケットを上記機能性モジュールに転送する段階であって、上記機能性モジュールは、上記ネットワーク接続に関する上記機能性要件を提供すべく、上記制御パケットを使用して、上記ネットワークを構成するようにネットワークコントローラに命令する、転送する段階とをさらに備える、
項目２または３に記載の方法。
［項目５］
転送デバイス内の機能性モジュールによって上記制御パケットを受信する段階と、
上記ネットワークが上記ネットワーク接続に関する上記機能性要件を提供すべく上記ネットワークを構成するように、上記制御パケットを使用する上記機能性モジュールによって、ネットワークコントローラに命令する段階とをさらに備える、
項目１から４のいずれか一項に記載の方法。
［項目６］
上記ライブラリによる、ユーザからの上記機能性要件の受信が他のアプリケーションを通じたものである、
項目１から５のいずれか一項に記載の方法。
［項目７］
上記ライブラリによる、ユーザからの上記機能性要件の受信が、上記アプリケーションが上記ネットワーク接続を介してデータの送信を開始する前である、
項目１から６のいずれか一項に記載の方法。
［項目８］
上記ライブラリによる、ユーザからの上記機能性要件の受信が、上記アプリケーションが上記ネットワーク接続を介してデータを送信している間である、
項目１から７のいずれか一項に記載の方法。
［項目９］
上記ライブラリによって、上記アプリケーションから、上記ネットワーク接続に関する第２の機能性要件を受信する段階、および、
上記第２の機能性要件の受信に応答して、上記制御パケットが上記ネットワーク接続に関する上記第２の機能性要件をまた示すように、上記制御パケットを送信する段階をさらに備える、
項目１から８のいずれか一項に記載の方法。
［項目１０］
上記ライブラリによって、上記ネットワーク接続を使用する第２のアプリケーションから、上記ネットワーク接続に関する第２の機能性要件を受信する段階と、
上記ネットワーク接続に関する第１の上記機能性要件と上記第２の機能性要件との両方を示す他の制御パケットであって、上記第１の機能性要件と上記第２の機能性要件との両方を提供するように上記ネットワークに命令する、他の制御パケットを送信する段階とをさらに備える、
項目１から９のいずれか一項に記載の方法。
［項目１１］
上記ネットワーク機能性を終了させるための上記アプリケーションからの終了リクエストの受信まで上記制御パケットを定期的に再送する段階と、
ある期間制御パケットの再送が受信されない場合、それ以降上記機能性要件を提供しないように上記ネットワークを再構成する段階とをさらに備える、
項目１から１０のいずれか一項に記載の方法。
［項目１２］
ネットワークスタックを使用してアプリケーションを実行するよう構成されたユーザデバイスから、ネットワーク接続を介してデータサーバへデータを送信するシステムであって、
第１のコンピューティングデバイス上に実装されたライブラリモジュールであって、上記アプリケーションによるリクエストに応答して上記ネットワークスタックが開始したネットワーク接続に関する機能性要件の仕様をアプリケーションモジュールから受信し、
上記機能性要件の上記仕様の受信に応答して、上記機能性要件を示す制御パケットを送信するように上記ネットワークスタックに通知するよう構成される、ライブラリモジュールと、
上記ネットワークを介して上記第１のコンピューティングデバイスに接続された第２のコンピューティングデバイスと、
上記第２のコンピューティングデバイス上に実装され、上記制御パケットを使用して、上記ネットワーク接続に関する上記機能性要件を提供すべく上記ネットワークを構成するようにネットワークコントローラに命令するよう構成された機能性モジュールとを備える、
システム。
［項目１３］
上記ネットワークスタックが、さらに、上記データを送信する間に上記制御パケットを送信するよう構成される、
項目１２に記載のシステム。
［項目１４］
上記制御パケットを受信し、
上記ネットワーク接続を介した送信のために上記アプリケーションから送信される上記データを受信し、および、
上記制御パケットに認証情報を追加するよう構成された転送デバイスをさらに備える、
項目１２または１３に記載のシステム。
［項目１５］
上記転送デバイスはさらに、
認証情報を有する上記制御パケットを上記ネットワークへ接続された上記機能性モジュールに転送し、
上記機能性モジュールのアドレスを上記制御パケットに追加するよう構成される、
項目１４に記載のシステム。
［項目１６］
上記転送デバイスが上記ネットワークのエッジに配置され、ローカルエリアネットワーク上の上記ユーザデバイスに接続される、
項目１５に記載のシステム。
［項目１７］
上記制御パケットを受信するよう構成された転送デバイスをさらに備え、上記転送デバイスは、上記ネットワーク接続に関する上記機能性要件を提供すべく上記ネットワークを構成するように、上記制御パケットを使用してネットワークコントローラに命令するよう構成された機能性モジュールを有する、
項目１２から１６のいずれか一項に記載のシステム。
［項目１８］
上記ライブラリモジュールがさらに、
上記ネットワーク接続を使用する第２のアプリケーションから、上記ネットワーク接続に関する第２の機能性要件を受信し、
上記第２の機能性要件の受信に応答して、上記ネットワーク接続に関する第１の上記機能性要件と上記第２の機能性要件との両方を示す他の制御パケットであって、上記第１の機能性要件と上記第２の機能性要件との両方を提供するように上記ネットワークに命令する、他の制御パケットを送信するように上記ネットワークスタックに通知するよう構成される、
項目１２から１７のいずれか一項に記載のシステム。
［項目１９］
上記ライブラリモジュールがさらに、
上記ネットワーク機能性を終了させるための上記アプリケーションからの終了リクエストの受信まで上記制御パケットを定期的に再送するように上記ネットワークスタックに通知するよう構成され、
上記機能性モジュールがさらに、
ある期間制御パケットの再送が受信されない場合、それ以降上記機能性要件を提供しないように上記ネットワークを再構成するように上記ネットワークコントローラに命令するよう構成される、
項目１２から１８のいずれか一項に記載のシステム。
［項目２０］
上記ネットワークが、プライベートなサービスプロバイダネットワークであり、上記データサーバが、他の公衆ネットワークを通じて上記ネットワークに接続される、
項目１２から１９のいずれか一項に記載のシステム。
［項目２１］
通信ネットワークを介してデータを送信する方法を実行する少なくとも１つの機械によって実行可能な命令のプログラムであって、上記方法は、
アプリケーションによるリクエストに応答してネットワークスタックによって開始されるネットワーク接続に関する機能性要件を、ユーザからライブラリによって受信する段階と、
上記機能性要件の受信に応答して、上記アプリケーションの上記機能性要件を示す制御パケットを送信する段階と、
上記ネットワーク接続に関する上記機能性要件を提供すべく、上記制御パケットを使用して上記通信ネットワークを構成する段階とを備える、
プログラム。
［項目２２］
通信ネットワークを介してユーザデータを送信するコンピュータ実装方法であって、
ネットワークスタックと一体化されたライブラリで、アプリケーションによるリクエストに応答して上記ネットワークスタックが開始したネットワーク接続に関する機能性要件の仕様を受信する段階と、
上記機能性要件の上記仕様の受信に応答して、上記ライブラリから、上記機能性要件を示す制御パケットであって、上記ネットワーク接続に関する上記機能性要件を提供すべく上記通信ネットワークを構成するように機能性モジュールに命令する制御パケットを送信する段階とを備える、方法。
【図１】
0006648893.tif 000002
【図２】
0006648893.tif 000003
【図３】
0006648893.tif 000004
【図４】
0006648893.tif 000005
【図５】
0006648893.tif 000006
【図６】
0006648893.tif 000007
【図７】
0006648893.tif 000008