(57)【要約】【課題】本発明は、アプリケーションレベルで送信局と受信局との間のデータ送信を調節することによって、帯域幅を調節する方法およびシステムを提供する。【解決手段】  アプリケーションレベルで帯域幅を調節することによって、装置レベルのような下位レベルで要求される複雑なネットワークプログラミングが不要になり、必要なときにいつでも帯域幅を変更することができる。このようにして、複雑なネットワークプログラミングを行う必要なく、帯域幅を容易に調節およびカスタマイズすることができる。【選択図】図１
2010279036.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションレベルで送信局と受信局との間のデータ送信を調節することによって帯域幅を調節する方法であって、
前記送信局および前記受信局の各々は、通信ライブラリを有し、
前記方法は、
受信局の通信ライブラリに設定情報を要求するステップと、
前記受信局の通信ライブラリからの前記要求された設定情報に基づいて、前記送信局の通信ライブラリを設定するステップと、
データを送信するための、前記送信局の通信ライブラリと前記受信局の通信ライブラリとの間の接続を確立するステップと
を具備し、
前記設定された送信局の通信ライブラリに基づいて、前記送信局から前記受信局にデータが送信されることにより、帯域幅を調節することを特徴とする帯域幅を調節する方法。
【請求項２】
前記設定情報は、送信局の通信ライブラリを設定するための、複数の所定のパラメータを具備することを特徴とする請求項１に記載の帯域幅を調節する方法。
【請求項３】
前記複数の所定のパラメータは、前記受信局の通信ライブラリのプロトコルによって定められることを特徴とする請求項２に記載の帯域幅を調節する方法。
【請求項４】
前記所定のパラメータは、所定のデータパケットサイズ、所定のデータ送信速度、および所定の期間を有することを特徴とする請求項２に記載の帯域幅を調節する方法。
【請求項５】
前記方法は、前記送信局から前記受信局に送信されるデータをデータパケットに分割するステップをさらに具備し、
前記各データパケットのサイズは、前記プロトコルによって定められた前記所定のデータパケットサイズを超えないことを特徴とする請求項４に記載の帯域幅を調節する方法。
【請求項６】
前記方法は、前記プロトコルによって定められた所定のデータ送信速度で、前記データパケットを前記送信局から前記受信局に送信するステップをさらに具備することを特徴とする請求項５に記載の帯域幅を調節する方法。
【請求項７】
前記送信局の通信ライブラリの設定は、前記所定の期間、続くことを特徴とする請求項４に記載の帯域幅を調節する方法。
【請求項８】
前記方法は、前記所定の期間が終了した場合、前記受信局の通信ライブラリから新たな設定情報を読み出すステップをさらに具備することを特徴とする請求項７に記載の帯域幅を調節する方法。
【請求項９】
前記送信局は、少なくとも１つのアプリケーションを具備することを特徴とする請求項１に記載の帯域幅を調節する方法。
【請求項１０】
前記送信局は、クライアントマシンであることを特徴とする請求項９に記載の帯域幅を調節する方法。
【請求項１１】
前記受信局は、サービスプロバイダを具備することを特徴とする請求項１に記載の帯域幅を調節する方法。
【請求項１２】
前記受信局は、サーバマシンであることを特徴とする請求項１１に記載の帯域幅を調節する方法。
【請求項１３】
アプリケーションレベルでデータ送信を調節することによって帯域幅を調節するシステムであって、
送信局の通信ライブラリを有する送信局と、
受信局の通信ライブラリを有する受信局と
を具備し、
前記受信局の通信ライブラリは、前記送信局の通信ライブラリと通信し、
前記送信局から前記受信局にデータが送信され、前記送信局の通信ライブラリおよび前記受信局の通信ライブラリによってデータ送信が調節されることにより、帯域幅を調節することを特徴とするシステム。
【請求項１４】
前記送信局の通信ライブラリは、その調節のためのプロトコルを具備することを特徴とする請求項１３に記載の帯域幅を調節するシステム。
【請求項１５】
前記受信局の通信ライブラリは、その調節のためのプロトコルを具備することを特徴とする請求項１３に記載の帯域幅を調節するシステム。
【請求項１６】
アプリケーションレベルでデータ送信を調節することによって帯域幅を調節するシステムであって、
送信局の通信ライブラリを有する送信局と、
受信局の通信ライブラリを有する受信局と
を具備し、
前記受信局の通信ライブラリは、前記送信局の通信ライブラリと通信し、
前記送信局の通信ライブラリは、
前記受信局の通信ライブラリに設定情報を要求するステップと、
前記受信局の通信ライブラリからの前記要求された設定情報に基づいて、前記送信局の通信ライブラリを設定するステップと、
データを送信するための、前記送信局の通信ライブラリと前記受信局の通信ライブラリとの間の接続を確立するステップと
を実行し、
前記設定された送信局の通信ライブラリに基づいて、送信局から前記受信局にデータが送信されることにより、帯域幅を調節することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してネットワークベースの通信に関し、特に帯域幅を調節する方法およびシステムに関する。
【背景技術】
【０００２】
コンピュータおよびデバイスのネットワークは、コンピュータおよびデバイスが互いに通信するとともに、リソースおよび情報を共有することを可能にする。コンピュータおよびデバイスは、それを通じてデータが送信される通信ラインによって互いに接続される。各通信ラインは、一般的に時間当たりのデータ（たとえば、キロビット／秒（ｋｂｐｓ））を単位にして測定される特定の容量（または帯域幅）を有するとともに、データは、特定の送信速度で通信ラインによって送信される。
【０００３】
データ通信のネットワークのユーザは、多くの場合、データ送信の非最適なハンドリングに由来する厳しい通信制約を経験する。これは、ネットワークの帯域幅の非効率な使用、および／または必要以上に遅いデータ伝送速度によるものであり得る。
【０００４】
帯域幅を効率的に利用する１つの方法は、たとえデータ送信が特定の送信速度を超えたとしても、利用されていない帯域幅が用意されることにより、データ送信を可能にすることによるものである。帯域幅を効率的に利用するためには、帯域幅の制御が必要である。
【０００５】
帯域幅の制御のために、各ユーザに対して特定の送信速度を規制するとともに、それを保証することが必要である。これは、ネットワークが提供されるユーザに対して通信品質を保証することである。同時に、混雑状態を防ぎ、かつネットワークの帯域幅を保護するために、ユーザグループ（ネットワークのユーザをまとめるグループ）としての最大送信速度を規制および制限することが必要である。したがって、各ユーザは、たとえ各ユーザに対して保証された特定の送信速度を使い果たした場合でも、ユーザグループとしての最大送信速度を超えない限り、利用可能な帯域幅を使用してパケットを送信および受信することができる。
【０００６】
帯域幅をより効率的に利用するように帯域幅を制御するシステムおよび／または方法は存在する。そのようなシステムおよび／または方法の例は、特許文献１に開示されており、それは各ユーザに対して帯域幅の規制を行うとともに、各ユーザグループに対して帯域幅の規制を行う帯域幅規制装置を教示している。別の例は、特許文献２に開示されており、帯域幅の使用を向上させる送信速度コントローラに関するシステムおよび方法を教示している。帯域幅を制御するシステムを例示しているさらに別の例は、特許文献３に開示されており、スロットル機構を使用して、システム内、特に顧客の環境内での使用およびデータフローを制御する自己監視サービスシステムを教示している。
【０００７】
上述の例は、より効率的に帯域幅を利用するシステムおよび／または方法を開示しているが、帯域幅の制御は、下位レベル、たとえばデバイスレベルで実行される。従来技術における開示は、柔軟性がなく、かつ制限的である。また、ポリシーまたはプロトコルに変更があった場合、デバイスレベルで複雑なプログラミングを必要とする。さらに、デバイスのドライバは、ハードウェアまたはオペレーティングシステムと密接に縛られている。したがって、オペレーティングシステムまたは帯域幅の制御ポリシーが更新を必要とする場合、オペレーティングシステムとデバイスドライバとの間で発生する複雑な適合性の問題が生じる。加えて、従来技術のシステムでは、帯域幅制御に関するデバイスドライバの１つのバージョンのみが１つの物理マシン上で許可される。様々なアプリケーションが様々なポリシーを有している場合、これは、同一のドライバを使用するようにマシン上の全てのアプリケーションを不都合な程に制限する。
【０００８】
したがって、上述の欠点を大幅に低減して、帯域幅を調節する方法およびシステムが必要とされている。 
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第７４２０９１７号明細書
【特許文献２】米国特許第７４２３９７２号明細書
【特許文献３】米国特許第７２３１４５５号明細書
【発明の概要】
【課題を解決するための手段】
【００１０】
本明細書で開示される本発明の好適な実施形態は、アプリケーションレベルで送信局と受信局との間のデータ送信を調節することによって帯域幅を調節する方法およびシステムを提供する。アプリケーションレベルで帯域幅を調節することによって、デバイスレベルのような下位レベルで要求される複雑なネットワークプログラミングが不要になり、必要なときにいつでも帯域幅を変更することができる。このようにして、複雑なネットワークプログラミングを行う必要なく、帯域幅を容易に調節およびカスタマイズすることができる。さらに、本発明は、様々なアプリケーションに対する１つの物理マシン上で帯域幅を制御する通信ライブラリの複数のバージョンが利用され、様々なバージョンを使用することを可能にする。これは、帯域幅の調節における柔軟性を向上させるとともに、変更実施の制限を低減させる。
【００１１】
本発明の第１態様によれば、アプリケーションレベルで送信局と受信局との間のデータ送信を調節することによって帯域幅を調節する方法が開示される。さらに、送信局および受信局の各々は、通信ライブラリを有している。前記方法は、受信局の通信ライブラリに設定情報を要求するステップを具備している。前記方法は同様に、受信局の通信ライブラリからの前記要求された設定情報に基づいて送信局の通信ライブラリを設定するステップをさらに具備している。前記方法は同様に、データを送信するための、送信局の通信ライブラリと受信局の通信ライブラリとの間の接続を確立するステップをさらに具備し、設定された送信局の通信ライブラリに基づいて送信局から受信局にデータが送信されることにより、帯域幅を調節する。
【００１２】
本発明の第２態様によれば、アプリケーションレベルでデータ送信を調節することによって帯域幅を調節するシステムが開示される。前記システムは、送信局の通信ライブラリを有する送信局と、受信局の通信ライブラリを有する受信局とを具備している。受信局の通信ライブラリは、送信局の通信ライブラリと通信し、送信局から受信局にデータが送信されるとともに、データ送信が、送信局の通信ライブラリおよび受信局の通信ライブラリによって調節されることにより、帯域幅を調節する。
【００１３】
本発明の第３態様によれば、アプリケーションレベルでデータ送信を調節することによって帯域幅を調節するシステムが開示される。前記システムは、送信局の通信ライブラリを有する送信局と、受信局の通信ライブラリを有する受信局とを具備し、受信局の通信ライブラリは、送信局の通信ライブラリと通信する。さらに、送信局の通信ライブラリは、受信局の通信ライブラリに設定情報を要求するステップを実行する。送信局の通信ライブラリは同様に、受信局の通信ライブラリからの前記要求された設定情報に基づいて送信局の通信ライブラリを設定するステップを実行する。送信局の通信ライブラリはさらに、設定された送信局の通信ライブラリに基づいて、送信局から受信局にデータが送信されるデータ送信のための、送信局の通信ライブラリと受信局の通信ライブラリとの間の接続を確立するステップを実行することにより、帯域幅を調節する。
【００１４】
添付の図面を参照しながら、本発明のいくつかの好適な実施形態を以下に説明する。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施形態による帯域幅を調節するシステムを例示するブロック図である。
【図２】本発明の第１実施形態による、図１のシステムの帯域幅を調節する１つの好適な方法である。
【図３】本発明の第２実施形態による、図１のシステムの帯域幅を調節する１つの好適な方法を例示するフローチャートである。
【図４】本発明の第３実施形態による、図１のシステムの帯域幅を調節する１つの好適な方法を例示するフローチャートである。
【発明を実施するための形態】
【００１６】
上述の欠点を大幅に低減するために、アプリケーションレベルで送信局と受信局との間のデータ送信を調節することによって、帯域幅を調節する方法およびシステムを以下に記載する。
【００１７】
以下に提供する発明の詳細な記載において説明されるように本発明のいくつかの実施形態は、添付の図面の図１〜図４に従い、同じ要素には同じ参照番号が付されている。
【００１８】
図１および図２を参照しながら、帯域幅を調節するシステム２０および方法１００を本発明の第１実施形態に従って説明する。帯域幅を調節するシステム２０は、送信局２２，２４、および受信局２６を具備している。送信局２２は、送信局の通信ライブラリ２８，３０，およびアプリケーション３２，３４を具備し、送信局２４は、送信局の通信ライブラリ３６、およびアプリケーション３８を具備している。さらに、送信局の通信ライブラリ２８，３０，３６は、その調節のためのプロトコル４０，４２，４４をそれぞれ具備している。送信局２２，２４の例は、クライアントマシンであり、それはネットワークを介して別のコンピュータであるサーバマシン上のリモートサービスにアクセスするコンピュータである。
【００１９】
送信局２２，２４は、通信ライン４６，４８，５０を介して受信局２６と通信する。サーバマシンのような受信局２６は、サービスプロバイダ５２、および受信局の通信ライブラリ５４を具備している。サーバマシンは、クライアントマシンとして知られる１つ以上の他のコンピュータにサービスを提供するコンピュータである。さらに、受信局の通信ライブラリ５４は、その調節のためのプロトコル５６を具備している。送信局の通信ライブラリ２８，３０，３６、および受信局の通信ライブラリ５４は、アプリケーション３２，３４，３８、およびサービスプロバイダ５２によって互いに通信するために利用される共通の通信ライブラリである。
【００２０】
送信局２２のアプリケーション３２がサービスプロバイダ５２によって提供されるサービスを使おうとする場合、アプリケーション３２は、送信局の通信ライブラリ２８を通じてサービスプロバイダ５２への接続要求を開始する。図２に例示されているように、送信局の通信ライブラリ２８は、ステップ１１０で、通信ライン４６を介して受信局の通信ライブラリ５４に設定情報に関する要求を送信する。このステップは、アプリケーション３２とサービスプロバイダ５２との両方に対してトランスペアレントである。
【００２１】
設定情報は、送信局の通信ライブラリ２８を設定するための、複数の予め定められたパラメータを具備している。複数の予め定められたパラメータは、受信局の通信ライブラリ５４のプロトコル５６によって定められる。予め定められたパラメータの例としては、プロトコル５６によって予め決められかつ定められたデータパケットサイズ、データ送信速度、および期間を含む。
【００２２】
次にステップ１１２で、受信局の通信ライブラリ５４は、現在の負荷状態、およびアプリケーション３２のユーザの資格に基づいてプロトコル５６を検証するとともに、通信ライン４６を介して送信局の通信ライブラリ２８に設定情報を送信する。
【００２３】
ステップ１１４で、送信局の通信ライブラリ２８は、 受信局の通信ライブラリ５４からの前記要求された設定情報に基づいて設定される。前記設定は、送信局の通信ライブラリ２８によって行われる自己設定である。送信局の通信ライブラリ２８が受信局の通信ライブラリ５４から設定情報を受信した後に、プロトコル４０はプロトコル５６から得られる。送信局の通信ライブラリ２８は、プロトコル４０を準拠しなければならない。
【００２４】
次にステップ１１６で、送信局の通信ライブラリ２８は、送信局２２から受信局２６にデータ５８を送信するために、受信局の通信ライブラリ５４との接続を確立する。送信局の通信ライブラリ２８は、前記接続を確立するために、通信ライン４６、および受信局の通信ライブラリ５４を介してサービスプロバイダ５２に接続要求を送信する。送信局の通信ライブラリ２８の設定は、プロトコル５６によって定められた所定の期間のみ続く。換言すると、送信局の通信ライブラリ２８は、所定の期間のみデータ送信速度に関する設定情報に従って動作するように設定され、その後、送信局の通信ライブラリ２８は、データ送信速度に関する新しい設定情報に基づく再設定を必要とする。
【００２５】
送信局の通信ライブラリ２８と受信局の通信ライブラリ５４との間の接続が確立されると、送信局の通信ライブラリ２８は、ステップ１１８で、アプリケーション３２から受信局の通信ライブラリ５４に送信するデータ５８をデータパケット６０に分割する。各データパケット６０のサイズは、所定のパケットサイズ、たとえば１００キロバイトを超えない。各データパケット６０の所定のパケットサイズは、受信局の通信ライブラリ５４のプロトコル５６によって定められる。
【００２６】
次にステップ１２０で、送信局の通信ライブラリ２８は、プロトコル５６によって定められた所定のデータ送信速度に基づいて、通信ライン４６、および受信局の通信ライブラリ５４を介して受信局２６にデータパケット６０を送信する。所定のデータ送信速度の例としては、３０データパケット／秒である。所定のデータ送信速度は、プロトコル５６によって定められる。帯域幅は、データパケット６０のデータ送信速度を制御することによって調節される。たとえば、特定のユーザまたはユーザグループに対する帯域幅を増加させる必要がある場合、データ送信速度は、アプリケーションレベルで容易に変更され、毎秒送信されるパケット数を増加させることが可能である。データ送信速度を変更するために、下位レベル、たとえばデバイスレベルで要求される複雑なネットワークプログラミングは不要である。この場合、データ送信速度は、ドライバおよびネットワークカードのようにハードウェアを変更する代わりにプロトコル５６を直接変更することによって変更される。
【００２７】
データパケット６０が送信局２２から受信局２６に送信された後、ステップ１２２で、データ送信は完了する。受信局２６で、受信局の通信ライブラリ５４は、元のデータ５８を再構成するためにデータパケット６０を結合して、サービスプロバイダ５２に送信されるデータ７０にする。送信局の通信ライブラリ２８の設定は、所定の期間のみ続くため、送信局の通信ライブラリ２８は、前記期間が終了する前に、受信局の通信ライブラリ５４に新しい設定情報を要求する必要がある。たとえば、所定の期間の約９０％が経過した場合、送信局の通信ライブラリ２８は、新しい設定情報を要求することができる。
【００２８】
次にステップ１２４で、送信局の通信ライブラリ２８は、データ送信速度に関する新しい設定情報を要求する時間であるかどうかを判定する。新しい設定情報を要求する時間であるという事象において、送信局の通信ライブラリ２８は、先に説明したようにステップ１１０で、通信ライン４６を介して受信局の通信ライブラリ５４に要求を送信する。
【００２９】
続いて、ステップ１１２，１１４，１１６，１１８，１２０および１２２が実行されるともに、送信されていない、または送信すべき新しいデータである残りのデータ５８が、次いで新しいデータ送信速度に基づいて受信局２６に送信される。
【００３０】
新しい設定情報を要求する時間でないという事象において、送信局の通信ライブラリ２８は、ステップ１２６で、送信すべき新しいデータがあるかどうかを判定する。送信すべき新しいデータがある場合、送信局の通信ライブラリ２８は、ステップ１１８，１２０および１２２を実行するとともに、新しいデータは現在のデータ送信速度に基づいて送信される。
【００３１】
送信局２２のアプリケーション３４、および送信局２４のアプリケーション３８が、サービスプロバイダ５２によって提供されるサービスを使おうとする場合、アプリケーション３４，３８は、サービスプロバイダ５２に対する接続要求を開始する。送信局の通信ライブラリ２８と同様に、送信局の通信ライブラリ３０，３６は、ステップ １１０で、通信ライン４８，５０、および受信局の通信ライブラリ５４を介してサービスプロバイダ５２に設定情報に関する要求を送信する。
【００３２】
続いて、ステップ１１２，１１４および１１６が実行されるとともに、アプリケーション３４，３８と受信局２６との間の接続が確立される。接続が確立されると、送信局の通信ライブラリ３０，３６は、ステップ１１８で、アプリケーション３４，３８から受信局の通信ライブラリ５４に送信するデータ６２，６４をデータパケット６６，６８にそれぞれ分割する。次いで送信局の通信ライブラリ３０，３６は、ステップ１２０で、通信ライン４８，５０、および受信局の通信ライブラリ５４を介して受信局２６にデータパケット６６，６８を送信する。データパケット６６，６８が受信局２６に送信された後、ステップ１２２で、データ送信は完了する。受信局２６で、受信局の通信ライブラリ５４は、データ７０の送信を介してサービスプロバイダ５２と通信する。データ７０は、元のデータ５８，６２または６４を再構成したものである。
【００３３】
各アプリケーション３２，３４，３８に対するデータ送信速度は、各ユーザまたはユーザグループに対するプロトコル５６によって定められた所定のデータ送信速度に従って変化する。たとえば、アプリケーション３２を使用しているユーザが高い優先順位として分類される一方で、アプリケーション３４，３８を使用している別のユーザが低い優先順位として分類されている場合、アプリケーション３２を使用しているユーザは、サービスプロバイダ５２からさらなるリソースを使う権利を与えられるため、アプリケーション３４，３８を使用しているユーザよりも広い帯域幅を要求する。アプリケーション３２を使用しているユーザに対する帯域幅は、プロトコル５６で定められるデータ送信速度を容易に変更することによって増加させることができ、毎秒送信されるデータパケット数を増加させることができる。反対に、アプリケーション３４，３８を使用しているユーザに対する帯域幅は、毎秒送信されるデータパケット数を減少させるようにデータ送信速度を変更することによって、減少させることができる。
【００３４】
代替として、本発明の第２実施形態では、プロトコル５６は、所定の期間が存在しないように変更することができる。これは、方法２００として図３に例示されている。方法２００において、データを送信局２２から受信局２６に送信する必要がある場合、ステップ１１０，１１２，１１４，１１６，１１８，１２０および１２２は実行される。データ送信がステップ１２２で完了すると、送信局の通信ライブラリ２８は、ステップ１２８で、送信すべき新しいデータがあるかどうかを判定する。送信すべき新しいデータがあるという事象において、送信局の通信ライブラリ２８は、先に説明したようにステップ１１０で、新しいデータの送信を可能にするデータ送信速度を要求する。
【００３５】
代替として、本発明の第３実施形態は、期間の制限がないようにプロトコル５６を変更することができる、方法３００として図４に例示されている。換言すれば、送信局の通信ライブラリ２８は、受信局の通信ライブラリ５４からデータ送信速度を受信すると、アプリケーション３２またはサービスプロバイダ５２がセッションを終了するまで、データ５８の全てはデータ送信速度に基づいて送信される。
【００３６】
方法３００では、データ５８を送信局２２から受信局２６に送信する必要がある場合、ステップ１１０，１１２，１１４，１１６，１１８，１２０および１２２は実行される。データ送信がステップ１２２で完了すると、送信局の通信ライブラリ２８は、ステップ１３０で、送信すべき新しいデータがあるかどうかを判定する。送信すべき新しいデータがあるという事象において、送信局の通信ライブラリ２８は、ステップ１１８で、前記新しいデータをデータパケットに分割するとともに、データパケットは、ステップ１２０で、現在の送信速度に基づいて送信される。
【００３７】
上述の様式において、アプリケーションレベルでデータパケットのデータ送信速度を制御することによって帯域幅を調節する方法およびシステムを、上述の欠点に対処する本発明のいくつかの実施形態に従って説明した。本発明の実施形態のうちごく少数が開示されたが、本発明は、記載された特定の形式または部品の構成に限定されないとともに、添付の特許請求の範囲において明確に示されるような本発明の範囲および趣旨から逸脱せずに、多数の変形および／または変更を為すことができることは、本開示を考慮すれば当業者にとって自明である。
【符号の説明】
【００３８】
２０  帯域幅を調節するシステム
２２，２４  送信局
２６  受信局
２８，３０，３６，５４  通信ライブラリ
３２，３４，３８  アプリケーション
４０，４２，４４，５６  プロトコル
４６，４８，５０  通信ライン
５２  サービスプロバイダ
５８，６２，６４，７０  データ
６０，６６，６８  データパケット
【図１】
2010279036.tif 000003
【図２】
2010279036.tif 000004
【図３】
2010279036.tif 000005
【図４】
2010279036.tif 000006