(57)【特許請求の範囲】
【請求項１】
ネットワークノード内のトラフィックの輻輳の制御方法であって、前記トラフィックはレイヤの数（Ｌ）によって分類されており、このノードへの入来する流れの数（ｎ（ｔ））を監視し、それによって、この入来する流れの数（ｎ（ｔ））に基づいて、および許可されたレイヤの現在の数（ｌ（ｔ））に基づいて、前記ノード内に入るための許可されたレイヤの次の数（ｌ（ｔ＋１））が動作テーブル（Ｔ）の参照によって判断されるステップを含む、方法。
【請求項２】
前記動作テーブルが、前記ノードに向かう観察されたトラフィックに基づいて動的に調節される、請求項１に記載の方法。
【請求項３】
前記動作テーブルが、観察期間中に観察されたトラフィックに基づいて定期的なインターバルで動的に調節され、それによってマルコフ決定プロセスを使用して最適な動作テーブルを判断する、請求項２に記載の方法。
【請求項４】
動作テーブルが、前記ノード内にローカルで記憶される、請求項１から３のいずれかに記載の方法。
【請求項５】
前記動作テーブルが、ネットワーク輻輳コントローラによって集中的に算出され、さらに前記ノードに通信される、請求項１から３のいずれかに記載の方法。
【請求項６】
前記方法を実施する異なるノードの間で、前記動作テーブルの参照によって判断して得られる動作を通信し、それによって、競合する動作が生じた場合に、ノードごとに次の数の許可されたレイヤを適応させる別の発見的制御が前記ノード内で実行されるステップをさらに含む、請求項１から４のいずれかに記載の方法。
【請求項７】
前記動作テーブルが、ネットワーク輻輳コントローラによって集中的に更新される、請求項１から４のいずれかに記載の方法。
【請求項８】
ネットワークノード（ＩＭ；ＡＮ１；ＡＮ２；ＡＮ３）に入るレイヤの数（Ｌ）によって分類化されたトラフィックの輻輳の制御のための輻輳制御デバイス（ＣＣＩＭ；ＣＣＩＭ´；ＣＣＡＮ１；ＣＣＡＮ２；ＣＣＡＮ３）であって、このノードへの入来する流れの数（ｎ（ｔ））を監視し、前記許可されたレイヤの数に関連するレイヤ数によって識別されたパケットが前記ノードに入ることを可能にするだけであるように、この入来する流れの数（ｎ（ｔ））に基づいて、動作テーブル（Ｔ）に基づいて、および許可されたレイヤの現在の数（ｌ（ｔ））に基づいて、許可されたレイヤの次の数（ｌ（ｔ＋１））を判断するように構成されている、輻輳制御デバイス（ＣＣＩＭ；ＣＣＩＭ′）。
【請求項９】
観察期間中に前記ノードに向かう観察されたトラフィックに基づいて、前記動作テーブルを動的に調節するようにさらに構成されている、請求項８に記載の輻輳制御デバイス（ＣＣＩＭ′）。
【請求項１０】
マルコフ決定プロセスを使用し、それにより最適な動作テーブルを判断することにより、前記観察期間中に観察されたトラフィックに基づいて、定期的なインターバルで前記動作テーブルを動的に調節するように構成されている、請求項９に記載の輻輳制御デバイス（ＣＣＩＭ′）。
【請求項１１】
前記動作テーブルの参照によって判断して得られた動作を、別のノード内の別の輻輳制御デバイスと通信するようにさらに構成され、競合する動作が生じた場合に、次の数の許可されたレイヤを適応させる別の発見的制御を実施するようにさらに構成されている、請求項９から１０のいずれかに記載の輻輳制御デバイス（ＣＣＩＭ）。
【請求項１２】
前記ネットワークノードが、前述の請求項８から１１のいずれかに記載の輻輳制御デバイス（ＣＣＩＭ；ＣＣＩＭ′；ＣＣＡＮ２；ＣＣＡＮ３；ＣＣＩＭ）からなっていることを特徴とする、ネットワークノード（ＡＮ１；ＡＮ２；ＡＮ３；ＩＭ）。
【請求項１３】
前記ネットワーク輻輳デバイス（ＮＣ）が、前記動作テーブル（Ｔ）を判断し、前記輻輳制御デバイス（ＣＣＩＭ）に前記動作テーブルを通信するように構成されている、請求項８に記載の輻輳制御デバイス（ＣＣＩＭ）と通信する、ネットワーク輻輳制御デバイス（ＮＣ）。
【請求項１４】
さらに、観察されたトラフィックに基づいて前記動作テーブルを更新し、前記輻輳制御デバイス（ＣＣＩＭ）に前記更新された動作テーブルを提供するように構成されている、請求項１３に記載のネットワーク輻輳制御デバイス（ＮＣ）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、輻輳制御方法および装置に関する。
【背景技術】
【０００２】
オンデマンドストリーミングサービスでは、輻輳制御は普通、リソース許可制御を介して行われる。このようなシステムは、特徴が知られていると想定される進行中の流れ数を監視すること、または流れの集合の（瞬間）ビットレートを直接監視することのいずれかによって、特徴が知られていると想定される新しい流れが、それを通して流れが移動する全てのリンクにまだ適合するかどうかをチェックする。このチェックによりイエスの回答が得られた場合、流れは許可され、そうでない場合は、流れは拒絶される。この決定は、アプリケーションレベルで、セッションをセットアップしないことによって、またはセッションがセットアップされた場合でも、拒絶された流れから生じるトラフィックを遮断するネットワークの縁部にあるポリシーエンフォーサによってのいずれかで実施される。このようなアーキテクチャでは、ユーザは、映像を完全な品質で得る、またはサービスが拒否されるいずれかである。
【０００３】
輻輳制御の代替方法は、拡張可能コーデックを介してである。その中で、各マルチメディア流れは、重要性が低くなっているレイヤ内で符号化される。
【０００４】
リソース許可制御によるものに対して、拡張可能コーデックに基づく方法は、サービスへのユーザアクセスを決して拒否しないが、その品質はときどき、ユーザが目指しているものより低い。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
これらの知られている方法全ての欠点は、より高い重要度のパケットが失われたり廃棄したりしないことの絶対的な保証がないということである。
【課題を解決するための手段】
【０００６】
欠点を克服するために、本発明による方法は、このノードへの入来する流れの量を監視し、それによって、この入来する流れの量に基づいて、および許可されたレイヤの現在の数に基づいて、前記ノード内に入るための許可されたレイヤの次の数が動作テーブルの参照によって判断されるステップを含んでいる。
【０００７】
このように、許可されたレイヤの数を前の数、入来する流れの数、および動作テーブルに依存させることによって、より正確な輻輳制御方法が得られ、同時に、より重要なパケットが保存されることが保証される。
【０００８】
改善した実施形態では、この動作テーブルは、前記ノードに向かう観察されたトラフィックに基づいて動的に調節される。
【０００９】
これは、決定がトラフィック状態を反映して、許可されたレイヤのより正確な判断を可能にし、さらには品質を改善するという利点を有する。
【００１０】
観察期間中に観察されたトラフィックに基づいて定期的なインターバルで動作テーブルを動的に調節することによって、マルコフ決定プロセスを使用して最適な動作テーブルを判断し、さらにより良い品質が得られる。
【００１１】
動作テーブルは、ネットワーク輻輳コントローラによって集中的に算出することができ、さらに前記ノードに通信することができる、またはノード自体の中でローカルで記憶させることができる。
【００１２】
動作テーブルは、ノード内でローカルで更新する、またはネットワーク輻輳コントローラによって集中的に更新することができる。
【００１３】
動作テーブルがノード内で更新される場合、前記動作テーブルの参照によって判断されるように、得られる動作の前記方法を実施する異なるノード間の通信を行うことができ、それによって、競合する動作が起こる場合、ノード毎に次の数の許可されたレイヤを適合させるためのさらに発見的な制御が前記ノード内で実行される。このように、隣接するノード間に生じる潜在的に競合する状態を解消することができる。
【００１４】
本発明は、本方法を実施するための輻輳制御デバイスと、特定の実施形態の輻輳制御デバイスに動作テーブルおよびその更新を通信するためのネットワーク輻輳コントローラにも関する。
【００１５】
特許請求の範囲で使用される「結合された」という用語は、直接接続のみに限定するものとして解釈されるべきではないことに留意されたい。したがって、「デバイスＢに結合されたデバイスＡ」という表現の範囲は、デバイスＡの出力がデバイスＢの入力に直接接続されているデバイスまたはシステムに限定すべきではない。他のデバイスまたは手段を含む経路である可能性がある、Ａの出力およびＢの入力の間の経路が存在するということを意味する。
【００１６】
特許請求の範囲で使用される「備えた」という用語は、この後に挙げる手段に限定するものとして解釈されるべきではないことに留意されたい。したがって、「手段ＡおよびＢを備えたデバイス」という表現の範囲は、構成要素ＡおよびＢのみからなるデバイスに限定するべきものではない。本発明に関して、デバイスの唯一の関連構成要素がＡおよびＢであることを意味する。
【００１７】
添付の図面と合わせて実施形態の以下の説明を参照することによって、本発明の上記および他の目的および特徴は、より明らかになり、発明自体が最もよく理解されるであろう。
【図面の簡単な説明】
【００１８】
【図１】方法の一実施形態を実現するための高レベルアーキテクチャを示す図である。
【図２】方法の別の実施形態を実現するための別の高レベルアーキテクチャを示す図である。
【図３】拡張可能なレイヤの原理を示す図である。
【図４】ノード実施の一実施形態の輻輳制御デバイスの実施形態を示す略図である。
【図５ａ】輻輳制御デバイスのいくつかの実施形態で使用される決定テーブルの例を示す図である。
【図５ｂ】輻輳制御デバイスのいくつかの実施形態で使用される決定テーブルの例を示す図である。
【図６】方法の一実施形態を実施する第１のフローチャートである。
【図７】改良された方法のステップを実施するフローチャートである。
【図８】方法のこのような改良された実施形態の効果を示すタイミング図である。
【図９】輻輳制御デバイスの改良バージョンの実施形態を示す略図である。
【図１０】方法の変形実施形態を実現するための別の高レベルアーキテクチャを示す図である。
【図１１】方法の別の実施形態を実現するための別の高レベルアーキテクチャを示す図である。
【発明を実施するための形態】
【００１９】
説明および図面は単に、本発明の原理を示しているだけである。したがって、当業者は本明細書には明示的に記載または図示されていないが、本発明の原理を実施し、その趣旨および範囲内に含まれる様々な構成を工夫することが可能であることが分かるであろう。さらに、本明細書で言及されている全ての例は基本的に、本発明の原理、および当技術分野を促進するために（１人または複数人の）発明者が貢献した概念を理解する際に読者を助けるための単に教育的な目的であることを明示的に意図したものであり、このように特に言及された例および状態に限定するものとして解釈すべきではない。さらに、本発明の原理、態様および実施形態と、その特別な例に言及する、本明細書での全てのステートメントは、その同等物を含むことを意図している。
【００２０】
本明細書のあらゆるブロック図は、本発明の原理を実施する例示的な回路の概念図を示すことを、当業者は理解すべきである。同様に、このようなコンピュータまたはプロセッサは明示的に示されているかどうかに関わらず、あらゆるフローチャート、フロー図、状態遷移図、擬似コードなどは、コンピュータ読取可能な媒体で実質的に、コンピュータまたはプロセッサによってそのように実施することができる様々なプロセスを示すことが分かるであろう。
【００２１】
方法の一実施形態は、チョーキングベース輻輳制御と呼ばれる、拡張可能コーデックを介した新しいタイプの輻輳制御を提案している。この方法は、図１に略図的に示されているものなどの多くのネットワークで使用することができる。以下では、本発明の一実施形態は、例えばＤＳＬアクセスネットワークでの使用に対して説明されているが、本発明の他の実施形態は、固定または移動に関わらず、全ての他のタイプのネットワークで可能である。
【００２２】
図１では、マルチメディアサーバＭＭは、サービスアグリゲータなどの中間ノードＩＭを介して少なくとも１つのアクセスノードに結合されている。図１では、これらの３つだけが図示されており、ＡＮ１からＡＮ３と示されている。リアルネットワークでは、アクセスノードの数は容易に１０から１００の範囲内であってもよい。普通、これらのアクセスノードはそれぞれ、Ｕ１からＵｎで示された個別のユーザに結合させることができ、１つのアクセスノードは典型的には１００から１０００のユーザにサービスを提供することができる。
【００２３】
本発明の一実施形態によると、ノードの少なくとも１つは輻輳制御デバイスを備えている。図１では、全てのノードが、それぞれのアクセスノードＡＮ１からＡＮ３内のそれぞれの輻輳制御デバイスに対してＣＣＡＮ１からＣＣＡＮ３、および中間ノードＩＭ内に含まれている輻輳制御デバイスに対してＣＣＩＭと示される、このような輻輳制御デバイスを備えている実施形態が示されている。アクセスノードまたは中間ノードであるかに関わらず、１つのノードだけが、このような輻輳制御デバイスを備えている他の実施形態が可能である。中間ノードだけが、本発明による輻輳制御デバイスを備えているこのような実施形態が図２に示されており、さらに以下のパラグラフでより詳細に説明する。
【００２４】
本発明による輻輳制御デバイスのほとんどの実施形態は、マルチメディア流れが拡張可能な方法で符号化されることを想定している。拡張可能な映像符号化が、例えばＩＴＵ−Ｔ  Ｒｅｃ．Ｈ．２６４の付録Ｇ「汎用視聴覚サービスのための先進映像符号化」内で標準化され、符号化された映像流れは、ベースレイヤおよび少なくとも１つの拡張（ｅｎｈａｎｃｅｍｅｎｔ）レイヤから構築されていることを暗示している。多くの標準コーデック、例えばＭＰＥＧ２、４は拡張可能な拡張子を有するが、他の専有スキームを使用することもできる。パケットベース輸送では、各レイヤに関連付けられたビットストリームは、各パケットのヘッダ内の識別子に基づいて、どのレイヤに属するかが分かるようにパケット化されている。例としては、この目的で使用することができる、ＩＰヘッダ内のＤｉｆｆＳｅｒｖ  ＣｏｄｅＰｏｉｎｔ（ＤＳＣＰ）またはサービスタイプ（ＴｏＳ）バイトを挙げることができ、どのレイヤにパケットが属するかを識別する。しかし、他のタイプのヘッダ内の他の識別子を使用することもできる。
【００２５】
ユーザの宅内での復号器がベースレイヤを受けるだけである場合、映像を基本的品質で復号化することができる。より多くの僧を復号器で受ければ受けるほど、復号化された映像の品質がより良くなる。図３に示すように、特定のレイヤの重要性を判断する、レイヤ内の順序付けがあり、レイヤ０はベースレイヤで、最も重要なレイヤであり、一方、この場合はＬである最も高い数を有するレイヤは、最も重要でないレイヤである。任意選択のレイヤｌでは、全てのレイヤ０からｌ−１までが受けられない限り、このレイヤｌが無用であるという規則がある。
【００２６】
本発明による輻輳制御デバイスのほとんどの実施形態はまた、その一部である個別ノード内のスケジューラによって行われる、スケジューリング技法に依存している。図４では、Ｓで示されたスケジューラを備えたノードＩＭが示されている。このスケジューラは、異なる流れのパケット間の区別を行わないが、このレイヤを識別するための識別子に基づいて、異なるレイヤに関連付けられたパケットを区別する。このようなスケジューリング技法は、ノードが図４にＢで示された入力バッファを備えていることを暗示している可能性があるが、これは必然ではない。ノードはさらに、所定のタイムスロットで、例えば毎秒、入力パケットが例えばバッファＢを介してノードに入ることを可能にするように、スケジューラがＬ＋１レイヤからどのレイヤｌまで適合されているかを判断する、および／または調節するようになっているコントローラＣをそれ自体が備えている、輻輳制御デバイスＣＣＩＭの一実施形態を含んでいる。レイヤｌまで（これを含む）が許可されている場合、これは範囲［０，１］内のレイヤを示す識別子を有する次のタイムスロット内の全てのパケットが許可されており、残りの入力パケットが拒否されるということを意味している。標準的ＳＶＣ符号化が使用される場合、たくさんのノードは既にスケジューリング機構を含んでいるが、パケットを許可するまたは拒否する決定は、例えば流れの宛先に基づいて行われる。しかし、この機構は輻輳の問題を解消しない。他の既存の機構では、他の欠点は、より高いレイヤ数を有するあまり重要でないレイヤも、より低いレイヤに対するバッファ空間を犠牲にして、いくつかのバッファ空間を占める可能性があるという事実に関連している。加えて、これらの他の機構では、許可されたレイヤの数は時間の経過とともに急速に変動して、悪いユーザ経験につながる可能性がある。他の欠点は、このような従来技術のシステムが発振する可能性があるということである。
【００２７】
本発明によると、輻輳制御デバイスの一実施形態はしたがって、所定の例では時間ｔで、ｌ（ｔ）の現在の値に基づいて、ノードへの入来する流れの現在の数ｎ（ｔ）に基づいて、また決定テーブルＴに基づいて、次の特定の時間インスタンスｔ＋１に対するｌ（ｔ＋１）の値を判断するように構成されたコントローラを備えている。このコントローラはしたがって、次のタイムスロットｔ＋１内でどのレイヤｌまでサポートするかを判断することが可能になる。図４では、コントローラＣは、監視デバイスＭから、時間インスタンスｔでのノードへの入力流れＦ１からＦｎの数ｎ（ｔ）を受け、さらに、ｌ（ｔ＋１）を判断することができるように、Ｔで示された決定テーブルを調べるようになっている。この値はスケジューラＳに与えられ、これに応じて、そのレイヤ識別子に基づいて入力パケットをフィルタリングし、それによって、レイヤｌ（ｔ＋１）までのパケットだけが、通過させることが可能であり、時間インスタンスｔ＋１でバッファリングされる。
【００２８】
この決定テーブルは図４ではＴで示されている。このような決定テーブルの例が図５ａおよび５ｂに示されている。図５ａの決定テーブルは、入力変数として、最も高いレイヤ数ｌ（ｔ）、およびそのノードへの入来する流れの合計数ｎ（ｔ）を有する。その最終列は、これらの入力の関数として、関連動作を示しており、この動作は「０」、「−」または「＋」のいずれかによって示されている。「０」で示される動作は、次のスロットｔ＋１では、同じ数のレイヤ（０から最大ｌ以下）がバッファに入ることが可能であるということを意味している。「−」で示された動作は、次のスロットｔ＋１では、１つ少ないレイヤがバッファに入ることが可能であり、その結果、０からｌ−１の間でこれらを含むレイヤ識別子を備えた全てのパケットが許可されることになる。「＋」で示された動作は、次のスロットｔ＋１では、例えば、１つ多いレイヤがバッファに入ることが可能であり、その結果、レイヤ０からｌ＋１の間でレイヤ識別子を含むすべてのパケットが許可されることになる。したがって、テーブル５ａ上の第１行を読むと、これは、現在のスロットで、６つのレイヤがバッファに入ることが可能である場合、１７０の入力流れがこのスロットでノードに入り、次のスロットでバッファに入ることが可能なレイヤの数を考慮する限り、変更を行う必要はなく、したがって、この数は６のままであるということを意味している。このテーブル上の第２行は、現在のスロットで、６つのレイヤがバッファに入ることが可能である場合、１８０の入来する流れがこのスロットでノードに入り、次のスロットでの記憶のためにバッファに入ることができるレイヤの数は、例えば、次のスロットで許可されている５つのレイヤに対応する、現在の値に対して１だけ下げなければならないということを示している。このテーブルの第３行は、現時点で、７つのレイヤがバッファに入ることが可能であり、ノードが現在１３０の入来する流れを受ける場合、次の時間インスタンスの間に、８つのレイヤがバッファに入ることが可能であるということを示している。
【００２９】
１だけ増減させる代わりに、これらの動作「＋」または「−」はまた、他の実施形態では、例えば２または３つ少ないまたは多いレイヤが許可されるということを示している。
【００３０】
テーブルの別の例が、図５ｂに示されている。絶対数の入来する流れの代わりに、数ｎ（ｔ）の流れが区分にグループ化される。このテーブルの最初の３つの行は、現在のスロットでは、ｌ（ｔ）＝６つのレイヤがバッファに入ることが可能である場合、
１）動作が行われず、（テーブルの表示された第２行にしたがって、）流れの数が１４０から１７０の境界の間である場合に、次のスロット内の許可されたレイヤの数を６、例えばｌ（ｔ＋１）＝６にしておく。
２）（テーブル上の表示された第３行にしたがって、）１７０を超える流れがある場合に、次のスロットでは、許可されたレイヤの数を、例えば６から５に減らす動作が行われる。
３）（テーブル上の表示された第１行にしたがって、）１４０未満の流れがある場合、許可されたレイヤの数を６から７に増やす動作が行われる。
【００３１】
前のテーブル５ａと同様の考察を行うことができ、したがって、「＋」動作は、１以上である所定の数での増加を示し、「−」動作は、増加の所定の数と同じである可能性があるが、これと異なっていてもよい１以上である別の所定の数での減少を示すことができる。
【００３２】
全ての可能な状態が挙げられている図５ａのタイプのテーブルはしたがって、多くの数の行を含んでおり、レイヤの数および流れの数の全ての可能な組み合わせを示している。より詳細には、ノードが現在サポートしている流れの数ｎ（ｔ）が区分されていない場合、行の数はレイヤの最大数掛ける流れの最大数、例えば１０×１０００＝１００００に等しい。区分により、テーブルをはるかに短くすることが可能になる、例えば、３入力／レイヤがテーブル５ｂで示されている例では必要である。
【００３３】
単純な実施形態では、このような決定テーブルを、ノード内にまたは輻輳制御デバイス自体内にローカルで記憶することができる。図４は、このテーブルが輻輳制御デバイスＣＣＩＭ内に記憶されている一実施形態を示している。図はさらに、全ての流れからの、レイヤｌまでの識別子を備えたパケットがしたがって、バッファ内に通ることが可能であるという原理を略図的に示している。バッファ自体は、この図によって提案されるように、異なるレイヤに関連するいくつかのサブバッファに分割する必要はなく、これは、全ての流れからのパケットが通過することができるが、そのレイヤ数に基づいてフィルタリングされているという原理をより良く示すために描かれているだけである。
【００３４】
記載した方法の異なるステップを実施するための詳細な実施形態を示すフローチャートが、図６に示されている。この方法は、現在のタイムスロットでの入来する流れＦ１からＦｎの数を監視することで始まる。これは、図４に示すように、監視デバイスＭによって行うことができる。次のステップでは、この入来する流れの数と、現在の最も高い許可されたレイヤｌ（ｔ）を使用して、テーブル内への適当な入力を判断し、そのステップで、得られた動作をテーブルから読み取ることもできる。これらのステップは、コントローラＣ内で行うことができる。得られる「動作」値によって、ｌ（ｔ＋１）の値が適合され、この値はスケジューラＳにフィードバックされて、どのレイヤに属するかを全ての入力パケットから判断し、それに応じて、レイヤ数がｌ（ｔ＋１）以下である場合にバッファまで通過させる、またはレイヤ数がｌ（ｔ＋１）より大きい場合にこれらを破棄するように構成されている。パケットのレイヤ識別は、このプロトコルが輸送に使用される場合に、例えばＩＰヘッダ内で見られる。これらのヘッダ内の識別子に基づいてパケットを分類する方法は、当業者によく知られており、さらに詳細には説明しない。
【００３５】
より複雑な実施形態では、輻輳制御デバイスは、例えばｌ（ｔ）およびｌ（ｔ＋１）を判断するための時間インスタンスが、約数秒の大きさである前の例では、２０分毎にこのテーブルを定期的に更新するように構成されている。この更新は、観察期間中に、ネットワークノードに向かって観察されたトラフィックに基づく可能性があるが、これは必然ではない。このテーブルを更新するために、輻輳制御デバイスＣＣＩＭは、したがって、レイヤ許可数を更新するタイムスロットよりはるかに長い、観察期間と呼ばれる、特定の期間にわたってトラフィックをモデリングするように構成されている。より正確には、事前に選択したトラフィックモデルのいくつかのパラメータを判断する。このようなモデルはマルコフモデルであるが、次のパラグラフで説明するように、別のタイプであってもよい。
【００３６】
ｌ（ｔ＋１）を判断するために使用される決定テーブルを更新するために、方法は例えば、以下の手順からなる可能性がある：現在アクティブな決定テーブルに加えて、多くの予め選択されたまたは所定の代替的な決定テーブルが維持される。これらは例えば、図５ｂのタイプの区分したテーブルの閾値を代表的セットの値に設定することによって得ることができ、これらの値自体は、テーブルを完全に特定するためにレベルｌごとに２つの閾値だけが必要であり、レイヤｌ＋１に関連する閾値がレイヤｌに関連するものより高いテーブルが論理的でないという原則に基づいて選択することができる。したがって、これらの原則を念頭に置いて、代表的なテーブルのセットを容易に選択することができ、これらは最初にＩＭまたは輻輳コントローラ内に記憶させることができる。これらの代替決定テーブルそれぞれでは、その後、この代替動作テーブルが使用される場合に、値関数が何を生じさせるかが観察期間で算出される。このような値関数は例えば、以下の式（１）によって与えられる：
Ｖ［ｌ（ｔ），ｎ（ｔ）］＝Ｒ［ｌ（ｔ），ｎ（ｔ），ａ（ｌ（ｔ），ｎ（ｔ））］＋Ｖ［ｌ（ｔ＋ｌ），ｎ（ｔ＋ｌ）］    （１）
【００３７】
式中、Ｖ［ｌ（ｔ），ｎ（ｔ）］（および、Ｖ［ｌ（ｔ＋ｌ），ｎ（ｔ＋ｌ）］）は、時間ｔで許可されたｌのレイヤ、およびｎの入来する流れがある場合の値関数（および、それぞれ時間ｔ＋１での将来の値関数）を示しており、
Ｒ［ｌ（ｔ），ｎ（ｔ），ａ（ｌ（ｔ），ｎ（ｔ））］は、瞬時報酬関数を示しており、
ａ（ｌ（ｔ），ｎ（ｔ））は、決定テーブルで与えられたように、時間ｔで許可されたｌのレイヤおよびｎの入来する流れがある場合に行われる動作を示している。
【００３８】
瞬時報酬関数の例が、以下の式（２）によって与えられる：
Ｒ［ｌ（ｔ），ｎ（ｔ），ａ（ｌ（ｔ），ｎ（ｔ））］＝α・Ｇ（ｌ（ｔ））・ｎ（ｔ）−β・ｎ（ｔ）・ｍａｘ｛（Ｆ−Ｃ）／Ｆ，０｝−γ・ｎ（ｔ）・ｌ｛ａ（ｌ（ｔ），ｎ（ｔ））≠０｝    （２）
式中、α、βおよびγは以下の解釈の正の定数である。αは、オペレータがサポートされた流れごとに得る時間単位ごとの報酬であり、βはオペレータが損失パケットごとに支払わなければならないペナルティであり、γはオペレータが品質変化ごとに支払わなければならないペナルティである。
α・Ｇ（ｌ（ｔ））は、スロットｔ内でのレイヤｌまでの流れの輸送に関連する報酬、例えば、単一のユーザが、映像およびレイヤｌに対応する品質を受けるために喜んで支払う価格である。
Ｆは、スロットｔ内のトラフィック量である。ｎ（ｔ）では、流れＦはｎ（ｔ）・ｌ（ｔ）に対応しており、
Ｃはリンク容量、すなわち、スロットｔごとに伝達することができる情報量である。別の方法では、Ｃは、オーバーフローをより十分避けるために、リンク容量より僅かに小さく選択することができる。
【００３９】
観察期間の後、最も高い値を蓄積した代替決定テーブルは、アクティブな決定テーブルに関連する値を超える場合に、アクティブな決定テーブルまで進められる。この場合、アクティブな決定テーブルは代替決定テーブルの１つとなるように降格される。この方法を効率的にするために、多くの代替動作テーブルを評価する必要がある。これを避ける代替方法を次に記載する。
【００４０】
この代替方法では、最初に遷移マトリックスを作り出さなければならず、これはトラフィックの観察に基づいている。このような遷移マトリックスは、流れの数が、この入力に対するマトリックスの行によって特性化された特定の値から、この入力に対するマトリックスの列によって特性化された別の値まで増減される可能性を示す入力を含むことができる。この場合、遷移マトリックスＴＲＭ［ｎ（ｔ），ｎ（ｔ＋ｌ）］はしたがって、現在のタイムスロットｔおよび次のタイムスロットｔ＋１の絶対数の流れの観察された差に基づいて構築される。この遷移マトリックスを入力として、ｌ（ｔ）を判断するために使用される決定テーブルは、例えば、これ以下ＭＤＰ理論と省略するマルコフ決定プロセス理論に基づいて更新することができ、３つの可能な動作だけを前のパラグラフで説明した動作として行うことができる前提で値関数の平均を最適化することができる：
前に記載した決定テーブルに関連するような動作に対応するように、
１）動作「＋」によって示されるように、次のスロットで１つまたは複数のレイヤだけ余分にすることを可能にする、
２）動作「０」によって示されるように、次のスロットで同じ量のレイヤを可能にする、または、
３）動作「＋」によって示されるように、次のタイムスロットで１つまたは複数のレイヤだけ少なくすることを可能にする。
【００４１】
ＭＤＰ論理により、このような遷移マトリックスＴＲＭ［ｎ（ｔ），ｎ（ｔ＋１）］および所与の値関数によって記載された、マルコフプロセスに対して最適な動作テーブルを選択することが可能になる。値関数Ｖ（ｌ（ｔ），ｎ（ｔ））は、以下の式（３）に示すように、瞬時報酬、およびそれ自体、遷移マトリックスおよび行われる動作に依存する予測将来値の合計からなることができる：
Ｖ［ｌ（ｔ），ｎ（ｔ）］＝Ｒ［ｌ（ｔ），ｎ（ｔ），ａ（ｌ（ｔ），ｎ（ｔ））］＋ΣｊＴＲＭ［ｎ（ｔ），ｊ］・Ｖ［ｌ（ｔ＋１），ｊ］    （３）
式中、Ｖ［ｌ（ｔ），ｎ（ｔ）］は、時間ｔで許可されたｌのレイヤ、およびｎの入来する流れがある場合の値関数を示しており、
Ｒ［ｌ（ｔ），ｎ（ｔ），ａ（ｌ（ｔ），ｎ（ｔ））］は、瞬時報酬関数を示しており、
ａ（ｌ（ｔ），ｎ（ｔ））は、決定テーブルで与えられているように、時間ｔでの許可されたｌのレイヤおよびｎの入来する流れがある場合に行われる動作を示しており、
ΣｊＴＲＭ［ｎ（ｔ），ｊ］・Ｖ［ｌ（ｔ＋１），ｊ］は、状態（ｌ（ｔ），ｎ（ｔ））から（ｌ（ｔ＋１），ｎ（ｔ＋１））までの移動に関連する平均将来値を示しており、式中、ｌ（ｔ＋１）は、動作ａ（ｌ（ｔ），ｎ（ｔ））および許可されたレイヤｌ（ｔ）の現在の数によって判断される、次のタイムスロットの許可されたレイヤの数である。
【００４２】
実際、ｌ（ｔ＋ｌ）＝ｌ（ｔ）＋ｌ｛ａ（ｌ，ｎ）＝“＋”｝−ｌ｛ａ（ｌ，ｎ）＝“−”｝であり、式中１Ａは、ステートメントＡが当てはまる、あるいは０である場合に、値１をとる特性関数である。
【００４３】
瞬時報酬関数Ｒ［ｌ（ｔ），ｎ（ｔ），ａ（ｌ（ｔ），ｎ（ｔ））］の例は、既に与えた式（２）によって与えることができる。このような報酬関数の別の例は、以下の式（４）によって与えることができる：
Ｒ［ｌ（ｔ），ｎ（ｔ），ａ（ｌ（ｔ），ｎ（ｔ））］＝α・Ｇ（ｌ（ｔ））−β・ｍａｘ｛（Ｆ−Ｃ）／Ｆ，０｝−γ・ｌ｛ａ（ｌ（ｔ），ｎ（ｔ））≠０｝    （４）
式中、α、βおよびγは正の定数である。
α・Ｇ（ｌ（ｔ））は、スロットｔでのレイヤｌまでの流れの輸送に関連する報酬、例えば、映像およびレイヤｌに対応する品質を受けるためにユーザが支払いたい価格である。
Ｆは、スロットｔ内のトラフィック量である。ｎの流れでは、Ｆはｎ・ｌに対応しており、
Ｃは、リンク容量である。
【００４４】
両方の式（２）および（４）内で、ｍａｘ｛（Ｆ−Ｃ）／Ｆ，０｝は、スロットｔの間に損失したパケットにほぼ等しく、それによってこの第２項は損失したパケットに対する割引に等しい。最終項は、変動に関する割引であり（式中、ｌ｛ａ（ｌ，ｎ）≠０｝は、ａ（ｌ，ｎ）＝“０”である場合、値１をとり、そうでない場合は０をとる。特性関数であり）、スロットごとにあまりにしばしば、サポートされた最大レイヤｌを変更するのを妨げる。
【００４５】
このプロセスは、図７に略図的に示されている。本実施形態では、第１のブロックは、次のタイムスロット内の流れの数ｎ（ｔ＋１）を測定することによって、前に測定した流れの数ｎ（ｔ）とこれを比較することによって、遷移マトリックスＴＲＭがどのように次第に蓄積されるかを示している。より正確には、始めに、ＴＲＭの全ての入力が０にされる。各タイムスロットｔでは、測定した流れの数が実際ｎ（ｔ）からｎ（ｔ＋１）まで変化したことが分かった場合に、数ｎ（ｔ）の行、および数ｎ（ｔ＋１）の列のＴＲＭマトリックスへの入力が１だけ増加される。したがって、合計観察期間の後に、ＴＲＭマトリックス内の各入力は普通、ｎ（ｔ）の入来する流れが何回ｎ（ｔ＋１）に変更されたかを含んでおり、ｎ（ｔ）は現在のスロットで行を特性化する変数であり、ｎ（ｔ＋１）は、次のスロットで列を特性化する別の変数を示している。
【００４６】
最後に、遷移マトリックスは正規化され、それによって、行の全ての入力が同じ数によって掛けられ、その結果、各行の入力の合計が１に等しくなる。これにより、最適な決定テーブルＴを、例えば、ＭＤＰ理論のアルゴリズムを使用して、値関数の反復により得ることが可能になる。
【００４７】
この最適な決定テーブルは、図７で説明されるように、（２）を前提として等式（１）を最大化する決定テーブルである。この最適なテーブルがこのＭＤＰ理論に基づいて見つけられると、この最適なテーブルはその後、また図７に示すように、次のサイクルの間に使用されるようにインストールされる。
【００４８】
遷移マトリックスを構築し、最適な決定テーブルを判断するこのようなプロセスは、全ての観察期間Ｔで行うことができ、好ましい実施形態では、Ｔ＞＞タイムスロットｔである。トラフィックが観察される期間は、Ｔに等しい必要はないが、もっと長くてもよい、例えば２Ｔであってもよく、プロセス中に適応させることもできることに留意されたい。この点で、観察期間およびテーブル適応期間は異なっていてもよく、それぞれプロセスの間に調節可能である。
【００４９】
この学習されたモデルに基づいて、このような改良型コントローラの一実施形態は、例えば、各ノードに対して個別に、マルコフ決定プロセス（ＭＤＰ）理論を使用して、最適な決定テーブルを算出するように構成されている。最適な決定テーブルは入来する流れの現在の量ｎ（ｔ）に左右されるだけであるが、行われる動作は、トラフィックの可能性のある将来の進化を考慮することに留意されたい。例えば、ＭＤＰ理論により、観察期間が、全ての可能なイベントが起こるのに十分長く、知られている日ごとの進化に対して十分短く選択される場合に、最も起こりそうな将来の進化を予測することが可能になる。
【００５０】
この学習プロセスの効果が図８に示されている。この図は、時間ｔの関数として、入来する流れｎの量の進化を示している。この進化は、太い黒線で示されている。時間インスタンス０では、この数はむしろ低く、次の時間インスタンス（１）では、この数は増加されるなどである。この図はまた、ｌの１つの特定の値に対して、図５（ｂ）に示されたタイプの（区分された）決定テーブルの閾値を示している。したがって、現在のスロットｔでバッファに入ることが可能である最も高いレイヤであったｌのこの特定の値では、テーブル５ｂにしたがって２つの関連する閾値がある。ｎ（ｔ）が最も低い閾値より低い場合、動作はこのテーブルにしたがって「＋」であり、ｎ（ｔ）が２つの閾値の間である場合、動作は「０」であり、ｎ（ｔ）が最も高い閾値を超える場合、その動作は「-」である。１つの特定のｌに対する最も高い閾値のみが図に示されている。図は、「デルタ調節」と示されているテーブル調節期間にわたってトラフィックを観察した後に、新しい決定テーブルが算出されロードされることを示している。図５ｂのタイプの決定テーブルを参照すると、これは、高い閾値の値の増加によって、図８に示されている閾値の値を調節するということになる。トラフィックの合計量がこの閾値を超えていることがほとんど起こらなかったので、ＭＤＰアルゴリズムの結果はしたがって、この観察に基づいて、この閾値を増加させるのが安全であるということになる。
【００５１】
１つのノードに含まれるこのようなより複雑な輻輳制御デバイスＣＣＩＭ′に対するより詳細な実施が、図９に示されている。図４に関して、この中間ノードは、本実施形態では、余分な処理または他のデバイスを備えており、１つのデバイスは遷移マトリックスを構築するためのものでＴＲＭと示されており、別のデバイスは、等式（１）および（２）によって与えられる報酬関数にしたがって最良の報酬を生み出す決定テーブルを判断するためのものでＭＤＰと示されており、決定テーブルＴの更新につながる。もちろん、方法ステップのすべては、コントローラＣ’内でも、または１つの処理デバイス上で実行することができる。
【００５２】
これに関して、「コントローラ」と記された任意の機能ブロックを含む、図に示された様々な要素の機能は、専用ハードウェアと、適当なソフトウェアに関してソフトウェアを実行することが可能なハードウェアの使用により与えることができることが記載されている。プロセッサによって与えられる場合、機能は単一の専用プロセッサによって、単一の共有プロセッサによって、またはそのいくつかを共有することができる複数の個別プロセッサによって与えることができる。さらに、「プロセッサ」または「コントローラ」という用語の明示的な使用は、ソフトウェアを実行することが可能なハードウェアのみのことを言うものと解釈すべきではなく、これに限らないが、デジタル信号プロセッサ（ＤＳＰ）ハードウェア、ネットワークプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ソフトウェアを記憶するための読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、および不揮発性記憶装置を暗示的に挙げることができる。他のハードウェア、従来のおよび／またはカスタムハードウェアを含めることもできる。
【００５３】
前に記載した実施形態とは別に、それぞれ説明した方法を実施することができる、隣接したノード間の潜在的な矛盾する決定を避けるために、協調方式が使用される他の実施形態が可能である。局所決定テーブルを備えた木ベースネットワークアーキテクチャでは、このような協調方式の最も単純な例は、積極的な減少および注意深い増加に基づくことができる。より詳細には、図１のネットワークを再び参照すると、これは以下の方針を実施する必要がある可能性がある：
１）ＡＮからの全ての「−」動作を実施し、ＩＭからの「＋」動作を無視する、例えば、少なくとも１つのＡＮが動作「−」を有する場合に、ＩＭ内で「＋」動作を「０」に変化させる。
２）ＩＭだけが「−」動作を有し、全てのＡＮが「＋」または「０」動作のいずれかを有する場合、最も高い流れの数をサポートするＡＮ上で「−」動作を実施する。
３）ＡＮが「−」動作を要求せず、１つのＡＮだけが「＋」動作を要求する場合、ＩＭが「−」動作を要求しなかった場合のみにこれを可能にする。
４）ＡＮが「−」動作を要求せず、２つ以上のＡＮが「＋」動作を要求する場合、ＩＭが「−」動作を要求しなかった場合に、１つのＡＮだけが「＋」動作例えば、最小ｌおよび最大ｎを有するものを可能にする。
【００５４】
多数のノードへの拡張はしたがって、各局所状態ｌｋ（ｔ），ｎｋ（ｔ）を、ノードｋ内の適当な動作に関連させる、ノード毎に局所決定テーブル、プラス協調または均衡を破る方式を必要とし、ここでｋはノード毎のインデックスを示している。これは、図１０の個別の輻輳制御デバイス間の破線矢印により示された、ノード間の異なる輻輳制御デバイス間のいくつかの通信を必要とする。別の方法ではまた、グローバル協調方式を実施することができる。この場合、ノード毎の決定テーブルは、局所情報だけでなく、グローバル情報によるものであり：グローバルな中央実施動作テーブルは、（ｌ１（ｔ），ｎ１（ｔ），．．．，ｌｋ（ｔ），ｎｋ（ｔ），．．．，ｌＫ（ｔ），ｎＫ（ｔ））の各可能な組合せに関連した動作を含んでいる。この場合、このグローバル動作テーブルが中に記憶される中央またはグローバルネットワークコントローラと、個別のノードの間で情報を交換する必要があり、それによってそれぞれ各ノードに対して独自の異なる動作テーブルを有することができる。非局所である（ｌ１（ｔ），ｎ１（ｔ），．．．，ｌｋ（ｔ），ｎｋ（ｔ），．．．，ｌＫ（ｔ），ｎＫ（ｔ））の全ての情報はその後、グローバルネットワークコントローラから個別のノードまで通信されるものである。
【００５５】
このような情報の交換とは別に、このグローバルネットワーク輻輳コントローラの別の機能は、テーブル更新を判断することである可能性がある。その目的で、流れの数ｎｋ（ｔ）が、各ノードｋ（＝１．．Ｋ）に対して時間の経過と共にどのように進化するかが観察される。これは、そのネットワークトポロジーの知識、およびアプリケーションプロバイダとの情報の交換により行うことができる。その後、観察期間Ｔにわたる観察の結果、（どのようにｎｋがノードｋで進化するかを捕捉するために）各ノードに対して個別に遷移マトリックス、または（どのようにｎ１（ｔ），．．．，ｎｋ（ｔ），．．．，ｎＫ（ｔ）が進化するかを捕捉するために）ネットワークに対してグローバル遷移マトリックスのいずれかを構築するように構成されている。さらに、（同じ局所報酬関数および同じセットの可能な動作で）個別に、または合計報酬が局所報酬の加重和である場合にグローバルに、各ノードに対してこの遷移マトリックスに対するＭＤＰを解くようになっている。ノード毎の決定テーブルが得られ、その後さらに、局所ノードに通信される。
【００５６】
ノードが個別にその動作テーブルを判断および適応させる前述の場合、および均衡を破る手順が必要である場合でさえも、ネットワーク輻輳コントローラは、可能性のある均衡が破られた動作自体を算出し、これらを個別のノードに通信することができる、またはネットワーク輻輳コントローラは、局所ノードの決定を互いに中継することができ、その結果、独自のさらなる決定を行うことができる。但し、これらは独自の輻輳状態にアクセスでき、いつ協調動作が必要であるかが分かっているものとする。
【００５７】
中央またはグローバルネットワーク輻輳コントローラＮＣを備えたこのような実施形態が、図１１に示されている。したがって、異なるノード内の個別の輻輳制御デバイス全てと通信するように構成されている。
【００５８】
別の実施形態では、トラフィックは、流れの数を測定する代わりに、リンク上のビットレートを介して観察することができる。
【００５９】
本発明の原理を特定の装置に関連して上に記載したが、添付の特許請求の範囲に規定されているように、この記載は例としてのみ行われたものであり、本発明の範囲を限定するものではないことを明らかに理解されたい。
【図１】
0005372247.tif 000002
【図２】
0005372247.tif 000003
【図３】
0005372247.tif 000004
【図４】
0005372247.tif 000005
【図５ａ】
0005372247.tif 000006
【図５ｂ】
0005372247.tif 000007
【図６】
0005372247.tif 000008
【図７】
0005372247.tif 000009
【図８】
0005372247.tif 000010
【図９】
0005372247.tif 000011
【図１０】
0005372247.tif 000012
【図１１】
0005372247.tif 000013