(57)【特許請求の範囲】
【請求項１】
ネットワーク内の利用可能な帯域幅を、前記ネットワーク内の複数の通信装置のストリーミング・データ・セッションの間で分配する方法であって、通信装置において、
前記通信装置において実施される又は実施されているデータ・セッションに対する割り当て帯域幅を得るために、少なくとも１つの帯域幅パラメータを用いて帯域幅分配アルゴリズムを適用することを含み、前記少なくとも１つの帯域幅パラメータは、前記ネットワークの通信装置相互間で交換される情報メッセージから得られ、かつ、対応する情報メッセージが送信される通信装置において実施される又は実施されているデータ・セッションについての所要の帯域幅を示している、前記方法。
【請求項２】
各々の情報メッセージ内の前記少なくとも１つのパラメータは、
対応するデータ・セッションの優先度のレベルを表す優先度データと、
対応するデータ・セッションのデータ・セグメントの持続時間を表すチャンク持続時間データと、
対応するデータ・セッションの少なくとも１つの動作可能な帯域幅を表す帯域幅データと、
のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記情報メッセージは、前記割り当て帯域幅を提供するのに使用される選択された帯域幅分配アルゴリズムを表す帯域幅分配アルゴリズム・データを含む、請求項１または２に記載の方法。
【請求項４】
前記帯域幅分配アルゴリズムは、最高レベルの優先度を有するデータ・セッションの各々への割り当てのために、前記利用可能な帯域幅を均等な配分に分けることを含む、請求項１から３のいずれか１項に記載の方法。
【請求項５】
各々のデータ・セッションのデータ・コンテンツは、複数の対応するリプリゼンテーションを有し、前記リプリゼンテーションの１つは、割り当てられた帯域幅の前記均等な配分に従って選択され、該選択されたリプリゼンテーションは、割り当てられた帯域幅の前記均等な配分以下である最大帯域幅を必要とするリプリゼンテーションである、請求項４に記載の方法。
【請求項６】
前記選択されたリプリゼンテーションについて必要とされる帯域幅が、割り当てられた帯域幅の前記均等な配分よりも少ない場合に、対応する情報メッセージが最高優先度のデータ・セッションについての他の情報メッセージよりも前に送信された最高優先度のデータ・セッションに、残りの帯域幅の少なくとも一部が再割り当てされる、請求項５に記載の方法。
【請求項７】
前記選択されたリプリゼンテーションについて必要とされる帯域幅が、前記割り当てられた帯域幅の前記均等な配分よりも少ない場合に、残りの帯域幅の少なくとも一部が、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、より低い優先度のレベルのデータ・セッションに割り当てられる、請求項５又は６に記載の方法。
【請求項８】
前記帯域幅分配アルゴリズムは、データ・セッションの優先度のレベルの順序で、かつ、対応する情報メッセージが同一優先度の他のデータ・セッションについての他の情報メッセージよりも前に送信された少なくとも１つのデータ・セッションに、可能な限り最大の帯域幅を割り当てることを含み、前記可能な限り最大の帯域幅は、前記利用可能な帯域幅の範囲内で、同一コンテンツの他のリプリゼンテーションについて最大の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応している、請求項１から３のいずれか１項に記載の方法。
【請求項９】
前記帯域幅分配アルゴリズムは、最小の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応する帯域幅を割り当てることを含む、請求項１から３のいずれか１項に記載の方法。
【請求項１０】
より高いレベルのリプリゼンテーションを可能にするために、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、任意の残りの利用可能な帯域幅をデータ・セッションに再割り当てすることを更に含む、請求項９に記載の方法。
【請求項１１】
所与の優先度のレベルにおいて、残りの利用可能な帯域幅が、対応するデータ・セッションについての情報メッセージの送信時刻と、データ・セッションの開始時刻との少なくとも一方に基づいて割り当てられる、請求項４から１０のいずれか１項に記載の方法。
【請求項１２】
前記情報メッセージは、他の通信装置への転送用の固定のマルチキャスト・アドレスに対して送受信される、請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
前記情報メッセージは中央基地装置を介して交換される、請求項１から１１のいずれか１項に記載の方法。
【請求項１４】
同一の帯域幅割り当てアルゴリズムが、データ・セッションを開始する又は実施している全ての通信装置によって使用される、請求項１から１３のいずれか１項に記載の方法。
【請求項１５】
帯域幅割り当てアルゴリズムが、各々の帯域幅割り当てアルゴリズムに割り当てられた優先度のレベルと、各々の帯域幅アルゴリズムを選択している通信装置の数とのうちの少なくとも一方に従って決定される、直前の請求項に記載の方法。
【請求項１６】
通信装置であって、
同じネットワーク内の１つ又は複数の他の通信装置と情報メッセージを交換する通信インタフェースであって、各々の前記情報メッセージは、対応する情報メッセージが送信される通信装置において開始されるストリーミング・データ・セッションについての所要の帯域幅を示す少なくとも１つの帯域幅パラメータを含んでいる、前記通信インタフェースと、
前記通信装置において実施される又は実施されているデータ・セッションに対する割り当て帯域幅を提供するために、前記少なくとも１つの帯域幅パラメータを用いて帯域幅分配アルゴリズムを適用するように構成された１つ又は複数のプロセッサと、
を有する、前記通信装置。
【請求項１７】
前記少なくとも１つ又は複数のプロセッサが、請求項２から１５のいずれか１項に記載の方法を実施するように構成されている、請求項１６に記載の通信装置。
【請求項１８】
コンピュータ・プログラムであって、請求項１から１５のいずれか１項に記載の方法を実施する一連の命令を含んでいる、前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークにおける帯域幅の分配のための方法および装置に関する。詳しくは、しかしながら限定的ではなく、本発明は、アダプティブ（適応）ストリーミング・クライアントに対する帯域幅の分配に関する。
【背景技術】
【０００２】
インターネットにおけるオーディオビジアル・データの配信にはＨＴＴＰ適応技術が使われている。このような技術によって、クライアント装置は、チャンクと呼ばれることの多い小さい連続したセグメントの形態を有するビデオを受信できる。各々のセグメントは、ＨＴＴＰプロトコルを介して要求されて、種々のバリアント（ｖａｒｉａｎｔ）（いわゆる、リプレゼンテーション（ｒｅｐｒｅｓｅｎｔａｔｉｏｎ））の状態で存在することがあり、これによって、クライアント装置は、ネットワークと装置の制約条件に適合する適切なビットレートを任意の時点で選択できる。
【０００３】
既に使用されているＨＴＴＰアダプティブ・ストリーミング（ＨＡＳ）プロトコルのうちで最も有名なものは、アップルによって開発されたＨＴＴＰ  Ｌｉｖｅ  Ｓｔｒｅａｍｉｎｇ（ＨＬＳ）、マイクロソフトによって開発されたＳｉｌｖｅｒｌｉｇｈｔ  Ｓｍｏｏｔｈ  Ｓｔｒｅａｍｉｎｇ（ＳＳＳ）、アドビによって開発されたＨＴＴＰ  Ｄｙｎａｍｉｃ  Ｓｔｒｅａｍｉｎｇ（ＨＤＳ）、及び、３ＧＰＰ（第３世代パートナーシップ・プロジェクト）によって創始されてＭＰＥＧによって発展させられたＤｙｎａｍｉｃ  Ａｄａｐｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ（ＤＡＳＨ）である。
【０００４】
ＭＰＥＧ−ＤＡＳＨ（別名ＤＡＳＨ，Ｄｙｎａｍｉｃ  Ａｄａｐｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ，ＩＳＯ／ＩＥＣ  ２３００９）には、経時変化する特性（帯域幅）を用いた、ネットワークを介するコンテンツの配信についての完全なソリューションが規定されている。
【０００５】
データ・セッションのコンテンツの再生（ｐｌａｙｏｕｔ）期間中、ＭＰＥＧ−ＤＡＳＨクライアントは、サーバに対してコンテンツのチャンクを要求して、ネットワーク状態の情報と、自身の制約条件と、同一コンテンツ（通常、種々の符号化ビットレートを有する同一コンテンツ）の利用可能なリプレゼンテーションのリストとを用いることによって、最も適切なリプレゼンテーションを要求する。チャンクの持続時間は、通常、数秒に設定されており、従って、ＤＡＳＨクライアントは、ダイナミックに（動的に）ネットワーク状態に適応するために、数秒毎に１つのリプレゼンテーションから別の１つのものに切り換えることができる。低い帯域幅が利用可能である場合、ＤＡＳＨクライアントは、低いビットレートのチャンクを要求し、そして、より高い帯域幅が利用可能になれば、ＤＡＳＨクライアントは、より高いビットレートのチャンクを要求することがある。
【０００６】
所与のコンテンツについての利用可能なリプレゼンテーションのリストは、ＤＡＳＨクライアントによって取得されるマニフェスト・ファイル（ＭＰＤ、即ち、Ｍｅｄｉａ  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ）に記述されている。ＤＡＳＨクライアントは、ＭＰＤを構文解析した後、コンテンツのチャンクを要求すべき場所からＵＲＬを見つける。また、クライアントは、このＭＰＤによって、（帯域幅の必要量のような）リプリゼンテーション情報も見つけることができ、従って、ネットワーク状態がダイナミック・アダプテーション（ｄｙｎａｍｉｃ  ａｄａｐｔａｔｉｏｎ：動的な適応）を必要とするときに、全てのリプリゼンテーションの間で切り換えることによって、そのダイナミック・アダプテーションを行うことができる。
【０００７】
一般的に、ＤＡＳＨの動的な態様が用いられる場合、コンテンツは、ＨＴＴＰ及びＴＣＰを介して配信される。ＴＣＰは、全てのＴＣＰコネクションがそれらの間で全体的なネットワーク帯域幅を均等に共有しようとする帯域幅フレンドリな（ｂａｎｄｗｉｄｔｈ  ｆｒｉｅｎｄｌｙ）プロトコルである。残念ながら、ＵＤＰのような他のプロトコルは、あまり帯域幅フレンドリではなく、ＴＣＰから全ての帯域幅を奪うことがある。更に、相異なるＴＣＰコネクションの相互間でさえも、帯域幅の固定した均等でない分配を保証することは困難であり、これは、一部の装置が実際にその他の装置よりも多量の帯域幅を必要とするときに問題となる。例えば、リビング・ルーム内においてマスターＴＶ上でＵｌｔｒａＨＤストリームを再生するＤＡＳＨクライアントは、モバイル・フォン上でＨＤストリームを再生するＤＡＳＨクライアントよりも多量の帯域幅を必要とする。しかし、これらが共に同時に動作して、且つ、全体的なネットワーク帯域幅がこれらの両方に十分に対応できない場合、ＤＡＳＨクライアント適応メカニズムによって、両クライアント間で帯域幅についての争いが生じて、クライアントの両方について品質が低下することになる。当然ながら、競合するＤＡＳＨクライアントが多ければ多いほど、状況は益々深刻になる。更に、従来のＤＡＳＨの実施において、ＤＡＳＨクライアントは、同じネットワークの帯域幅の可用性について自身と競合している他のＤＡＳＨクライアントの存在に気づかない。ＤＡＳＨクライアントが認識できるものは、他のＤＡＳＨクライアントによるネットワークの帯域幅の変動消費による帯域幅の著しく変動する可用性のみである。
【０００８】
本発明は、上述のことを念頭において考案されたものである。
【発明の概要】
【０００９】
本発明は、概して、各々のデータ・セッション（トラフィック・セッション又はデータ・トラフィック・セッション）を記述しているパラメータの、ネットワークの通信装置相互間における交換と、これらの交換パラメータを用いてネットワークにおける１つ又は複数のデータ・セッションに帯域幅を割り当てる帯域幅分配アルゴリズムの、通信装置における適用と、に関する。
【００１０】
本発明の第１の態様によれば、ネットワーク内の利用可能な帯域幅を、ネットワーク内の複数の通信装置のデータ・セッションの間で分配する方法であって、通信装置において、
上記通信装置において実施される又は実施されているデータ・セッションと、ネットワーク内の他の通信装置によって実施される又は実施されている任意の他のデータ・セッションとに対する割り当て帯域幅を提供する帯域幅分配アルゴリズムを適用することを含み、少なくとも１つの帯域幅パラメータは、上記通信装置とネットワークの少なくとも１つの他の通信装置との間で交換される情報メッセージから得られ、かつ、対応する情報メッセージが送信される通信装置において実施されるデータ・セッションについての所要の帯域幅を示している、上記方法が提供される。
【００１１】
１つ又は複数の態様において、通信装置は、例えばＭＰＥＧ−ＤＡＳＨに従うアダプティブ・ストリーミング用に構成されている。
【００１２】
実施態様において、割り当て帯域幅は、ネットワーク内で実施される又は実施されている各々のデータ・セッションについて決定される。この割り当て帯域幅は、場合によっては、ゼロ帯域幅であることもある。
【００１３】
実施態様において、情報メッセージは、実施される又は実施されている対応するデータ・セッションを知らせる。
【００１４】
各々の情報メッセージ内の少なくとも１つのパラメータは、
対応するデータ・セッションの優先度のレベルを表す優先度データと、
対応するデータ・セッションのデータ・セグメントの持続時間を表すチャンク持続時間データと、
対応するデータ・セッションの少なくとも１つの動作可能な帯域幅を表す帯域幅データと、のうちの１つ又は複数を含む。
【００１５】
一部の実施態様において、情報メッセージは、割り当て帯域幅を提供するのに使用される選択された帯域幅分配アルゴリズムを表す帯域幅分配アルゴリズム・データを含む。
【００１６】
一態様において、帯域幅分配アルゴリズムは、実施される又は実施されている他のデータ・セッションの優先度のレベルと比較して最高レベルの優先度を有するデータ・セッションの各々への割り当てのために、利用可能な帯域幅を均等な配分に分割することを含む。
【００１７】
各々のデータ・セッションのデータ・コンテンツは、複数の対応するリプリゼンテーションを有してもよく、リプリゼンテーションの１つは、利用可能な帯域幅を分割することによって割り当てられた帯域幅に従って選択され、選択されたリプリゼンテーションは、割り当てられた帯域幅以内の最大帯域幅を必要とするリプリゼンテーション該当する。
【００１８】
一態様において、選択されたリプリゼンテーションについて必要とされる帯域幅が、割り当てられた帯域幅よりも少ない場合に、対応する情報メッセージが他の最高優先度のデータ・セッションについての他の情報メッセージよりも前に送信された最高優先度のデータ・セッションに、残りの帯域幅の少なくとも一部が再割り当てされる。
【００１９】
一態様において、選択されたリプリゼンテーションについて必要とされる帯域幅が、割り当てられた帯域幅よりも少ない場合に、残りの帯域幅の少なくとも一部が、次のより低い優先度のレベルのデータ・セッションに割り当てられる。より低い優先度のデータ・セッションへの割り当ては、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づく。
【００２０】
一態様において、帯域幅分配アルゴリズムは、他のデータ・セッションの優先度に比べて最高レベルの優先度を有し、かつ、対応する情報メッセージが他の最高優先度のデータ・セッションについての他の情報メッセージよりも前に送信されたデータ・セッションに、可能な限り最大の帯域幅を割り当てることを含み、可能な限り最大の帯域幅は、利用可能な帯域幅の範囲内で、同一コンテンツの他のリプリゼンテーションについて最大の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応している。
【００２１】
一態様において、帯域幅分配アルゴリズムは、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻とに基づいて、少なくとも１つのデータ・セッションに可能な限り最大の帯域幅を割り当てることを含む。詳しくは、可能な限り最大の帯域幅は、対応する情報メッセージが同一優先度の他のデータ・セッションについての他の情報メッセージよりも前に送信された最高優先度のデータ・セッションに割り当てられる。可能な限り最大の帯域幅は、利用可能な帯域幅の範囲内で、同一コンテンツの他のリプリゼンテーションについて最大の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応している。
【００２２】
一態様において、帯域幅分配アルゴリズムは、最小の帯域幅を必要とするコンテンツ・データ・セッションのリプリゼンテーションに対応する帯域幅を割り当てることを含む。
【００２３】
一態様において、本方法は、より高いレベルのリプリゼンテーションを可能にするために、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、任意の残りの利用可能な帯域幅をデータ・セッションに再割り当てすることを更に含む。
【００２４】
一態様では、所与の優先度のレベルにおいて、残りの利用可能な帯域幅が、対応するデータ・セッションについての情報メッセージの送信時刻と、データ・セッションの開始時刻との少なくとも一方に基づいて、データ・セッションに割り当てられる。
【００２５】
一態様において、情報メッセージは、他の通信装置への転送用の固定のマルチキャスト・アドレスに対して送受信される。
【００２６】
一態様において、情報メッセージは中央基地装置を介して交換される。
【００２７】
一態様において、同一の帯域幅割り当てアルゴリズムが、データ・セッションを開始する全ての通信装置によって使用される。
【００２８】
一態様において、帯域幅割り当てアルゴリズムは、各々の帯域幅割り当てアルゴリズムに割り当てられた優先度のレベルと、各々の帯域幅アルゴリズムを選択している通信装置の数とのうちの少なくとも一方に従って選択される。
【００２９】
本発明の第２の態様によれば、通信装置であって、同じネットワーク内の１つ又は複数の他の通信装置と情報メッセージを交換する通信インタフェースであって、各々の情報メッセージは、対応する情報メッセージが送信される通信装置において実施される又は実施されているデータ・セッションについての所要の帯域幅を示す少なくとも１つの帯域幅パラメータを含んでいる、上記通信インタフェースと、通信装置において実施される又は実施されているデータ・セッションについての割り当て帯域幅を提供するために、少なくとも１つの帯域幅パラメータを用いて帯域幅分配アルゴリズムを適用するように構成された１つ又は複数のプロセッサと、を有する前記通信装置が提供される。一部の実施態様において、ネットワークにおいて実施される又は実施されている各々のデータ・セッションに対する割り当て帯域幅を提供する帯域幅分配アルゴリズムが少なくとも１つの帯域幅パラメータを用いて適用される。各々のデータ・セッションは、対応する情報メッセージを有していてもよい。
【００３０】
通信装置の１つ又は複数のプロセッサは、本発明の第１の態様の実施態様の任意のステップを実施するように構成されてもよい。
【００３１】
本発明の一部の実施態様における通信装置からの対応する情報方法の存在は、その通信装置における進行中の（実施されている）データ・セッション又は開始される（実施される）データ・セッションを示している。
【００３２】
本発明の一態様は、ネットワークの利用可能な帯域幅を、ネットワーク内の複数の通信装置の各々のデータ・セッションの間で分配する方法であって、ネットワーク内の通信装置について、
情報メッセージをネットワーク内の他の通信装置に送信することと、
情報メッセージをネットワーク内の他の通信装置のうちの少なくとも１つから受信することであって、各々の情報メッセージには、対応する通信装置におけるデータ・セッションについての所要の帯域幅を示す少なくとも１つのパラメータが含まれている、上記受信することと、
通信装置のデータ・セッションに対する割り当て帯域幅を提供するために帯域幅分配アルゴリズムを適用することであって、各々の情報メッセージの少なくとも１つの帯域幅パラメータは帯域幅分配アルゴリズムによって用いられる、上記適用することと、
を含む、方法を提供する。
【００３３】
本発明の実施態様において、情報メッセージは、データ・セッションを開始しようとする、或いは、進行中のデータ・セッションを有する他の全ての通信装置から受信される。
【００３４】
本発明の一態様によれば、ネットワーク内の利用可能な帯域幅をネットワーク内の複数の通信装置のデータ・セッションの間で分配する方法であって、ネットワークの通信装置によって実施される又は実施されている各々のデータ・セッションに対する割り当て帯域幅を提供する帯域幅分配アルゴリズムを適用することを含み、帯域幅分配アルゴリズムは、他のデータ・セッションに比べて最高レベルの優先度を有し、かつ、データ・セッションを知らせる対応する情報メッセージが同一の優先度のレベルの他のデータ・セッションについての他の情報メッセージよりも前に送信された少なくとも１つのデータ・セッションに、最大の所要の帯域幅を割り当てることを含み、データ・セッションの最大の所要の帯域幅は、利用可能な帯域幅の範囲内で、同一コンテンツの他のリプリゼンテーションについて最大の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応している、方法が提供される。
【００３５】
本発明の一態様によれば、ネットワークの通信装置によって実施される又は実施されている各々のデータ・セッションについての割り当て帯域幅を提供する帯域幅分配アルゴリズムを適用するように構成された１つ又は複数のプロセッサを備えた通信装置であって、帯域幅分配アルゴリズムは、優先度のレベルの順序で、かつ、データ・セッションを知らせる対応する情報メッセージが同一の優先度のレベルの他のデータ・セッションについての他の情報メッセージよりも前に送信された少なくとも１つのそのデータ・セッションに、可能な限り最大の帯域幅を割り当てることを含み、データ・セッションの可能な限り最大の帯域幅は、利用可能な帯域幅の範囲内で、同一コンテンツの他のリプリゼンテーションについて最大の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応している、通信装置が提供される。
【００３６】
一実施態様では、所与の優先度のレベルにおいて、残りの帯域幅が、データ・セッションの優先度のレベルと、対応するデータ・セッションについての情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、他のデータ・セッションに割り当てられる。
【００３７】
一実施態様では、所与の優先度のレベルにおいて、帯域幅の増大された配分が、対応する情報メッセージが同一優先度の他のデータ・セッションについての他の情報メッセージよりも前に送信された少なくとも１つのデータ・セッションに割り当てられる。
【００３８】
一実施態様では、所与のより低い優先度のレベルにおいて、最小の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応する帯域幅が、少なくとも１つのデータ・セッションに割り当てられる。
【００３９】
一実施態様では、本方法は、より高いレベルのリプリゼンテーションを可能にするために、所与のより低い優先度のレベルにおいて、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、任意の残りの利用可能な帯域幅をデータ・セッションに再割り当てすることを含む。あるいは、本装置は、より高いレベルのリプリゼンテーションを可能にするために、所与のより低い優先度のレベルにおいて、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、任意の残りの利用可能な帯域幅をデータ・セッションに再割り当てするように構成されている。
【００４０】
一実施態様では、本方法は、より低い所与のレベルの優先度におけるデータ・セッションの各々への割り当てのために、残りの帯域幅を均等な配分に分割することを含む。あるいは、本装置は、より低い所与のレベルの優先度におけるデータ・セッションの各々への割り当てのために、残りの帯域幅を均等な配分に分割するように構成されている。
【００４１】
一実施態様において、データ・コンテンツのリプリゼンテーションが、割り当てられた帯域幅の均等な配分に従って各々のデータ・セッションについて選択され、選択されたリプリゼンテーションは、割り当てられた帯域幅の配分以下である最大帯域幅を必要とするリプリゼンテーションである。
【００４２】
一実施態様において、本方法によれば、選択されたリプリゼンテーションについて必要とされる帯域幅が、割り当てられた帯域幅である均等な配分よりも少ない場合に、対応する情報メッセージが他の所与の優先度のデータ・セッションについての情報メッセージよりも前に送信されたこの所与の優先度のレベルのデータ・セッションに、残りの帯域幅の少なくとも一部が再割り当てされる。
【００４３】
一実施態様において、帯域幅分配アルゴリズムについての少なくとも１つの帯域幅パラメータは、ネットワークの通信装置相互間で交換される情報メッセージから得られ、かつ、対応する情報メッセージが送信される通信装置において実施される又は実施されているデータ・セッションについての所要の帯域幅を示している。
【００４４】
本発明の一態様は、ネットワーク内の利用可能な帯域幅をネットワーク内の複数の通信装置のデータ・セッションの間で分配する方法であって、ネットワークの通信装置によって実施される又は実施されている各々のデータ・セッションに対する割り当て帯域幅を提供する帯域幅分配アルゴリズムを適用することを含み、帯域幅分配アルゴリズムは、最高レベルの優先度を有するデータ・セッションの各々への割り当てのために、利用可能な帯域幅を均等な配分に分割することを含む、方法を提供する。
【００４５】
本発明の一態様は、通信装置であって、ネットワークの通信装置によって実施される又は実施されている各々のデータ・セッションに対する割り当て帯域幅を提供する帯域幅分配アルゴリズムを適用するように構成された１つ又は複数のプロセッサを備え、帯域幅分配アルゴリズムは、最高レベルの優先度を有するデータ・セッションの各々への割り当てのために、利用可能な帯域幅を均等な配分に分割することが含まれる、通信装置を提供する。
【００４６】
各々のデータ・セッションのデータ・コンテンツは、複数の対応するリプリゼンテーションを有し、これらのリプリゼンテーションの１つは、割り当てられた帯域幅の均等な配分に従って各々のデータ・セッションについて選択され、選択されたリプリゼンテーションは、割り当てられた帯域幅の配分以下である最大帯域幅を必要とするリプリゼンテーションである。
【００４７】
一実施態様において、選択されたリプリゼンテーションについて必要とされる帯域幅が、割り当てられた帯域幅である均等な配分よりも少ない場合に、最高優先度のデータ・セッションを知らせる対応する情報メッセージが他の最高優先度のデータ・セッションについての情報メッセージよりも前に送信されたその最高優先度のデータ・セッションに、残りの帯域幅の少なくとも一部が再割り当てされる。
【００４８】
一実施態様において、選択されたリプリゼンテーションについて必要とされる帯域幅が、割り当てられた帯域幅の均等な配分よりも少ない場合に、データ・セッションの優先度のレベルと、データ・セッションを知らせる対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、残りの帯域幅の少なくとも一部が別のデータ・セッションに割り当てられる。
【００４９】
一実施態様では、所与の優先度のレベルにおいて、対応するデータ・セッションを知らせる情報メッセージの送信時刻とデータ・セッションの開始時刻との少なくとも一方に基づいて、残りの帯域幅が割り当てられる。
【００５０】
一実施態様では、所与の優先度のレベルにおいて、帯域幅の増大された配分が、データ・セッションを知らせる対応する情報メッセージが同一優先度の他のデータ・セッションについての他の情報メッセージよりも前に送信された少なくとも１つのデータ・セッションに割り当てられる。
【００５１】
一実施態様では、所与のより低い優先度のレベルにおいて、最小の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応する帯域幅が、少なくとも１つのデータ・セッションに割り当てられる。
【００５２】
一実施態様では、本方法は、より高いレベルのリプリゼンテーションを可能にするために、所与のより低い優先度のレベルにおいて、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、任意の残りの利用可能な帯域幅をデータ・セッションに再割り当てすることを含む。あるいは、本装置は、より高いレベルのリプリゼンテーションを可能にするために、所与のより低い優先度のレベルにおいて、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、任意の残りの利用可能な帯域幅をデータ・セッションに再割り当てするように構成されている。
【００５３】
一実施態様において、帯域幅分配アルゴリズムについての少なくとも１つの帯域幅パラメータは、ネットワークの通信装置相互間で交換される情報メッセージから得られ、かつ、対応する情報メッセージが送信される通信装置において実施される又は実施されているデータ・セッションについての所要の帯域幅を示している。
【００５４】
一実施態様において、情報メッセージは、中央基地装置を介して交換される。
【００５５】
一実施態様において、同一の帯域幅割り当てアルゴリズムが、データ・セッションを開始する又は実施している全ての通信装置によって使用される。
【００５６】
一実施態様において、帯域幅割り当てアルゴリズムは、各々の帯域幅割り当てアルゴリズムに割り当てられた優先度のレベルと、各々の帯域幅アルゴリズムを選択する通信装置の数とのうちの少なくとも一方に従って、決定される。
【００５７】
本発明の一態様によれば、ネットワーク内の利用可能な帯域幅をネットワーク内の複数の通信装置のデータ・セッションの間で分配する方法であって、ネットワークの通信装置によって実施される又は実施されている１つ又は複数のデータ・セッションに対する割り当て帯域幅を提供する帯域幅分配アルゴリズムを適用することを含み、帯域幅分配アルゴリズムは、１つ又は複数のデータ・セッションに、最小の帯域幅を必要とするそれぞれのデータ・セッションのデータ・コンテンツのリプリゼンテーションに対応する帯域幅を割り当てることを含む、方法が提供される。
【００５８】
本発明の一態様は、通信装置であって、ネットワークの通信装置によって実施される又は実施されている各々のデータ・セッションに対する割り当て帯域幅を提供する帯域幅分配アルゴリズムを適用するように構成された１つ又は複数のプロセッサを備え、帯域幅分配アルゴリズムには、１つ又は複数のデータ・セッションに、最小の帯域幅を必要とするそれぞれのデータ・セッションのデータ・コンテンツのリプリゼンテーションに対応する帯域幅を割り当てることを含む、通信装置を提供する。
【００５９】
一実施態様において、本方法は、より高いレベルのリプリゼンテーションを可能にするために、データ・セッションの優先度のレベルと、データ・セッションを知らせる対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、任意の残りの利用可能な帯域幅を選択されたデータ・セッションに再割り当てすることを含む。あるいは、本装置は、より高いレベルのリプリゼンテーションを可能にするために、データ・セッションの優先度のレベルと、データ・セッションを知らせる対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、任意の残りの利用可能な帯域幅を選択されたデータ・セッションに再割り当てするように構成されている。
【００６０】
一実施態様では、所与の優先度のレベルにおいて、データ・セッションの優先度のレベルと、対応するデータ・セッションについての情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、残りの利用可能な帯域幅が他のデータ・セッションに、割り当てられる。
【００６１】
一実施態様において、帯域幅分配アルゴリズムについての少なくとも１つの帯域幅パラメータは、ネットワークの通信装置相互間で交換されて対応するデータ・セッションを知らせる情報メッセージから得られ、かつ、対応する情報メッセージが送信される通信装置において実施される又は実施されているデータ・セッションについての所要の帯域幅を示している。
【００６２】
本発明の要素によって実施される一部の処理は、コンピュータによって実施されることがある。従って、このような要素は、一般的に、ここで「回路」、「モジュール」又は「システム」と称されることがある完全なハードウェア実施形態、完全なソフトウェア実施形態（ファームウェア、常駐型ソフトウェア、マイクロコードなどを含む）、或いは、ソフトウェアとハードウェアの態様を組み合わせた実施形態の形を取ることがある。更に、このような要素は、媒体において具現されるコンピュータ使用可能プログラム・コードを有する表現を備えた、任意の有形媒体において具現されるコンピュータ・プログラム製品の形を取ることがある。
【００６３】
本発明の要素がソフトウェアの状態で実施できるので、本発明は、任意の適当な搬送媒体を介してプログラム可能装置に提供されるコンピュータ可読コードとして具現できる。有形搬送媒体は、例えばフロッピーディスク、ＣＤ−ＲＯＭ、ハードディスク装置、磁気テープ装置、或いは、ソリッド・ステート・メモリ装置などのような記憶媒体で構成されることがある。一時的な搬送媒体には、電気的信号、電子的信号、光学的信号、音響的信号、磁気的信号、或いは、電磁的信号、例えばマイクロ波又はＲＦ信号、のような信号が含まれることがある。
【図面の簡単な説明】
【００６４】
以下、下記の図面を参照して、本発明の実施形態を、単に例として、説明する。
【図１】本発明の１つ又は複数の実施形態が実施され得るデータ通信システムの概略的なブロック図である。
【図２】本発明の一実施形態による通信装置の概略的なブロック図である。
【図３】本発明の一実施形態による帯域幅分配方法のステップのフローチャートである。
【発明を実施するための形態】
【００６５】
図１は、本発明の１つ又は複数の実施形態が実施され得るデータ通信システムの概略的なブロック図である。
【００６６】
データ通信システム１は、複数のサーバ装置Ｓ１，Ｓ２、複数のクライアント装置Ｃ１，Ｃ２，Ｃ３、及び、ゲートウェイ装置ＧＷを備えている。
【００６７】
クライアント装置Ｃ１，Ｃ２，Ｃ３は、ローカルのネットワークＮ１に接続されている。このローカルのネットワークＮ１は、例えば、無線ネットワーク（例えば、Ｗｉｆｉ  ｌ  ８０２．ｌｌａ又はｂ又はｇ）、Ｅｔｈｅｒｎｅｔネットワーク、或いは、いくつかの相異なるネットワークで構成された混合ネットワークのようなＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）であってもよい。このローカルのネットワークＮ１は、ゲートウェイＧＷを介して、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）ネットワークＮ２（例えば、インターネット）に接続されている。
【００６８】
クライアント装置Ｃ１〜Ｃ３の各々は、ＷＡＮネットワークＮ２を介して、リモートのサーバＳ１，Ｓ２の１つ又は複数のものに接続することによって、１つ又は複数のデータ・セッション（例えば、固定レート・ストリーミング・セッション、アダプティブ・ストリーミング・セッション（例えば、ＨＡＳ）、バルク・データ・セッション）を確立するように構成されている。データ・セッションは、トラフィック・セッション、データ・トラフィック・セッション、或いは、セッションとも呼ばれることがある。クライアント装置Ｃ１，Ｃ２，Ｃ３は、送信されたビットストリームを受信して復号し、例えばマルチメディア・データのようなデータをクライアント装置上に描画するように構成された通信装置であってもよい。特に、クライアント装置Ｃ１〜Ｃ３は、アダプティブ・ストリーミングについてＭＰＥＧ−ＤＡＳＨプロトコルを実施するように構成されている。例示された例において、Ｃ１はラップトップ・コンピュータであり、Ｃ２はＨＤディスプレイであり、Ｃ３はスマートフォンである。
【００６９】
コンテンツの再生期間中、クライアント装置Ｃ１，Ｃ２又はＣ３は、サーバＳ１又はＳ２に対してコンテンツのチャンクを要求することができ、ネットワークＮ１の状態、自身の制約条件、及び、同一コンテンツ（通常、相異なる符号化ビットレートを有する同一コンテンツ）の利用可能なリプリゼンテーションのリストの情報を用いて、最も適切なリプリゼンテーションを要求することがある。チャンクの持続時間は、数秒に設定されていることがあり、従って、クライアントＣ１〜Ｃ３は、ダイナミックに（動的に）ネットワーク状態に適応するために、数秒毎に１つのリプレゼンテーションから別の１つのものに切り換えることができる。
【００７０】
所与のコンテンツについての利用可能なリプレゼンテーションのリストは、クライアント装置Ｃ１〜Ｃ３によって取得されるマニフェスト・ファイル（ＭＰＤ、即ち、Ｍｅｄｉａ  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ）に記述されている。クライアント装置は、ＭＰＤを構文解析した後、コンテンツのチャンクを要求すべき場所からＵＲＬを見つける。クライアントＣ１〜Ｃ３は、このＭＰＤによって、リプリゼンテーションについての（帯域幅の必要量のような）情報も見つけることができ、従って、ネットワーク状態がダイナミック・アダプテーション（ｄｙｎａｍｉｃ  ａｄａｐｔａｔｉｏｎ：動的な適応）を必要とするときに、全てのリプリゼンテーションの間で切り換えることによって、そのダイナミック・アダプテーションを行うことができる。
【００７１】
図２は、本発明の一実施形態によるクライアント装置１００を例示するブロック図である。クライアント装置１００は、一部の実施形態において、携帯メディア装置、モバイル・フォン、タブレット、ラップトップ、ＨＤＴＶなどであってもよい。クライアント装置１００は、受信されたメディア・コンテンツを描画するための全ての構成要素を備えていなくてもよく、そのメディア・コンテンツを逆多重化して復号するための構成要素のような一部の部分的な構成要素のみを備えていてもよく、エンド・ユーザに対する復号コンテンツの描画については、外部の装置に任せてもよいことは理解されるであろう。
【００７２】
クライアント装置１００は、
ローカルのネットワークＮ１に接続するためのＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インタフェース１１０（有線及び／又は無線、例えば、Ｗｉ−Ｆｉ、Ｅｔｈｅｒｎｅｔなど）と、
管理通信バスと共同して、パブリッシュ／サブスクライブ型（出版−購読型）パラダイム（例えば、Ｄａｔａ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｓｅｒｖｉｃｅ（ＤＤＳ）、Ｊａｖａ（登録商標）  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ（ＪＭＳ）、Ｑｅｏ（図示せず））を実施することによって、自装置がローカルのネットワークＮ１の装置Ｃ１〜Ｃ３の他の全ての装置及びゲートウェイＧＷとの間で情報メッセージを送受信できるようにする管理インタフェース１２１を備えた通信モジュール１２０と、
を備えている。この情報メッセージは、例えば永続的なメッセージであってもよく、従って、ネットワークの任意の装置によって収集できる（仮にその装置が送信時にネットワークＮ１に接続されていない場合でもよい）。例えば、メッセージは、例えばこの装置の管理インタフェース１２１上で稼働しているバックグラウンド・サービスによって収集でき、或いは、管理インタフェース１２１によって（例えば、周期的に、又は、必要な場合に）取得されるべき長寿命のメッセージとして管理通信バスによって記憶できる。通信モジュールは、自装置が所与のセッションに関連付けられた制御メッセージとデータ・メッセージとを送受信できるようにするアプリケーション・インタフェース１２２も備えている。
【００７３】
通信モジュール１２０は、サーバＳ１，Ｓ２との通信用のプロトコル・スタックを含んでいる。特に、通信モジュール１２０は、当業者に周知の如く、ＴＣＰ／ＩＰスタックを備えている。しかしながら、その他の任意のタイプのネットワーク及び／又は通信手段を用いて、装置Ｃ１〜Ｃ３がサーバＳ１，Ｓ２と通信できるようにしてもよいことが理解されるであろう。
【００７４】
クライアント装置１００は、メモリ１５０と、メモリ・コントローラ１４５と、１つ又は複数の処理装置（ＣＰＵ）を備えた処理回路１４０と、を更に備えている。この１つ又は複数の処理装置１４０は、メモリ１５０に記憶された種々のソフトウェア・プログラム及び／又は複数組の命令を実行して、クライアント装置１００についての種々の機能を行い、データを処理する。
【００７５】
メモリに記憶されているソフトウェア成分には、本発明の実施形態に従って帯域幅を割り当てるための帯域幅割り当てモジュール（即ち、１組の命令）１５１が含まれている。その他のモジュール、例えば、一般的なシステム・タスク（例えば、電力管理、メモリ管理）を制御し、クライアント装置１００の種々のハードウェア及びソフトウェア成分相互間の通信を容易にするオペレーティング・システム・モジュール１５２が含まれていてもよい。
【００７６】
加えて、装置Ｃ１〜Ｃ３は、自身のタイプに従って、（ネットワークの制約条件と自身の制約条件とに、より良く適合するビットレートでのチャンクを連続的に選択する）アダプティブ・ストリーミング・モジュールと、マルチメディア・コンテンツを復号して描画するように構成されたビデオ・プレーヤと、サーバから受信されたチャンクをビデオ・プレーヤに送信する前にバッファリングするように構成されたバッファなどと（図２には、これらのモジュールは表されていない）、を更に備えていてもよい。
【００７７】
当業者に周知の、一般的なクライアント装置の機能を行うための種々のモジュール及び全ての手段を接続するための内部バスＢが設けられている。
【００７８】
図２において、例示されたモジュールは機能モジュールに対応しており、これらの機能モジュールは区別可能な物理的な装置に対応していることもあれば、或いは、そうでないこともあることが理解されるであろう。例えば、複数のこのようなモジュールは、固有の構成部品又は回路内に組み込まれていることもあれば、或いは、ソフトウェアの機能に対応していることもある。更に、モジュールは、潜在的に、独立した物理的なエンティティから構成されることもあれば、或いは、ソフトウェアの機能から構成されることもある。
【００７９】
機能モジュールは、例えば、ＶＬＳＩ回路、或いは、ゲート・アレイ、即ち、例えば論理チップ、トランジスタなどのような個別の半導体コンダクタを備えたハードウェア回路として実施されることがある。モジュールは、例えば、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、或いは、プログラマブル・ロジック・デバイスなどのようなプログラム可能なハードウェア装置内に実施されることもある。更に、モジュールは、ソフトウェアと１つ又は複数のハードウェア装置との組み合わせとして実施されることもある。例えば、モジュールは、プロセッサが１組の動作データを稼働させるという組み合わせで具現化されることがある。更に、モジュールは、電子信号が送信回路を介して伝わるという組み合わせで実施されることがある。
【００８０】
本発明の実施形態において、クライアント装置Ｃ１，Ｃ２，Ｃ３は、それぞれのデータ・セッションを記述したパラメータを交換する。各々のクライアントは、データ・コンテンツの所望のリプリゼンテーションについて一般的なＤＡＳＨアダプテーション・アルゴリズムを依然として使用している間、他のデータ・セッションの情報を用いて、場合によっては帯域幅を多く取り過ぎないようにすることによって、ネットワークの帯域幅の公正な共有が協働して得られるようにすることがある。
【００８１】
以下、図３を参照して、本発明の一実施形態による、ネットワークＮ１における利用可能な帯域幅の分配方法を説明する。図３の方法は、ネットワークＮ１の利用可能な帯域幅を共有するクライアント装置Ｃ１〜Ｃ３のいずれのクライアント装置によって実施されてもよい。本発明の一部の実施形態において、クライアント装置Ｃ１〜Ｃ３の間で共有されるべきＮ１の利用可能な帯域幅の総量は、中央装置から信号で伝えられてもよい。例えば、ゲートウェイ装置ＧＷは、アクセス・リンクの実際の特性を正確に調べることができ、種々のタイプのデータ・トラフィックに帯域幅を割り当てることもでき、従って、データ・セッションについて、どれほどの帯域幅が利用可能であるかを決定できる。本発明の他の実施形態において、クライアント装置Ｃ１〜Ｃ３は、一般的に、例えば、自身がサーバに対して要求した所定数の最新のパケット又はチャンクを自身が受信した速度をモニタすることによって、全体的な帯域幅を推定する。
【００８２】
ステップＳ３１０において、クライアント装置Ｃ１が、ネットワークＮ１内の他のクライアント装置Ｃ２，Ｃ３に情報メッセージを送る。この情報メッセージには、クライアント装置Ｃ１において開始される、或いは、既に進行中であるデータ・セッションの所要の帯域幅を示すパラメータが含まれている。また、ステップＳ３１０において、クライアント装置Ｃ１は、データ・セッションを開始するつもりである（又は、セッションが進行中である）その他のクライアント装置Ｃ２及び／又はＣ３の任意のクライアント装置から、クライアント装置Ｃ２又はＣ３において開始される、或いは、進行中であるデータ・セッションの所要の帯域幅を示すパラメータを含む情報メッセージを受信する。尚、これらの帯域幅のメッセージの受信又は送信については特定の順序はなく、その他の装置は、クライアントＣ１からの情報メッセージの送信の前に又は後に、或いは、この送信と同期してそれぞれの情報メッセージを送信してもよいことが理解されるであろう。
【００８３】
本発明の特定の実施形態において、ネットワークにとって新たなクライアント装置が自身の情報メッセージを送る毎に、それを受信した全てのクライアント装置も、それに応答して自身の情報メッセージを送る。このようにして、全てのクライアント装置は、ネットワークにおける他の全てのクライアント装置について知る。
【００８４】
クライアント装置の間で交換される、情報メッセージ内のパラメータには、それぞれのクライアント装置について、そのクライアント装置が描画する用意のできたコンテンツ・リプリゼンテーションに関する帯域幅必要量のリストと、これらのリプリゼンテーションについてのＤＡＳＨセグメント持続時間と、（他のクライアントに対する）サービス優先度と、場合によっては、そのクライアント装置の所望のリプリゼンテーション帯域幅と、が含まれている。
【００８５】
情報メッセージ内に含まれているパラメータの例には、
対応するデータ・セッションの優先のレベル、即ち、順位を表す優先度データと、
対応するデータ・セッションのデータ・セグメントの持続時間を表すチャンク持続時間データと、
対応するデータ・セッションの所望の帯域幅を表す帯域幅選好データと、
が含まれる。
【００８６】
クライアント装置間での帯域幅必要量情報の交換によって、クライアント装置は、他に参加しているデータ・セッション（及び、それらの帯域幅必要量に関する選好、及び、サービス優先度）を調べることができる。
【００８７】
クライアント装置が当初、互いのことを知らない場合に、ネットワークＮ１の１つのクライアント装置、例えばＣ１から、ネットワークＮ１のその他のクライアント、例えばＣ２，Ｃ３に情報メッセージを送るために、次の２つの交換方式が使用されてもよい。
【００８８】
・マルチキャスト・メッセージング・システム
この交換方式において、全てのクライアント装置は、定期的に自身の情報メッセージを既定のＩＰマルチキャスト・アドレスに送り、また、全てのクライアント装置は、その同じ既定のＩＰマルチキャスト・アドレスをリッスンする。そうすることによって、クライアント装置は、いつでも、同じく帯域幅分配アルゴリズムを実施する他の全てのクライアント装置の存在を見つけることができ、それらのサービス情報選好（ｓｅｒｖｉｃｅ  ｉｎｆｏｒｍａｔｉｏｎ  ｐｒｅｆｅｒｅｎｃｅ）を受信できる。このＩＰマルチキャスト・アドレスは、クライアント装置上で設定されてもよく、或いは、ユーザによって（全ての装置上で同一のマルチキャストを用いて）構成されてもよい。情報メッセージは、それぞれのクライアント装置によってマルチキャスト通信で定期的に送られ、それによって、そのクライアント装置がまだ稼働中であることがその他のクライアント装置に伝えられ、また、情報メッセージは、新たなクライアント装置がネットワークに参加した場合にも送られる（その他のクライアント装置は、それについて知る手段を持っていない）。別の実施形態において、ネットワーク上の新たなクライアント装置は、自身の出現をマルチキャスト・アドレスで伝え、ネットワーク上のその他の全てのクライアント装置は、自身の情報メッセージをユニキャストで新たなクライアント装置に直接送ることができ、或いは、マルチキャスト通信チャネルで送ることができる。
【００８９】
・中央集中型メッセージ収集および再分配
この交換方式においては、情報メッセージを交換するために中央装置が用いられる。例えば、従来のホーム・ネットワーク環境において、ＤＡＳＨクライアントを実施している全ての装置は、同一のゲートウェイを共有している。この実施形態の情報メッセージ交換において、全てのクライアント装置Ｃ１〜Ｃ３が自身の情報メッセージをゲートウェイＧＷに送り、ゲートウェイＧＷは、それぞれの装置に対するユニキャスト通信を用いて、それぞれの装置からの情報をその他の全てのクライアント装置に再分配する。この中央集中型メッセージ収集方式の利点は、クライアント装置が自身の情報メッセージをマルチキャスト通信チャネルで定期的に送る必要がないことであり、また、ゲートウェイＧＷが、いつでも全てのＤＡＳＨクライアントの稼働について知っているので、新たなクライアントが出現した場合に、或いは、いずれかのＤＡＳＨクライアントが去った場合に、全てのＤＡＳＨクライアントを容易に更新できることである。この方式の欠点は、他方の方式がクライアント装置自身だけに追加のメカニズムを必要とするのに対して、この方式がホーム・ゲートウェイに追加のメカニズムを必要とすることである。
【００９０】
ステップＳ３２０において、クライアント装置Ｃ１は、自装置のデータ・セッションについて、Ｎ１の利用可能帯域幅の割り当て帯域幅を提供するアルゴリズムに、帯域幅割り当てアルゴリズムを適用する。この帯域幅分配アルゴリズムは、クライアント装置の間で交換される情報メッセージに含まれている帯域幅パラメータを使用する。
【００９１】
データ・セッションを有するネットワークＮ１のクライアント装置は、各々、共通の帯域幅割り当てアルゴリズムを適用して、自装置のデータ・セッションとその他の参加しているクライアント装置のデータ・セッションとについて、利用可能帯域幅の割り当て帯域幅を特定する。共通の一組の規則に準拠する共通のアルゴリズムを適用することによって、種々のクライアントの演算は、整合性のある結果をもたらすことができる。ＤＡＳＨデータ・セッションは、本発明の実施形態に従って、帯域幅アルゴリズムにおいて記述された共通の基準を用いて順位付けされ、各々のクライアント装置は、リストにおいてより高い順位のその他のデータ・セッションに割り当てられた帯域幅を推定した後に、自身のデータ・セッションについて使用すべき帯域幅を計算できる。
【００９２】
本発明の一実施形態において、以下に述べる帯域幅アルゴリズムのうちの１つ又は複数のものが利用可能であり選択されてもよい。
【００９３】
第１の帯域幅分配アルゴリズムは、ここで「最高優先度サービス間均等共有」（“ｅｖｅｎ  ｓｈａｒｉｎｇ  ａｍｏｎｇ  ｈｉｇｈｅｓｔ  ｐｒｉｏｒｉｔｙ  ｓｅｒｖｉｃｅｓ”）アルゴリズムと称されるが、最高サービス優先度のデータ・セッションを有するクライアント装置の間で均等に帯域幅を共有することを意図する。最高サービス優先度のクライアントは、データ・セッションのリプリゼンテーション帯域幅必要量に従って、可能な限りの最大量の利用可能帯域幅を共有する。もし残りの帯域幅が有れば、それは、最高サービス優先度を有するデータ・セッションの間で、例えば、データ・セッションについての情報メッセージの送信時刻、及び／又は、データ・セッションの開始時刻に基づいて、不均等に共有される。もし残りの帯域幅が（再び）有れば、それは、２番目に高いサービス優先度を有するクライアントの間で、最高サービス優先度を有するクライアントについて行われたのと同じやり方で共有される。これ以降は、利用可能な帯域幅がなくなるまで、同様である。
【００９４】
第２の帯域幅分配アルゴリズムは、ここで「勝者独占」（“ｗｉｎｎｅｒ  ｔａｋｅｓ  ａｌｌ”）アルゴリズムと称されるが、最高サービス優先度を有するデータ・セッションに可能な限りの最大の帯域幅を先着順で与えることを意図する。先着とは、対応する情報セッションが最も早く送信された最高順位のデータ・セッションのことを指している。もし残りの帯域幅が有れば、それは、２番目に高いサービス優先度を有するデータ・セッションの間で共有される。これ以降は、利用可能な帯域幅がなくなるまで、同様である。
【００９５】
第３の帯域幅分配アルゴリズムは、ここで「全員処遇」（“ｅｖｅｒｙｂｏｄｙ  ｉｓ  ｓｅｒｖｅｄ”）アルゴリズムと称されるが、全てのデータ・セッションがそれらに必要な最小の帯域幅を割り当てられ、最高サービス優先度のデータ・セッションが最初に遇される（ｓｅｒｖｅｄ）ようにすることを意図する。もし残りの帯域幅が有れば、前回それぞれに必要な最小の帯域幅が割り当てられたデータ・セッションから、より高い帯域幅を有するリプリゼンテーションに切り換えられて、その残りの帯域幅が使用される。最高サービス優先度のサービスが、最初に遇される。これ以降は、利用可能な帯域幅がなくなるまで、同様である。
【００９６】
本発明の一部の実施形態において、交換される情報メッセージには、割り当て帯域幅を提供するために用いられる選択された帯域幅分配アルゴリズムを表す帯域幅アルゴリズム分配データが含まれていてもよい。
【００９７】
次の表１は、情報メッセージが、どのようにして、ＤＡＳＨクライアントによってアクセスされているＭＰＤの情報／属性から生成され得るかの一例を提供している。
表１：ＤＡＳＨクライアント情報メッセージ
｛
“ｔｙｐｅ”：  “ｏｂｊｅｃｔ”，
“ｐｒｏｐｅｒｔｉｅｓ”：  ｛
“ｉｄ”：  ｛
“ｔｙｐｅ”  ：  “ｓｔｒｉｎｇ”，
“ｄｅｓｃｒｉｐｔｉｏｎ”  ：  “Ｕｎｉｑｕｅ  ｉｄｅｎｔｉｆｉｅｒ  ｏｆ  ｔｈｅ  ｓｅｓｓｉｏｎ．  Ｃａｎ  ｂｅ  ｔｈｅ  ＩＰ  ａｄｄｒｅｓｓ  ｏｆ  ｄｅｖｉｃｅ，  ｆｏｌｌｏｗｅｄ  ｂｙ  ａ  ｕｎｉｑｕｅ  ｓｅｓｓｉｏｎ  ｉｄｅｎｔｉｆｉｅｒ  ｉｎ  ｔｈｅ  ｄｅｖｉｃｅ．”
｝
“ｒｅｐｒＢａｎｄｗｉｄｔｈｓ”：  ｛
“ｔｙｐｅ”：  “ａｒｒａｙ”，
“ｄｅｓｃｒｉｐｔｉｏｎ”：  “Ｌｉｓｔ  ｏｆ  ｎｅｅｄｅｄ  ｂａｎｄｗｉｄｔｈ  ｆｏｒ  ａｖａｉｌａｂｌｅ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ  ｆｏｒ  ｃｕｒｒｅｎｔ  ｐｌａｙ  ｔｉｍｅ．  Ｏｒｄｅｒｅｄ  ｂｙ  ｉｎｃｒｅａｓｉｎｇ  ｖａｌｕｅｓ．”，
“ｉｔｅｍｓ”：  ｛
“ｔｙｐｅ”：  “ｉｎｔｅｇｅｒ”，
“ｄｅｓｃｒｉｐｔｉｏｎ”：  “Ｔｈｅ  ＠ｂａｎｄｗｉｄｔｈ  ａｔｔｒｉｂｕｔｅ  ｏｆ  ｏｎｅ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  （ｉｎｆｏｒｍａｔｉｏｎ  ｒｅｔｒｉｅｖｅｄ  ｆｒｏｍ  ＭＰＤ）．  Ｎｏｔｅ  ｔｈａｔ  ｔｈｅ  ｃｌｉｅｎｔ  ｍａｙ  ａｌｓｏ  ａｄｄ  ｓｏｍｅ  ｅｘｔｒａ  ｂａｎｄｗｉｄｔｈ  ｍａｒｇｉｎ  ｔｏ  ｂｅｔｔｅｒ  ａｃｃｏｍｏｄａｔｅ  ｗｉｔｈ  ｆｕｔｕｒｅ  ｆｌｕｃｔｕａｔｉｏｎｓ．”
｝
｝，
“ｓｅｇｍｅｎｔＤｕｒａｔｉｏｎ”：  ｛
“ｔｙｐｅ”：  ”ｉｎｔｅｇｅｒ”，
“ｄｅｓｃｒｉｐｔｉｏｎ”：  “Ｔｈｅ  ｄｕｒａｔｉｏｎ  ｏｆ  ｃｕｒｒｅｎｔｌｙ  ｌｏａｄｉｎｇ  ｓｅｇｍｅｎｔ（ｓ），  ｉｎ  ｍｉｌｌｉｓｅｃｏｎｄｓ  （ｉｎｆｏｒｍａｔｉｏｎ  ｒｅｔｒｉｅｖｅｄ  ｆｒｏｍ  ＭＰＤ）．”
｝，
“ｐｒｅｆｅｒｒｅｄＣｌｉｅｎｔＢａｎｄｗｉｄｔｈ”：  ｛
“ｔｙｐｅ”：  “ｉｎｔｅｇｅｒ”，
“ｄｅｓｃｒｉｐｔｉｏｎ”：  “Ｔｈｅ  ＠ｂａｎｄｗｉｄｔｈ  ｆｏｒ  ｔｈｅ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｔｈｅ  ｃｌｉｅｎｔ  ｗｏｕｌｄ  ｔｒｙ  ｔｏ  ｒｅｑｕｅｓｔ  ｉｆ  ｐｌａｙｉｎｇ  ａｌｏｎｅ  （ｉｎｆｏｒｍａｔｉｏｎ  ｒｅｔｒｉｅｖｅｄ  ｆｒｏｍ  ＭＰＤ）．”，
｝，
“ｓｅｒｖｉｃｅＰｒｉｏｒｉｔｙ”：  ｛
“ｔｙｐｅ”：  “ｉｎｔｅｇｅｒ”，
“ｄｅｓｃｒｉｐｔｉｏｎ”：  “Ｔｈｉｓ  ｒｅｐｒｅｓｅｎｔｓ  ｔｈｅ  ｐｒｉｏｒｉｔｙ  ｏｆ  ａ  ｓｔｒｅａｍｉｎｇ  ｓｅｓｓｉｏｎ．  Ａｌｌｏｃａｔｉｏｎ  ｏｆ  ｂａｎｄｗｉｄｔｈ  ｉｓ  ｇｉｖｅｎ  ｆｉｒｓｔ  ｔｏ  ｈｉｇｈｅｒ  ｐｒｉｏｒｉｔｙ  ｓｅｒｖｉｃｅｓ．”，
“ｍｉｎｉｍｕｍ”：  １，
“ｍａｘｉｍｕｍ”：  ４
｝
“ｐｒｅｆｅｒｒｅｄＢａｎｄｗｉｄｔｈＤｉｓｔｒｉｂｕｔｉｏｎＳｃｈｅｍｅ”：  ｛
“ｔｙｐｅ”：  “ｉｎｔｅｇｅｒ”，
“ｄｅｓｃｒｉｐｔｉｏｎ”：  “Ｔｈｉｓ  ｒｅｐｒｅｓｅｎｔｓ  ｔｈｅ  ｐｒｅｆｅｒｒｅｄ  ｂａｎｄｗｉｄｔｈ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ａ  ＤＡＳＨ  ｃｌｉｅｎｔ．”，
｝
｝
｝
本発明の考えられる実施形態において、表１におけるｓｅｒｖｉｃｅ  Ｐｒｉｏｒｉｔｙの値は、下記の意味を有する。
１：プレミアム・サービス（例えば、ＵＨＤ配信、大型スクリーン・テレビへのＨＤ配信など）
２：ハイ・クオリティ・サービス（例えば、中型サイズのスクリーンへのＨＤ配信など）
３：ノーマル・クオリティ・サービス（例えば、モバイル機器へのＨＤ配信など）
４：ロー・クオリティ・サービス（例えば、モバイル機器上での低品質コンテンツなど）
【００９８】
表１における“ｐｒｅｆｅｒｒｅｄＢａｎｄｗｉｄｔｈＤｉｓｔｒｉｂｕｔｉｏｎＳｃｈｅｍｅ”のパラメータは、どのように帯域幅がクライアント間で共有されるかを計算するために用いられるアルゴリズムを識別する。
【００９９】
本発明の一部の実施形態において、クライアント装置は、データ・セッションのデータ・コンテンツの特定のリプリゼンテーションについて、ある程度の余分な帯域幅マージンをＭＰＤに記述された帯域幅に加えることがある。例えば、ＭＰＤが次の帯域幅、即ち、（８Ｍｂｉｔ／ｓ、６Ｍｂｉｔ／ｓ  ＆  ２Ｍｂｉｔ／ｓ）を有する３つのリプリゼンテーションを記述している場合、クライアントによって選ばれる（そして情報メッセージ内に入れられて他のクライアントに送られる）所望の帯域幅の表が（９Ｍｂｉｔ／ｓ、６．５Ｍｂｉｔ／ｓ  ＆  ２．２Ｍｂｉｔ／ｓ）であり得る。
【０１００】
次に、本発明の実施形態による帯域幅分配アルゴリズムを更に詳しく説明する。
【０１０１】
本発明の一実施形態による、ここで「最高優先度サービス間均等共有」と称される第１の帯域幅分配アルゴリズムは、最高優先度のデータ・セッション間での帯域幅の共有を実施して、利用可能な帯域幅に基づいて、最高優先度のセッションに、可能な限りの最高の品質を提供することを試みる。全てのクライアント装置のデータ・セッションを受け入れるのに十分なほどの利用可能な帯域幅がない場合、一部のデータ・セッションは、再生を行うのに十分な帯域幅を得ることを阻止される。この帯域幅分配アルゴリズムは、クライアント装置において実施される。
【０１０２】
データ・セッションは、共通の規準を用いる優先度の順に順位付けされる。クライアント装置は、リストにおいてより高い順位のあらゆるセッションに割り当てられた帯域幅を計算した後に、自身のデータ・セッションについて使用すべき帯域幅を計算できる。
【０１０３】
最高サービス優先度を有する第１のデータ・セッションについて、データ・セッションに割り当てられるべき帯域幅は、利用可能な帯域幅全体が均等に共有されるように計算される。次に、残りのデータ・セッションについて、より高いサービス優先度からより低いサービス優先度へと、（利用可能な帯域幅全体から前のセッションに割り当てられた実際の帯域幅を減算して得た）残りの帯域幅の配分がこの計算によって求められる。
【０１０４】
各々の優先度のレベルにおいて、残りの利用可能な帯域幅が十分になければ、データ・セッションは、所与の優先度の順位においてデータ・セッションの開始時間に従ってソートされる、即ち、より早いデータ・セッションが、より遅いデータ・セッションよりも前に帯域幅を割り当てられる。
【０１０５】
所与の優先度のレベルにおいて、クライアント装置は、利用可能な帯域幅の「平等な（ｅｑｕａｌ）」配分を取得しようとする。従って、各々のデータ・セッション用に、利用可能な帯域幅は、同一の優先度のレベルにおけるセッション数で除算される。各々のデータ・セッションが、データ・コンテンツの、限定された一組のリプリゼンテーションに制約されるので、クライアントは、帯域幅の計算された配分を正しく下回る帯域幅を有するリプリゼンテーションを選ぶ。
【０１０６】
尚、全てのより高い優先度のセッションが対応された後、このプロセスによってある程度の未使用の帯域幅が残された場合にのみ、より低い優先度のクライアントが帯域幅を割り当てられることがある。
【０１０７】
最高優先度データ・セッションを有する新たなクライアント装置がネットワークに参加するケースでは、この新たなクライアント装置のデータ・セッションを受け入れるのに十分な帯域幅がない場合、既存のデータ・セッションは、より少ない帯域幅を再割り当てされる可能性が高い。場合によっては、既存のデータ・セッションは、より高い優先度のデータ・セッションのために、自身の割り当てを取り消されることがある。
【０１０８】
同一の優先度のレベルのデータ・セッション間での共有は、たとえこれらのクライアントの帯域幅のニーズが等しくなくても、平等に行われる（例えば、２つのクライアント装置が最高優先度のレベルでデータ・セッションを有する場合、この２つのデータ・セッションの各々には帯域幅全体の半分が割り当てられる）ので、帯域幅の最初の割り当てが行われた後に、ある程度の帯域幅がまだ利用可能であることが起こり得る。例えば、クライアント装置は、最初に１０ＭＢ／ｓの帯域幅を割り当てられることがある。１０Ｍｂ／ｓの帯域幅内で受け入れ可能なデータ・セッションについてのそのデータ・コンテンツの最良のリプリゼンテーション、即ち、１０Ｍｂ／ｓ以下の最大帯域幅必要量が８Ｍｂ／ｓであることがある。帯域幅の残りの２Ｍｂ／ｓは、次に、別のデータ・セッションに再割り当てされることがある。その場合、全ての残りの帯域幅は、残りのデータ・セッションのうちの最高優先度のデータ・セッションの間で（同一のサービス優先度のデータ・セッションについて先着順で）分配されるが、その際、最終的に一部のクライアントが、所与の優先度の順位における帯域幅の平等な配分よりも多く取得することもあり得る。残りの帯域幅が最高優先度のセッションに再割り当てされると、任意の更なる残りの帯域幅は、より低い優先度のデータ・セッションに割り当てることができる。
【０１０９】
この方式の帯域幅の割り当ての利点は、最高優先度サービス・レベルのデータ・セッションを有するクライアント装置について、可能な限り最高の品質が全てのより高い優先度のセッションの間で共有された状態で（より低い優先度のセッションが、より高い優先度のセッションから実際に帯域幅を奪うことなく）データ・セッションが実施される可能性が高いことである。もっとも、このデータ・セッションは、割り当てられた帯域幅の配分が最良品質のリプリゼンテーションに必要な帯域幅を下回れば、その最高品質では実施されないこともある。また、より低い優先度のサービスのクライアントが、ベスト・エフォート・モード（ｂｅｓｔ  ｅｆｆｏｒｔ  ｍｏｄｅ）で帯域幅を受け取るであろう。また、より低い優先度のデータ・セッションに十分なだけの帯域幅が残される可能性が高く、もし残されているならば、そのデータ・セッションは、その帯域幅によって、データ・コンテンツのより低い品質のリプリゼンテーションを実施できるであろう。
【０１１０】
表２には、クライアント装置において行われる帯域幅割り当ての第１の方式についてのロジックの一例が示されている。
表２：帯域幅割り当て方式１についての受け手側のロジック
／／  ＤＡＳＨ  ｃｌｉｅｎｔ
ｏｎ＿ｒｅｃｅｐｔｉｏｎ（ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ）
｛
ｉｆ  ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ．ｉｄ  ｎｏｔ  ｉｎ  ａｌｌ＿ｓｅｓｓｉｏｎｓ
ｔｈｅｎ
／／  Ｔｈｅ  ｎｅｗｃｏｍｅｒ  ｎｅｅｄｓ  ｔｏ  ｋｎｏｗ  ｏｕｒ  ｉｎｆｏｒｍａｔｉｏｎ
ｓｅｎｄ＿ｐａｒａｍ（ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］）
／／  Ｔｈｉｓ  ｓｅｓｓｉｏｎ  ｉｓ  ｎｅｗ，  ｎｏｔｅ  ｉｔｓ  ｓｔａｒｔｉｎｇ  ｔｉｍｅ
ｓｅｓｓｉｏｎ＿ｓｔａｒｔ＿ｔｉｍｅｓ［ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ．ｉｄ］  ＝  ｎｏｗ（）
ｅｎｄ  ｉｆ
／／  ｓｔｏｒｅ  ｓｅｓｓｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ  ｆｏｒ  ｆｕｔｕｒｅ  ｕｓｅ
ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ．ｉｄ］  ＝  ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ
｝
／／  Ｕｓｅ  ｏｆ  ｓｅｓｓｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ  ｉｎ  ａｄａｐｔａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ，  ｆｏｒ  ａｌｌ  ｃｏｌｌａｂｏｒａｔｉｖｅ
／／  ｃｌｉｅｎｔｓ
ｓｅｌｅｃｔ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  （）
｛
／／  ｓｔｅｐ  １：  ｒｕｎ  ａｌｇｏｒｉｔｈｍ  ａｓ  ｉｆ  ｃｌｉｅｎｔ  ｗａｓ  ａｌｏｎｅ
ｃｈｏｓｅｎ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ＝  ｃｏｍｐｕｔｅ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ＿ｗｉｔｈ＿ｎｏｒｍａｌ＿ａｌｇｏｒｉｔｈｍ（）
ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］．ｐｒｅｆｅｒｒｅｄＣｌｉｅｎｔＢａｎｄｗｉｄｔｈ  ＝  ｃｈｏｓｅｎ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ．ｇｅｔ＿ｂａｎｄｗｉｄｔｈ（）
ｉｆ  ｓｏｍｅｔｈｉｎｇ＿ｃｈａｎｇｅｄ＿ｉｎ＿ｍｙ＿ｓｅｓｓｉｏｎ（）
ｔｈｅｎ
ｓｅｎｄ＿ｐａｒａｍ（ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］）
ｅｎｄ  ｉｆ
／／  ｓｔｅｐ  ２：  ｒｕｎ  ｃｏｏｐｅｒａｔｉｖｅ  ｐａｒｔ
ｒｅｍａｉｎｉｎｇ＿ｂｗ  ＝  ｌｉｎｋＣａｐａｃｉｔｙ
ｆｏｒ  ｐ  ｉｎ  ４．．１  ／／  ｓｃａｎ  ｐｒｉｏｒｉｔｉｅｓ  ｉｎ  ｄｅｃｒｅａｓｉｎｇ  ｏｒｄｅｒ
ｄｏ
ｓｅｓｓｉｏｎ＿ｌｉｓｔ  ＝  ｇｅｔ＿ｓｅｓｓｉｏｎｓ＿ｗｉｔｈ＿ｐｒｉｏｒｉｔｙ（ｐ）
ｓｅｓｓｉｏｎ＿ｌｉｓｔ．ｒｅｖｅｒｓｅ＿ｓｏｒｔ＿ａｃｃｏｒｄｉｎｇ＿ｔｏ＿ｓｔａｒｔ＿ｔｉｍｅｓ（）
ｃｏｕｎｔ  ＝  ｓｅｓｓｉｏｎ＿ｌｉｓｔ．ｌｅｎｇｔｈ
ｆｏｒ  ｓｅｓｓｉｏｎ  ｉｎ  ｓｅｓｓｉｏｎ＿ｌｉｓｔ
ｄｏ
ａｌｌｏｃａｔｅｄ  ＝  ｓｅｓｓｉｏｎ．ｐｒｅｆｅｒｒｅｄＣｌｉｅｎｔＢａｎｄｗｉｄｔｈ
ｉ  ＝  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ．ｉｎｄｅｘ＿ｏｆ（ａｌｌｏｃａｔｅｄ）
／／  ｌｏｏｋ  ｆｏｒ  ａ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｔｈａｔ  ｆｉｔｓ  ａｎ  ｅｖｅｎｌｙ  ｄｉｓｔｒｉｂｕｔｅｄ  ｓｈａｒｅ．
ｗｈｉｌｅ  ａｌｌｏｃａｔｅｄ  ＞  ｒｅｍａｉｎｉｎｇ＿ｂｗ  ／  ｃｏｕｎｔ  ａｎｄ  ｉ  ＞  ０
ｄｏ
ｉ  −＝  １
ａｌｌｏｃａｔｅｄ  ＝  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ［ｉ］
ｅｎｄ  ｗｈｉｌｅ
ｉｆ  ａｌｌｏｃａｔｅｄ  ＞  ｒｅｍａｉｎｉｎｇ＿ｂｗ
ｔｈｅｎ
／／  ｎｏ  ｓｕｉｔａｂｌｅ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｆｏｒ  ａｖａｉｌａｂｌｅ  ｂａｎｄｗｉｄｔｈ  ｓｈａｒｅ
ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＝  −１
ｅｌｓｅ
ｒｅｍａｉｎｉｎｇ＿ｂｗ  −＝  ａｌｌｏｃａｔｅｄ
ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＝  ｉ
ｅｎｄ  ｉｆ
ｃｏｕｎｔ  −＝  １
ｅｎｄ  ｆｏｒ
／／  Ｎｏｗ  ａｌｌ  ｓｅｓｓｉｏｎｓ  ｏｆ  ｓａｍｅ  ｐｒｉｏｒｉｔｙ  ｐ  ｈａｖｅ  ｔｒｉｅｄ  ｔｏ  ｅｖｅｎｌｙ  ｓｈａｒｅ  ｔｈｅ
／／  ｂａｎｄｗｉｄｔｈ．  Ｔｈｅ  ｒｅｍａｉｎｉｎｇ  ｂａｎｄｗｉｄｔｈ  ｗｉｌｌ  ｎｏｗ  ｂｅ  ｓｈａｒｅｄ  ａｍｏｎｇ
／／  ｃｌｉｅｎｔｓ  ｗｉｔｈ  ｐｒｉｏｒｉｔｙ  ｐ  ｏｎ  ａ  ｆｉｒｓｔ  ｃｏｍｅ  ｆｉｒｓｔ  ｓｅｒｖｅ  ｂａｓｉｓ．
ｓｅｓｓｉｏｎ＿ｌｉｓｔ．ｓｏｒｔ＿ａｃｃｏｒｄｉｎｇ＿ｔｏ＿ｓｔａｒｔ＿ｔｉｍｅｓ（）  ／／  ｆａｖｏｒ  ｏｌｄｅｓｔ  ｓｅｓｓｉｏｎｓ
ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ＝  Ｔｒｕｅ
ｗｈｉｌｅ  ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ａｎｄ  ｒｅｍａｉｎｉｎｇ＿ｂｗ  ＞  ０
ｄｏ
ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ＝  Ｆａｌｓｅ
ｆｏｒ  ｓｅｓｓｉｏｎ  ｉｎ  ｓｅｓｓｉｏｎ＿ｌｉｓｔ
ｄｏ
ｉｆ  ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＜  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ．ｌｅｎｇｔｈ  ‐  １
／／  ｎｏｔ  ａｌｒｅａｄｙ  ｍａｘ
ｔｈｅｎ
ｎｅｘｔ＿ｂｉｔｒａｔｅ  ＝  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ［ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＋  １］
ｉｆ  ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＝＝  −１
ｔｈｅｎ
ｃｕｒｒｅｎｔ＿ｂｉｔｒａｔｅ  ＝  ０
ｅｌｓｅ
ｃｕｒｒｅｎｔ＿ｂｉｔｒａｔｅ  ＝ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ［ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ］
ｅｎｄ  ｉｆ
ｉｆ  （ｎｅｘｔ＿ｂｉｔｒａｔｅ  −  ｃｕｒｒｅｎｔ＿ｂｉｔｒａｔｅ）  ＜  ｒｅｍａｉｎｉｎｇ＿ｂｗ
ｔｈｅｎ  ／／  ｔｈｉｓ  ｓｅｓｓｉｏｎ  ｃａｎ  ｇｅｔ  ａ  ｂｉｔ  ｍｏｒｅ  ｂａｎｄｗｉｄｔｈ
ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＋＝  １
ｒｅｍａｉｎｉｎｇ＿ｂｗ  −＝  ｎｅｘｔ＿ｂｉｔｒａｔｅ  −  ｃｕｒｒｅｎｔ＿ｂｉｔｒａｔｅ
ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ＝  Ｔｒｕｅ
ｅｎｄ  ｉｆ
ｅｎｄ  ｉｆ
ｅｎｄ  ｆｏｒ
ｅｎｄ  ｗｈｉｌｅ
ｅｎｄ  ｆｏｒ
ｒｅｔｕｒｎ
ｇｅｔ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ＿ｆｏｒ＿ｌｅｖｅｌ（ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ）
｝
【０１１１】
本発明の一実施形態による、ここで「勝者独占」と称される第２の帯域幅分配アルゴリズムは、より高い優先度のセッションに可能な限りの最高の品質を先着順で提供することを意図する。ネットワーク内における可能な限りの他のクライアント装置に自身の存在を知らせる最初の自身の情報メッセージを送出した最初のクライアント装置が、自身が開始したいデータ・セッションについての最大の所要の帯域幅を受け取る。この最大の所要の帯域幅は、データ・セッションの同一のデータ・コンテンツの他のリプリゼンテーションと比較して最良の品質のリプリゼンテーションに必要な帯域幅に対応しており、これは利用可能な帯域幅の提示量以下である。
【０１１２】
全てのより高い優先度のセッションについての割り当てが行われた後、この帯域幅分配プロセスによってある程度の未使用の帯域幅が残された場合にのみ、より低い優先度のデータ・セッションを有するクライアント装置が帯域幅を受け取ることができる。同様に、最高優先度のデータ・セッションを有するクライアント装置が既に大部分の帯域幅を割り当てられた後に、同じ最高優先度のサービスのクライアントが情報メッセージを送出したとしても、この遅れて来たクライアントが自身のデータ・セッションについての最大の帯域幅の必要量を受け取る可能性は低い（最初に来たクライアントから帯域幅が差し引かれることはない）。
【０１１３】
この方式の利点は、クライアント装置の最高優先度のデータ・セッションが、常に、先着順で、できる限りの最大の品質を受け取ることである。十分な帯域幅が自身に又はより低い優先度サービスのクライアントに残されていない時に帯域幅割り当てを行う最高優先度のデータ・セッションを有するクライアント装置は、ベスト・エフォート・モード（ｂｅｓｔ  ｅｆｆｏｒｔ  ｍｏｄｅ）に従って帯域幅を割り当てられる。
【０１１４】
表３には、クライアント装置において行われる帯域幅割り当ての第２の方式についてのロジックの一例が示されている。
表３：帯域幅割り当て方式２についての受け手側のロジック
／／  ＤＡＳＨ  ｃｌｉｅｎｔ
ｏｎ＿ｒｅｃｅｐｔｉｏｎ（ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ）
｛
ｉｆ  ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ．ｉｄ  ｎｏｔ  ｉｎ  ａｌｌ＿ｓｅｓｓｉｏｎｓ
ｔｈｅｎ
／／  Ｔｈｅ  ｎｅｗｃｏｍｅｒ  ｎｅｅｄｓ  ｔｏ  ｋｎｏｗ  ｏｕｒ  ｉｎｆｏｒｍａｔｉｏｎ
ｓｅｎｄ＿ｐａｒａｍ（ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］）
／／  Ｔｈｉｓ  ｓｅｓｓｉｏｎ  ｉｓ  ｎｅｗ，  ｎｏｔｅ  ｉｔｓ  ｓｔａｒｔｉｎｇ  ｔｉｍｅ
ｓｅｓｓｉｏｎ＿ｓｔａｒｔ＿ｔｉｍｅｓ［ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ．ｉｄ］  ＝  ｎｏｗ（）
ｅｎｄ  ｉｆ
／／  ｓｔｏｒｅ  ｓｅｓｓｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ  ｆｏｒ  ｆｕｔｕｒｅ  ｕｓｅ
ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ．ｉｄ］  ＝  ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ
｝
／／  Ｕｓｅ  ｏｆ  ｓｅｓｓｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ  ｉｎ  ａｄａｐｔａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ，
／／  ｆｏｒ  ａｌｌ  ｃｏｌｌａｂｏｒａｔｉｖｅ  ｃｌｉｅｎｔｓ
ｓｅｌｅｃｔ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  （）
｛
／／  ｓｔｅｐ  １：  ｒｕｎ  ａｌｇｏｒｉｔｈｍ  ａｓ  ｉｆ  ｃｌｉｅｎｔ  ｗａｓ  ａｌｏｎｅ
ｃｈｏｓｅｎ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ＝  ｃｏｍｐｕｔｅ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ＿ｗｉｔｈ＿ｎｏｒｍａｌ＿ａｌｇｏｒｉｔｈｍ（）
ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］．ｐｒｅｆｅｒｒｅｄＣｌｉｅｎｔＢａｎｄｗｉｄｔｈ  ＝
ｃｈｏｓｅｎ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ．ｇｅｔ＿ｂａｎｄｗｉｄｔｈ（）
ｉｆ  ｓｏｍｅｔｈｉｎｇ＿ｃｈａｎｇｅｄ＿ｉｎ＿ｍｙ＿ｓｅｓｓｉｏｎ（）
ｔｈｅｎ
ｓｅｎｄ＿ｐａｒａｍ（ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］）
ｅｎｄ  ｉｆ
／／  ｓｔｅｐ  ２：  ｐｒｏｖｉｄｅ  ｍａｘｉｍｕｍ  ｂａｎｄｗｉｄｔｈ  ｔｏ  ａ  ｍａｘｉｍｕｍ  ｎｕｍｂｅｒ  ｏｆ  ｃｌｉｅｎｔｓ，  ｓｔａｒｔｉｎｇ  ｗｉｔｈ  ｈｉｇｈｅｒ  ｐｒｉｏｒｉｔｙ  ｏｎｅｓ．
ｒｅｍａｉｎｉｎｇ＿ｂｗ  ＝  ｌｉｎｋＣａｐａｃｉｔｙ  
ｆｏｒ  ｐ  ｉｎ  ４．．１  ／／  ｌｏｏｐ  ｏｎ  ｓｅｒｖｉｃｅ  ｐｒｉｏｒｉｔｉｅｓ  ｉｎ  ｄｅｃｒｅａｓｉｎｇ  ｏｒｄｅｒ
ｄｏ
ｓｅｓｓｉｏｎ＿ｌｉｓｔ  ＝  ｇｅｔ＿ｓｅｓｓｉｏｎｓ＿ｗｉｔｈ＿ｐｒｉｏｒｉｔｙ（ｐ）
ｓｅｓｓｉｏｎ＿ｌｉｓｔ．ｓｏｒｔ＿ａｃｃｏｒｄｉｎｇ＿ｔｏ＿ｓｔａｒｔ＿ｔｉｍｅｓ（）
ｆｏｒ  ｓｅｓｓｉｏｎ  ｉｎ  ｓｅｓｓｉｏｎ＿ｌｉｓｔ
ｄｏ
ｉｆ  ｒｅｍａｉｎｉｎｇ＿ｂｗ  ＞  ｓｅｓｓｉｏｎ．ｐｒｅｆｅｒｒｅｄＣｌｉｅｎｔＢａｎｄｗｉｄｔｈ
ｔｈｅｎ    ／／  ｉｓ  ｔｈｅｒｅ  ｅｎｏｕｇｈ  ｂａｎｄｗｉｄｔｈ  ｆｏｒ  ｍａｘｉｍｕｍ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ
ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＝
ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ．ｉｎｄｅｘ＿ｏｆ（ｓｅｓｓｉｏｎ．ｐｒｅｆｅｒｒｅｄＣｌｉｅｎｔＢａｎｄｗｉｄｔｈ）
／／  ｃｈｏｓｅｎ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｉｓ  ｐｒｅｆｅｒｒｅｄ  ｏｎｅ  
ｒｅｍａｉｎｉｎｇ＿ｂｗ  −＝  ｓｅｓｓｉｏｎ．ｐｒｅｆｅｒｒｅｄＣｌｉｅｎｔＢａｎｄｗｉｄｔｈ
ｅｌｓｅ
ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＝  −１  ／／  ｎｏｔ  ｅｎｏｕｇｈ  ｂａｎｄｗｉｄｔｈ  ｆｏｒ  ｐｒｅｆｅｒｒｅｄ  ｒｅｐ．
ｅｎｄ  ｉｆ
ｅｎｄ  ｆｏｒ
ｅｎｄ  ｆｏｒ
／／  ａｔ  ｔｈｉｓ  ｐｏｉｎｔ，  ｐｒｏｖｉｄｅｄ  ｔｈｅｒｅ  ｉｓ  ｅｎｏｕｇｈ  ｂａｎｄｗｉｄｔｈ，  ａｌｌ  ｓｅｓｓｉｏｎｓ  ｈａｖｅ  ｂｅｅｎ
／／  ａｌｌｏｃａｔｅｄ  ｔｈｅｉｒ  ｐｒｅｆｅｒｒｅｄ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ，  ｓｔａｒｔｉｎｇ  ｗｉｔｈ  ｈｉｇｈｅｒ  ｐｒｉｏｒｉｔｙ
／／  ｓｅｒｖｉｃｅ  ｓｅｓｓｉｏｎｓ  ａｎｄ  ｓｔａｒｔｉｎｇ  ｗｉｔｈ  ｅａｒｌｉｅｓｔ  ｓｅｓｓｉｏｎｓ  ｗｉｔｈｉｎ  ｅａｃｈ  ｐｒｉｏｒｉｔｙ
／／  ｓｅｓｓｉｏｎ．  Ｉｆ  ｔｏｔａｌ  ｂａｎｄｗｉｄｔｈ  ｉｓ  ｎｏｔ  ｅｎｏｕｇｈ，  ｈｉｇｈｅｓｔ  ｐｒｉｏｒｉｔｙ  ｓｅｓｓｉｏｎｓ  （ａｎｄ
／／  ｅａｒｌｉｅｓｔ  ｏｎｅｓ  ｗｉｔｈｉｎ  ｔｈｅ  ｓａｍｅ  ｓｅｒｖｉｃｅ  ｐｒｉｏｒｉｔｙ）  ａｒｅ  ｓｅｒｖｅｄ  ｆｉｒｓｔ．
／／  ｓｔｅｐ  ３：  ｄｉｓｔｒｉｂｕｔｅ  ｒｅｍａｉｎｉｎｇ  ｂａｎｄｗｉｔｈ  （ｕｎｔｉｌ  ｉｔ  ｉｓ  ｅｘｈａｕｓｔｅｄ）  ｂｅｔｗｅｅｎ  ａｌｌ  ｃｌｉｅｎｔｓ，  ｓｔａｒｔｉｎｇ  ｗｉｔｈ  ｈｉｇｈｅｒ  ｐｒｉｏｒｉｔｙ  ｏｎｅｓ
ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ＝  Ｔｒｕｅ
ｗｈｉｌｅ  ｒｅｍａｉｎｉｎｇ＿ｂｗ  ＞  ０  ａｎｄ  ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ｄｏ
ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ＝  Ｆａｌｓｅ
ｆｏｒ  ｐ  ｉｎ  ４．．１  ／／  ｌｏｏｐ  ｏｎ  ｓｅｒｖｉｃｅ  ｐｒｉｏｒｉｔｉｅｓ  ｉｎ  ｄｅｃｒｅａｓｉｎｇ  ｏｒｄｅｒ
ｄｏ
ｓｅｓｓｉｏｎ＿ｌｉｓｔ  ＝  ｇｅｔ＿ｓｅｓｓｉｏｎｓ＿ｗｉｔｈ＿ｐｒｉｏｒｉｔｙ（ｐ）
ｓｅｓｓｉｏｎ＿ｌｉｓｔ．ｓｏｒｔ＿ａｃｃｏｒｄｉｎｇ＿ｔｏ＿ｓｔａｒｔ＿ｔｉｍｅｓ（）
ｆｏｒ  ｓｅｓｓｉｏｎ  ｉｎ  ｓｅｓｓｉｏｎ＿ｌｉｓｔ
ｄｏ
ｉ  ＝  ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ
ｉｆ  ｉ  ＜  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ．ｌｅｎｇｔｈ  ‐  １  ／／  ｎｏｔ  ａｌｒｅａｄｙ  ｍａｘ
ｂｗ＿ｕｐｇｒａｄｅ  ＝  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ［ｉ＋１］−  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ［ｉ］  
ｉｆ  ｒｅｍａｉｎｉｎｇ＿ｂｗ  ＞  ｂｗ＿ｕｐｇｒａｄｅ  ｔｈｅｎ  ／／  ｉｓ  ｔｈｅｒｅ  ｅｎｏｕｇｈ  ｂａｎｄｗｉｄｔｈ  ｔｏ
／／  ｕｐｇｒａｄｅ  ｔｏ  ｎｅｘｔ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ
Ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ＝  Ｔｒｕｅ      
ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＋＝  １
ｒｅｍａｉｎｉｎｇ＿ｂｗ  −＝  ｂｗ＿ｕｐｇｒａｄｅ
ｅｎｄ  ｉｆ
ｅｎｄ  ｉｆ
ｅｎｄ  ｆｏｒ
ｅｎｄ  ｆｏｒ
ｅｎｄ  ｗｈｉｌｅ
ｒｅｔｕｒｎ
ｇｅｔ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ＿ｆｏｒ＿ｌｅｖｅｌ（ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ）
｝
【０１１５】
本発明の一実施形態による、ここで「全員処遇」（“ｅｖｅｒｙｂｏｄｙ  ｉｓ  ｓｅｒｖｅｄ”）と称される第３の帯域幅分配アルゴリズムは、十分な帯域幅が有れば、クライアント装置の全てのデータ・セッションに、データ・セッションについてのそれらの最小の所要の帯域幅のリプリゼンテーションを実施するのに十分な帯域幅を与えることによって、即ち、他のリプリゼンテーションと比べて最小の帯域幅を必要とするリプリゼンテーションに対応する帯域幅を与えることによって、クライアント装置の全てのデータ・セッションに帯域幅を提供することを試みる。クライアント装置の全てのデータ・セッションを遇するのに十分な利用可能な帯域幅が無ければ、サービス優先度に従って、次に、同一の優先度のレベルを有するクライアント間では先着順で、データ・セッションに優先順位を付けることによって決定を下す。
【０１１６】
次に、あらゆる残りの帯域幅が、クライアント装置のデータ・セッション間で、サービス優先度に基づいて、そして先着順に（それぞれの情報メッセージの送信の時間に基づいて）分配され、それによって、最高優先度のデータ・セッションが、データ・コンテンツの最小の帯域幅のリプリゼンテーションよりも良い品質のリプリゼンテーションを有することができる。
【０１１７】
この方式の利点は、もし全てのクライアントについて十分な帯域幅が有れば、全てのクライアントがそれらのデータ・コンテンツの１つのリプリゼンテーションを実施できることである。また、もし十分な帯域幅が利用可能であれば、最高優先度サービスのクライアントがそれらの最小の帯域幅のリプリゼンテーションよりも良い品質を提供するリプリゼンテーションを実施する機会を得る可能性が高い。
【０１１８】
表４には、クライアント装置において行われる帯域幅割り当ての第３の方式についてのロジックの一例が示されている。
表４：帯域幅割り当て方式３についての受け手側のロジック
／／  ＤＡＳＨ  ｃｌｉｅｎｔ
ｏｎ＿ｒｅｃｅｐｔｉｏｎ（ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ）
｛
ｉｆ  ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ．ｉｄ  ｎｏｔ  ｉｎ  ａｌｌ＿ｓｅｓｓｉｏｎｓ
ｔｈｅｎ
／／  Ｔｈｅ  ｎｅｗｃｏｍｅｒ  ｎｅｅｄｓ  ｔｏ  ｋｎｏｗ  ｏｕｒ  ｉｎｆｏｒｍａｔｉｏｎ
ｓｅｎｄ＿ｐａｒａｍ（ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］）
／／  Ｔｈｉｓ  ｓｅｓｓｉｏｎ  ｉｓ  ｎｅｗ，  ｎｏｔｅ  ｉｔｓ  ｓｔａｒｔｉｎｇ  ｔｉｍｅ
ｓｅｓｓｉｏｎ＿ｓｔａｒｔ＿ｔｉｍｅｓ［ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ．ｉｄ］  ＝  ｎｏｗ（）
ｅｎｄ  ｉｆ
／／  ｓｔｏｒｅ  ｓｅｓｓｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ  ｆｏｒ  ｆｕｔｕｒｅ  ｕｓｅ
ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ．ｉｄ］  ＝  ｓｅｓｓｉｏｎＤｅｓｃｒｉｐｔｉｏｎ
｝
／／  Ｕｓｅ  ｏｆ  ｓｅｓｓｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ  ｉｎ  ａｄａｐｔａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ，
／／  ｆｏｒ  ａｌｌ  ｃｏｌｌａｂｏｒａｔｉｖｅ  ｃｌｉｅｎｔｓ
ｓｅｌｅｃｔ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  （）
｛
／／  ｓｔｅｐ  １：  ｒｕｎ  ａｌｇｏｒｉｔｈｍ  ａｓ  ｉｆ  ｃｌｉｅｎｔ  ｗａｓ  ａｌｏｎｅ
ｃｈｏｓｅｎ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ＝  ｃｏｍｐｕｔｅ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ＿ｗｉｔｈ＿ｎｏｒｍａｌ＿ａｌｇｏｒｉｔｈｍ（）
ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］．ｐｒｅｆｅｒｒｅｄＣｌｉｅｎｔＢａｎｄｗｉｄｔｈ  ＝
ｃｈｏｓｅｎ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ．ｇｅｔ＿ｂａｎｄｗｉｄｔｈ（）
ｉｆ  ｓｏｍｅｔｈｉｎｇ＿ｃｈａｎｇｅｄ＿ｉｎ＿ｍｙ＿ｓｅｓｓｉｏｎ（）
ｔｈｅｎ
ｓｅｎｄ＿ｐａｒａｍ（ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］）
ｅｎｄ  ｉｆ
／／  ｓｔｅｐ  ２：  ｐｒｏｖｉｄｅ  ｍｉｎｉｍｕｍ  ｂａｎｄｗｉｄｔｈ  ｔｏ  ａ  ｍａｘｉｍｕｍ  ｎｕｍｂｅｒ  ｏｆ  ｃｌｉｅｎｔｓ，  ｓｔａｒｔｉｎｇ
／／  ｗｉｔｈ  ｈｉｇｈｅｒ  ｐｒｉｏｒｉｔｙ  ｏｎｅｓ．
ｒｅｍａｉｎｉｎｇ＿ｂｗ  ＝  ｌｉｎｋＣａｐａｃｉｔｙ  
ｆｏｒ  ｐ  ｉｎ  ４．．１  ／／  ｌｏｏｐ  ｏｎ  ｓｅｒｖｉｃｅ  ｐｒｉｏｒｉｔｉｅｓ  ｉｎ  ｄｅｃｒｅａｓｉｎｇ  ｏｒｄｅｒ
ｄｏ
ｓｅｓｓｉｏｎ＿ｌｉｓｔ  ＝  ｇｅｔ＿ｓｅｓｓｉｏｎｓ＿ｗｉｔｈ＿ｐｒｉｏｒｉｔｙ（ｐ）
ｓｅｓｓｉｏｎ＿ｌｉｓｔ．ｓｏｒｔ＿ａｃｃｏｒｄｉｎｇ＿ｔｏ＿ｓｔａｒｔ＿ｔｉｍｅｓ（）
ｆｏｒ  ｓｅｓｓｉｏｎ  ｉｎ  ｓｅｓｓｉｏｎ＿ｌｉｓｔ
ｄｏ
ｉｆ  ｒｅｍａｉｎｉｎｇ＿ｂｗ  ＞  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ［０］  ｔｈｅｎ
ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＝  ０    ／／  ｃｈｏｓｅｎ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｉｓ  ｆｉｒｓｔ  ｏｎｅ
／／  （ｍｉｎｉｍｕｍ  ｂａｎｄｗｉｄｔｈ）
ｒｅｍａｉｎｉｎｇ＿ｂｗ  −＝  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ［０］
ｅｌｓｅ
ｓｅｓｓｉｏｎ．  ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＝  −１  ／／  ｎｏ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ
ｅｎｄ  ｉｆ
ｅｎｄ  ｆｏｒ
ｅｎｄ  ｆｏｒ
／／  ａｔ  ｔｈｉｓ  ｐｏｉｎｔ，  ｐｒｏｖｉｄｅｄ  ｔｈｅｒｅ  ｉｓ  ｅｎｏｕｇｈ  ｂａｎｄｗｉｄｔｈ，  ａｌｌ  ｓｅｓｓｉｏｎ  ｈａｖｅ  ｂｅｅｎ
／／ａｌｌｏｃａｔｅｄ  ｔｈｅｉｒ  ｍｉｎｉｍｕｍ  ｂａｎｄｗｉｄｔｈ，  ｓｔａｒｔｉｎｇ  ｗｉｔｈ  ｈｉｇｈｅｒ  ｐｒｉｏｒｉｔｙ  ｓｅｒｖｉｃｅ
／／  ｓｅｓｓｉｏｎｓ  ａｎｄ  ｓｔａｒｔｉｎｇ  ｗｉｔｈ  ｅａｒｌｉｅｓｔ  ｓｅｓｓｉｏｎｓ  ｗｉｔｈｉｎ  ｅａｃｈ  ｐｒｉｏｒｉｔｙ  ｓｅｓｓｉｏｎ．
／／  Ｉｆ  ｔｏｔａｌ  ｂａｎｄｗｉｄｔｈ  ｉｓ  ｎｏｔ  ｅｎｏｕｇｈ，  ｈｉｇｈｅｓｔ  ｐｒｉｏｒｉｔｙ  ｓｅｓｓｉｏｎｓ  （ａｎｄ  ｅａｒｌｉｅｓｔ
／／  ｏｎｅｓ  ｗｉｔｈｉｎ  ｔｈｅ  ｓａｍｅ  ｓｅｒｖｉｃｅ  ｐｒｉｏｒｉｔｙ）  ａｒｅ  ｓｅｒｖｅｄ  ｆｉｒｓｔ．
／／  ｓｔｅｐ  ３：  ｄｉｓｔｒｉｂｕｔｅ  ｒｅｍａｉｎｉｎｇ  ｂａｎｄｗｉｔｈ  （ｕｎｔｉｌ  ｉｔ  ｉｓ  ｅｘｈａｕｓｔｅｄ）  ｂｅｔｗｅｅｎ  ａｌｌ  ｃｌｉｅｎｔｓ，  ｓｔａｒｔｉｎｇ  ｗｉｔｈ  ｈｉｇｈｅｒ  ｐｒｉｏｒｉｔｙ  ｏｎｅｓ
ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ＝  Ｔｒｕｅ
ｗｈｉｌｅ  ｒｅｍａｉｎｉｎｇ＿ｂｗ  ＞  ０  ａｎｄ  ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ｄｏ
ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ＝  Ｆａｌｓｅ
ｆｏｒ  ｐ  ｉｎ  ４．．１  ／／  ｌｏｏｐ  ｏｎ  ｓｅｒｖｉｃｅ  ｐｒｉｏｒｉｔｉｅｓ  ｉｎ  ｄｅｃｒｅａｓｉｎｇ  ｏｒｄｅｒ
ｄｏ
ｓｅｓｓｉｏｎ＿ｌｉｓｔ  ＝  ｇｅｔ＿ｓｅｓｓｉｏｎｓ＿ｗｉｔｈ＿ｐｒｉｏｒｉｔｙ（ｐ）
ｓｅｓｓｉｏｎ＿ｌｉｓｔ．ｓｏｒｔ＿ａｃｃｏｒｄｉｎｇ＿ｔｏ＿ｓｔａｒｔ＿ｔｉｍｅｓ（）
ｆｏｒ  ｓｅｓｓｉｏｎ  ｉｎ  ｓｅｓｓｉｏｎ＿ｌｉｓｔ
ｄｏ
ｉ  ＝  ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ
ｉｆ  ｉ  ＜  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ．ｌｅｎｇｔｈ  ‐  １  ／／  ｎｏｔ  ａｌｒｅａｄｙ  ｍａｘ
ｂｗ＿ｕｐｇｒａｄｅ  ＝  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ［ｉ＋１］−  ｓｅｓｓｉｏｎ．ｒｅｐｒＢａｎｄｗｉｄｔｈｓ［ｉ］  
ｉｆ  ｒｅｍａｉｎｉｎｇ＿ｂｗ  ＞  ｂｗ＿ｕｐｇｒａｄｅ  ｔｈｅｎ  ／／  ｉｓ  ｔｈｅｒｅ  ｅｎｏｕｇｈ  ｂａｎｄｗｉｄｔｈ  ｔｏ
／／  ｕｐｇｒａｄｅ  ｔｏ  ｎｅｘｔ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ
Ｉｍｐｒｏｖｅｍｅｎｔ＿ｍａｄｅ  ＝  Ｔｒｕｅ      
ｓｅｓｓｉｏｎ．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ  ＋＝  １
ｒｅｍａｉｎｉｎｇ＿ｂｗ  −＝  ｂｗ＿ｕｐｇｒａｄｅ
ｅｎｄ  ｉｆ
ｅｎｄ  ｉｆ
ｅｎｄ  ｆｏｒ
ｅｎｄ  ｆｏｒ
ｅｎｄ  ｗｈｉｌｅ
ｒｅｔｕｒｎ
ｇｅｔ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ＿ｆｏｒ＿ｌｅｖｅｌ（ａｌｌ＿ｓｅｓｓｉｏｎｓ［ｍｙ＿ｓｅｓｓｉｏｎ＿ｉｄ］．ａｌｌｏｃａｔｅｄ＿ｉｎｄｅｘ）
｝
【０１１９】
全てのクライアント装置は、他のクライアント装置に自身の所望の帯域幅分配スキーム（ｐｒｅｆｅｒｒｅｄ  ｂａｎｄｗｉｄｔｈ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｓｃｈｅｍｅ）について通知する。この所望の帯域幅分配アルゴリズムを示すデータは、ネットワークＮ１のクライアント装置からその他のクライアント装置に送信される情報メッセージ内に含めることができる。
【０１２０】
場合によっては、帯域幅分配アルゴリズムの選択相互間で競合があり得る。
【０１２１】
これは、次のような種々の方法で解決できる。
・情報メッセージの大多数によって示された帯域幅分配アルゴリズムが選択される。
・全てのクライアント装置が、帯域幅分配スキームの共通の優先順位付けリストを承知しており、より高い優先度のものが勝つ。
・最初に送信された情報メッセージに示された帯域幅分配アルゴリズムが選択される。
【０１２２】
帯域幅分配の３つの相異なるモードを次の例において例示する。
【０１２３】
２つのクライアント装置Ｃ１とＣ２が、下記の選好（ｐｒｅｆｅｒｅｎｃｅ）で到来するデータ・セッションを有すると仮定すると、クライアントＣ１が、クライアントＣ２よりも前に、自身のデータ・セッションについて、対応する情報メッセージを送る。
クライアントＣ１：
リプリゼンテーションＣ１．２＝１０Ｍｂｉｔ／ｓ
リプリゼンテーションＣ１．１＝８Ｍｂｉｔ／ｓ
リプリゼンテーションＣ１．０＝４Ｍｂｉｔ／ｓ
ｓｅｒｖｉｃｅ＿ｐｒｉｏｒｉｔｙ（サービス優先度）＝Ｐｒｅｍｉｕｍ（プレミアム）
クライアントＣ２：
リプリゼンテーションＣ２．１＝６Ｍｂｉｔ／ｓ
リプリゼンテーションＣ２．０＝２Ｍｂｉｔ／ｓ
ｓｅｒｖｉｃｅ＿ｐｒｉｏｒｉｔｙ＝Ｐｒｅｍｉｕｍ
【０１２４】
ネットワークＮ１における全体の利用可能な帯域幅が１４Ｍｂｉｔ／ｓである場合に、帯域幅割り当ての３つの相異なるモードを使用すると、帯域幅の分配は下記のようになる。
【０１２５】
・モード１  −  均等共有：
全てのデータ・セッションは最高優先度を有しており、従って、１４Ｍｂｉｔ／ｓの利用可能な帯域幅は、最初に、Ｃ１およびＣ２の２つのデータ・セッション相互間で、均等に、即ち、各々７Ｍｂｉｔ／ｓずつ、配分される。
【０１２６】
クライアントＣ１について、７Ｍｂｉｔ／ｓ以下である最大帯域幅必要量は、リプリゼンテーションＣ１．０に対応する４Ｍｂｉｔ／ｓであり、従って、クライアントＣ１は、最初に、４Ｍｂｉｔ／ｓの帯域幅を割り当てられる。
【０１２７】
クライアントＣ２について、７Ｍｂｉｔ／ｓ以下である最大帯域幅必要量は、リプリゼンテーションＣ２．１に対応する６Ｍｂｉｔ／ｓであり、従って、クライアントＣ１は、最初に、自身の最良品質のリプリゼンテーションに対応する６Ｍｂｉｔ／ｓの帯域幅を割り当てられる。
【０１２８】
利用可能な帯域幅の４Ｍｂｉｔ／ｓが残る。これは、クライアントＣ１がクライアントＣ２よりも前に自身の情報メッセージを送信したので、クライアントＣ１に割り当てられる。これによって、クライアントＣ１に割り当てられた帯域幅を、より良い品質のリプリゼンテーションＣ１．１に対応する８Ｍｂｉｔ／ｓに増大できる。
【０１２９】
要約すると、利用可能な帯域幅の割り当ては、次のようになる。
クライアントＣ１⇒Ｃ１．１（８Ｍｂｉｔ／ｓ）、
クライアントＣ２⇒Ｃ２．１（６Ｍｂｉｔ／ｓ）、
残りの帯域幅＝０Ｍｂｉｔ／ｓ、及び、
より低い優先度のレベルのデータ・セッションに、又は、ネットワークに後で参加した他のクライアント装置に割り当てるべき帯域幅は残されていない。
【０１３０】
・モード２  −  勝者独占：
クライアントＣ１は、最初に情報メッセージを送信したので、自身の最良品質のリプリゼンテーションＣ１．２についての自身の最大帯域幅必要量に相当する１０Ｍｂｉｔ／ｓを割り当てられる。４Ｍｂｉｔ／ｓの帯域幅が、クライアントＣ２への割り当て用に残る。４Ｍｂｉｔ／ｓ以下の帯域幅必要量は、低い方の品質のリプリゼンテーションＣ２．０に対応する２Ｍｂｉｔ／ｓである。
【０１３１】
要約すると、利用可能な帯域幅の割り当ては、次の如くになる。
クライアントＣ１⇒Ｃ１．２、
クライアントＣ２⇒Ｃ２．０、
残りの帯域幅＝２Ｍｂｉｔ／ｓ、及び、
残された帯域幅は、他のクライアント装置のより低い優先度のレベルのデータ・セッションに、任意の帯域幅割り当て方式に従って、或いは、データ・セッション開始時間に従って、割り当てられる。
【０１３２】
・モード３  −  全員処遇：
クライアントＣ１およびＣ２のそれぞれの最低帯域幅必要量である４Ｍｂｉｔ／ｓ（Ｃ１．０）と２Ｍｂｉｔ／ｓ（Ｃ２．０）を割り当てると、８Ｍｂｉｔ／ｓの残留帯域幅が残るので、帯域幅の割り当てを増大させることによって、両データ・セッションをより良い品質のリプリゼンテーションに、即ち、クライアントＣ１についてはＣ１．１（８Ｍｉｔ／ｓ）に、及び、Ｃ２．１（６Ｍｂｉｔ／ｓ）に向上させることができる。
【０１３３】
要約すると、利用可能な帯域幅の割り当ては、次の如くになる。
クライアントＣ１⇒Ｃ１．１、
クライアントＣ２⇒Ｃ２．１、及び、
残りの帯域幅＝０Ｍｂｉｔ／ｓ。
【０１３４】
次に、第３のクライアントが、下記の選好（ｐｒｅｆｅｒｅｎｃｅ）で、データ・セッションについてネットワークに参加すると仮定する。
クライアントＣ３：
リプリゼンテーションＣ３．２＝５Ｍｂｉｔ／ｓ
リプリゼンテーションＣ３．１＝３Ｍｂｉｔ／ｓ
リプリゼンテーションＣ３．０＝２Ｍｂｉｔ／ｓ
ｓｅｒｖｉｃｅ＿ｐｒｉｏｒｉｔｙ＝Ｐｒｅｍｉｕｍ
【０１３５】
全体の帯域幅が１４Ｍｂｉｔ／ｓである場合に、帯域幅割り当ての３つの相異なるモードを使用すると、帯域幅の分配は下記の如くになる。
【０１３６】
・モード１  −  均等共有：
全てのデータ・セッションは最高優先度を有しており、従って、１４Ｍｂｉｔ／ｓの利用可能な帯域幅は、最初に、Ｃ１，Ｃ２及びＣ３の３つのデータ・セッション間で、均等に、即ち、各々４．６６Ｍｂｉｔ／ｓずつ、配分される。
【０１３７】
クライアントＣ１は、従って、４Ｍｂｉｔ／ｓ（サービスＣ１．０）を割り当てられるが、その理由は、これが４．６６Ｍｂｉｔ／ｓを下回る帯域幅を有する唯一のリプリゼンテーションだからである。
【０１３８】
クライアントＣ２は、従って、２Ｍｂｉｔ／ｓ（サービスＣ２．０）を割り当てられるが、その理由は、これが４．６６Ｍｂｉｔ／ｓを下回る帯域幅を有する唯一のリプリゼンテーションだからである。
【０１３９】
クライアントＣ３は、従って、３Ｍｂｉｔ／ｓ（サービスＣ３．１）を割り当てられるが、その理由は、これが４．６６Ｍｂｉｔ／ｓを下回る帯域幅を有する最良のリプリゼンテーションだからである。
【０１４０】
５Ｍｂｉｔ／ｓの帯域幅が残る。ネットワーク上に最初にいたクライアントＣ１が、先着順で残りの帯域幅のうちの４Ｍｂｉｔ／ｓを割り当てられるが、これは、クライアントＣ１が最初に自身のデータ・セッションについて情報メッセージを送信したからであり、これによって、クライアントＣ１は、帯域幅８Ｍｂｉｔ／ｓに向上したＣ１．１のリプリゼンテーションを有することができる。
【０１４１】
要約すると、利用可能な帯域幅の割り当ては、次のようになる。
クライアントＣ１⇒Ｃ１．１（８Ｍｂｉｔ／ｓ）、
クライアントＣ２⇒Ｃ２．０（２Ｍｂｉｔ／ｓ）、
クライアントＣ３⇒Ｃ３．１（３Ｍｂｉｔ／ｓ）、及び、
残りの帯域幅＝１Ｍｂｉｔ／ｓ。
【０１４２】
・モード２  −  勝者独占：
クライアントＣ１は、最初に情報メッセージを送信したので、自身の最良品質のリプリゼンテーションＣ１．２についての自身の最大帯域幅必要量に相当する１０Ｍｂｉｔ／ｓを割り当てられる。４Ｍｂｉｔ／ｓの帯域幅が残り、クライアント装置Ｃ２およびＣ３のデータ・セッション相互間で取り分けられる。クライアント装置Ｃ２のデータ・セッションは、Ｃ２．０のリプリゼンテーションについての２Ｍｂｉｔ／ｓの帯域幅を割り当てられ、クライアント装置Ｃ３も、Ｃ２．０のリプリゼンテーションについての２Ｍｂｉｔ／ｓの帯域幅を割り当てられる。
【０１４３】
要約すると、利用可能な帯域幅の割り当ては、次のようになる。
クライアントＣ１⇒Ｃ１．２、
クライアントＣ２⇒Ｃ２．０、
クライアントＣ３⇒Ｃ３．０、及び、
残りの帯域幅＝０Ｍｂｉｔ／ｓ。
【０１４４】
・モード３  −  全員処遇：
クライアントＣ１，Ｃ２及びＣ３のそれぞれの最低帯域幅必要量である４Ｍｂｉｔ／ｓ（Ｃ１．０）、２Ｍｂｉｔ／ｓ（Ｃ２．０）及び２Ｍｂｉｔ／ｓ（Ｃ３．０）を割り当てると、６Ｍｂｉｔ／ｓの残留帯域幅が残るので、帯域幅の割り当てを増大させることによって、クライアント装置Ｃ１およびＣ３のデータ・セッションをより良い品質のリプリゼンテーションに、即ち、クライアントＣ１についてはＣ１．１（８Ｍｉｔ／ｓ）に、及び、クライアント装置Ｃ３についてはＣ３．１（３Ｍｂｉｔ／ｓ）に向上させることができる。
【０１４５】
クライアントＣ１⇒Ｃ１．１（８Ｍｂｉｔ／ｓ）、
クライアントＣ２⇒Ｃ２．０（２Ｍｂｉｔ／ｓ）、
クライアントＣ３⇒Ｃ３．１（３Ｍｂｉｔ／ｓ）、及び、
残りの帯域幅＝１Ｍｂｉｔ／ｓ。
【０１４６】
ステップＳ３３０において帯域幅をデータ・セッションに割り当て、これによってステップＳ３４０においてデータ・セッションを実施できる。
【０１４７】
本発明の実施形態は、ネットワーク上のＤＡＳＨクライアントのようなクライアントが、そのネットワーク上の他のクライアントの来るべき又は進行中のデータ・セッションとそれらの所望のコンテンツ消費必要条件とについて知ることを可能にするメッセージ伝達メカニズムを提供する。このようにして、利用可能なネットワーク帯域幅のより公正な共有が実現され、これによって、クライアントが、同一のネットワーク帯域幅について争い合う場合よりも良いサービスから利益を得ることがある。本発明の実施形態は、あるデータ・セッションが進行中である時に差し迫った別のデータ・セッションが開始される前に適用されてもよく、それによって、例えば、新たなデータ・セッションがネットワーク内で開始される際に、或いは、ネットワーク内のある進行中のデータ・セッションが終了した際に、別の進行中のデータ・セッションに帯域幅を再割り当てすることができる。
【０１４８】
以上、具体的な実施形態を参照して本発明を説明したが、本発明は、これらの具体的な実施形態には限定されず、本発明の有効範囲内に在る修正は、当業者に明らかであろう。
【０１４９】
例えば、前述の例は、ＭＰＥＧ−ＤＡＳＨに関して説明されているが、本発明が任意のアダプティブ・ストリーミング環境又はデータ・ダウンロード環境に適用できることは理解されるであろう。
【０１５０】
前述の例示の実施形態を参照すれば、多数の更なる修正と変形が当業者の心にひとりでに浮かぶであろうし、また、これらの例示の実施形態は、単に例として記載されており、本発明の有効範囲を制限する意図はなく、本発明の有効範囲は、後述の特許請求の範囲のみによって確定される。特に、種々の実施形態から得られる種々の特徴は、適切な場合、交換してもよい。
［付記１］
ネットワーク内の利用可能な帯域幅を、前記ネットワーク内の複数の通信装置のデータ・セッションの間で分配する方法であって、通信装置において、
前記通信装置において実施される又は実施されているデータ・セッションに対する割り当て帯域幅を得るために、少なくとも１つの帯域幅パラメータを用いて帯域幅分配アルゴリズムを適用することを含み、前記少なくとも１つの帯域幅パラメータは、前記ネットワークの通信装置相互間で交換される情報メッセージから得られ、かつ、対応する情報メッセージが送信される通信装置において実施される又は実施されているデータ・セッションについての所要の帯域幅を示している、前記方法。
［付記２］
各々の情報メッセージ内の前記少なくとも１つのパラメータは、
対応するデータ・セッションの優先度のレベルを表す優先度データと、
対応するデータ・セッションのデータ・セグメントの持続時間を表すチャンク持続時間データと、
対応するデータ・セッションの少なくとも１つの動作可能な帯域幅を表す帯域幅データと、
のうちの少なくとも１つを含む、付記１に記載の方法。
［付記３］
前記情報メッセージは、前記割り当て帯域幅を提供するのに使用される選択された帯域幅分配アルゴリズムを表す帯域幅分配アルゴリズム・データを含む、付記１または２に記載の方法。
［付記４］
前記帯域幅分配アルゴリズムは、最高レベルの優先度を有するデータ・セッションの各々への割り当てのために、前記利用可能な帯域幅を均等な配分に分けることを含む、付記１から３のいずれか１項に記載の方法。
［付記５］
各々のデータ・セッションのデータ・コンテンツは、複数の対応するリプリゼンテーションを有し、前記リプリゼンテーションの１つは、割り当てられた帯域幅の前記均等な配分に従って選択され、該選択されたリプリゼンテーションは、割り当てられた帯域幅の前記均等な配分以下である最大帯域幅を必要とするリプリゼンテーションである、付記４に記載の方法。
［付記６］
前記選択されたリプリゼンテーションについて必要とされる帯域幅が、割り当てられた帯域幅の前記均等な配分よりも少ない場合に、対応する情報メッセージが最高優先度のデータ・セッションについての他の情報メッセージよりも前に送信された最高優先度のデータ・セッションに、残りの帯域幅の少なくとも一部が再割り当てされる、付記５に記載の方法。
［付記７］
前記選択されたリプリゼンテーションについて必要とされる帯域幅が、前記割り当てられた帯域幅の前記均等な配分よりも少ない場合に、残りの帯域幅の少なくとも一部が、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、より低い優先度のレベルのデータ・セッションに割り当てられる、付記５又は６に記載の方法。
［付記８］
前記帯域幅分配アルゴリズムは、データ・セッションの優先度のレベルの順序で、かつ、対応する情報メッセージが同一優先度の他のデータ・セッションについての他の情報メッセージよりも前に送信された少なくとも１つのデータ・セッションに、可能な限り最大の帯域幅を割り当てることを含み、前記可能な限り最大の帯域幅は、前記利用可能な帯域幅の範囲内で、同一コンテンツの他のリプリゼンテーションについて最大の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応している、付記１から３のいずれか１項に記載の方法。
［付記９］
前記帯域幅分配アルゴリズムは、最小の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応する帯域幅を割り当てることを含む、付記１から３のいずれか１項に記載の方法。
［付記１０］
より高いレベルのリプリゼンテーションを可能にするために、データ・セッションの優先度のレベルと、対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、任意の残りの利用可能な帯域幅をデータ・セッションに再割り当てすることを更に含む、付記９に記載の方法。
［付記１１］
所与の優先度のレベルにおいて、残りの利用可能な帯域幅が、対応するデータ・セッションについての情報メッセージの送信時刻と、データ・セッションの開始時刻との少なくとも一方に基づいて割り当てられる、付記４から１０のいずれか１項に記載の方法。
［付記１２］
前記情報メッセージは、他の通信装置への転送用の固定のマルチキャスト・アドレスに対して送受信される、付記１から１１のいずれか１項に記載の方法。
［付記１３］
前記情報メッセージは中央基地装置を介して交換される、付記１から１１のいずれか１項に記載の方法。
［付記１４］
同一の帯域幅割り当てアルゴリズムが、データ・セッションを開始する又は実施している全ての通信装置によって使用される、付記１から１３のいずれか１項に記載の方法。
［付記１５］
帯域幅割り当てアルゴリズムが、各々の帯域幅割り当てアルゴリズムに割り当てられた優先度のレベルと、各々の帯域幅アルゴリズムを選択している通信装置の数とのうちの少なくとも一方に従って決定される、直前の付記に記載の方法。
［付記１６］
通信装置であって、
同じネットワーク内の１つ又は複数の他の通信装置と情報メッセージを交換する通信インタフェースであって、各々の前記情報メッセージは、対応する情報メッセージが送信される通信装置において開始されるデータ・セッションについての所要の帯域幅を示す少なくとも１つの帯域幅パラメータを含んでいる、前記通信インタフェースと、
前記通信装置において実施される又は実施されているデータ・セッションに対する割り当て帯域幅を提供するために、前記少なくとも１つの帯域幅パラメータを用いて帯域幅分配アルゴリズムを適用するように構成された１つ又は複数のプロセッサと、
を有する、前記通信装置。
［付記１７］
前記少なくとも１つ又は複数のプロセッサが、付記２から１５のいずれか１項に記載の方法を実施するように構成されている、付記１６に記載の通信装置。
［付記１８］
プログラム可能な装置用のコンピュータ・プログラム製品であって、前記プログラム可能な装置にロードされて実行される際に付記１から１５のいずれか１項に記載の方法を実施する一連の命令を含んでいる、前記コンピュータ・プログラム製品。
［付記１９］
ネットワーク内の利用可能な帯域幅を、前記ネットワーク内の複数の通信装置のデータ・セッションの間で分配する方法であって、
前記ネットワークの通信装置によって実施される又は実施されている各々のデータ・セッションに対する割り当て帯域幅を提供する帯域幅分配アルゴリズムを適用することを含み、
前記帯域幅分配アルゴリズムは、最高レベルの優先度を有するデータ・セッションの各々への割り当てのために、前記利用可能な帯域幅を均等な配分に分けることを含む、前記方法。
［付記２０］
各々のデータ・セッションのデータ・コンテンツが、複数の対応するリプリゼンテーションを有し、前記リプリゼンテーションの１つが、割り当てられた帯域幅の前記均等な配分に従って各々のデータ・セッションについて選択され、該選択されたリプリゼンテーションが、割り当てられた帯域幅の前記配分以下である最大帯域幅を必要とするリプリゼンテーションである、付記１９に記載の方法。
［付記２１］
前記選択されたリプリゼンテーションについて必要とされる帯域幅が、割り当てられた帯域幅の前記均等な配分よりも少ない場合に、最高優先度のデータ・セッションを知らせる対応する情報メッセージが最高優先度のデータ・セッションについての他の情報メッセージよりも前に送信された最高優先度のデータ・セッションに、残りの帯域幅の少なくとも一部が再割り当てされる、付記２０に記載の方法。
［付記２２］
ネットワーク内の利用可能な帯域幅を、前記ネットワーク内の複数の通信装置のデータ・セッションの間で分配する方法であって、
前記ネットワークの通信装置によって実施される又は実施されている各々のデータ・セッションに対する割り当て帯域幅を提供する帯域幅分配アルゴリズムを適用することを含み、
前記帯域幅分配アルゴリズムは、優先度のレベルの順序で、かつ、データ・セッションを知らせる対応する情報メッセージが同一の優先度のレベルの他のデータ・セッションについての他の情報メッセージよりも前に送信された少なくとも１つのデータ・セッションに、可能な限り最大の帯域幅を割り当てることを含み、前記データ・セッションの前記可能な限り最大の帯域幅は、前記利用可能な帯域幅の範囲内で、同一コンテンツの他のリプリゼンテーションについて最大の帯域幅を必要とするデータ・セッションのコンテンツのリプリゼンテーションに対応している、前記方法。
［付記２３］
ネットワーク内の利用可能な帯域幅を、前記ネットワーク内の複数の通信装置のデータ・セッションの間で分配する方法であって、
前記ネットワークの通信装置によって実施される又は実施されている１つ又は複数のデータ・セッションに対する割り当て帯域幅を提供する帯域幅分配アルゴリズムを適用することを含み、
前記帯域幅分配アルゴリズムは、１つ又は複数のデータ・セッションに、最小の帯域幅を必要とする各々のデータ・セッションのデータ・コンテンツのリプリゼンテーションに対応する帯域幅を割り当てることを含む、前記方法。
［付記２４］
より高いレベルのリプリゼンテーションを可能にするために、データ・セッションの優先度のレベルと、データ・セッションを知らせる対応する情報メッセージの送信時刻と、データ・セッションの開始時刻とのうちの少なくとも１つに基づいて、任意の残りの利用可能な帯域幅を選択されたデータ・セッションに再割り当てすることを更に含む、付記２３に記載の方法。
【図１】
0006646264.tif 000002
【図２】
0006646264.tif 000003
【図３】
0006646264.tif 000004