(57)【特許請求の範囲】
【請求項１】
データネットワークの帯域幅を複数のデータストリームに割り当てる方法であって、
複数のデータクラスへの該帯域幅の分配を指定する工程と、
前記複数のデータクラスへの前記帯域幅の分配を指定する工程の後に、
複数のデータストリームを受け取る工程であって、各データストリームは、該データストリームを該データクラスの１つと関連付ける少なくとも１つの属性を有する、工程と、
各データストリームの転送速度を取り決める工程であって、該転送速度は、前記データストリームに関連するデータクラスと関連する他のデータストリームの他の転送速度と合わせたときに、前記データクラスに関連するすべてのデータストリームの合わせた速度が該データクラスに分配された帯域幅を超えないような、工程と、
該データストリームを、該データネットワーク上に該取り決められた転送速度で送信する工程と、
を包含し、
前記取り決める工程は、
各データストリームについて複数の受容可能な送信速度を決定する工程と、
各データストリームの転送速度を取り決める工程であって、該転送速度は、該受容可能な送信速度の内から１つ選択され、各データストリームと関連付けられたデータクラスに分配された帯域幅に制限される、工程と、
を包含する方法。
【請求項２】
前記受け取る工程は、
前記データストリームの各々と関連付けられたストリーム注釈を受け取る工程と、
プラグインを活性化して各データストリームを受け取る工程であって、プラグインの種類は、該ストリーム注釈から決定される、工程と、
を包含する、請求項１に記載の方法。
【請求項３】
前記送信する工程は、
各データストリームを前記取り決められた転送速度に変換する工程と、
該取り決められた転送速度で該データストリームを前記データネットワーク上に送信する工程と、
を包含する、請求項１に記載の方法。
【請求項４】
前記変換工程は、前記データストリームに、前記取り決められた転送速度へと丸め、コード変換または間引きを行う工程を包含する、請求項３に記載の方法。
【請求項５】
前記転送速度は第１の転送速度であり、前記方法は、
前記データネットワーク上の未割り当て帯域幅を決定する工程と、
少なくとも１つのデータストリームについて第２の転送速度を取り決める工程であって、該第２の転送速度は該未割り当て帯域幅を用いる、工程と、
該少なくとも１つのデータストリームを該取り決められた第２の転送速度に変換する工程と、
該少なくとも１つのデータストリームを該データネットワーク上で該第２の転送速度で送信する工程と、
をさらに包含する、請求項１に記載の方法。
【請求項６】
１つの関連付けられたデータクラスを有する少なくとも１つの第２のデータストリームを受け取る工程と、
該少なくとも１つのデータストリームについて第３の転送速度を取り決める工程であって、該第３の転送速度は、該少なくとも１つのデータストリームと関連付けられた該データクラスに分配された帯域幅に制限される、工程と、
該少なくとも第２のデータストリームについて第４の転送速度を取り決める工程であって、該第４の転送速度は、該少なくとも第２のデータストリームと関連付けられた該データクラスに分配された帯域幅に制限される、工程と、
該データネットワーク上に、該少なくとも１つのデータストリームを該第３の転送速度で、かつ、該少なくとも第２のデータストリームを該第４のデータ速度で、送信する工程と、
をさらに包含する、請求項５に記載の方法。
【請求項７】
データネットワークの帯域幅を、関連付けられたデータクラスを有するデータストリームに割り当てる装置であって、
前記帯域幅を複数のデータクラスに分配する帯域幅アロケーション装置と、
該データストリームを受け取って、該データストリームについて複数の受容可能な送信速度を決定するためのロジックを有する、前記データストリームと関連付けられたストリーム注釈に基づいて管理器によって活性化させられるストリームプロセッサと、
該ストリームプロセッサに結合され、該ストリームプロセッサと該データストリームについての転送速度を取り決めるロジックを有するアロケータであって、該転送速度は、該複数の受容可能な送信速度から１つ選択され、かつ、他のデータストリームの他の転送速度と合わせたときに、同じ関連するデータクラスを有するすべてのデータストリームの合わせた速度が該データストリームと関連付けられた該データクラスに分配された帯域幅の一部を超えないような、アロケータと、
該ストリームプロセッサに結合され、該データストリームを受け取り、該データストリームを該データネットワーク上に該取り決められた転送速度で送信するためのロジックを有する出力と、
を備える装置。
【請求項８】
前記データストリームを前記取り決められた転送速度に変換するためのロジックを有する変換器をさらに備える、請求項７に記載のストリームプロセッサ。
【請求項９】
前記アロケータは、前記データネットワーク上の未割り当て帯域幅を検出するロジックと、前記ストリームプロセッサとともに、前記複数の受容可能な送信速度から１つ選択される、前記データストリームについての新規転送速度を取り決めるロジックとを有する検出器をさらに備え、該新規転送速度は、該未割り当て帯域幅の少なくとも一部を利用する、請求項７に記載の装置。
【請求項１０】
前記ストリームプロセッサは、前記データストリームに対する変更に基づいて、該データストリームについて新規の複数の受容可能な送信速度を決定するためのロジックをさらに備える、請求項７に記載の装置。
【請求項１１】
データネットワークを、該データネットワークの帯域幅をデータストリームに割り当てるために動作させる方法であって、
該データストリームにストリーム注釈を付加する工程と、
該データストリームを該データネットワーク上に送信する工程と、
該データネットワークの帯域幅を複数のデータクラスに指定するポリシーツリーを確立する工程と、
該データネットワークの帯域幅を前記複数のデータクラスに指定するポリシーツリーを確立する工程の後に、
該データストリームを受け取る工程と、
該データストリームについて複数の受容可能な送信速度を決定する工程と、
該データストリームについて転送速度を取り決める工程であって、該転送速度は、該受容可能な送信速度から１つ選択され、かつ、他のデータストリームの他の転送速度と合わせたときに、同じ関連するデータクラスを有するすべてのデータストリームの合わせた速度が該データストリームの該ストリーム注釈と関連付けられた該データクラス用の該ポリシーツリーによって指定された帯域幅を超えないような、工程と、
該データストリームを該取り決められた転送速度に変換する工程と、
該データストリームを該データネットワーク上に該取り決められた転送速度で送信する工程と、
を包含する方法。
【請求項１２】
前記決定する工程は、
前記データストリームの前記ストリーム注釈を受け取る工程と、
該ストリーム注釈に基づいてストリームプロセッサを活性化させて、前記データストリームを受け取り、該データストリームについて前記複数の受容可能な送信速度を決定する工程と、
を包含する、請求項１１に記載の方法。
【請求項１３】
前記転送速度は第１の転送速度であり、前記方法は、
前記データネットワーク上の未割り当て帯域幅を決定する工程と、
前記データストリームの第２の転送速度を取り決める工程であって、該第２の転送速度は、前記複数の受容可能な送信速度から１つ選択され、該未割り当て帯域幅の少なくとも一部を用いる、工程と、
該データストリームを、該取り決められた第２の転送速度に変換する工程と、  該データストリームを該データネットワーク上に該取り決められた第２の転送速度で送信する工程と、
をさらに包含する、請求項１１に記載の方法。
【請求項１４】
前記データストリームは第１のデータストリームであり、前記ストリーム注釈は第１のストリーム注釈であり、前記データクラスは第１のデータクラスであり、前記方法は、
第２のデータストリームに第２のストリーム注釈を付加する工程と、
該第２のデータストリームについて複数の受容可能な送信速度を決定する工程と、
該第１のデータストリームについて第１の転送速度を取り決める工程であって、該第１の転送速度は、該第１のデータストリームの該受容可能な送信速度から１つ選択され、該第１のデータストリームと関連付けられた該データクラス用のポリシーツリーによって指定された帯域幅によって制限される、工程と、
該第２のデータストリームについて第２の転送速度を取り決める工程であって、該第２の転送速度は、該第２のデータストリームの受容可能な送信速度から１つ選択され、該第２のデータストリームと関連付けられたデータクラス用の該ポリシーツリーによって指定された帯域幅によって制限される、工程と、
該第１のデータストリームを該取り決められた第１の転送速度に変換し、該第２のデータストリームを該取り決められた第２の転送速度に変換する工程と、
該第１のデータストリームおよび該第２のデータストリームを該データネットワーク上に該取り決められた転送速度で送信する工程と、
をさらに包含する、請求項１３に記載の方法。
【請求項１５】
データストリームを送信するためのデータネットワークであって、
データクラスを規定するストリーム注釈を該データストリームに付加するロジックと、該データストリームおよび該ストリーム注釈を該データネットワーク上に送信するためのロジックとを有する第１のノードと、
該第１のノードに結合され、該データストリームおよび該ストリーム注釈を受け取るためのロジックを有する、第２のノードと、
該第２のノードに結合され、該データストリームを受け取って、複数の受容可能な送信速度を決定するためのロジックを有するストリームプロセッサと、
該ストリームプロセッサに結合され、該データネットワークの帯域幅の複数のデータクラスへの分配を指定するポリシーツリーを有し、該データストリームの転送速度を取り決めるロジックをさらに備えるアロケータであって、該転送速度は、該複数の受容可能な送信速度から１つ選択され、かつ、他のデータストリームの他の転送速度と合わせたときに、同じ関連するデータクラスを有するすべてのデータストリームの合わせた速度が該ポリシーツリーが該ストリーム注釈によって規定されたデータクラスに分配された帯域幅を超えないような、アロケータと、
該ストリームプロセッサに結合され、該データストリームを該データネットワーク上に該取り決められた転送速度で送信するためのロジックを有する出力と、
該第２のノードに結合され、該出力によって送信されたデータストリームを受け取るためのロジックを有する第３のノードと、
を備えるデータネットワーク。
【請求項１６】
前記ストリームプロセッサは、前記データストリームを前記取り決められた転送速度に変換するためのロジックをさらに備える、請求項１５に記載のデータネットワーク。
【請求項１７】
前記アロケータは、前記データネットワークの未割り当て帯域幅を検出するためのロジックを有する検出器をさらに備え、未割り当て帯域幅が検出されると、該検出器は、前記データストリームの新規転送速度を取り決めるロジックを有し、該新規転送速度は、前記複数の受容可能な送信速度のうち該未割り当て帯域幅の少なくとも一部を用いる選択された１つである、請求項１５に記載のデータネットワーク。
【発明の詳細な説明】
【０００１】
（関連出願の相互参照）
本願は、シリアル番号第６０／１３７，１６０号として１９９９年６月１日に出願された同時係属仮特許出願の優先権を主張する。本願は、１９９９年６月１日に出願されたシリアル番号第０９／３２３，８６９号の「ＰＥＲＦＯＲＭＩＮＧ  ＭＵＬＴＩＣＡＳＴ  ＣＯＭＭＵＮＩＣＡＴＩＯＮ  ＩＮ  ＣＯＭＰＵＴＥＲ  ＮＥＴＷＯＲＫＳ  ＢＹ  ＵＳＩＮＧ  ＯＶＥＲＬＡＹ  ＲＯＵＴＩＮＧ」と題された米国特許出願、およびシリアル番号第６０／１３７，１５３号として１９９９年６月１日に出願された「ＳＹＳＴＥＭ  ＦＯＲ  ＭＵＬＴＩＰＯＩＮＴ  ＩＮＦＲＡＳＴＲＵＣＴＵＲＥ  ＴＲＡＮＳＰＯＲＴ  ＩＮ  Ａ  ＣＯＭＰＵＴＥＲ  ＮＥＴＷＯＲＫ」と題された米国仮特許出願と関連する。これらの出願の各々は、本明細書中において、その全てを記載したものとして参考として援用する。
【０００２】
（技術分野）
本発明は、一般に、データネットワークの動作に関し、より詳細には、データネットワークの帯域幅の複数のデータストリームへの割当てに関する。
【０００３】
（発明の背景）
ネットワークは、特に高帯域幅の情報を放送するときに、その帯域幅を効率的に用いる必要がある。放送情報は、通常、エンドユーザまたはクライアント等の多数の宛先にデータを送信する比較的に少数のデータソースにより特徴づけられる。例えば、ＦＭラジオ局からの音声信号は、デジタル化され、インターネット等の公共のデータネットワーク上を放送され得るため、世界中の多数のエンドユーザがデジタル放送を受信することが可能となる。
【０００４】
マルチキャスティングとして知られる放送のサブセットは、選択されたクライアントの集合により放送の受信が企図される場合に存在する。残念ながら、現在のアプローチは、大きなデータネットワーク上で効率的なマルチキャスティングを達成することに失敗してきた。この失敗の原因の一部は、マルチキャスト情報の申込み、配信、および制御を処理するスケーラブル（ｓｃａｌａｂｌｅ）な下部構造が不足していることによる。
【０００５】
同様に、時間を重要視する（ｔｉｍｅ−ｃｒｉｔｉｃａｌ）多数のユニキャスト（ｕｎｉｃａｓｔ）接続が、例えば、ボイスオーバーＩＰ、またはオンデマンドストリーミングメディアをサポートするために、ネットワーク上でともに多重化される場合、ネットワークは、要求されたロードが介在するネットワークリンクの帯域幅を超過する場合でも、これらのストリームを効率的に送達し、送達するうえで可能である最高のクォリティを維持しなければならない。
【０００６】
図１は、通常のデータネットワークのネットワーク部分１００を示す。ネットワーク部分１００は、リンク１０８および１１０によりともに結合されたノード１０２、１０４、および１０６を含む。ネットワーク部分１００の全てのリンクは、情報の送受信の両方を可能にする双方向リンクと見なすことができる。情報ソース１１２は、リンク１１４によりノード１０２に結合される。クライアント１１６、１１８および１２０は、リンク１２２、１２４、および１２６により、それぞれノード１０６に結合される。リンク１２８、１２９、１３０、１３２および１３４は、データネットワークの他の部分（図示せず）に結合される。
【０００７】
通常の動作モードでは、情報ソース１１２が、データネットワーク全体への配信のために、情報をノード１０２へと送る。この情報は、一連のデータパケットがデータストリームを形成するデータパケット形式である。例えば、クライアント１１８を宛先とするデータストリームは、ノード１０２からノード１０４へ移動し、次いで、ノード１０６へ移動し、最後にクライアント１１８に達する。各ノードは、データストリームのデータパケットを受信し、そのデータパケットを出力ストリームで次のノードへと転送する。このようにして、データストリームは、多数の異なるデータパスを用いて、ソースから宛先へとネットワーク中を配信され得る。
【０００８】
残念ながら、ノードが出力ストリームを形成する方式により、送信に関する問題が生じ得る。１つの問題は帯域幅割当ての発行に関し、これは、各リンクが一定量の帯域幅しか有さないためである。現在のネットワーク方式では、出力側の渋滞により、トラフィックがノードで停滞する場合、入来するパケットのいくつかが抜け落ち、結果として、データストリームのクオリティが損なわれる。
【０００９】
帯域幅を制限することが特に重要視される１つの状況は、リアルタイムデータストリームの送信中である。リアルタイムデータストリームは、映像、音声、またはストリームが妨害された場合に、クライアントが受信するクオリティが損なわれる他のタイプのデータストリームを含む。例えば、リンク１０８の帯域幅の制限により、クライアント１１８に送信されるリアルタイム映像ストリームがデータパケットを失う場合、クライアント１１８が受信するデータストリームのクオリティが損なわれる。クライアント１１８は、そのリアルタイム映像を、音声部分のグリッチ（ｇｌｉｔｃｈ）を伴う中断、飛越し、またはスキップを有するものとして認識する。結果として、クライアント１１８は、そのような損なわれた映像ストリームを受信することを望まない。
【００１０】
（発明の要旨）
本発明は、データネットワーク内のデータストリームの帯域幅の分類、監視、制御または管理、および割当を行うシステムを提供する。本発明は、ユニキャストネットワーク、放送ネットワーク、またはネットワーク帯域幅の効率的な使用が所望される他のネットワーク環境を含むあらゆるネットワーク環境で用いることができるが、これに限定されない。
【００１１】
１つの実施形態では、データネットワークの帯域幅を複数のデータストリームに割当てる方法が提供される。この方法は、複数のデータクラスへの帯域幅の分配を指定する工程、各データストリームが、そのデータストリームをデータクラスと関連づける少なくとも１つの属性を有する、複数のデータストリームを受信する工程、各データストリームに関連づけられたデータクラスに分配された帯域幅に制限される各データストリームの転送速度を取り決める（ｎｅｇｏｔｉａｔｉｎｇ）工程、およびデータネットワーク上にデータストリームを取り決められた転送速度で送信する工程を含む。
【００１２】
別の実施形態では、ストリーム注釈（ｓｔｒｅａｍ  ａｎｎｏｔａｔｉｏｎｓ）を有するデータストリームにデータネットワークの帯域幅を割当てる装置を提供する。この装置は、データストリームを受信し、かつ複数の転送レートを決定するロジックを有するプラグインを含む。プラグインは、データストリームを、複数の転送レートのうちの１つから選択された転送レートを有する変換ストリームに変換するロジックも有する。アロケータがプラグインに結合され、データストリームを受信するロジックを有する。アロケータは、複数のデータクラスへの帯域幅の分配を指定するポリシーツリー（ｐｏｌｉｃｙ  ｔｒｅｅ）を有する。アロケータはまた、ストリーム注釈に基づいて、データストリームをデータクラスに関連付け、かつポリシーツリーによりデータクラスに割当てられた帯域幅に制限される転送レートを、複数の転送レートから選択するようにプラグインと取り決めるロジック有する。出力リンクがプラグインに結合され、データネットワーク上に変換ストリームをその転送レートで送信するためのロジックを有する。
【００１３】
別の実施形態では、データネットワークの帯域幅をデータストリームに割当てるようにデータネットワークを動作させる方法が提供される。この方法は、データクラスを表わすストリーム注釈をデータストリームに付ける工程、データネットワークの帯域幅の複数のデータクラスへの分配を指定するポリシーツリーを確立する工程、ストリーム注釈に基づいて、データストリームのデータクラスを決定し、かつデータクラスのポリシーツリーにより指定された帯域幅に制限されたデータストリーム用の転送レートを取り決める工程、データストリームを、その転送レートを有する変換ストリームに変換する工程、およびデータネットワーク上に変換ストリームをその転送レートで送信する工程を含む。
【００１４】
（特定の実施形態の開示）
本発明はデータネットワークのメディアストリームに帯域を分類、監視、制御その他管理ならびに配置するためのシステムを提供する。メディアストリームの伝送レートは、固定されているが管理上構成可能な手段によって選ばれ、データネットワークの使用可能な帯域が効果的に使用され得る。
【００１５】
図２は、図１のネットワーク部分を示し、さらにノード１０２、１０４および１０６にリンク２０８、２１０および２１２によって接続されたメディアデバイス２０２、２０４および２０６をそれぞれ含む。メディアデバイスは、例えば上記に記載の特許出願シリアルナンバー第０９／３２３，８６９号に記載されるようなオーバーレイネットワークのような、バーチャルネットワークを形成するために使用される。メディアデバイスは、データストリームの帯域配置を保持しながら、データネットワークのあちこちにデータストリームを伝送する役目を果たす。これは、メディアデバイスによって形成されたバーチャルオーバーレイネットワークにデータネットワークの使用可能な帯域の少なくとも一部分を捧げることで成し遂げられる。その結果、クライアントはリアルタイムのデータストリームを妨害なくおよび優れた品質で受信する。バーチャルオーバーレイネットワーク形成の説明は、本発明の範囲を超えるが、詳細は上記に記載の特許出願シリアルナンバー第０９／３２３，８６９号に記載される。
【００１６】
メディアデバイスは、ノードに接続された任意の他のリンクから到達するデータストリームをも受信するために、それぞれのノードに接続する。例えば、メディアデバイス２０２はリンク１１４、１２８、１２９および１０８からデータストリームを受信する。メディアデバイスをノードに接続するリンクは、入力と出力との両方の伝送経路を提供する。到達するデータストリームを受信した後、データネットワーク上の伝送のために、メディアデバイスは出力データストリームを形成する。
【００１７】
図３は、本発明によるメディアデバイスとしての使用に適しているコンピュータデバイス３００を示す。コンピュータデバイス３００はディスプレイスクリーン３０４を有するディスプレイ３０２を含む。キャビネット３０６は、ディスクドライブ、ＣＤＲＯＭドライブ、ディスプレイアダプター、ネットワークカード、ランダムアクセスメモリ（ＲＡＭ）、中央処理装置（ＣＰＵ）およびその他の構成要素などの標準のコンピュータ構成要素（図示せず）、サブシステムおよびデバイスを収容する。ボタン３１０を有するマウス３０８およびキーボード３１２などのユーザー入力デバイスが図示される。トラックボール、タッチスクリーン、デジタイジングタブレット等の他のユーザー入力デバイスが使用され得る。通常、コンピュータデバイス３００は、本発明と共に使用するのに適しているデスクトップコンピュータのような、１つのタイプのコンピュータの実例となる。コンピュータは多くの異なったハードウェア構成要素で構成され得、多くの規模および型（例えば、ラップトップ、パームトップ、サーバー、ワークステーションおよび本体）に作製され得る。本明細書中に記載される処理を実行するのに適しているハードウェアプラットフォームならどれでも、本発明に使用するのに適している。例えば、図２はそれぞれノード１０２、１０４および１０６に接続されたメディアデバイス２０２，２０４および２０６を示すが、メディアデバイスの機能および処理は直接ノードに接続されてもよい。
【００１８】
図４は、コンピュータデバイス３００のようなコンピュータデバイスの中に通常は存在するサブシステムを図示する。ボックス４００内のサブシステムは直接内部バス４１０にインタフェースされる。そのようなサブシステムは通常、図３のキャビネット３０６のようなコンピュータシステム内に含まれる。サブシステムは、入力／出力（Ｉ／Ｏ）コントローラ４１２、システムランダムアクセスメモリ（ＲＡＭ）４１４、中央処理装置（ＣＰＵ）４１６、ディスプレイアダプター４１８、シリアルポート４２０、固定ディスク４２２およびネットワークインタフェースアダプター４２４を含む。バス４１０の使用により、それぞれのサブシステムはサブシステム間で、最も重要なのは、ＣＰＵ４１６とデータの転送をし得る。外部デバイスは、バス上のサブシステムとインタフェースすることで、バス４１０を介してＣＰＵまたは他のサブシステムと通信し得る。モニタ４２６は、ディスプレイアダプター４１８を介してバスに接続する。マウスのような相対ポインティングデバイス（ＲＰＤ）は、シリアルポート４２０を介して接続する。キーボード４３０のようないくつかのデバイスは、主データバスを使用せずに直接ＣＰＵ４１６と通信し得る。例えば、割り込みコントローラ（ｉｎｔｅｒｒｕｐｔ  ｃｏｎｔｒｏｌｌｅｒ）および付属レジスタ（図示せず）を介して通信し得る。
【００１９】
図３に示される外部物理構成のように、多くのサブシステム構成が可能である。図４は、１つの適している構成の実例となる。図４に示されるもの以外に、サブシステム、構成要素またはデバイスが追加され得る。適したコンピュータシステムは、図４に示される全てのサブシステムを使用しなくても完成され得る。ＣＤＲＯＭドライブ、グラフィックスアクセラレータ等の他のサブシステムは、本発明のシステムの性能に影響を及ぼさずに構成に含まれ得る。
【００２０】
図５は、本発明により作動するメディアデバイス４５０のブロック図を示す。メディアデバイス４５０は、図２のデータネットワークにおけるメディアデバイス２０２、２０４および２０６の１つとして使用するのに適している。ディバイス４５０は、４つの入力１−４、コントロール入力４５２および出力４５４を有する。１つ以上のデータストリームは、４つの入力１−４を介してデバイス４５０に到達する。便宜上、それぞれの４つの入力に、１つのデータストリームしか到達しないと想定する。しかし、デバイス４５０は、複数のデータストリームが到達する１つの入力しか有さないように構成され得る、あるいは、デバイス４５０はそれぞれの入力に１つ以上のデータストリームが到達する複数の入力を有するように構成され得る。それぞれの４つのデータストリームは、ネットワーク上の伝送のために出力４５４にルートされる。出力４５４は、出力４５４でデバイス４５０が使用可能な最高伝送能力を表示する伝送制限を有する。伝送能力は、さまざまな理由で制限され得る。例えば、伝送能力は物理的能力制限であり得る、またはネットワーク使用を制御するために、データネットワークが出力をこの能力制限まで制限することで生じ得る。出力の伝送能力が制限され得る他の方法として、システムアドミニストレータが出力を特定の伝送能力に制限するために、コントロール入力４５２を介して命令をダウンロードする場合に生じ得る。その結果、デバイス４５０は、管理上の命令および帯域の制限に従う方法で、使用可能な出力帯域を入力データストリームに配置するように作動する。
【００２１】
それぞれの４つの入力データストリームは、データネットワーク上で１つ以上の伝送レートで伝送され得る。伝送レートの選択はデバイス４５０によって行われ、データストリームの中のデータの種類による。例えば、ビデオイメージを含むデータストリームは、複数の内の１つの伝送レートで伝送され得、ビデオイメージの質の違いが伝送レートの選択によって生じる。プログラムまたはデータファイルを含むデータストリームは、情報を退化させることなく、どの伝送レートでも伝送され得る。複数の内の１つの伝送レートでデータストリームを伝送する柔軟性は、デバイス４５０が効率の最大化、ストリーム優先権の実行または特定の管理上の条件を受け入れるような、特定のネットワークゴールを達成するためにデータストリームの伝送レートを選ばせ得る。例えば、図５の代表的なデータストリームを参照すると、入力１は１秒当り２０、１０または５メガビット（２０／１０／５ｍ）で伝送され得、入力２は１秒当り１０、５または２メガビット（１０／５／２ｍ）で伝送され得る。したがって、動作中、デバイス４５０は既知の使用可能な伝送レートの中から、それぞれの入力データストリームの伝送レートを選び得、その結果出力４５４における入力データストリームへ使用可能なネットワーク帯域を配置し得る。
【００２２】
したがって、上記デバイスが入力データストリームのための送信速度を選択する方法は、帯域幅割り当てパラメータを用いる。帯域幅割り当てパラメータを受け取ると、システムアドミニストレータもしくは他のシステムまたは外部コンピュータプログラムが、制御入力４５２を用いて、帯域幅割り当てパラメータをデバイス４５０に入力する。割り当てパラメータは、利用可能な出力帯域幅の、選択された「データクラス」への割り当てを定義する。データクラスは、１つ以上の「タイプ」のデータストリームを定義する。例えば、ライブビデオデータストリームは、１つのタイプのデータストリームであり、データファイルを含むデータストリームは、別のタイプのデータストリームである。データストリームはまた、下位タイプを有し得る。例えば、ニュース放送および天気放送が、ライブビデオデータストリームの下位タイプである。したがって、データクラスは、データストリームのタイプおよび／または下位タイプの任意の組み合わせを特定し得る。デバイス４５０はまず、データストリームに関連する制御情報から、データストリームのタイプ、つまりクラス、を判定する。データストリームを転送するために利用可能な送信速度も判定される。続いて、デバイスは、その特定のクラスのデータストリームについての帯域幅割り当てに適合するデータストリームに対する利用可能な送信速度の１つを選択する。例えば、入力１がクラス「ビデオ」のデータストリームを搬送し、且つ、入力２がクラス「オーディオ」のデータストリームを搬送する場合、これらのデータストリームの各々の送信速度は、割り当てパラメータに基づいて選択される。その結果、入力１についての送信速度は、クラス「ビデオ」についての帯域幅に適合するように選択され、入力２についての送信速度は、クラス「オーディオ」についての帯域幅に適合するように選択される。したがって、割り当てパラメータを用いて、利用可能な出力帯域幅を特定のタイプの入来データストリームに割り当てることができる。図示するように、本発明の範囲から逸れることなく、多数の帯域幅割り当て方法およびダイナミック再割り当て方法が可能である。
【００２３】
ある動作方法において、デバイス４５０は、全ての入力ストリームの中で、出力帯域幅を割り当て、全ての入力ストリームがネットワーク上に転送される。例えば、出力４５４における出力能力の限界が４０ｍで、４つの入力データストリームが図５に示す可能な送信速度を有すると仮定すると、１つの割り当てスキームにおいて、入力１が２０ｍ、入力２が５ｍ、入力３が５ｍ、入力４が１０ｍとなるように送信速度が選択され得る。したがって、出力４５４において利用可能な４０ｍの全てが利用される。別の割り当てスキームでは、制御入力を用いて、より高い帯域幅を特定のクラスのデータストリームに割り当てる割り当てパラメータを入力し得る。例えば、入力２および入力４におけるデータストリームのタイプが、クラス割り当てされた高い帯域幅内にある場合、新たな割り当ての結果、入力１が５ｍ、入力２が１０ｍ、入力３が５ｍ、入力４が２０ｍとなるように送信速度が選択される。したがって、それぞれ１０ｍおよび２０ｍに対応する入力２および入力４におけるデータストリームのために、利用可能な最も高い送信速度が選択され、入力１および入力３におけるデータストリームは、利用可能な出力帯域幅の残りの１０ｍを分割する送信速度を有する。割り当てパラメータを用いて、入力データストリームに適切な送信速度を選択することにより、全ての様態の帯域幅割り当てが達成され得る。割り当てパラメータの設定が原因で、１つ以上の入力ストリームがネットワーク上を転送されないという状況も起こり得る。例えば、１セットの割り当てパラメータに基づいて、入力１および入力４についての送信速度がそれぞれ２０ｍとなるように選択され得、それにより、４０ｍの利用可能な出力帯域幅を全て利用する。この場合、入力２および入力３におけるデータストリームが失われ、入力１および入力４におけるデータストリームは、それらの利用可能な最も高い送信速度で転送される。
【００２４】
図６Ａは、本発明に従って構成された帯域幅割り当てデバイス５００の詳細なブロック図を示す。デバイス５００は、さまざまな主題コンテンツを示すデータを含む複数の入力データストリームを受け入れる。例えば、入力データストリームは、映画またはテレビ放送等のビデオデータもしくはニュースリポートまたは天気予報等のリアルタイム情報を含み得る。データストリームはまた、プログラムおよび／またはデータファイル等の通常のコンピュータデータを含む。第１の入力データストリーム５０２および第２の入力データストリーム５０４は、デバイス５００に入力される。第１の入力データストリーム５０２は、１つのデータストリームのみ、例えばビデオ放送を示すデータストリームを含む。第２の入力データストリーム５０４は、Ｎ個までの異なるデータストリームを含む多重化されたデータストリームを含む。データストリームは、データストリームの異なるパラメータを説明する制御情報５０６を含む。例えば、制御情報は、データストリームの発生地または目的地についての情報を有し得る。制御情報はまた、データストリームのコンテンツについての情報を含む。例えば、作者の名前、放送のタイプ、または放送の長さ等の情報を含む。制御情報５０６は、データストリームの一部を形成し得るか、もしくは、制御情報は、１つ以上の入力上を、または、分離した制御チャネルを介して、帯域幅割り当てデバイス５００に到着する分離された制御データストリームの形態で送信され得る。
【００２５】
割り当てパラメータは、システムアドミニストレータまたは他の管理ソースからデバイス５００に提供される１セットの帯域幅ポリシー５０８を示す。帯域幅ポリシーを使用して、デバイス５００の出力５１０において利用可能なデータネットワークの帯域幅を割り当てる。帯域幅ポリシーの目的は、入力データストリームのクラスのうちで、利用可能な出力帯域幅の所望の割り当てを達成することである。例えば、より高い帯域幅を、ビデオデータを示す第１のデータストリーム５０２に与えて、このストリームの送信が、受信時に高品質のビデオイメージをもたらすのが望ましい。帯域幅ポリシー５０８は、利用可能な出力帯域幅のダイナミックな割り当てを可能にし、入力データストリームの異なるクラスが到着するかまたは終了するか、または既存のクラスのデータストリームの要件が変化すると、帯域幅割り当てがダイナミックに変化し得る。帯域幅ポリシー５０８を用いて、デバイス５００は、さまざまな変化するネットワーク条件に反応して、利用可能な出力帯域幅を、要求に応じて再度割り当てる。
【００２６】
入来データストリームを処理するために、アロケータ５１２は、入来データストリームに関連する制御情報５０６を受け取る。アロケータはまた、システムアドミニストレータから帯域幅ポリシー５０８を受け取る。あるいは、アロケータは、開示されるシステムの内部または外部のいずれかで動作する自動化された管理システムから、帯域幅ポリシーを受け取る。帯域幅ポリシー５０８は、帯域幅プレファレンスを実行するように設計され、例えば、階層構造を有するポリシーツリーとして示され得る。図７を参照して、ある例示的なポリシーツリーについて詳細に説明する。帯域幅ポリシーは、ツリー構造を有するものに限定されないが、帯域幅を任意のデータストリーム属性、データストリームタイプ、またはデータストリームクラスに関連づける任意の構造を有し得る。ポリシーツリーは、データネットワークの帯域幅を現在受信中のデータストリームのタイプに基づいてデータネットワークの帯域幅を割り当てるためにアロケータ５１２によって使用される静的なポリシーを定義する。
【００２７】
プラグイン管理器５１４はまた、制御情報５０６を受け取る。プラグイン管理器５１４は、受け取った制御情報を分析し、プラグインを動作させて、入来データストリームを処理する。プラグインとは、メディアデバイス上で実行され、入来データストリームに対してさまざまな処理を行う能力を有するソフトウェアおよび／またはハードウェアのことをいう。各プラグインは、特定のタイプのデータストリームのデータを受け取るように形成され、特定的に設計される。例えば、プラグインは、階層化されたビデオデータを扱うように作成されるか、または、プラグインは、非リアルタイムコンピュータデータを扱うように作成される。図６Ａの実施形態において、第１および第２のプラグイン５１６および５１８ならびにＮ番目までのプラグイン５２０がプラグイン管理器５１４によって動作され、特定のタイプの入来データストリームを受け取り、処理する。
【００２８】
データストリームのタイプおよび／またはデータストリームに付随する属性に基づいて、プラグインは、ネットワーク上でデータストリームを転送するために使用され得る１つ以上の送信速度を判定する。一旦利用可能な送信速度が判定されると、プラグインはアロケータ５１２と取り決めを行って、ネットワーク上でそれらのそれぞれのデータストリームを転送するために使用され得る１つの送信速度を選択する。この取り決めプロセスの間、プラグインは、データストリームに利用可能な速度の表示をアロケータに提供する。アロケータ５１２は、どの速度を使用すべきかを表示することにより、プラグインに応答する。アロケータ５１２は、帯域幅ポリシーと共に、各ストリームに関連する制御情報を用いて、各データストリームについて取り決めされた送信速度を選択する。取り決めされた送信速度は、プラグインによって判定された利用可能な速度から選択される。システムアドミニストレータによって提供された帯域幅ポリシーに固着させることによって、アロケータは、各タイプのデータストリームについての好適な送信速度を取り決めすることにより、出力において利用可能な能力の限界に適合しつつ、利用可能なネットワーク帯域幅の効率および利用を最大化することができる。
【００２９】
速度取り決めの完了時、プラグインは、変換器５２６、５２８、５３０を介して、入来データストリームのデータを取り決めされた送信速度に変換することにより、５３２、５３４、および５３６に示すような変換されたストリームを形成する。これを達成するため、プラグインは、変換プロセスを用いて、入力データストリームを、取り決めされた送信速度を有する変換されたデータストリームへと変換する。ある実施形態において、変換プロセスは、マルチビット速度信号を含む、ある下位セットのレイヤを選択するだけで、変換されたデータストリームを形成する。別の実施形態において、変換プロセスは、信号を復号化し、別の圧縮パラメータでそれを再符号化して、受信器において信号品質が低下するという犠牲のもと、ビット速度を減少させる。変換されたデータストリームは、出力リンク５２２と結合され、出力リンク５２２において、ストリームが組み合わされて出力データストリーム５１０を形成する。出力データストリーム５１０は、取り決めされた送信速度の入力データストリームを含む。変換されたデータストリームは、プラグインから送出中のデータパケットのストリームを含む。出力リンク５２２は、プラグインからデータパケットを受け取るロジックを有し、また、データパケットを出力データストリーム５１０の形状に組み合わせるロジックを含む。出力データストリーム５１０は、エンドユーザまたはネットワーク内の他のルーティングデバイスに転送される。ネットワーク内の他のルーティングデバイスは、帯域幅割り当てデバイス５００と同一であり得、ここで、同じまたは別のセットの帯域幅ポリシーを適用する。したがって、ある帯域幅割り当てデバイスにおける第１の取り決めされた送信速度を有するデータストリームが、ネットワーク内の他の帯域幅割り当てデバイスにおいて異なる取り決めされた送信速度を有し得る。
【００３０】
図６Ｂは、帯域幅割り当てデバイス５００の別の実施形態を示す。図６Ｂの実施形態において、プラグインの各々が、５５０、５５２、５５４に示す出力キューを有する。出力リンク５２２は、パケットスケジューラ５５６と置換される。スケジューラ５５６は、出力キューをポーリングして、プラグインからデータパケットを引き出し、それにより、出力ストリーム５１０を形成する。帯域幅割り当てデバイス５００が出力リンク５２２またはパケットスケジューラ５５６を用いるかどうかに関わらず、出力データストリーム５１０は、ポリシーツリーの帯域幅ポリシーによって定義される帯域幅アロケータに由来する送信速度を有する入力データストリームを含む。
【００３１】
図７は、本発明において使用するための、ある例示的なポリシーツリー６００を示す。ポリシーツリーは、帯域幅割り当てデバイスに利用可能な帯域幅を、データストリームの異なるクラスの間でどのように割り当てるかを記載している。ツリー構造を用いて、割り当ての階層的性質をとらえるが、帯域幅割り当てを説明するために、任意のタイプの構造または関係組織を使用し得る。帯域幅割り当てデバイスに利用可能な帯域幅の合計をル−ト６０２に示す。各デバイスについてルートに割り当てられた帯域幅の合計は、ネットワークにおける管理上の決定または容量限界に基づいて異なり得る。ルート６０２において利用可能な帯域幅は、第１世代のノード（ルートに接続されたノード）またはクラスの間で、各ノードに割り当てられた相対的な重みに基づいて割り当てられる。例えば、６０６に示す顧客２は、ルート帯域幅の３０％を割り当てられる。第１世代のノードの各々に割り当てられた帯域幅は、１世代下のノードの間でさらに分割される。この様態で、ルートに示した利用可能なネットワーク帯域幅が、ポリシーツリーの全てのノードまたはクラスに階層的に割り当てられる。
【００３２】
ある実施形態において、ポリシーツリー６００は、ルート６０２と、ルート６０２に接続された顧客１、顧客２、および顧客３（それぞれ６０４、６０６、６０８に示す）とを有する。顧客１は、最大でルート帯域幅の３０％を割り当てられる。顧客２および顧客３も、それぞれルート帯域幅の３０％を割り当てられる。ルート帯域幅の残りの１０％は、６１０に示す他の全てのユーザに割り当てられる。ポリシーツリー６００は、あるタイプのポリシーツリーの代表例に過ぎない。他のタイプの構造または組織を用いて、帯域幅ポリシーを定義し得る。一旦ポリシーが定義されると、システムアドミニストレータは、ネットワークの性能またはデータストリームのタイプの優先順位の変更等のさまざまな動作パラメータに基づいて割り当てを変更する裁量（ｄｉｓｃｒｅｔｉｏｎ）を有する。
【００３３】
帯域幅ポリシーのさらに改良したものを、ポリシーツリー６００内に示す。例えば、顧客２および顧客３のそれぞれの利用可能な帯域幅は、より詳細なタイプのデータストリームにさらに割り当てられる。顧客２が有するルート帯域幅の３０％は、ルートの２５％が映画６１２に利用可能となり、ルートの５％がスポーツ６１４に利用可能となるように割り当てられる。顧客３が有するルート帯域幅の３０％は、ルートの２０％がニュース６１６に利用可能となり、ルートの１０％が天気６１８に利用可能となるように割り当てられる。図５のデバイス５００において、アロケータ５１２は、システムアドミニストレータから、帯域幅ポリシー入力５０８を介してポリシーツリーの割り当てを受け取り、その割り当てを用いて、入来データストリームについての送信速度について、動作中のプラグインと取り決めを行う。
【００３４】
図８は、２つのデータストリーム５０２および５０４に関連する制御情報５０６を示すテーブル７００を示す。制御情報５０６は、各データストリームに関連するストリーム注釈（ｓｔｒｅａｍ  ａｎｎｏｔａｔｉｏｎ）を含む。ストリーム注釈は、データストリームを分類して各ストリームに帯域幅を割り当てるために使用され得るデータストリームに関する情報を提供する。ストリーム注釈は、２つのカテゴリ、つまり、要求される注釈および一般的な注釈に分割される。要求される注釈は、あらゆるデータストリームを伴う必要のある注釈である。一般的な注釈は、データストリームがエンドユーザに有用であり得る、または、帯域幅をデータストリームに割り当てる際に有用であり得るさらなる情報で注釈される手段を提供する。
【００３５】
図８の実施形態において、第１のデータストリーム５０２および第２のデータストリーム５０４について、例示的なストリーム注釈を示す。３つのカテゴリのストリーム注釈を示す。第１のカテゴリは、データストリームの各々を識別するストリーム識別子７０２である。ストリーム識別子７０２を受け取ることにより、エンドユーザは、入来データストリームを識別する。他の２つの関連するカテゴリ（ネームタグ（ＮａｍｅＴＡＧ）７０４および値（Ｖａｌｕｅ）７０６と呼ぶ）が、データストリームの各々を注釈する対を形成する。例えば、ＮａｍｅＴＡＧ「メディアタイプ（ｍｅｄｉａｔｙｐｅ）」７０８は、データストリーム５０４についての「ネットショウ（Ｎｅｔｓｈｏｗ）」７１０の値を有する。ＮａｍｅＴＡＧ「メディアタイプ（ｍｅｄｉａｔｙｐｅ）」７０８は、データストリーム５０４についての「Ｇ２」７１２の値を有する。データストリームの送信者は、データネットワーク上の全受信者がデータストリームの正確なコンテンツを識別され得るように、データストリームに注釈を付ける。データストリーム注釈のいくつかは、データストリームが識別し得るように要求される。他の注釈は一般的な注釈であり、送信者によって使用されて、データストリームに関するさらなる情報をエンドユーザに提供する。ポリシーツリーおよびストリーム注釈を用いることにより、データベース制御構造が形成され得る。この構造から、アロケータ５１２が、さまざまな帯域幅割り当て方法を実行し、その結果、データネットワーク上で利用可能な帯域幅の効果的な利用が達成される。
【００３６】
図９は、ポリシーツリーの一部分を示す。このツリーにおいて、ストリーム注釈を用いて、帯域幅割り当てが定義される。ノード７５０において、利用可能なルートの帯域幅の３０％が、ネットショウ（Ｎｅｔｓｈｏｗ）のメディアタイプ（Ｍｅｄｉａｔｙｐｅ）およびＧのレーティング（Ｒａｔｉｎｇ）を有するデータストリームに割り当てられる。ノード７５２において、利用可能なルートの帯域幅の３０％が、Ｇ２のメディアタイプ（Ｍｅｄｉａｔｙｐｅ）およびＣＢＳスポーツの制作者（Ａｕｔｈｏｒ）を有するデータストリームに割り当てられる。帯域幅割り当ての全ての様態が、ストリーム注釈を用いて帯域幅をデータストリームの選択されたタイプまたはクラスに割り当てる制御構造を定義することによりなし得る。
【００３７】
図６Ａを再び参照すると、帯域幅（ＢＷ）検出器５２４がアロケータ５１２に組み込まれている。ＢＷ検出器５２４は、未割り当ての帯域幅が存在する状況を検出し得る。そのような状況の１つは、１つ以上のポリシークラスに割り当てられた帯域幅が、ポリシーツリーによって定義されるように、利用されない場合に起こる。例えば、ポリシーツリー７００において、天気データストリームがデバイス５００によって受け取られていない場合、ブロック６１８に示すこのポリシークラスに割り当てられた帯域幅は利用されない。未割り当ての帯域幅の別の状況は、さらなる帯域幅が、データネットワーク上のメディアデバイス５００の出力に利用可能になることにより、ルート位置６０２において利用可能な帯域幅が増大する場合に起こる。ＢＷ検出器５２４によって検出された未割り当ての帯域幅は、現在存在しているデータストリームに再度割り当てられ得る。ＢＷ検出器５２４によって検出された未割り当ての帯域幅の再割り当てについて、図１２を参照してより詳細に説明する。
【００３８】
本発明の１つの局面において、仮想オーバーレイネットワークは、複数の、デバイス５００のような帯域幅割り当てデバイスから形成され得る。オーバーレイネットワークの実施の詳細は、同時係属出願（０９／３２３，８６９）に説明する。これは、本発明の範囲を越えるものである。そのようなオーバーレイアーキテクチャで、ネットワークによって提供されるサービスの品質（ＱｏＳ）は、基礎物理ネットワーク内に供給するリンクと本明細書中に記載する発明を使用する仮想オーバーレイネットワークにわたって供給する帯域幅との組み合わせを介して注意深く制御される。パケット切り換え型ネットワークにＱｏＳを提供するために、従来技術のアプローチは、大型の敷設されたインフラストラクチャ内の全てのネットワーキングエレメントがアップグレードされて、さまざまな新規な切り換えアルゴリズム、シグナリングプロトコル、パケットストラテジ等をサポートすることを広く提唱している。しかし、本発明において、ＱｏＳは、既存のネットワークエレメントに変更を加えることなく提供され得、その代わりに、オーバーレイレベルにおける新規なルーティングエレメントの追加のみを要求する。ネイティブなネットワーキングエレメントが、ＱｏＳの新規な形態を提供することを可能にする場合、オーバーレイアブストラクション（ｏｖｅｒｌａｙ  ａｂｓｔｒａｃｔｉｏｎ）は、それらの新規なデバイスを局所的に利用し得る。つまり、ＱｏＳの提供を助けるために、デバイスを基礎ネットワーク内のあらゆる箇所に配置する必要はない。例えば、本発明の範囲内の、あるトラフィッククラスに割り当てられたデータストリームは、目的のポリシーを保存する様態で、ネイティブなネットワークのレベルのクラスにマッピングされ得る。
【００３９】
図１０は、本発明の帯域幅割り当てデバイス５００で用いられる帯域幅割り当て方法８００を示す。方法８００は、デバイス５００に届くデータストリームに帯域幅を割り当てるために用いることができる。この方法はブロック８０２で始まり、ここでは、システム管理者がポリシーツリー（例えば、ポリシーツリー６００）を確立し、ポリシーツリーの帯域幅割り当てをアロケータ５１２に入力する。
【００４０】
ブロック８０４で、新たなデータストリームおよび制御情報がデバイス５００に届く。この新たなデータストリームは、１つのデータストリームを含み得るか、またはともに多重化された複数のデータストリームを含み得る。各データストリームは、テーブル７００と同様のストリーム注釈の形式の関連制御情報を有する。
【００４１】
ブロック８０６で、ストリーム注釈情報がアロケータ５１２およびプラグインマネジャ（ｐｌｕｇ−ｉｎ  ｍａｎａｇｅｒ）５１４に送られる。ブロック８０８で、プラグインマネジャー５１２が、届けられる各データストリームごとにプラグインをアクティブ化する。アクティブ化されるプラグインのタイプは、届けられるデータストリームのタイプにより決定されるが、このタイプは制御情報のストリーム注釈により示される。例えば、制御情報が、届けられるデータストリームがあるタイプの映像データを含むことを示すストリーム注釈を有する場合、プラグインマネジャー５１４が、そのタイプの映像データを処理することができるプラグインをアクティブ化する。データストリームが１つより多くのデータストリームを含む多重化されたストリームである場合には、プラグインマネジャー５１４が、その多重化されたストリームの個々のデータストリームごとにプラグインをアクティブ化する。
【００４２】
ブロック８１０で、新たに作成されたプラグインが、データネットワーク上にデータストリームを送信または転送するために利用可能な１以上の転送レートを判定する。例えば、データストリームの中には、転送レートを１つしか有さないものがある一方で、いくつかの転送レートを有するデータストリームもある。転送レートが異なることにより、ストリームクオリティに誤差が生じ得る（例えば、カラーの映像ストリーム転送対白黒の映像ストリーム転送）。
【００４３】
ブロック８１２で、アロケータ５１２が、各プラグインと、プラグインそれぞれのデータストリームの転送レートを取り決める。ある場合（非リアルタイムデータストリーム等）には、可能な転送レートが多数存在する。他の場合（リアルタイムデータストリーム等）には、データストリームがひどく損なわれることなく転送されることを可能にすることができる転送レートは２、３しか存在しない。ポリシーツリー、およびプラグインにより示される利用可能な送信レートに基づいて、アロケータ５１２が、ポリシーツリーの割り当ての範囲内のデータストリームの転送レートを取り決める。例えば、ポリシーツリー６００は、利用可能な帯域幅の５％をＳｐｏｒｔｓ  ６１４に割り当てる。ポリシーツリーの他の全てのクラスに割り当てられる帯域幅が全て利用されると仮定すると、スポーツデータストリームを受信した場合、データレートは利用可能な帯域幅の５％に制限される。スポーツデータストリームに関連付けられたプラグインが、転送レートが利用可能な帯域幅のわずかに５％しか用いない可能性があることを示す場合、アロケータ５１２は、ネットワーク上にスポーツデータストリームを転送するように帯域幅を割り当てることが可能である。プラグインが、可能である最も遅い転送レートが利用可能な帯域幅の７％を必要とすることを示すことが分かった場合、アロケータ５１２は、この要件を満たすことができず、スポーツデータストリーム４はネットワーク上に転送されない。
【００４４】
ブロック８１４で、プラグインおよびアロケータ５１２が、ポリシーツリー割り当ての範囲内であるデータストリームの転送レートを取り決める。プラグインは、受信したデータストリームを、取り決められたデータレートを有する変換データストリームへと変換し始める。これを達成するために、プラグインは、入来するデータストリームが取り決められたレートと一致するように調整するために、レイヤードロッピング（ｌａｙｅｒ  ｄｒｏｐｐｉｎｇ）またはトランスコーディング（ｔｒａｎｓｃｏｄｉｎｇ）等の動作を実施しなければならない可能性があり得る。
【００４５】
プロセス８１６で、変換データストリームが出力リンク５２２に送られ．全ての変換データストリームが結合されて出力データストリームを形成する。出力データストリームは、ポリシーツリーに従って利用可能なネットワーク帯域幅を利用するために変換された全ての入力データストリームを含む。ブロック８１８で、データネットワーク上に出力データストリームが送信される。
【００４６】
図１１は、本発明の実施形態５００で用いられる別の方法９００を示す。方法９００は、アロケータ５１２が、データネットワークの帯域幅を動的に再割り当てするために、どのようにして現在のデータストリームの状態の変更に適応するかを示す。
【００４７】
ブロック９０２では、現在、プラグインが、（事前に取り決められた）利用可能な帯域幅の割り当てられた部分を用いて、ネットワーク上に受信したデータストリームを転送中である。ブロック９０４で、データストリームに変更が生じ、データストリームの帯域幅要件に影響を与える。例えば、そのデータストリームの許容できる最小転送レートが増加し得る。データストリームと関連づけられたストリーム注釈がその変更を反映する。
【００４８】
ブロック９０６で、プラグインが、受信したデータストリーム用に利用可能な新たな転送レートを判定し、アロケータ５１２に新たなレートを知らせる。ブロック９０８で、アロケータが、ストリームが現在のレートで転送できるかどうか、または新たなレートを取り決めるべきかどうかを決定する。新たなレートが必要とされる場合、プラグインおよびアロケータ５１２は、利用可能なレートの新たなセットを考慮して、データストリーム用の新たなレートを取り決める。新たなレートがデータストリームにより表わされるクラスのポリシーツリーにより規定される割り当て量を超過しない限り、そのデータストリーム用の新たな転送レートが取り決められる。
【００４９】
ブロック９１０で、プラグインがデータストリームを新たに取り決められたレートに変換し始める。ブロック９１２で、新たに変換されたデータストリームが、出力リンク５２２に送られ，ブロック９１４で、変換データストリームがデータネットワーク上に送信される。よって、本発明のデバイス５００を用いて、現在のデータストリームの転送レート要件の変更に合わせるために、データネットワークの帯域幅を動的に割り当てることが可能である。
【００５０】
図１２は、本発明のデバイス５００を使用するための別の方法１０００を示す。方法１０００は、データネットワークの帯域幅を動的に割り当て、割り当てられていない帯域幅状態を避けるために、アロケータ５１２がいかに変動するネットワーク状態に適用するかを示す。ポリシーツリーの帯域幅割り当てが十分に利用されない場合に、割り当てられていない帯域幅状態が存在する。例えば、図７のポリシーツリー６００を参照すると、顧客３に対する帯域幅割り当ては３０％であり、ここでニュース６１６の割り当ては２０％であり、天気６１８の割り当ては１０％である。天気のデータストリームが存在しない場合、１０％の割り当てが使用されず、これによって、割り当てられていない帯域幅状態が生じる。これを防ぐために、アロケータ５１２は、割り当てられていない帯域幅をその他のデータストリームに再割り当てを行う。方法１０００は、データストリームが開始、終了、またはデータストリームが帯域幅必要条件を変化させる場合に、アロケータがいかに利用可能な帯域幅を動的に再割り当てを行うかを示す。
【００５１】
ブロック１００２において、受信されたデータストリームは、ポリシーツリー６００の割り当てによって、利用可能なネットワーク帯域幅を十分に利用する初期状態が存在する。ブロック１００４において、データストリームは終了する。例えば、天気６１８ストリームは、利用可能で割り当てられていない帯域幅の１０％を残したままで終了する。ブロック１００６において、アロケータ５１２は使用されていない帯域幅を動的に再割り当てを行おうと試みる。アロケータ５１２は、最初の取り決めプロセスの結果として、アクティブなプラグインすべてにとって利用可能な速度を知る。アロケータ５１２は、利用可能な帯域幅を超えることなしに、より速い転送速度を使用し得るプラグインを決定しようと試みる。アロケータ５１２は、まず、割り当てられていない帯域幅を、終了されたデータストリームと兄弟関係にあるデータストリームに割り当てようとする。この状態において、ニュース６１６データストリームは、兄弟関係にあるデータストリームである。アロケータがすべての割り当てられていない帯域幅を兄弟関係にあるデータストリームに割り当て得る場合、方法はブロック１０１２に進む。そうでない場合には方法はブロック１００８に進む。
【００５２】
ブロック１００８において、アロケータ５１２は、割り当てられていない帯域幅のすべてを兄弟関係にあるクラスに割り当てることができず、それ故に、アロケータは、ポリシーツリー６００によって割り当てられていない帯域幅を親クラスに割り当てようとする。例えば、顧客２は、天気データストリームにとって親クラスである。
【００５３】
ブロック１０１０において、アロケータ５１２が、兄弟または親関係を探し、割り当てられていない帯域幅を割り当てることに失敗した場合、割り当てられていない帯域幅は使用されないままであり、ネットワークは十分に利用されない。
【００５４】
ブロック１０１２において、アロケータ５１２が、兄弟および／または親クラスに関連づけられた１つ以上のデータストリームを捜し出した場合、アロケータ５１２は、割り当てられていない帯域幅を使用し得る。アロケータは、すべてのデータストリームにとって利用可能な送信速度を知っているため、アロケータは、命令を各プラグインに送信し、新たな送信速度を使用して、それぞれのデータストリームを転送する。新たな転送速度は、各データストリームに存在することが分かっている利用可能な速度から選択される。データストリームが、より速い転送速度を使用するように命令される場合、データストリームは、ポリシーツリーによって定義される各帯域幅割り当てを越えることがあり得る。しかし、この状態は、割り当てられていない帯域幅を割り当て、ネットワーク利用を改良するために望ましい。
【００５５】
ブロック１０１４において、プラグインは、新たな転送速度にデータストリームを変換することによってアロケータ５１２からの命令に応答する。ブロック１０１６において、変換されたデータストリームは、出力リンク５２２に送信され、ブロック１０１８において、出力リンクは、データストリームをネットワーク上で伝送する。再割り当てプロセスの結果として、データネットワークの割り当てられていない帯域幅が、除去または減少され、ネットワークがより効率的に動作する。
【００５６】
割り当てられていない帯域幅は、１つより多いプラグインに再割り当てを行われ得、結果の帯域幅の割り当ては、ポリシーツリー６００によって定義される割り当てとは異なり得ることは当業者にとって明白である。より多くのデータストリームが到着または終了する際に、または既存データストリームがその必要条件を変更する際に、帯域幅は再び再割り当てを行われ得る。それ故に、方法１０００は、変動するネットワーク状態がいかに別の帯域幅再割り当てをポリシーツリーに従うように誘発し、それによって、効率的に利用される帯域幅を維持するかをさらに示す。
【００５７】
ブロック１０２０において、割り当てられていない帯域幅が既存データストリームに割り当てられた後、新たな入力データストリームがデバイス５００に到着する。新たな入力データストリームは、アロケータ５１２およびプラグインマネジャ５１４によって受信される制御情報を含む。ブロック１０２２において、プラグインマネジャ５１４は、プラグインを作成し、新たなデータストリームを処理する。ブロック１０２４において、プラグインは、ストリーム注釈から、どの転送速度が利用可能であるかを判定し、これらの速度をアロケータ５１２に提供する。
【００５８】
ブロック１０２６において、アロケータは、以前には割り当てられなかった帯域幅の一部またはすべてを取り戻す方法を決定し、この結果新たなデータストリームが、ポリシーツリーに従った帯域幅に割り当てられ得る。例えば、ポリシーツリー６００は、天気６１８データ用帯域幅の１０％を特定する。新たな天気データストリームが到着する場合、以前には割り当てられなかった帯域幅が再獲得され、それ故に新たな天気データがポリシーツリー６００によって１０％割り当てられ得る。
【００５９】
ブロック１０２８において、アロケータ５１２は、再割り当てによって影響を受けるすべてのプラグイン用に新たな転送速度をリクエストする。新たな転送速度は、各プラグインによって以前に決定された以前より既知の転送速度から選択される。ブロック１０３０において、影響を受けたプラグインは、各データストリームをリクエストされた転送速度に変換する。ブロック１０３２において、新たなデータストリームを含むデータストリームは、リクエストされた速度でデータネットワーク上に出力するために出力リンク５２２に送信される。ブロック１０３４において、再割り当ての結果、回復された帯域幅は、新たなデータストリームにポリシーツリーによって定義されるような利用可能なネットワーク帯域幅の一部を提供する。
【００６０】
動的な帯域幅の再割り当てはネットワークの効率を上げるのに役立つが、過多の再割り当ては有害となり得る。例えば、ストリーミングビデオプレーヤは、層を切り替えることによって増加した帯域幅を単に利用し得るのであり、そして層を切り替えることでさえ、表示する際に数秒間の割り込みを必要とし得る。層を切り替えるために表示セッションを中断することを価値あるものにするためには、ビデオプレーヤは、層が変化するために十分に割り当てられていない帯域幅があること、および割り当てられていない帯域幅がしばらくの間利用可能となることが明示的に表示される必要である。したがって、数個のプラグインへの帯域幅の再割り当てが、各プラグインへの変化を誘発すべきではなく、帯域幅の再割り当てはあまり頻繁に生じるべきではない。
【００６１】
図１３は、本発明のデバイス５００を使用するための方法１１００を示す。方法１１００は、帯域幅の再割り当てをスケジューリングする１方法を提供し、それ故に、再割り当てはあまり頻繁に実行されない。方法１１００はまた、ノイジーなプラグインが再割り当てプロセスを中断することを防ぐ。ノイジーなプラグインは、繰り返し転送速度の変化をリクエストするプラグインである。
【００６２】
ブロック１１０２において、ネットワークの帯域幅の再割り当てが生じる。再割り当ては、割り当てられていない帯域幅状態を正すため、または新たなデータストリームを提供するためなど、種々の理由に起因して生じ得る。ブロック１１０４において、再割り当てタイマーがリセットし、再割り当ての間隔のタイミングを取り始める。ブロック１１０６において、プラグインリクエストタイマーは、リセットし、プラグインリクエストの間隔のタイミングを取り始める。プラグインリクエストは、データストリームを開始または終了するリクエスト、あるいは既存のデータストリームの転送速度を変更するリクエストであり得る。ブロック１１０８において、新たなプラグインリクエストがどうかをチェックする。新たなプラグインリクエストがある場合、アロケータ５１２はリクエストを処理し、方法１１００はリクエストタイマーがリセットされるブロック１１０６に進む。
【００６３】
ブロック１１１０において、リクエストタイマーがタイムアウトであるか否かを判定するために、チェックが生じる。新たなプラグインリクエストが選択された時間内に受信されない場合に、タイムアウトが生じる。選択された時間は、システムアドミニストレータによって決定される。リクエストタイマーがタイムアウトにならない場合、方法１１００はブロック１１１２に進む。リクエストタイマーがタイムアウトになる場合、方法１１００はブロック１１１４に進む。
【００６４】
ブロック１１１４において、アロケータは利用可能なネットワーク帯域幅の再割り当てを行う。再割り当て後、方法１１００は、割り当てタイマーがリセットされるブロック１１０４に進む。ブロック１１１２において、割り当てタイマーがタイムアウトであるか否かを調べるためにチェックが生じる。割り当てタイマーは、割り当て間の時間を示す。タイムアウト時間は、システムアドミニストレータによって決定される。割り当てタイマーがタイムアウトでない場合に、方法１１００は新たなプラグインリクエストをチェックすることによってブロック１１０８において続行する。割り当てタイマーがタイムアウトである場合に、方法は、アロケータ５１２が再割り当てを行うブロック１１１４に進む。ブロック１１１４における再割り当ての最後に、方法１１００は、再割り当て時間がリセットされるブロック１１０４に進む。
【００６５】
アロケータは、プラグインリクエストタイマーおよび再割り当てタイマーの選択可能な時間間隔を用いて、データネットワークの利用可能な帯域幅がどのような頻度で再割り当てが行われるかを調整する。リクエストタイマーを使用することによって、アロケータは再割り当てプロセスを開始する前に、ネットワークデータストリームが安定していることを保証する。再割り当てタイマーを使用することによって、アロケータは、データストリームの状態にかかわらず再割り当てを強制し得、それ故にプラグインリクエストタイマーのタイムアウトを防ぐことによって、ノイジーなプラグインは、帯域幅の再割り当てプロセスを中断し得ない。
【００６６】
当業者に理解されるように、上述のデータネットワークの帯域幅を割り当てる装置方法の変形例が、本発明の範囲から逸脱することなく可能である。本発明の実施形態は、ネットワーク帯域幅の効率的な割り当てが所望されるネットワーク環境すべてにおける使用に適している。したがって、本明細書における開示および記載は、上掲の特許請求の範囲に記載する本発明の範囲内における例示であり、本発明を限定するものではない。
【図面の簡単な説明】
【図１】  図１は、従来のネットワーク部分１００を示す。
【図２】  図２は、本発明の一実施形態を組み込んだネットワークコンフィギュレーションを示す。
【図３】  図３は、本発明の一実施形態のインプリメンテーションに適したコンピュータデバイス３００を示す。
【図４】  図４は、図３のコンピュータデバイスの内部アーキテクチャを示す。
【図５】  図５は、本発明に従って構成されたメディアデバイス４５０のブロック図を示す。
【図６Ａ】  図６Ａは、本発明に従って構成された帯域幅割当てデバイス５００の詳細なブロック図を示す。
【図６Ｂ】  図６Ｂは、本発明に従って構成された帯域幅割当てデバイス５００の詳細なブロック図の別の実施形態を示す。
【図７】  図７は、本発明で用いられる例示的なポリシーツリー６００を示す。
【図８】  図８は、本発明で用いられる制御情報を表わすテーブル７００を示す。
【図９】  図９は、ストリーム注釈を用いて、選択されたデータストリームに帯域幅を割当てるポリシーツリーの一部を示す。
【図１０】  図１０は、図５のデバイス５００の動作方法８００を示す。
【図１１】  図１１は、図５のデバイス５００の動作方法９００を示す。
【図１２】  図１２は、図５のデバイス５００の動作方法１０００を示す。
【図１３】  図１３は、図５のデバイス５００の動作方法１１００を示す。
【図１】
0004922520.tif 000002
【図２】
0004922520.tif 000003
【図３】
0004922520.tif 000004
【図４】
0004922520.tif 000005
【図５】
0004922520.tif 000006
【図６Ａ】
0004922520.tif 000007
【図６Ｂ】
0004922520.tif 000008
【図７】
0004922520.tif 000009
【図８】
0004922520.tif 000010
【図９】
0004922520.tif 000011
【図１０】
0004922520.tif 000012
【図１１】
0004922520.tif 000013
【図１２】
0004922520.tif 000014
【図１３】
0004922520.tif 000015