(57)【要約】  データサービスのポリシングおよび優先順位付けのための方法、装置およびコンピュータプログラムプロダクトを記述する。データストリーム中の各パケットは、複数のサブストリームポリサーのうちの１つのサブストリームポリサーに向けられる。各パケットは、サブストリームポリサーに関係付けられているレートパラメータに基づいて、サブストリームポリサーによって許可される。サブストリームポリサーによって許可されたパケットは、集約ポリサーに向けられる。サブストリームポリサーによって許可された各パケットは、集約ポリサーに関係付けられているレートパラメータに基づいて、集約ポリサーによって許可される。サブストリームポリサーおよび集約ポリサーは、サブストリームポリサーおよび集約ポリサーの両方によって許可された各パケットに対して請求される。
2013507089.tif 000002
【特許請求の範囲】
【請求項１】
データサービスのポリシングおよび優先順位付けのための方法において、
前記方法は、
データストリーム中の各パケットを、複数のサブストリームポリサーのうちの１つのサブストリームポリサーに向けることと、
前記サブストリームポリサーに関係付けられているレートパラメータに基づいて、前記サブストリームポリサーによって各パケットを許可するかどうかを決定することと、
前記サブストリームポリサーによって許可されたパケットを、集約ポリサーに向けることと、
前記集約ポリサーに関係付けられているレートパラメータに基づいて、前記集約ポリサーによって、前記サブストリームポリサーによって許可された各パケットを許可するかどうかを決定することと、
前記サブストリームポリサーおよび前記集約ポリサーの両方によって許可された各パケットに対して、前記サブストリームポリサーおよび前記集約ポリサーに請求することと、
前記サブストリームポリサーまたは前記集約ポリサーのいずれかによって許可されなかった各パケットに対して、前記サブストリームポリサーおよび前記集約ポリサーに請求しないこととを含む方法。
【請求項２】
データストリーム中の各パケットを、複数のサブストリームポリサーのうちの１つのサブストリームポリサーに向けることは、前記パケットの１つ以上の属性に基づいて、前記サブストリームポリサーを選択することをさらに含む請求項１記載の方法。
【請求項３】
前記パケットの１つ以上の属性は、前記パケットに関係付けられているコンテンツデータまたは前記パケットに関係付けられているメタデータのうちの少なくとも１つを含む請求項２記載の方法。
【請求項４】
前記パケットに関係付けられているコンテンツデータは、前記パケットの、１つ以上のネットワークプロトコルヘッダに関係付けられているデータ、前記パケットの、１つ以上のアプリケーションヘッダに関係付けられているデータ、または、前記パケットのペイロードに関係付けられているデータのうちの少なくとも１つを含む請求項３記載の方法。
【請求項５】
前記パケットに関係付けられているメタデータは、パケット到着インターフェース、アップストリームルーターの識別、ＶＬＡＮの識別、または、アクセス媒体の識別のうちの少なくとも１つを含む請求項３記載の方法。
【請求項６】
前記パケットの１つ以上の属性に基づいて、前記サブストリームポリサーを選択することは、前記選択されたサブストリームポリサーに基づいて、サブストリーム識別子を前記パケットに割り当てることをさらに含む請求項２記載の方法。
【請求項７】
前記サブストリームポリサーまたは前記集約ポリサーのいずれかによって許可されなかった各パケットに対して、前記サブストリームポリサーおよび前記集約ポリサーに請求しないことは、各パケットが前記サブストリームポリサーによって許可される時に、許可される各パケットに対して前記サブストリームポリサーに請求することと、前記集約ポリサーによって許可されなかった各パケットに対して前記集約ポリサーに請求しないことと、前記集約ポリサーによって許可されなかった各パケットに対して、前記サブストリームポリサーの請求を取り消すこととを含む請求項１記載の方法。
【請求項８】
前記サブストリームポリサーおよび前記集約ポリサーの両方によって許可された各パケットに対して、前記サブストリームポリサーおよび前記集約ポリサーに請求することは、各パケットが、前記集約ポリサーによって許可されるまで、前記サブストリームポリサーによって許可された各パケットに対して、前記サブストリームポリサーの請求を延期することを含む請求項１記載の方法。
【請求項９】
前記サブストリームポリサーおよび前記集約ポリサーの両方によって許可された各パケットに対して、前記サブストリームポリサーおよび前記集約ポリサーに請求することは、各パケットが前記サブストリームポリサーによって許可される時に、許可される各パケットに対して前記サブストリームポリサーに請求することと、各パケットが前記集約ポリサーによって許可される時に、許可される各パケットに対して前記集約ポリサーに請求することとを含む請求項１記載の方法。
【請求項１０】
前記集約ポリサーによって、前記サブストリームポリサーによって許可された各パケットを許可するかどうかを決定することは、パケットを許可しないことと、前記パケットをドロップすることと、ドロップインジケータを論理ゲートに向けることとをさらに含む請求項１記載の方法。
【請求項１１】
前記論理ゲートは、前記ドロップインジケータに基づいて前記サブストリームポリサーに関係付けられている状態を更新するために、コマンドを前記サブストリームポリサーに向ける請求項１０記載の方法。
【請求項１２】
前記ドロップされたパケットに割り当てられているサブストリーム識別子に基づいて、前記サブストリームポリサーを識別することを含む請求項１１記載の方法。
【請求項１３】
前記ドロップインジケータに割り当てられているサブストリーム識別子に基づいて、前記サブストリームポリサーを識別することを含む請求項１１記載の方法。
【請求項１４】
前記集約ポリサーは、優先順位ポリサーであり、前記パケットは、前記サブストリームポリサーによって許可された後に、前記優先順位ポリサーによって優先順位を付けられる請求項１記載の方法。
【請求項１５】
前記サブストリームポリサーによって許可されたパケットに優先順位を付けることは、
前記許可されたパケットの１つ以上の属性に基づいて、前記許可されたパケットのそれぞれを分類することと、
前記分類に基づいて、前記許可されたパケットに優先順位を割り当てることとをさらに含む請求項１４記載の方法。
【請求項１６】
前記許可されたパケットのそれぞれを分類することは、前記パケットを許可する前記サブストリームポリサーによる決定に基づかない請求項１５記載の方法。
【請求項１７】
前記パケットの１つ以上の属性は、前記パケットに関係付けられているコンテンツデータまたは前記パケットに関係付けられているメタデータのうちの少なくとも１つを含む請求項１５記載の方法。
【請求項１８】
前記パケットに関係付けられているコンテンツデータは、前記パケットの、１つ以上のネットワークプロトコルヘッダに関係付けられているデータ、前記パケットの、１つ以上のアプリケーションヘッダに関係付けられているデータ、または、前記パケットのペイロードに関係付けられているデータのうちの少なくとも１つを含む請求項１７記載の方法。
【請求項１９】
前記パケットに関係付けられているメタデータは、パケット到着インターフェース、アップストリームルーターの識別、ＶＬＡＮの識別、または、アクセス媒体の識別のうちの少なくとも１つを含む請求項１７記載の方法。
【請求項２０】
前記集約ポリサーは、優先順位ポリサーであり、前記パケットは、前記サブストリームポリサーによって許可された後に、前記優先順位ポリサーによって優先順位を付けられる請求項２記載の方法。
【請求項２１】
前記サブストリームポリサーによって許可されたパケットに優先順位を付けることは、
前記許可されたパケットの１つ以上の属性に基づいて、前記許可されたパケットのそれぞれを分類することと、
前記分類に基づいて、前記許可されたパケットに優先順位を割り当てることとをさらに含む請求項２０記載の方法。
【請求項２２】
前記許可されたパケットのそれぞれを分類することは、前記パケットを許可する前記サブストリームポリサーによる決定に基づかない請求項２１記載の方法。
【請求項２３】
前記サブストリームポリサーを選択するために使用される、前記パケットの１つ以上の属性は、前記許可されたパケットを分類するために使用される、前記パケットの１つ以上の属性とは異なる請求項２１記載の方法。
【請求項２４】
各サブストリームポリサーは、他の任意のサブストリームポリサーとは無関係に動作する請求項１記載の方法。
【請求項２５】
パケットを許可するかどうかに関する、サブストリームポリサーによって成される決定は、他の任意のパケットを許可するかどうかに関する、他の任意のサブストリームポリサーによって成される決定に影響を及ぼさない請求項２４記載の方法。
【請求項２６】
前記複数のサブストリームポリサーは、トークンバケットポリサー、リーキーバケットポリサー、または、これらの任意の組み合わせを含む請求項１記載の方法。
【請求項２７】
前記集約ポリサーは、トークンバケットポリサーまたはリーキーバケットポリサーを含む請求項１記載の方法。
【請求項２８】
前記サブストリームポリサーに関係付けられているレートパラメータは、トラフィックレートまたはバーストサイズのうちの少なくとも１つを含む請求項１記載の方法。
【請求項２９】
前記集約ポリサーに関係付けられているレートパラメータは、トラフィックレートまたはバーストサイズのうちの少なくとも１つを含む請求項１記載の方法。
【請求項３０】
Ｎ個のポリシング段階による、データサービスのポリシングおよび優先順位付けのための方法において、
前記Ｎは、２より大きく、
前記方法は、
ａ）データストリーム中のパケットを、ポリシング段階Ｋ中のポリサーに向け、前記ポリシング段階Ｋは、複数のポリサーを含むことと、
ｂ）前記ポリシング段階Ｋ中のポリサーに関係付けられているレートパラメータに基づいて、前記ポリシング段階Ｋ中のポリサーによって前記パケットを許可するかどうかを決定することと、
ｃ）前記ポリシング段階Ｋ中のポリサーによって許可されたパケットを、後続のポリシング段階Ｋ＋１中のポリサーに向け、前記ポリシング段階Ｋ＋１は、前記ポリシング段階Ｋよりも少ないポリサーを含むことと、
ｄ）前記ポリシング段階Ｋ＋１中のポリサーに関係付けられているレートパラメータに基づいて、前記ポリシング段階Ｋ＋１によって、前記ポリシング段階Ｋによって許可されたパケットを許可するかどうかを決定することと、
ｅ）前記パケットが、前記Ｎ個のポリシング段階のそれぞれにおけるポリサーによって許可されている場合に、前記パケットに対してポリサーに請求することと、
ｆ）前記パケットが、前記Ｎ個のポリシング段階のいずれか１つにおけるポリサーによって許可されていなかった場合に、前記パケットに対してポリサーに請求しないこととを含む方法。
【請求項３１】
データサービスのポリシングおよび優先順位付けのためのシステムにおいて、
前記システムは、
データストリーム中のパケットを、前記パケットの１つ以上の属性に基づいて、複数のサブストリームポリサーのうちの１つのサブストリームポリサーに向けるように構成されているモジュールであって、前記サブストリームポリサーは、前記サブストリームポリサーに関係付けられているレートパラメータに基づいて、前記サブストリームポリサーによって前記パケットを許可するかどうかを決定するように構成されている、サブストリーム分類モジュールと、
前記サブストリームポリサーによって許可されたパケットを受け取るように構成されている集約ポリサーであって、前記集約ポリサーに関係付けられているレートパラメータに基づいて、前記集約ポリサーによって、前記サブストリームポリサーによって許可されたパケットを許可するかどうかを決定するように構成されている集約ポリサーと、
（ｉ）前記パケットが、前記集約ポリサーによって許可されている場合に、前記サブストリームポリサーに請求するか、または、（ｉｉ）前記パケットが、前記集約ポリサーによって許可されていない場合に、前記サブストリームポリサーの請求を取り消すために、コマンドを前記サブストリームポリサーに送るように構成されている論理ゲートとを具備するシステム。
【請求項３２】
前記サブストリームポリサーによって許可されたパケットの１つ以上の属性に基づいて、前記サブストリームポリサーによって許可されたパケットに優先順位を付けるように構成されている優先順位分類モジュールをさらに具備する請求項３１記載のシステム。
【請求項３３】
データサービスのポリシングおよび優先順位付けのためのシステムにおいて、
前記システムは、
データストリーム中の各パケットを、サブストリームポリサーに向ける手段と、
前記サブストリームポリサーに関係付けられているレートパラメータに基づいて、前記サブストリームポリサーによって各パケットを許可するかどうかを決定する手段と、
前記サブストリームポリサーによって許可されたパケットを、集約ポリサーに向ける手段と、
前記集約ポリサーに関係付けられているレートパラメータに基づいて、前記集約ポリサーによって、前記サブストリームポリサーによって許可された各パケットを許可するかどうかを決定する手段と、
前記サブストリームポリサーおよび前記集約ポリサーの両方によって許可された各パケットに対して、前記サブストリームポリサーおよび前記集約ポリサーに請求する手段と、
前記サブストリームポリサーまたは前記集約ポリサーのいずれかによって許可されなかった各パケットに対して、前記サブストリームポリサーおよび前記集約ポリサーに請求しない手段とを具備するシステム。
【請求項３４】
コンピュータ読み取り可能記憶媒体中で有形に具現される、データサービスのポリシングおよび優先順位付けのためのコンピュータプログラムプロダクトにおいて、
前記コンピュータプログラムプロダクトは、
データストリーム中の各パケットをサブストリームポリサーに向けることと、
前記サブストリームポリサーに関係付けられているレートパラメータに基づいて、前記サブストリームポリサーによって各パケットを許可するかどうかを決定することと、
前記サブストリームポリサーによって許可されたパケットを、集約ポリサーに向けることと、
前記集約ポリサーに関係付けられているレートパラメータに基づいて、前記集約ポリサーによって、前記サブストリームポリサーによって許可された各パケットを許可するかどうかを決定することと、
前記サブストリームポリサーおよび前記集約ポリサーの両方によって許可された各パケットに対して、前記サブストリームポリサーおよび前記集約ポリサーに請求することと、
前記サブストリームポリサーまたは前記集約ポリサーのいずれかによって許可されなかった各パケットに対して、前記サブストリームポリサーおよび前記集約ポリサーに請求しないことと、
をデータ処理装置に生じさせるように動作可能な命令を含むコンピュータプログラムプロダクト。
【発明の詳細な説明】
【発明の分野】
【０００１】
本出願の主題は、一般に、データサービスのポリシングおよび優先順位付けのための、方法、装置およびコンピュータプログラムプロダクトに関する。
【発明の背景】
【０００２】
通信ネットワークに関係付けられている、固定され、制限されたリソースは一般に、ネットワークの多くの加入者の間でこれらのリソースを配分する戦略を必要とする。配分戦略の実施は、１人または何人かの加入者の部分に対する活動過多が、他の加入者に対するネットワークの使いやすさに影響を及ぼさないことを保証する追加の考慮すべき事項である。通常、各加入者には、許可されるリソースの数（例えば、通話の数およびＩＭセッションの数）に対する絶対的限界と、また、要求のレートに対する限界との両方が帰される。絶対的なリソース限界への制限は通常、いくつかのカウンティングスキームによって実現され、レートの限界は、ポリシングの何らかの形態を通して実施される。ネットワークトラフィックのポリシングは一般に、特定のエンティティからの要求レートを、指定されたパラメータおよび所望のパラメータに制限することを伴い、これらのパラメータは通常、平均の要求レートおよびバーストサイズの両方を含む。加入者からのすべての要求が同じクラスおよび特性に属するとき、基本的なポリシングスキームはすべて、十分に機能する。
【０００３】
しかしながら、多くのプロトコルが、同じインフラストラクチャに対して非常に異なるサービスの確立を可能にする。例えば、ＳＩＰプロトコルは、特にフレキシブルであり、例えば、電話通話、インスタントメッセージング、プレゼンスウォッチングおよび会議の確立を可能にする。セッションは、重要度、コスト、または、さまざまな他のメトリックにおいて、同等であると考えられないことが多い。したがって、いくつかのセッションのタイプは、その同じ顧客からの他のセッションのタイプよりも高い優先順位を必要とする。
【０００４】
トラフィックポリシングを実現するための基本的な構成要素は、ポリサーの使用による。ポリサーは、（例えば、パケットの形態で）ネットワークトラフィックを受け取り、トラフィックがネットワーク中でさらに進むのを許可するかどうかを決定する。通常、ポリサーは、トラフィックの属性と、トラフィックがさらに進むのを許可するのにポリサーが実施しなければならない仕事のレベルに関係付けられているコストとに基づいて、この決定をする。結果として、ポリサーは、データ単位が進むのを許可することに関するコストを請求できるクレジット量をローカルに維持する。十分なクレジットが後続のデータ単位を許可するのに利用可能であることを保証するために、ポリサーは、そのクレジット量を補充する。
【０００５】
一般的なタイプのポリサーは、トークンバケットポリサーである。トークンバケットポリサーは、バケットのサイズが所望のバーストサイズ（Ｂc）であるバケットを含む。バケットは、所望のポリシングレート（ＲC）でトークンにより満たされている。それゆえに、ある時間間隔（Ｔc）後に、バケットは、Ｔi×ＲC個のトークンを有するであろう。いったんトークンカウントがバケットサイズに到達すると、過剰なトークンがあふれ出て、失われることから、トークンの数は決してＢcを超えることができない。例えば、トークンバケットポリサーを使用して、トラフィックストリームのポリシングは、次のように作動してもよい：パケットがポリサーに与えられるとき、バケットがトークンに対してチェックされる。トークンが存在する場合、トークンはバケットから除去され、パケットはパスする。バケットが空である場合、パケットは許可されない。
【０００６】
一般に、パケットの到着レートＲaが正確にポリシングレートＲcである場合、すべてのパケットは許可され、バケット中のトークンレベルは、おおよそ一定のままであるだろう。パケットの到着レートＲaポリシングレートＲcよりも小さい場合、バケットは、Ｂcの最大値まで満たされ、ポリシングレートＲcを超えるパケットのバーストが許可されるだろう。最後に、パケットの到着レートＲaポリシングレートＲcよりも大きい場合、ポリシングレートＲcに等しいパケットの数が許可され、バケットは、ほとんど空になるだろう。結果として、トークンバケットは、望み通りに、Ｂcの最大バーストを有するＲcの平均レートを可能にする。
【０００７】
残念ながら、従来のポリサーは、異なるタイプのサービスを伴う実際的なサービスレベル合意（ＳＬＡ）を実施するのに不十分である。
【０００８】
それゆえに、データサービスのポリシングおよび優先順位付けのための、改善された方法および装置に対する必要性が存在する。
【概要】
【０００９】
一般的な概観において、ここで記述する技術は、通信ネットワークを通して送信されるデータトラフィックをポリシングし、データトラフィックに優先順位を付けることに関連する。ここで、トラフィックは、多数の異なるサービスに関連するサブストリームを含むことができる。本技術は、マルチ段階のポリシングアプローチを提供できる。本技術は、他のいずれのサブストリームとは無関係に、サブストリームのそれぞれを分類し、監視し、ポリシングすることを可能にできる。いったん、サブストリームがポリシングされると、本技術は、集約レベルでポリシングするために、サブストリームに優先順位を付け、サブストリームを統合できる。レートまたはバーストの違反に起因して、トラフィックが、集約ポリサーによって許可されない場合、本技術は、有利にも、サブストリームレベルでトラフィックを許可することに関係付けられている、以前に招かれた請求を取り消すことができる。同様に、トラフィックが、集約ポリシングレベルによって許可される場合、本技術は、有利にも、サブストリームレベルでトラフィックを許可することに関係付けられている、以前に延期された請求を適用できる。結果として、本技術は、後続のサブストリームトラフィックが、集約レベルによって許可または否定をするための決定によって影響を及ぼされないことを保証できる。
【００１０】
１つの観点において、本発明は、データサービスのポリシングおよび優先順位付けのためのコンピュータ化された方法を特徴としている。方法は、データストリーム中の各パケットを、複数のサブストリームポリサーのうちの１つのサブストリームポリサーに向けることを含む。方法はまた、サブストリームポリサーに関係付けられているレートパラメータに基づいて、サブストリームポリサーによって各パケットを許可するかどうかを決定することを含む。方法はまた、サブストリームポリサーによって許可されたパケットを、集約ポリサーに向けることを含む。方法はまた、集約ポリサーに関係付けられているレートパラメータに基づいて、集約ポリサーによって、サブストリームポリサーによって許可された各パケットを許可するかどうかを決定することを含む。方法はまた、サブストリームポリサーおよび集約ポリサーの両方によって許可された各パケットに対して、サブストリームポリサーおよび集約ポリサーに請求することを含む。方法はまた、サブストリームポリサーまたは集約ポリサーのいずれかによって許可されなかった各パケットに対して、サブストリームポリサーおよび集約ポリサーに請求しないことを含む。
【００１１】
別の観点において、本発明は、Ｎ個のポリシング段階による、データサービスのポリシングおよび優先順位付けのためのコンピュータ化された方法を特徴としている。ここで、Ｎは、２より大きい。方法は、データストリーム中のパケットを、ポリシング段階Ｋ中のポリサーに向けることを含み、ポリシング段階Ｋは、複数のポリサーを含む。方法はまた、ポリシング段階Ｋ中のポリサーに関係付けられているレートパラメータに基づいて、ポリシング段階Ｋ中のポリサーによってパケットを許可するかどうかを決定することを含む。方法はまた、ポリシング段階Ｋ中のポリサーによって許可されたパケットを、後続のポリシング段階Ｋ＋１中のポリサーに向けることを含み、ポリシング段階Ｋ＋１は、ポリシング段階Ｋよりも少ないポリサーを含む。方法はまた、ポリシング段階Ｋ＋１中のポリサーに関係付けられているレートパラメータに基づいて、ポリシング段階Ｋ＋１を通して、ポリシング段階Ｋ中のポリサーによって許可されたパケットを許可するかどうかを決定することを含む。方法はまた、パケットが、Ｎ個のポリシング段階のそれぞれにおけるポリサーによって許可されている場合に、パケットに対してポリサーに請求することを含む。方法はまた、パケットが、Ｎ個のポリシング段階のいずれか１つにおけるポリサーによって許可されていなかった場合に、パケットに対してポリサーに請求しないことを含む。
【００１２】
別の観点において、本発明は、データサービスのポリシングおよび優先順位付けのためのシステムを特徴としている。システムは、データストリーム中の各パケットを、パケットの１つ以上の属性に基づいて、複数のサブストリームポリサーのうちの１つのサブストリームポリサーに向けるように構成されているサブストリーム分類モジュールを含み、サブストリームポリサーは、サブストリームポリサーに関係付けられているレートパラメータに基づいて、サブストリームポリサーによってパケットを許可するかどうかを決定するように構成されている。システムはまた、サブストリームポリサーによって許可されたパケットを受け取るように構成されている集約ポリサーであって、集約ポリサーに関係付けられているレートパラメータに基づいて、集約ポリサーによって、サブストリームポリサーによって許可されたパケットを許可するかどうかを決定するように構成されている集約ポリサーを含む。システムはまた、（ｉ）パケットが、集約ポリサーによって許可されている場合に、サブストリームポリサーに請求するか、または、（ｉｉ）パケットが、集約ポリサーによって許可されていない場合に、サブストリームポリサーの請求を取り消すために、コマンドをサブストリームポリサーに送るように構成されている論理ゲートを含む。
【００１３】
別の観点において、本発明は、データサービスのポリシングおよび優先順位付けのためのシステムを特徴としている。システムは、データストリーム中の各パケットを、複数のサブストリームポリサーのうちの１つのサブストリームポリサーに向ける手段を含む。システムはまた、サブストリームポリサーに関係付けられているレートパラメータに基づいて、サブストリームポリサーによって各パケットを許可するかどうかを決定する手段を含む。システムはまた、サブストリームポリサーによって許可されたパケットを、集約ポリサーに向ける手段を含む。システムはまた、集約ポリサーに関係付けられているレートパラメータに基づいて、集約ポリサーによって、サブストリームポリサーによって許可された各パケットを許可するかどうかを決定する手段を含む。システムはまた、サブストリームポリサーおよび集約ポリサーの両方によって許可された各パケットに対して、サブストリームポリサーおよび集約ポリサーに請求する手段を含む。システムはまた、サブストリームポリサーまたは集約ポリサーのいずれかによって許可されなかった各パケットに対して、サブストリームポリサーおよび集約ポリサーに請求しない手段を含む。
【００１４】
別の観点において、本発明は、コンピュータ読み取り可能記憶媒体中で有形に具現される、データサービスのポリシングおよび優先順位付けのためのコンピュータプログラムプロダクトを特徴としている。コンピュータプログラムプロダクトは、データストリーム中の各パケットを、複数のサブストリームポリサーのうちの１つのサブストリームポリサーに向けることを、データ処理装置に生じさせるように動作可能な命令を含む。コンピュータプログラムプロダクトはまた、サブストリームポリサーに関係付けられているレートパラメータに基づいて、前記サブストリームポリサーによって各パケットを許可するかどうかを決定することを、データ処理装置に生じさせるように動作可能な命令を含む。コンピュータプログラムプロダクトはまた、サブストリームポリサーによって許可されたパケットを、集約ポリサーに向けることを、データ処理装置に生じさせるように動作可能な命令を含む。コンピュータプログラムプロダクトはまた、集約ポリサーに関係付けられているレートパラメータに基づいて、集約ポリサーによって、サブストリームポリサーによって許可された各パケットを許可するかどうかを決定することを、データ処理装置に生じさせるように動作可能な命令を含む。コンピュータプログラムプロダクトはまた、サブストリームポリサーおよび集約ポリサーの両方によって許可された各パケットに対して、サブストリームポリサーおよび集約ポリサーに請求することを、データ処理装置に生じさせるように動作可能な命令を含む。コンピュータプログラムプロダクトはまた、サブストリームポリサーまたは集約ポリサーのいずれかによって許可されなかった各パケットに対して、サブストリームポリサーおよび集約ポリサーに請求しないことを、データ処理装置に生じさせるように動作可能な命令を含む。
【００１５】
いくつかの例において、上述の観点のいずれもが、以下の特徴のうちの１つ以上を含むことができる。データストリーム中の各パケットを、複数のサブストリームポリサーのうちの１つのサブストリームポリサーに向けることは、パケットの１つ以上の属性に基づいて、サブストリームポリサーを選択することを含むことができる。パケットの１つ以上の属性に基づいて、サブストリームポリサーを選択することは、選択されたサブストリームポリサーに基づいて、サブストリーム識別子を前記パケットに割り当てることを含むことができる。サブストリームポリサーまたは集約ポリサーのいずれかによって許可されなかった各パケットに対して、サブストリームポリサーおよび集約ポリサーに請求しないことは、集約ポリサーによって許可されなかった各パケットに対して、サブストリームポリサーにおいて請求を取り消すことを含むことができる。サブストリームポリサーおよび集約ポリサーの両方によって許可された各パケットに対して、サブストリームポリサーおよび集約ポリサーに請求することは、各パケットが、集約ポリサーによって許可されるまで、サブストリームポリサーにおける請求を延期することを含むことができる。
【００１６】
１つの実施形態において、集約ポリサーによって、サブストリームポリサーによって許可された各パケットを許可するかどうかを決定することは、パケットを許可しないことと、パケットをドロップすることと、ドロップインジケータを論理ゲートに向けることとを含むことができる。論理ゲートは、ドロップインジケータに基づいてサブストリームポリサーに関係付けられている状態を更新するために、コマンドをサブストリームポリサーに向けることができる。サブストリームポリサーは、ドロップされたパケットに割り当てられているサブストリーム識別子に基づいて識別され得る。サブストリームポリサーは、ドロップインジケータに割り当てられているサブストリーム識別子に基づいて識別され得る。
【００１７】
いくつかの実施形態において、集約ポリサーは、優先順位ポリサーであり、パケットは、サブストリームポリサーによって許可された後に、優先順位ポリサーによって優先順位を付けられる。サブストリームポリサーによって許可されたパケットに優先順位を付けることは、許可されたパケットの１つ以上の属性に基づいて、許可されたパケットのそれぞれを分類することと、分類に基づいて、許可されたパケットに優先順位を割り当てることとを含むことができる。いくつかの実施形態において、許可されたパケットのそれぞれを分類することは、パケットを許可するサブストリームポリサーによる決定に基づかない。
【００１８】
いくつかの例において、サブストリームを選択するために使用されるパケットの１つ以上の属性は、パケットに関係付けられているコンテンツデータまたはパケットに関係付けられているメタデータのうちの少なくとも１つを含むことができる。パケットに関係付けられているコンテンツデータは、パケットの、１つ以上のネットワークプロトコルヘッダに関係付けられているデータ、パケットの、１つ以上のアプリケーションヘッダに関係付けられているデータ、または、パケットのペイロードに関係付けられているデータ、のうちの少なくとも１つを含むことができる。パケットに関係付けられているメタデータは、パケット到着インターフェース、アップストリームルーターの識別、ＶＬＡＮの識別、または、アクセス媒体の識別のうちの少なくとも１つを含むことができる。許可されたパケットのそれぞれを分類するために使用される、パケットの１つ以上の属性は、パケットに関係付けられているコンテンツデータまたはパケットに関係付けられているメタデータのうちの少なくとも１つを含むことができる。パケットに関係付けられているコンテンツデータは、パケットの、１つ以上のネットワークプロトコルヘッダに関係付けられているデータ、パケットの、１つ以上のアプリケーションヘッダに関係付けられているデータ、または、パケットのペイロードに関係付けられているデータ、のうちの少なくとも１つを含むことができる。パケットに関係付けられているメタデータは、パケット到着インターフェース、アップストリームルーターの識別、ＶＬＡＮの識別、または、アクセス媒体の識別のうちの少なくとも１つを含むことができる。サブストリームポリサーを選択するために使用される、パケットの１つ以上の属性は、許可されたパケットを分類するために使用される、パケットの１つ以上の属性とは異なり得る。
【００１９】
他の例において、各サブストリームポリサーは、他の任意のサブストリームポリサーとは無関係に動作する。パケットを許可するかどうかに関する、サブストリームポリサーによって成される決定は、他の任意のパケットを許可するかどうかに関する、他の任意のサブストリームポリサーによって成される決定に影響を及ぼさない。複数のサブストリームポリサーは、トークンバケットポリサー、リーキーバケットポリサー、または、これらの任意の組み合わせを含むことができる。サブストリームポリサーに関係付けられているレートパラメータは、トラフィックレートまたはバーストサイズのうちの少なくとも１つを含むことができる。集約ポリサーは、トークンバケットポリサーまたはリーキーバケットポリサーを含むことができる。集約ポリサーに関係付けられているレートパラメータは、トラフィックレートまたはバーストサイズのうちの少なくとも１つを含むことができる。
【００２０】
ここで記述した例のいずれもが、以下の利点のうちの１つ以上を含むことができる。いくつかの実施形態において、データストリームは最初に、ポリシングのために、サブストリームに分離され、許可されないパケットを含むサブストリームが、許可されるサブストリームを含む別のサブストリームよりも、低い、同じ、または高い優先順位であるかどうかにかかわらず、いずれのサブストリーム上の、許可されないパケットも、他の任意のサブストリーム上の許可されるパケットに影響を及ぼさない。いくつかの実施形態において、許可されたパケットの合計が、集約ポリサーの許可できるレートを超えるときに、最初に、より低い優先順位のサブストリームからのパケットをドロップすることによって、集約ポリサーは、サブストリームからの許可されたパケットの優先順位が維持されることを保証する。いくつかの実施形態において、サブストリームポリサーによって許可されたパケットが集約ポリサーによってドロップされるときに、サブストリームポリサーおよび集約ポリサーに請求しないことは、サブストリームポリサーのレートパラメータおよび集約ポリサーのレートパラメータの両方に準拠する将来のパケットが、サブストリームポリサーによって許可されたが集約ポリサーによってドロップされた現在のパケットにより、誤って影響を及ぼされないことを保証する。
【図面の簡単な説明】
【００２１】
【図１】図１は、データサービスをポリシングし、データサービスに優先順位を付けるための例示的なシステムのブロックダイヤグラムである。
【図２】図２は、データサービスをポリシングし、データサービスに優先順位を付けるための例示的な方法のフローダイヤグラムである。
【図３】図３は、例示的なサブストリーム分類器のブロックダイヤグラムである。
【図４】図４は、例示的なサブストリームポリサーのブロックダイヤグラムである。
【図５】図５は、例示的な優先順位分類器のブロックダイヤグラムである。
【図６】図６は、例示的な集約ポリサーのブロックダイヤグラムである。
【図７】図７は、例示的な論理ゲートのブロックダイヤグラムである。
【図８】図８は、集約ポリサーによってドロップされたパケットに対してサブストリームポリサーの請求を取り消すための例示的な方法のフローダイヤグラムである。
【図９】図９は、Ｎ個のポリシング段階を有する、データサービスをポリシングし、データサービスに優先順位を付けるための例示的なシステムのブロックダイヤグラムである。
【詳細な説明】
【００２２】
一般的な概観において、以下で記述する技術は、データサービスのポリシングおよび優先順位付けのための方法および装置を含む。方法および装置の両方を含む技術は、サブストリームに関係付けられている所望のパラメータへの、トラフィックストリーム内のパケットサブフローのポリシング、および、集約レベルでポリシングするために、サブストリームレベルで許可されたパケットを集約すること、に関連している。本技術のいくつかの実施形態は、サブストリームポリサーによって許可されたパケットに優先順位を付けることに関連している。本技術のいくつかの実施形態は、パケットがサブストリームレベルで許可されるが、その後、集約レベルで拒絶される場合に、パケットに対してサブストリームポリサーに請求しないことに関連しており、それにより、サブストリームポリサーでの将来のパケットは、集約レベルでドロップされるパケットにより悪影響を及ぼされない。
【００２３】
図１は、データサービスをポリシングし、データサービスに優先順位を付けるための例示的なシステム１００のブロックダイヤグラムである。システム１００は、サブストリーム分類器１０４と、１つ以上のサブストリームポリサー１０６ａないしｎ（ここで、‘ｎ’は、サブストリームポリサーの数を表す）と、各サブストリームポリサー１０６ａないしｎに関係付けられているサブストリームパケットドロップ１０７ａないしｎと、優先順位分類器１０８と、集約ポリサー１１０と、集約ポリサー１１０に関係付けられている集約パケットドロップ１１１と、論理ゲート１１２とを含む。
【００２４】
いくつかの実施形態において、サブストリームパケットドロップ１０７ａないしｎは、サブストリームポリサー１０６ａないしｎと、ドロップされたパケットが送信されるシステム１００外のデバイスとの間のデータリンクとすることができる。他の実施形態において、サブストリームパケットドロップ１０７ａないしｎは、ドロップされたパケットが後の処理のために記憶される、物理的な記憶場所とすることができる。さらに他の実施形態において、サブストリームパケットドロップ１０７ａないしｎは、ドロップされたパケットを破壊するデバイスまたはモジュールとすることができる。
【００２５】
いくつかの実施形態において、集約パケットドロップ１１１は、集約ポリサー１１０と、ドロップインジケータが送信される論理ゲート１１２との間のデータリンクとすることができる。他の実施形態において、集約パケットドロップ１１１は、ドロップされたパケットが後の処理のために記憶される、物理的な記憶場所とすることができる。さらに他の実施形態において、集約パケットドロップ１１１は、ドロップされたパケットを破壊するデバイスまたはモジュールとすることができる。
【００２６】
システム１００は、入力データストリーム１０２ａとパケットメタデータストリーム１０２ｂとを受け取る。入力データストリーム１０２ａは一般に、通信ネットワークによって送信するためにフォーマットされたデータ単位である、一連のパケットから成る。パケットは一般に、メタデータ（例えば、パケットメタデータストリーム１０２ｂ）およびペイロードを含む。パケットメタデータストリーム１０２ｂは、パケットに関連する属性（例えば、到着情報、宛先情報、元情報、エンコーディングプロトコル、または、パケット中の情報の構造）を含む。ペイロードは、送信すべきユーザデータを含む。
【００２７】
コンポーネント１０４、１０６ａないしｎ、１０７ａないしｎ、１０８、１１０、１１１および１１２のそれぞれは、単一の物理デバイス内に含まれているように、図１中で表されているが、代わりに、コンポーネントは、２以上の異なる物理デバイス中に存在することができる。コンポーネントおよび／またはデバイスは、例えば、ローカルネットワーク（例えば、ＬＡＮ）またはワイドエリアネットワーク（例えば、インターネット）のような、（示していない）通信ネットワークにより通信できる。
【００２８】
サブストリーム分類器１０４は、入力データストリーム１０２ａと、入力データストリーム１０２ａに関係付けられているパケットメタデータストリーム１０２ｂとを受け取る。サブストリーム分類器１０４は、入力データストリーム１０２ａ中の各パケットのコンテンツおよび／またはパケットに関係付けられているパケットメタデータストリーム１０２ｂを使用して、予め定められている、任意の数のクラスのうちの１つに、パケットを分類する。パケットのコンテンツは、ネットワークプロトコルヘッダ（例えば、イーサネット（登録商標）、ＩＰ、ＴＣＰ／ＵＤＰ／ＳＣＴＰ）のいずれかに、アプリケーションヘッダ（例えば、ＳＩＰ、ＲＴＰ、ＨＴＴＰ）のいずれかに、あるいは、元々パケットに配置されているか、またはアップストリームノードによって変更されているようなデータ（例えば、ＤＳＣＰ値、廃棄適正（ＤＥ）ビット）のいずれかに、関係付けられているデータとすることができる。パケットメタデータストリーム１０２ｂは、パケットが到着するインターフェース、アップストリームルーター、ＶＬＡＮ、アクセス媒体（例えば、ワイヤード、ワイヤレス）、または、他の類似の属性のような、パケットの送信および／または到着に関するデータを含む、パケットのコンテキストに関係付けられている任意のデータとすることができる。
【００２９】
図２は、例えば、図１のシステム１００を使用して、データサービスをポリシングし、データサービスに優先順位を付ける例示的な方法のフローダイヤグラム２００である。サブストリーム分類器１０４は、入力データストリーム１０２ａと、入力データストリーム１０２ａに関係付けられているパケットメタデータストリーム１０２ｂとを受け取って、パケットの１つ以上の属性に基づいて、入力データストリーム１０２ａ中の各パケットを分類する（２０２）。サブストリーム分類器１０４は、分類にしたがって、各パケットを、サブストリームポリサー１０６ａないしｎのうちの１つに向ける。サブストリームポリサー（例えば、サブストリームポリサー１０６ａ）は、特定のサブストリームに対する最大のレートおよびバーストサイズのような、サブストリームポリサー（例えば、サブストリームポリサー１０６ａ）に関係付けられているレートパラメータに基づいて、サブストリームポリサー（例えば、サブストリームポリサー１０６ａ）によってパケットを許可するかどうかを決定する（２０４）。サブストリームポリサー（例えば、サブストリームポリサー１０６ａ）は、許可されないパケットをドロップする（２０６）。サブストリームポリサー（例えば、サブストリームポリサー１０６ａ）は、許可されたパケットを、優先順位分類器１０８に向ける。優先順位分類器１０８は、許可されたパケットの１つ以上の属性に基づいて、許可されたパケットのそれぞれに優先順位を付けて、優先順位が付けられたパケットを集約ポリサー１１０に向ける（２０８）。優先順位分類器１０８はまた、優先順位が付けられたパケットに関係付けられている優先順位クラス１０９を集約ポリサー１１０に向ける。集約ポリサー１１０は、集約ポリサー１１０に関係付けられているレートパラメータ（例えば、各優先値１０９に対する、最大のレートおよびバーストサイズ）に基づいて集約ポリサー１１０を通して、サブストリームポリサーによって許可されたパケットを許可するかどうかを決定する（２１０）。集約ポリサー１１０は、許可されたパケットをシステム１００から出て行くように向ける。集約ポリサー１１０は、許可されないパケットをドロップする（２１２）。集約ポリサー１１０がパケットをドロップする場合、集約ポリサー１１０は、ドロップインジケータを論理ゲート１１２に送信する。論理ゲート１１２は、請求コマンドをサブストリームポリサー（例えば、サブストリームポリサー１０６ａ）に向ける（２１４）。サブストリームポリサー（例えば、サブストリームポリサー１０６ａ）は、論理ゲート１１２から受信した請求コマンドに基づいて、以前に適用された請求を取り消す。
【００３０】
別の実施形態において、サブストリームポリサー（例えば、サブストリームポリサー１０６ａ）は、それがパケットを許可するときに請求を延期する。集約ポリサー１１０もパケットを許可する場合に、集約ポリサー１１０は、許可インジケータを論理ゲート１１２に送信する。論理ゲート１１２は、請求コマンドをサブストリームポリサー１０６ａに向ける（２１４）。サブストリームポリサー１０６ａは、論理ゲート１１２から請求コマンドを受信することに基づいて、以前に延期された請求を適用する。
【００３１】
図３は、例示的なサブストリーム分類器（例えば、サブストリーム分類器１０４）のブロックダイヤグラムである。入力データストリーム１０２ａからのパケットデータ３０２ｂおよびパケットメタデータストリーム１０２ｂからのパケットメタデータ３０２ａが、サブストリーム分類器１０４によって受け取られる。サブストリーム分類器１０４は、パケットメタデータ３０２ａから、および／または、パケットデータ３０２ｂから、分類データ３０４を抽出する。分類データ３０４は、例えば、パケット中のデータコンテンツまたはメタデータとすることができる。例えば、一般に使用されるデータは、（アプリケーションデータからの）要求タイプ、（ＩＰヘッダからの）宛先アドレス、（アプリケーションデータおよび／またはＩＰヘッダからの）出所アドレス、受信インターフェースおよび媒体アクセスタイプ（ワイヤード対ワイヤレス）を含む。
【００３２】
分類データ３０４に関係付けられている値の、各固有の組み合わせは、パケットを特定のサブストリーム３０６ａないしｎにマッピングする目的のためのキーとして組織され得る。分類データ１０４を構成する、各個々のデータフィールドは、キー（例えば、Ｋ1，Ｋ2，．．．，Ｋn）の成分である。例えば、２つのパケットが、分類データフィールドのそれぞれに対して同一の値を含む場合、両パケットは、同じキーに関係付けられ、それゆえに、同じサブストリーム（例えば、サブストリーム３０６ａ）にマッピングされる。
【００３３】
サブストリーム分類器１０４は、固有のキーを、１組のサブストリーム３０６ａないしｎ（例えば、ＳＳ1，ＳＳ2，．．．，ＳＳn）上にマッピングする。サブストリーム分類器１０４は、圧縮関数を使用して、キーをマッピングできる。例えば、１つの実施形態において、サブストリーム分類器１０４は、入力値のより大きな領域を、出力値のより小さい範囲にマッピングする関数を実現する。１つの例において、圧縮関数は、キー値をハッシュして、キー値のすべての可能性ある組み合わせのセットよりも小さい範囲の値を有するサブストリームインデックスを生成させることを伴う。ハッシュすることは、大きな、ことによると可変サイズの量のデータを、アレイ中へのインデックスとしての役割を果たす小さな整数であることが多い、小さなデータに変換するアルゴリズムを使用することを伴う。別の例において、圧縮関数は、（例えば、システム１００の要求に基づいて、）抽出された圧縮データ３０４のいくつかを、キー値として無視する。いくつかの実施形態において、サブストリーム分類器１０４は、１対１のマッピング関数を利用し、ここで、各固有の、キーの組み合わせは、別個のサブストリーム（例えば、サブストリーム３０６ａ）にマッピングされる。例えば、非常に制限された組の入力キー値が使用される場合（例えば、特定のプロトコルに対する固有の要求タイプ）、１対１のマッピング関数が望ましい。キー成分（例えば、Ｋ1，Ｋ2，．．．，Ｋn）のそれぞれに対して同一の値を有する任意の２つのパケットは、同じサブストリームにマッピングされるであろう。
【００３４】
サブストリーム分類器１０４が、パケットをサブストリームにマッピングするとき、サブストリーム識別子（例えば、３０６ｎ中のＳＳn）が、パケットに割り当てられて、サブストリーム識別子（例えば、３０６ｎ中のＳＳn）は、どのサブストリームポリサー１０６ａないしｎが使用されることになるかを決定する。例えば、サブストリーム識別子が
ＳＳnである場合、パケットはサブストリームＳＳnに属し、パケット（例えば、分類されたパケット３０８）は、そのサブストリームに対するサブストリームポリサーに向けられる。いくつかの実施形態において、パケットへのサブストリーム識別子の割り当ては、パケット内にサブストリーム識別子を含むようにパケットを修正することによって実現される。いくつかの実施形態において、サブストリーム識別子は、システム１００の別のコンポーネントに別々に送信され得る。例えば、図１中で示されているように、サブストリーム分類器１０４は、パケットに対するサブストリーム識別子を、論理ゲート１１２に出力してもよい。別の実施形態において、パケットが一意的に向けられるサブストリームポリサーの識別（例えば、３０６ｎ）は、関連したサブストリーム（例えば、ＳＳn）を識別し、例えば、パケット中に含められるサブストリーム識別子を必要としないことから、パケットへのサブストリーム識別子の割り当ては、システム１００によって暗に示される。
【００３５】
いったん、パケットが、サブストリーム分類器１０４によって分類されて、特定のサブストリームにマッピングされると、パケットは、サブストリームポリサー（例えば、サブストリーム１０６ａないしｎ）に向けられる。図４は、例示的なサブストリームポリサー（例えば、サブストリームポリサー１０６ａ）のブロックダイヤグラム４００である。システム１００は、任意の数のサブストリームポリサー（例えば、サブストリームポリサー１０６ａないしｎ）を含むことができる。各サブストリームポリサー１０６ａないしｎは、その特定のサブストリームに対する、最大のレートおよびバーストサイズとともに構成される。
【００３６】
ここで記述する、図４のサブストリームポリサーの技術は、単一フロアのトークンバケットポリサーの使用に向けられているが、本技術は、このタイプのポリサーに限定されない。特定の時間における、特定のデータ単位が、レートパラメータ（例えば、トラフィックレートまたはバーストサイズ）に関する設定可能な制約を満たすかどうかを決定でき、そのデータ単位を許可することに関係付けられている仕事のレベルに対するコストを招く一方で、その決定に基づいて、そのデータ単位がネットワーク中でさらに進むのを許可できる、任意のポリシングメカニズムを使用できる。したがって、本発明の適切なポリシングメカニズムは、データ単位を許可することに関するコストを請求できるクレジットの量を維持するだろう。十分なクレジットが後続のデータ単位を許可するのに利用可能であることを保証するために、ポリシングメカニズムは、そのクレジット量を補充できる。
【００３７】
しかしながら、いくつかの実施形態において、データ単位がシステム中の他のポリシングメカニズムによって許可されない場合に、ポリシングメカニズムが以前に許可した、そのデータ単位に対してポリシングメカニズムに請求することは望ましくない。例えば、最初のポリシングメカニズムがパケットを許可し、その結果、パケットを許可することに対する請求を招き、かつ、システム中の後続のポリシングメカニズムが同じパケットを許可しなかった場合、システムは、全システムを通してパケットを許可するのに必要な仕事の量を実際には完了しなかったことから、最初のポリシングメカニズムによって招かれた請求を取り消すのが望ましい。したがって、最初のポリシングメカニズムは、後のパケットを許可することに関するコストを吸収するほど十分なクレジットを持っていないことから、請求を取り消すことは、最初のポリシングメカニズムによって処理される後のパケットが誤って影響を及ぼされないことを保証する。
【００３８】
他の実施形態において、データ単位が全システム中のポリシングメカニズムによって許可された後にのみ、ポリシングメカニズムが以前に許可したデータ単位に対してポリシングメカニズムに請求することが望ましい。例えば、最初のポリシングメカニズムがパケットを許可した場合、システムが、全システムを通してパケットを許可するのに必要な仕事量を完了するまで、最初のポリシングメカニズムによって招かれている請求を延期することが望ましい。したがって、請求を延期することは、後続のポリシングメカニズムがパケットを許可しない場合に、最初のポリシングメカニズムによって処理される、後のパケットが、誤って影響を及ぼされないことを保証する。
【００３９】
本発明の１つの実施形態において、サブストリームポリサー１０６ａは、単一フロアのトークンバケット４０４として実現できる。トークンバケットは、バケット中のトークンの数に基づいて、パケットをいつ送信できるかを決定するトラフィックポリシングメカニズムである。一般に、トークンは、ポリサーがデータ単位を許可することに対して請求されるコストを表す。１つの例において、トークンは、バイトの単位であるか、または、予め定められているサイズの単一のパケットである。別の例において、トークンは、トークンバケットがデータ単位を許可するために実施しなければならない仕事のレベルである。バケット中のトークンは、パケットを送る能力に対して除去される。トークンバケットは、最大のバケットサイズを有し、バケットは、予め定められているポリシングレートでトークンにより満たされている。いったん、トークンカウントがバケットサイズに到達すると、過剰なトークンがあふれ出て、失われることから、バケット中のトークンの数はバケットサイズを超えることができない。
【００４０】
単一フロアのトークンバケット（例えば、単一フロアのトークンバケット４０４）は、通常ゼロトークンとして定義される、単一フロアレベルを含む。単一フロアのトークンバケットは、フロアレベルを超える十分な数のトークンがバケット中で利用可能である場合、パケットを許可するだろう。単一フロアのトークンバケットは、到着するパケットの、異なるタイプまたは優先順位付けの間を区別しない。例えば、単一フロアのトークンバケットが、１つのトークンを含み、パケットが到着する場合、単一フロアのトークンバケットは、パケットを許可し、バケットからトークンを取り除くだろう。単一フロアのトークンバケット中に利用可能なトークンがない（すなわち、ゼロフロアレベルを超えるトークンがない）ことから、到着する次のパケットは許可されないだろう。
【００４１】
マルチフロアのトークンバケット（例えば、図６中のマルチフロアトークンバケット６０４）は、１つよりも多いフロアレベルを含み、それぞれのフロアレベルは通常、パケットの異なる優先順位付けに対応する。パケットに関係付けられているフロアレベルを超える十分な数のトークンが、バケット中で利用可能である場合、マルチフロアのトークンバケットは、パケットを許可するだろう。フロアレベルは、高い優先順位のパケットに対してよりも、低い優先順位のパケットに対して高い。１つの例において、マルチフロアのトークンバケットは、１０のトークンインクリメントにおける４つのフロアレベル（例えば、１−１０、１１−２０、２１−３０、３１−４０）により構成される。マルチフロアトークンバケットは、１０個のトークンを含み、パケットは、第３のフロアレベル（すなわち、２１−３０）に対応する優先順位レートで到着する。マルチフロアトークンバケット中に少なくとも２１個のトークンがないことから、パケットは許可されないだろう。別のパケットが、より高い優先レート（例えば、１−１０）で到着する場合、マルチフロアトークンバケットは１つより多いトークンを含むことから、パケットは許可されるだろう。
【００４２】
サブストリームポリサー１０６ａは、パケットがサブストリーム（例えば、サブストリームＳＳ1 ４０２）に対する所望のポリシングレートを満たしているかどうかを決定する。単一フロアトークンバケット（例えば、単一フロアトークンバケット４０４）のトークンフィルレートＲi ４０６ａは、サブストリーム４０２のトラフィックに対して、定常状態の認定レートである。単一フロアトークンバケット（例えば、単一フロアトークンバケット４０４）のバケットサイズＢi ４０６ｂは、サブストリーム４０２のトラフィックに対するバーストサイズである。各単一フロアトークンバケット（例えば、単一フロアトークンバケット４０４）は、現在のトークンカウントＣi ４０６ｃと、時間値Ｔi ４０６ｄとを維持し、時間値Ｔi ４０６ｄは、単一フロアトークンバケット（例えば、単一フロアトークンバケット４０４）がトークンにより最後に満たされた時間を表す。いくつかの実施形態において、時間値Ｔi ４０６ｄは、システム１００に関係付けられているクロックから取得される。
【００４３】
サブストリームポリサー１０６ａが、サブストリーム分類器１０４からパケットを受け取るとき、単一フロアトークンバケット４０４は、単一フロアトークンバケット４０４中のトークンのカウントをチェックする。トークンが利用可能である場合、トークンは除去されて、トークンカウント４０６ｃは、１だけ減少される。サブストリームポリサー１０６ａは次に、パケット（例えば、許可されたパケット４０８）がサブストリームポリサー１０６ａを通過することを許可する。
【００４４】
トークンが利用可能でない場合、単一フロアトークンバケット４０４は、トークンカウントの更新を実行する。更新の一部として、単一フロアトークンバケット４０４は、単一フロアトークンバケット４０４が最後に満たされてから経過した時間量（Ｔnow−Ｔi）を決定し、かつ、それにフィルレートＲiを乗算して、単一フロアトークンバケット４０４に加えるトークンの数を計算することによって、デルタトークンカウント（ΔＣ）を計算する。例えば、ΔＣ＞＝１である場合、トークンカウントＣi ４０６ｃは、｛（Ｃi＋ΔＣ−１），（Ｂi−１）｝の最小となるように更新され、時間値Ｔi ４０６ｄは、Ｔnowに更新され、パケットは許可される。
【００４５】
更新が発生した後に、単一フロアトークンバケット４０４中のトークンが不十分である場合、パケットは、サブストリームポリサー１０６ａによってドロップされる（例えば、ドロップされたパケット４１０）。ドロップされたパケットは、システム１００によって必ずしも終了されず、システム１００の外側にルーティングされることから、サブストリームポリサー１０６ａによるパケットのドロップは、論理ドロップと考えることができる。いくつかの例において、ドロップされたパケット４１０は印を付けられ、その後、システム１００外の宛先に（例えば、ドロップされたパケット４１０を処理する別のシステムまたはデバイスに）向けられる。他の例において、ドロップされたパケット４１０は、完全に拒絶される。いずれの例においても、サブストリームポリサー１０６ａによってドロップされたパケットは、システム１００の他の任意のコンポーネントによって処理されず、または、システム１００の他の任意のコンポーネントに向けられない。
【００４６】
サブストリームポリサー１０６ａないしｎは、互いに独立して、パケットを受け取って、ポリシングする。例えば、各サブストリームポリサー１０６ａないしｎは、異なるレートパラメータ（例えば、サブストリームポリサー１０６ａに対するフィルレート４０６ａおよびバケットサイズ４０６ｂは、サブストリームポリサー１０６ｂに対するフィルレートおよびバケットサイズとは異なっていてもよい）を含むことができる。さらに、任意の１つのサブストリームポリサー（例えば、サブストリームポリサー１０６ａ）の活動は、他の任意のサブストリームポリサー（例えば、サブストリームポリサー１０６ｂ）の挙動または動作に影響を及ぼさない。特に、各サブストリームポリサー１０６ａないしｎは、他のサブストリームポリサー１０６ａないしｎのいずれかを通して、どのようなパケットが流れているか、または、どのようなパケットが以前に流れていたかに無関係に、また、他のサブストリームポリサー１０６ａないしｎのいずれかによって行われたポリシング決定とは無関係に、そのポリシング決定を行う。
【００４７】
いくつかの実施形態において、サブストリームポリサー１０６ａは、各パケットに対して単一のトークンを除去することに限定されない。各サブストリームポリサー（例えば、サブストリームポリサー１０６ａ）中の単一フロアトークンバケット４０４は、別個のデビット（Ｄi）を有していてもよく、少なくともＤi個のトークンが、パケットを通過させるのに利用可能でなければならず、通過した場合、Ｄi個のトークンは、単一フロアトークンバケット４０４から除去される。加えて、いくつかの実施形態において、単一フロアトークンバケット４０４が、任意のレベルの時間粒度を有するフィルレートＲiにしたがって、定期的に補充されるように、トークンカウントの更新技術は修正される。例えば、いくつかの実施形態において、単一フロアトークンバケット４０４は、秒毎に補充され得る。他の実施形態において、単一フロアトークンバケット４０４は、ミリ秒毎に補充され得る。
【００４８】
いくつかの実施形態において、パケットがサブストリームポリサー１０６ａないしｎによって許可された（例えば、許可されたパケット４０８）後、パケット４０８は、優先順位分類器に向けられる。図５は、例示的な優先順位分類器（例えば、図１の優先順位分類器１０８）のブロックダイヤグラム５００である。優先順位分類器１０８は、サブストリームポリサー１０６ａないしｎから受け取った、許可された各パケット（例えば、許可されたパケット４０８）のパケットデータ５０２ｂと、許可された各パケットに関係付けられているパケットメタデータ５０２ａとを使用して、許可された各パケットを、任意の数の優先順位クラス（例えば、優先順位クラス５０６ａないしｎ）のうちの１つに分類する。許可されたパケット４０８のパケットデータ５０２ｂと、パケットに関係付けられているパケットメタデータ５０２ａとは、サブストリーム分類器１０４によって使用されるのと同じタイプとすることができる。しかしながら、優先順位分類器１０８に利用可能な分類データ５０４は、サブストリーム分類器１０４に利用可能な分類データ（例えば、図３の分類データ３０４）と類似しているが、優先分類器１０８によって行われる分類は、サブストリーム分類器１０４によって利用されるのと同じアルゴリズム、パケットメタデータ５０２ａ、または、パケットデータ５０２ｂを利用する必要はない。優先順位クラス５０６ａないしｎの数は、サブストリームクラス（ＳＳn）の数よりも、大きいか、または小さいものであってもよい。
【００４９】
さらに、優先順位分類器１０８は、許可されたパケット（例えば、許可されたパケット４０８）を特定の優先順位クラス５０６ａないしｎにマッピングする目的のためのキーとして、分類データ５０４に関係付けられている値の、各固有の組み合わせを組織できる。優先順位分類器１０８によって規定される各キーは、たとえ、同じまたは類似の分類データが使用される場合であっても、サブストリーム分類器１０４によって規定されるキーから独立である。
【００５０】
優先順位分類器１０８は、固有のキーを、１組の優先順位クラス５０６ａないしｎ（例えば、ＰＲ1，ＰＲ2，．．．，ＰＲn）上にマッピングする。このマッピングは、各キーが、固有の、および別個の優先順位にマッピングする、１対１のものであってもよく、または、マッピング関数は、１つよりも多いキーを同じ優先順位にマッピングしてもよい。マッピング関数はハイブリッドとすることができ、いくつかのキーを異なる優先順位にマッピングし、他のキーを共有の優先順位にマッピングする。優先順位分類器１０８は、圧縮関数を使用して、キーをマッピングできる。例えば、１つの実施形態において、優先順位分類器１０８は、入力値のより大きな領域を、出力値のより小さい範囲にマッピングする関数を実現する。１つの例において、圧縮関数は、キー値をハッシュして、キー値のすべての可能性ある組み合わせのセットよりも小さい範囲の値を有する優先順位インデックスを生成させることを伴う。別の例において、圧縮方法は、（例えば、システム１００の要求に基づいて、）抽出された圧縮データ５０４のいくつかを、キー値として無視する。いくつかの実施形態において、優先順位分類器１０８は、１対１のマッピング関数を利用し、ここで、各固有の、キーの組み合わせは、別個の優先順位クラス（例えば、優先順位クラス５０６ａ）にマッピングされる。例えば、非常に制限された組の入力キー値が使用される場合（例えば、特定のプロトコルに対する固有の要求タイプ）、１対１のマッピング関数が望ましい。キー成分（例えば、Ｚ1，Ｚ2，．．．，Ｚn）のそれぞれに対して同一の値を有する任意の２つのパケットは、同じ優先順位クラス（例えば、優先順位クラス５０６ａ）にマッピングされるであろう。
【００５１】
優先順位分類器１０８が、パケットを優先順位クラス５０６ａないしｎにマッピングするとき、優先順位分類器１０８は、優先順位値１０９をパケットに割り当てる。優先順位値１０９は、優先順位クラス（例えば、優先順位クラスＰＲ1 ５０６ａ）に関係付けられている。優先順位分類器１０８は次に、サブストリームポリサー１０６ａによって許可された、関連するパケット（例えば、優先順位が付けられたパケット５０８）と同時に、優先順位値１０９を集約ポリサー（例えば、図１の集約ポリサー１１０）に向ける。優先順位分類器１０８からの優先順位値のフォーマットは、集約ポリサー１１０のポリシングメカニズムに依存する。例えば、集約ポリサー１１０が、マルチフロアトークンバケット（例えば、図６のマルチフロアトークンバケット６０４）を含む場合、優先順位クラスＰＲ1 ５０６ａは、マルチフロアトークンバケット中のフロアレベル（例えば、Ｆi）に対応する。いくつかの例において、優先順位分類器１０８は、次の制約を使用して、許可されたパケットを優先順位クラスにマッピングする：（ａ）Ｆ1＞＝０およびＦ1＜サブストリームの数；（ｂ）ＰＲ1＞ＰＲ2の場合、Ｆ1＜Ｆ2；（ｃ）ＰＲ1＝ＰＲ2の場合、Ｆ1＝Ｆ2。
【００５２】
図１中で示されているように、優先順位分類器１０８によって割り当てられる優先順位値１０９は、集約ポリサー１１０に向けられている、実際の許可されたパケット（例えば、優先順位を付けられたパケット５０８）とは論理的に別個のものである。これは、物理的な分離である必要はない。いくつかの実施形態において、許可されたパケット（例えば、図５の許可されたパケット４０８）は、優先値１０９により印を付けられ、集約ポリサー１１０に供給され得る。また、他の実施形態において、優先順位分類器１０８および集約ポリサー１１０は、異なるエンティティである必要はない。
【００５３】
パケットに優先順位が付けられた後、優先順位を付けられたパケット５０８は、集約ポリサー１１０に向けられる。図６は、例示的な集約ポリサー（例えば、集約ポリサー１１０）のブロックダイヤグラム６００である。ここで記述する、図６の集約技術は、マルチフロアトークンバケットポリサーの使用に向けられているが、本技術は、このタイプのポリサーだけに限定されない。特定の時間における、特定のデータ単位が、レートパラメータ（例えば、トラフィックレートまたはバーストサイズ）に関する設定可能な制約を満たすかどうかを決定でき、そのデータ単位を許可することに関係付けられている仕事のレベルに対するコストを招く一方で、その決定に基づいて、そのデータ単位がネットワーク中でさらに進むのを許可できる、任意のポリシングメカニズムを使用できる。したがって、本発明の適切なポリシングメカニズムは、データ単位を許可することに関するコストを請求できるクレジットの量を維持するだろう。十分なクレジットが後続のデータ単位を許可するのに利用可能であることを保証するために、ポリシングメカニズムは、そのクレジット量（例えば、利用可能なトークンの数）を補充できる。ポリシングメカニズムはまた、例えば、それが、データ単位を許可したときに、それが以前に招いたコストに関係付けられているクレジットを補充することにより、以前の状態に戻ることができる。この実施形態において、集約ポリサー１１０は、各優先順位値１０９に対して、最大レート（例えば、フィルレート（Ｒi） ６０６ａ）、フロアレベル（例えば、フロアレベル（Ｆi） ６０６ｂ）およびバーストサイズ（例えば、バーストサイズ（Ｂi） ６０６ｃ）により構成され、マルチフロアトークンバケット６０４として実現される。
【００５４】
集約ポリサー１１０は、優先順位を付けられたパケットが、トラフィックフローに対する所望のレートを満たしているかどうかを決定する。フィルレートＲi ６０６ａは、最大のポリシングレートであり、各優先順位値１０９に対するフロアＦi ６０６ｂは、その優先順位値１０９に対するバーストサイズＢi ６０６ｃだけ減少された全バケットサイズＮ ６０６ｄであるだろう。マルチフロアトークンバケット６０４は、現在のトークンカウントＣi ６０６ｅと、時間値Ｔi ６０６ｆとを維持し、時間値Ｔi ６０６ｆは、マルチフロアトークンバケット６０４がトークンにより最後に満たされた時間を表す。
【００５５】
集約ポリサー１１０が、優先順位を付けられたパケット５０８と、パケットに対して割り当てられた優先順位値１０９とを受け取るときに、集約ポリサー１１０は、マルチフロアトークンバケット６０４中のトークンのカウントをチェックする。優先順位値１０９に対するそれぞれのフロアレベルＦi ６０６ｂを超えるトークンが利用可能である場合、すなわち、Ｃi＞Ｆiである場合、集約ポリサー１１０は、マルチフロアトークンバケット６０４からトークンを除去し、パケットが通過するのを許可する（例えば、許可されたパケット６０８）。優先順位値１０９に対するそれぞれのフロアレベルＦi ６０６ｂを超えるトークンが利用可能でない場合、トークンカウントの更新が実行される。この更新は、マルチフロアトークンバケット６０４が最後に満たされてから経過した時間量（Ｔnow−Ｔi）を決定し、かつ、それにトークンフィルレートＲi ６０６ａを乗算して、マルチフロアトークンバケット６０４に加えるトークンの数を計算することによって、デルタトークンカウント（ΔＣ）を計算する。例えば、ΔＣ＞＝Ｆi＋１である場合、トークンカウントＣi ６０６ｅは、｛（Ｃi＋ΔＣ−１），（Ｎ−１）｝の最小となるように更新され、時間値Ｔi ６０６ｆは、Ｔnowに更新され、パケットは許可される。集約ポリサー１１０によってパケットを許可することに加えて、集約ポリサー１１０は、‘否定の’ドロップインジケータ６１２を論理ゲート１１２に向けることができる。
【００５６】
更新が発生した後に、マルチフロアトークンバケット６０４中に優先順位値１０９に対するそれぞれのフロアレベル６０６ｂを超えるトークンが不足している場合、パケットは、集約ポリサー１１０によってドロップされる（例えば、ドロップされたパケット６１０）。パケットをドロップすることに加えて、集約ポリサー１１０は、‘肯定の’ドロップインジケータ６１２を論理ゲート１１２に向ける。
【００５７】
集約ポリサー１１０は、各パケットに対して単一のトークンを除去することに限定されない。集約ポリサー１１０中のマルチフロアトークンバケット６０４は、別個のデビット（Ｄi）を有していてもよく、少なくともＤi個のトークンが、パケットを許可するのに利用可能でなければならず、許可した場合、Ｄi個のトークンは、マルチフロアトークンバケット６０４から除去される。また、任意のレベルの時間粒度を有するトークンフィルレートＲi ６０６ａにしたがって、マルチフロアトークンバケット６０４が定期的に補充されるように、トークンカウントの更新技術は修正され得る。例えば、いくつかの実施形態において、マルチフロアトークンバケット６０４は、秒毎に補充され得る。他の実施形態において、マルチフロアトークンバケット６０４は、ミリ秒毎に補充され得る。
【００５８】
図７は、例示的な論理ゲート（例えば、論理ゲート１１２）のブロックダイヤグラム７００である。集約ポリサー１１０からのドロップインジケータ６１２と、サブストリーム分類器１０４によってパケットに割り当てられたサブストリーム識別子７０２（例えば、ＳＳ1）とが、論理ゲート１１２によって受け取られる。いくつかの例において、サブストリーム識別子７０２は、サブストリーム分類器１０４から受け取られる。他の例において、サブストリーム識別子７０２は、パケットに挿入されて、論理ゲート１１２によって抽出されるか、または、サブストリーム識別子７０２は、パケットが以前に通過したサブストリームポリサー１０６ａの識別に基づいて、推論されてもよい。
【００５９】
図８は、集約ポリサー（例えば、集約ポリサー１１０）によってドロップされたパケット（例えば、ドロップされたパケット６１０）に対するサブストリームポリサー（例えば、サブストリームポリサー１０６ａないしｎ）の請求を取り消す例示的な方法のフローダイヤグラム８００である。集約ポリサー１１０が、ドロップインジケータ６１２を論理ゲートに送信する（８０２）場合、論理ゲート１１２は、請求コマンド４１２を、それぞれのサブストリーム識別子７０２に関係付けられているサブストリームポリサー（例えば、サブストリームポリサー１０６ａ）に返送する（８０４）。請求コマンド４１２を受け取ると、サブストリームポリサー１０６ａは、それが、ドロップされたパケットを許可することによって以前に適用していた請求を取り消し、サブストリームのポリサー１０６ａの状態は、ドロップされたパケットが、サブストリームポリサー１０６ａを通過していなかった場合のものと同等のものに更新される。代替の実施形態において、集約ポリサー１１０は、許可インジケータを論理ゲートに送信する。論理ゲート１１２は、請求コマンドを、それぞれのサブストリーム識別子７０２に関係付けられているサブストリームポリサー（例えば、サブストリームポリサー１０６ａ）に返送する。請求コマンドを受け取ると、サブストリームポリサー１０６ａは、集約ポリサーによって許可されたパケットをサブストリームポリサー１０６ａが最初に許可したときに、サブストリームポリサー１０６ａが以前に延期した請求を適用し、サブストリームポリサー１０６ａの状態は、許可されたパケットがサブストリームポリサー１０６ａを最初に通過したときにあるべきであったものと同等のものに更新される。
【００６０】
例えば、サブストリームポリサー１０６ａは、請求コマンド４１２に基づいて、そのトークンカウント（例えば、図４のトークンカウント４０６ｃ）を更新する（８０６）。この更新の例のように、１つの例において、サブストリームポリサー１０６ａは、パケットがサブストリームポリサー１０６ａによって許可される前に、トークンカウント（例えば、図４のトークンカウント（Ｃi） ４０６ｃ）を有している。サブストリームポリサー１０６ａが、パケットを許可し、サブストリームポリサー１０６ａが、許可されたパケットを優先順位分類器１０８に向けるとき、サブストリームポリサー１０６ａのトークンカウント４０６ｃは、Ｃi−Ｄiに低減される。ここで、Ｄiは、別個のデビット（例えば、トークンカウント４０６ｃから除去するトークンの数）である。しかしながら、この例において、例えば、パケットに割り当てられた優先順位値１０９に対するそれぞれのフロアレベル６０６ｂにおいて、マルチフロアトークンバケット６０４中に十分なトークンがないことから、集約ポリサー１１０は、パケットをドロップする。論理ゲート１１２は、ドロップインジケータ６１２をサブストリーム識別子７０２と結合して、請求コマンド４１２をサブストリームポリサー１０６ａに向ける。したがって、サブストリームポリサー１０６ａ中の単一フロアトークンバケット４０４のトークンカウント４０６ｃを、別個のデビットＤiによりＣiに戻すように増加させることによって、サブストリームポリサー１０６ａは、それがパケットを許可したときに、それが以前に適用した請求を取り消す。別個のデビット（Ｄi)は、以前に適用した請求に関係付けられているトークンの数である。別個のデビット（Ｄi)は、任意の数のトークンとすることができる。いくつかの実施形態において、別個のデビット（Ｄi)は、１つのトークンである。
【００６１】
先の例は、単純化された更新である。一般に、請求コマンド４１２が受け取られ、処理された後のサブストリームポリサー１０６ａの状態は、パケットが全くサブストリームポリサー１０６ａによって許可されていなかった場合と正確には同じでないだろう。例えば、時間Ｔ1nowにおいて、パケットがサブストリームポリサー１０６ａによって受け取られたものと仮定する。Ｃi0およびＴi0を、その時点においてサブストリームポリサー１０６ａに関係付けられている、トークンカウント４０６ｃおよび時間値４０６ｄとする。Ｄiを、別個のデビット（例えば、パケットを許可するためにサブストリームポリサー１０６ａによって招かれる請求に関係付けられているトークンの数）とする。Ｃi0＝０である場合、パケットが許可された後のサブストリームポリサー１０６ａのトークンカウントＣi1(例えば、トークンカウント４０６ｃ）は、次のように更新されるであろう：
Ｃi1＝Ｃi0＋｛（Ｔ1now−Ｔi0）×Ｒi−Ｄi｝；または、
Ｃi1＝｛（Ｔ1now−Ｔi0）×Ｒi−Ｄi｝、
および、サブストリームポリサー１０６ａの時間値Ｔi1（例えば、時間値４０６ｄ）は、
Ｔi1＝Ｔ1nowに更新されるであろう。
【００６２】
集約ポリサー１１０が、時間Ｔ2においてパケットを最終的に拒絶する場合、サブストリームポリサー１０６ａの状態は、上述した方法と同様の方法で更新される。しかしながら、更新は、別個のデビット（Ｄi)を戻すように加えて、次のトークンカウント４０６ｃを結果として生じさせる：
Ｃi2＝Ｃi1＋Ｄi0
Ｃi2＝｛（Ｔ1now−Ｔi0）×Ｒi−Ｄi＋Ｄi｝
Ｃi2＝｛（Ｔ1now−Ｔi0）×Ｒi｝
時間値４０６ｄに関しては、
Ｔi2＝Ｔi1＝Ｔ1nowである
したがって、Ｔi0におけるＰiの内部状態は、Ｔi2における内部状態とは異なる：
Ｃi0＝０≠Ｃi2＝｛（Ｔ1now−Ｔi0）×Ｒi｝
Ｔi0≠Ｔi2＝Ｔ1now
【００６３】
しかしながら、２つの状態は、同等であり、後続のパケットに対して同じ結果をもたらすであろう。実際上、Ｔ2における状態は、単一フロアトークンバケット４０４へのアーンドトークンのプレローディングになり、何らかの余分のポリシングトークンをもたらさない。
【００６４】
使用ケースの例
１つの例として、サービスプロバイダは、契約されたレートで顧客にサービスを提供する。さらに、顧客は、全体レートの許可と、そのレート内の、特定のタイプの要求に対する個別に設定された許可との両方を有する。個々の要求に対して、現在の全体レートの制限が超えられておらず、他の要求のタイプが、それらの個別に設定されたレートに対して許可されている場合、要求を許可できる。
【００６５】
この例は、ＳＩＰの顧客にサービスを提供するＳＩＰサービスプロバイダとすることができる。ＳＩＰの顧客は、通話を行うことに対して、インスタントメッセージングに対して、および、彼または彼女の友人の現在のモニタリングに対して、ＳＩＰを使用することが許可され得る。プロバイダの観点から、顧客は、許可された全体レートを有する。この全体レートは、この顧客による過剰の使用が、同じ基礎プロバイダネットワークを共有している別の顧客に影響を及ぼさないことを保証するように実施されなければならない。しかしながら、顧客および、時としてプロバイダは、顧客が使用している異なるサービスを調節しながら供給することを望むかもしれない。例えば、顧客は、（彼または彼女の子供からの）インスタントメッセージングが、電話通話を実施する能力に影響を及ぼさないことを保証することを望むかもしれない。
【００６６】
この例において、プロバイダは、１秒当たり１０の要求の、集約要求レートを顧客に許可し、そのうち、１秒当たり最高５の通話と、１秒当たり最高２のインスタントメッセージとを許可すべきである。サブストリーム分類器（例えば、サブストリーム分類器１０４）は、ＳＩＰデータコンテンツ１０２ｂに対してＳＩＰパターン適合アルゴリズムを実現する。パターン適合アルゴリズムは、ＳＩＰ要求タイプ“ＩＮＶＩＴＥ”および“ＭＥＳＳＡＧＥ”を認識する。これらのパターンに適合するパケットは、それぞれ、サブストリームＳＳinviteおよびＳＳmessageに分類される。他のすべての要求タイプおよび応答は、ＳＳotherに分類される。サブストリーム分類器１０４は、サブストリームに基づくトラフィックを、それぞれＰinvite、Ｐmessage、Ｐotherと名付けられた３つのサブストリームポリサー（例えば、１０６ａないしｃ）のうちの１つに向ける。
【００６７】
３つのサブストリームポリサーは、単一フロアトークンバケットポリサー（例えば、図４のサブストリームポリサー１０６ａ）である。Ｐinviteは、５個のトークンのバケットサイズ４０６ｂと、１秒当たり５個のトークンのトークンフィルレート４０６ａとを有する大きさである。１つのトークンは、ＩＮＶＩＴＥ要求を通過させるのに利用可能であることが要求される。Ｐmessageは、２個のトークンのバケットサイズ４０６ｂと、１秒当たり２個のトークンのトークンフィルレート４０６ａとを有する大きさである。１つのトークンは、ＭＥＳＳＡＧＥ要求を通過させるのに利用可能であることが要求される。Ｐotherは、３個のトークンのバケットサイズ４０６ｂと、１秒当たり３個のトークンのトークンフィルレート４０６ａとを有する大きさである。１つのトークンは、“他の”パケットを通過させるのに利用可能であることが要求される。
【００６８】
優先順位分類器１０８は、集約ポリサー１１０において適用される適切な優先順位を決定する。サブストリームポリサー（例えば、サブストリームポリサー１０６ａ）を通過するＩＮＶＩＴＥが、サブストリームポリサー（例えば、サブストリームポリサー１０６ｂ）を通過するＭＥＳＳＡＧＥに優先することを保証するために、優先順位分類器１０８は、Ｆinvite＜Ｆmessageのようなフロア値ＦinviteおよびＦmessageに、それぞれのパケットをマッピングしなければならない。同様に、サブストリームポリサー１０６ｂを通過するＭＥＳＳＡＧＥが、サブストリームポリサー（例えば、サブストリームポリサー１０６ｃ）を通過するＯＴＨＥＲパケットに優先することを保証するために、優先順位分類器１０８は、Ｆmessage＜Ｆotherのような優先順位値ＦmessageおよびＦotherに、それぞれのパケットをマッピングしなければならない。優先順位分類器１０８は、優先順位値（例えば、優先順位値１０９）の記述した順序付けをもたらすマッピングを実現し、パケット（例えば、図６の、優先順位を付けられたパケット５０８）と、優先順位値（例えば、図６の優先順位値１０９）とを集約ポリサー１１０にパスする。
【００６９】
集約ポリサー１１０は、マルチフロアトークンバケット６０４を含む。集約ポリサー１１０は、１０個のトークンのバケットサイズ６０６ｄと、１秒当たり１０個のトークンのトークンフィルレート６０６ａとを有するサイズである。それぞれのフロアレベル（例えば、フロアレベル（Ｆi）６０６ｂ）における１つのトークンは、パケットを通過させるために必要とされる。特定のパケットに対して使用するフロアレベルＦi ６０６ｂは、優先順位分類器１０８によって提供される。パケット（例えば、図６の、優先順位を付けられたパケット５０８）と、優先順位値（例えば、図６の優先順位値１０９）とにより与えられるとき、集約ポリサー１１０は、優先順位クラス１０９に対する指定されたフロアレベルＦi ６０６ｂを超える少なくとも１つのトークンがあるかどうかを決定する。対応するトークンが利用可能である場合、トークンは、マルチフロアトークンバケット６０４から差し引かれて、パケットが許可される（例えば、許可されたパケット６０８）。さもなければ、パケットがドロップされ（例えば、ドロップされたパケット６１０）、いかなるトークンも、マルチフロアトークンバケット６０４から除去されない。
【００７０】
パケットがドロップされる（６１０）場合、ドロップインジケータ６１２が、ドロップされたパケットに対する、割り当てられているサブストリームインジケータ７０２（例えば、Ｐinvite、Ｐmessage、Ｐother）とともに、論理ゲート１１２に向けられる。論理ゲート１１２は、以前に要求を許可した、それぞれのサブストリームポリサー（例えば、サブストリームポリサー１０６ａ）に、請求コマンド４１２を向ける。例えば、集約ポリサー１１０が、サブストリームＰinviteからの要求をドロップする場合、論理ゲート１１２は、請求コマンド４１２を、Ｐinviteサブストリームポリサー（例えば、サブストリームポリサー１０６ａ）に向ける。サブストリームポリサー（例えば、サブストリームポリサー１０６ａ）は、サブストリームポリサー１０６ａ中の単一フロアトークンバケット４０４のトークンカウント４０６ｃを１だけ増加させることによって、サブストリームポリサーがパケットを許可したときに以前に適用した請求を取り消す。
【００７１】
上述の技術および実施形態は、２段階のポリシング構造（例えば、１組のサブストリームポリサー（例えば、サブストリームポリサー１０６ａないしｎ）および集約ポリサー（例えば、集約ポリサー１１０））を使用して説明されている。しかしながら、いくつかの実施形態において、本発明は、任意の数のポリシング段階を使用して実現される。いくつかの実施形態において、後続の各ポリシング段階は、前のポリシング段階よりも少ないポリサーを含む。例えば、Ｎ段階のポリシング構造を使用して、本発明を実現でき、ここで、Ｎは、２以上である。図９は、Ｎ個のポリシング段階により、データサービスをポリシングし、データサービスに優先順位を付ける、例示的なシステム９００のブロックダイヤグラムである。システム９００は、ポリシング段階Ｋ ９０２中の複数のポリサー９１０ａないしｎ（ここで、‘ｎ’は、サブストリームポリサーの数を表す）と、ポリシング段階Ｋ＋１ ９０４中の複数のポリサー９２０ａないしｍ（ここで、‘ｍ’は、‘ｎ’よりも小さい）と、ポリシング段階Ｎ ９０６中の複数のポリサー９３０ａないしｌ（ここで、‘ｌ’は、‘ｍ’よりも小さい）とを含む。システム９００はまた、パケットデータストリーム１０２ａと、パケットメタデータストリーム１０２ｂと、サブストリーム分類器１０４と、論理ゲート１１２とを含む。いくつかの実施形態において、システム９００は、ポリシング段階Ｋ ９０２中のポリサー（例えば、ポリサー９１０ａないしｎ）に先行するサブストリーム分類器（例えば、サブストリーム分類器１０４）と、後続のポリシング段階のそれぞれにおけるポリサーに先行する分類器（例えば、分類器９１５および９２５）とを含む。例えば、分類器９１５は、ポリシング段階Ｋ＋１ ９０４中のポリサー９２０ａないしｍに先行し、分類器９２５は、ポリシング段階Ｎ ９０６中のポリサー９３０ａないしｇに先行する。さらに、いくつかの実施形態において、システム９００は、各ポリシング段階に対する優先順位分類器（例えば、図１の優先順位分類器１０８）を含む。いくつかの実施形態において、分類器９１５および９２５は、優先順位分類器として作動する。いくつかの実施形態において、ポリサー（例えば、ポリサー９２０ａないしｍ、ポリサー９２０ａないしｇ）は、パケットが処理されるときにパケットに優先順位を付ける優先順位ポリサーである。
【００７２】
１つの実施形態において、サブストリーム分類器１０４は、入力データストリーム１０２ａと、入力データストリーム１０２ａに関係付けられているパケットメタデータストリーム１０２ｂとを受け取り、パケットの１つ以上の属性に基づいて、入力データストリーム１０２ａ中の各パケットを分類する。サブストリーム分類器１０４は、分類に基づいて、ポリシング段階Ｋ ９０２中のポリサー９１０ａないしｎのうちの１つに、各パケットを向ける。ポリシング段階Ｋ ９０２中のポリサー（例えば、ポリサー９１０ａ）は、ポリサー９１０ａに関係付けられているレートパラメータ（例えば、特定のストリームに対する、最大のレートおよびバーストサイズ）に基づいて、ポリサー９１０ａによってパケットを許可するかどうかを決定する。ポリシング段階Ｋ ９０２中のポリサー９１０ａは、許可されないパケットをドロップする。ポリシング段階Ｋ ９０２中のポリサー９１０ａは、許可されたパケットを、ポリシング段階Ｋ＋１ ９０４中の分類器（例えば、分類器９１５）に向ける。分類器９１５は、ポリシング段階Ｋ＋１ ９０４中のどのポリサー（例えば、ポリサー９２０ａ）が、各パケットに関係付けられている１つ以上の属性に基づいて、許可された各パケットを受け取るかを決定する。ポリシング段階Ｋ＋１ ９０４中のポリサー９２０ａは、ポリシング段階Ｋ＋１ ９０４中のポリサー９２０ａに関係付けられているレートパラメータに基づいて、ポリシング段階Ｋ＋１ ９０４中のポリサー９２０ａによって、ポリシング段階Ｋ ９０２中のポリサー９１０ａによって許可されたパケットを許可するかどうかを決定する。ポリシング段階Ｋ＋１ ９０４中のポリサー９２０ａは、（示していない）後続のポリシング段階中の分類器に、許可されたパケットを向ける。ポリシング段階Ｎ ９０６中の分類器（例えば、分類器９２５）は、（ポリシング段階Ｋ ９０２およびポリシング段階Ｋ＋１ ９０４を含む）以前のすべてのポリシング段階によって許可されたパケットを受け取る。分類器９２５は、各パケットに関係付けられている１つ以上の属性に基づいて、ポリシング段階Ｎ ９０６中のどのポリサー（例えば、ポリサー９３０ａ）が、以前のすべてのポリシング段階によって許可されたパケットを受け取るかを決定する。ポリシング段階Ｎ ９０６中の分類器９２５からパケットを受け取るポリサー９３０ａは、ポリシング段階Ｎ ９０６中のポリサー９３０ａに関係付けられているレートパラメータに基づいて、ポリシング段階Ｎ ９０６中のポリサー９３０ａによって、以前のすべてのポリシング段階によって許可されたパケットを許可するかどうかを決定する。
【００７３】
ポリシング段階Ｎ ９０６中のポリサー（例えば、ポリサー９３０ａ）は、許可されないパケットをドロップし、ドロップインジケータを論理ゲート１１２に送信する。パケットが、ポリシング段階Ｎ ９０６中のポリサー（例えば、ポリサー９３０ａ）によってドロップされた場合、論理ゲート１１２は、パケットを許可した各ポリシング段階（例えば、ポリシング段階Ｋ ９０２およびポリシング段階Ｋ＋１ ９０４）のポリサー（例えば、ポリサー９１０ａおよびポリサー９２０ａ）に請求コマンドを向ける。ポリサー（例えば、ポリサー９１０ａおよびポリサー９２０ａ）は、論理ゲート１１２から受け取った請求コマンドに基づいて、以前に適用した請求を取り消す。
【００７４】
別の実施形態において、ポリシング段階Ｎ ９０６中のポリサー（例えば、ポリサー９３０ａ）は、ポリサー（例えば、ポリサー９３０ａ）がパケットを許可する場合、許可インジケータを論理ゲート１１２に送信する。パケットが、ポリシング段階Ｎ ９０６中のポリサー（例えば、ポリサー９３０ａ）によって許可された場合、論理ゲート１１２は、パケットを許可した各ポリシング段階（例えば、ポリシング段階Ｋ ９０２およびポリシング段階Ｋ＋１ ９０４）のポリサー（例えば、ポリサー９１０ａおよびポリサー９２０ａ）に請求コマンドを向ける。ポリサー（例えば、ポリサー９１０ａおよびポリサー９２０ａ）は、論理ゲート１１２からの請求コマンドを受け取ることに基づいて、以前に延期された請求を適用する。
【００７５】
例えば、サブストリームポリサー（例えば、サブストリーム分類器１０４）は、データストリーム（例えば、入力データストリーム１０２ａ）中のパケットを受け取り、第１のポリシング段階（例えば、ポリシング段階Ｋ ９０２）中の複数のポリサーのうちの１つのポリサー（例えば、ポリサー９１０ａ）にパケットを向ける。ポリサー（例えば、ポリサー９１０ａ）は、第１のポリシング段階中のポリサーに関係付けられているレートパラメータに基づいて、第１のポリシング段階（例えば、ポリシング段階Ｋ ９０２）中のポリサー（例えば、ポリサー９１０ａ）によってパケットを許可するかどうかを決定する。ポリサー（例えば、ポリサー９１０ａ）は、第１のポリシング段階（例えば、ポリシング段階Ｋ ９０２）中のポリサー（例えば、ポリサー９１０ａ）によって許可されたパケットを、第２のポリシング段階Ｋ＋１ ９０４中の分類器（例えば、分類器９１５）に向ける。ここで、第２のポリシング段階Ｋ＋１ ９０４は、第１のポリシング段階Ｋ ９０２よりも少ないポリサーを備える。分類器９１５は、ポリシング段階Ｋ＋１ ９０４中のどのポリサー（例えば、ポリサー９２０ａ）が許可されたパケットを受け取るかを決定する。いくつかの実施形態において、分類器９１５は、第１のポリシング段階中のポリサーと第２のポリシング段階中のポリサーとの間の予め定められている関係に基づいて、第１のポリシング段階（例えば、ポリシング段階Ｋ ９０２）中のポリサー（例えば、ポリサー９１０ａ）によって許可されたパケットを、第２のポリシング段階（例えば、ポリシング段階Ｋ＋１ ９０４）中のポリサー（例えば、ポリサー９２０ａ）に向ける。他の実施形態において、分類器９１５は、パケットの１つ以上の属性に基づいて、第１のポリシング段階（例えば、ポリシング段階Ｋ ９０２）中のポリサー（例えば、ポリサー９１０ａ）によって許可されたパケットを、第２のポリシング段階（例えば、ポリシング段階Ｋ＋１ ９０４）中のポリサー（例えば、ポリサー９２０ａ）に向ける。
【００７６】
第２のポリシング段階（例えば、ポリシング段階Ｋ＋１ ９０４）中のポリサー（例えば、ポリサー９２０ａ）は、第２のポリシング段階（例えば、ポリシング段階Ｋ＋１ ９０４）中のポリサー（例えば、ポリサー９２０ａ）に関係付けられているレートパラメータに基づいて、第２のポリシング段階（例えば、ポリシング段階Ｋ＋１ ９０４）によって、第１のポリシング段階（例えば、ポリシング段階Ｋ ９０２）によって許可されたパケットを許可するかどうかを決定する。パケットが、すべてのポリシング段階（例えば、ポリシング段階Ｋ ９０２およびポリシング段階Ｋ＋１ ９０４）中のポリサーによって許可される場合、ポリサー（例えば、ポリサー９１０ａおよびポリサー９２０ａ）は、パケットに対して請求される。パケットが、すべてのポリシング段階中のポリサーによって許可されていない場合、ポリサーは請求されない。
【００７７】
いくつかの実施形態において、第２のポリシング段階（例えば、ポリシング段階Ｋ＋１ ９０４）中のポリサー（例えば、ポリサー９２０ａ）は、第３のポリシング段階（例えば、ポリシング段階Ｎ ９０６）中の分類器（例えば、分類器９２５）に、許可されたパケットを向ける。ここで、第３のポリシング段階は、第２のポリシング段階よりも少ないポリサーを備える。分類器９２５は、第３のポリシング段階Ｎ ９０６中のどのポリサー（例えば、ポリサー９２０ａ）が、許可されたパケットを受け取るかを決定する。いくつかの実施形態において、分類器９２５は、第２のポリシング段階中のポリサーと第３のポリシング段階中のポリサーとの間の予め定められている関係に基づいて、第２のポリシング段階（例えば、ポリシング段階Ｋ＋１ ９０４）中のポリサー（例えば、ポリサー９２０ａ）によって許可されたパケットを、第３のポリシング段階（例えば、ポリシング段階Ｎ ９０６）中のポリサー（例えば、ポリサー９３０ａ）に向ける。２つのポリサー９２０ａおよび９３０ａは、第２のポリシング段階中のポリサー９２０ａが、第３のポリシング段階中のポリサー９３０ａに、そのトラフィック向けるという点で、予め定められている関係を有することができる。
【００７８】
いくつかの実施形態において、分類器９１５は、パケットの１つ以上の属性に基づいて、第２のポリシング段階（例えば、ポリシング段階Ｋ＋１ ９０４）中のポリサー（例えば、ポリサー９２０ａ）によって許可されたパケットを、第３のポリシング段階（例えば、ポリシング段階Ｎ ９０６）中のポリサー（例えば、ポリサー９３０ａ）に向ける。
【００７９】
第３のポリシング段階（例えば、ポリシング段階Ｎ ９０６）中のポリサー（例えば、ポリサー９３０ａ）は、第３のポリシング段階中のポリサーに関係付けられているレートパラメータに基づいて、第３のポリシング段階を通して、第２のポリシング段階によって許可されたパケットを許可するかどうかを決定する。さらに他の実施形態において、１以上の追加のポリシング段階（例えば、第４のポリシング段階、第５のポリシング段階）があり、ここで、後続の各ポリシング段階は、直前のポリシングよりも少ないポリサーを備える。例えば、第４のポリシング段階は、第３のポリシング段階よりも少ないポリサーを備える。
【００８０】
上述した技術は、デジタルおよび／またはアナログの電子回路中で、または、コンピュータハードウェア、ファームウェア、ソフトウェア中で、あるいは、それらの組み合わせ中で実現できる。例えば、プログラマブルプロセッサ、コンピュータ、および／または、複数のコンピュータのような、データ処理装置によって実行するために、または、データ処理装置の動作を制御するために、構成は、コンピュータプログラムプロダクト、すなわち、機械読み取り可能記憶デバイス中で明白に具現されるコンピュータプログラムとすることができる。コンピュータプログラムは、ソースコード、コンパイル済みのコード、翻訳されたコードおよび／または機械コードを含む、コンピュータまたはプログラミング言語の任意の形態で書くことができ、コンピュータプログラムは、スタンドアロンプログラム、または、サブルーチン、エレメント、あるいは、計算環境中で使用するのに適した他のユニットを含む、任意の形態で配備され得る。コンピュータプログラムは、１つのコンピュータ上で、または、１つ以上のサイトにおける複数のコンピュータ上で、実行するために配備され得る。
【００８１】
入力データに作用することによって、および／または、出力データを生成させることによって、本発明の機能を実行するコンピュータプログラムを実行する１つ以上のプロセッサにより、方法のステップを実行できる。方法のステップはまた、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、ＦＰＡＡ（フィールドプログラマブルアナログアレイ）、ＣＰＬＤ（複合プログラマブル論理デバイス）、ＰＳｏＣ（登録商標）（プログラマブルシステムオンチップ）、ＡＳＩＰ（特定用途向き命令セットプロセッサ）、または、ＡＳＩＣ（特定用途向き集積回路）、あるいは、これらに類似するもののような、特別用途の論理回路によって実行でき、装置は、このような特別用途の論理回路として実現できる。サブルーチンは、記憶されているコンピュータプログラムおよび／またはプロセッサの一部、ならびに／あるいは、１つ以上の機能を実現する特別の回路を指し得る。
【００８２】
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用および特定用途のマイクロプロセッサの両方、ならびに、任意の種類のデジタルまたはアナログのコンピュータの、１つ以上の任意のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリ、あるいは両方から命令およびデータを受け取る。コンピュータの本質的な要素は、命令を実行するプロセッサと、命令および／またはデータを記憶するための１つ以上のメモリデバイスとである。キャッシュのようなメモリデバイスを使用して、データを一時的に記憶できる。メモリデバイスはまた、長期間のデータ記憶装置として使用できる。一般的に、コンピュータはまた、例えば、磁気ディスク、光磁気ディスクまたは光ディスクのような、データを記憶する１つ以上の大容量記憶デバイスを含むか、あるいは、このような大容量記憶デバイスからデータを受け取り、または、このような大容量記憶デバイスにデータを転送するように動作可能に結合されているか、あるいは、その両方である。コンピュータはまた、ネットワークから命令および／またはデータを受信するために、ならびに／あるいは、ネットワークに命令および／またはデータを転送するために、通信ネットワークに動作可能に結合され得る。コンピュータプログラム命令およびデータを具現するのに適したコンピュータ読み取り可能媒体は、あらゆる形態の揮発性メモリおよび不揮発性メモリを含み、一例として、例えば、ＤＲＡＭ、ＳＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭおよびフラッシュメモリデバイスのような、半導体メモリデバイス、例えば、内部ハードディスクまたはリムーバブルディスクのような磁気ディスク、光磁気ディスク、ならびに、例えば、ＣＤ、ＤＶＤ、ＨＤ−ＤＶＤおよびブルーレイディスクのような光ディスクを含む。プロセッサおよびメモリは、特定用途論理回路によって補足され、および／または、特定用途論理回路中に組み込まれ得る。
【００８３】
ユーザとの対話を提供するために、上述した技術は、例えば、ユーザに情報を表示する、ＣＲＴ（陰極線管）モニター、プラズマモニター、または、ＬＣＤ（液晶ディスプレイ）モニター、ユーザがコンピュータに入力を提供できる（例えば、ユーザインターフェース要素と対話できる）、キーボード、および、例えば、マウス、トラックボール、タッチパッド、または動きセンサーのようなポインティングデバイス、と通信するコンピュータ上で実現できる。他の種類のデバイスを使用して、ユーザとの対話を提供でき、例えば、ユーザに提供されるフィードバックは、視覚のフィードバック、聴覚のフィードバック、または、触覚のフィードバックのような、任意の形態の感覚のフィードバックとすることができ、ユーザからの入力は、音響の入力、スピーチ入力および／または触覚の入力を含む、任意の形態で受け取られ得る。
【００８４】
上述した技術は、バックエンドコンポーネントを含む分散計算システム中で実現できる。バックエンドコンポーネントは、例えば、データサーバ、ミドルウェアコンポーネント、および／または、アプリケーションサーバとすることができる。上述した技術は、フロントエンドコンポーネントを含む分散計算システム中で実現できる。フロントエンドコンポーネントは、例えば、グラフィカルユーザインターフェース、ユーザが具体的な構成と対話できるウェブブラウザ、および／または、送信デバイスのための他のグラフィカルユーザインターフェースを有するクライアントコンピュータとすることができる。上述した技術は、そのようなバックエンドコンポーネント、ミドルウェアコンポーネント、または、フロントエンドコンポーネントの任意の組み合わせを含む分散計算システム中で実現できる。
【００８５】
計算システムのコンポーネントは、送信媒体によって相互接続でき、送信媒体は、デジタルまたはアナログのデータ通信（例えば、通信ネットワーク）の任意の形態または媒体を含むことができる。送信媒体は、任意の構成において、１つ以上のパケットベースのネットワークおよび／または１つ以上の回線ベースのネットワークを含むことができる。パケットベースのネットワークは、例えば、インターネット、キャリアインターネットプロトコル（ＩＰ）ネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、キャンパスエリアネットワーク（ＣＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ホームエリアネットワーク（ＨＡＮ））、プライベートＩＰネットワーク、ＩＰ構内交換機（ＩＰＢＸ）、ワイヤレスネットワーク（例えば、無線アクセスネットワーク（ＲＡＮ）、ブルートゥース（登録商標）、Ｗｉ−Ｆｉ、ＷｉＭＡＸ、汎用パケット無線サービス（ＧＰＲＳ）ネットワーク、ハイパーＬＡＮ）、および／または、他のパケットベースのネットワークを含むことができる。回線ベースのネットワークは、例えば、公衆交換電話ネットワーク（ＰＳＴＮ）、レガシー構内交換機（ＰＢＸ）、ワイヤレスネットワーク（例えば、ＲＡＮ、コード分割多元接続（ＣＤＭＡ）ネットワーク、時分割多元接続（ＴＤＭＡ）ネットワーク、移動通信のためのグローバルシステム（ＧＳＭ（登録商標））ネットワーク）、および／または、他の回線ベースのネットワークを含むことができる。
【００８６】
送信媒体による情報の転送は、１つ以上の通信プロトコルに基づくことができる。通信プロトコルは、例えば、イーサネットプロトコル、インターネットプロトコル（ＩＰ）、ボイスオーバＩＰ（ＶＯＩＰ）、ピアツーピア（Ｐ２Ｐ）プロトコル、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、セッション開始プロトコル（ＳＩＰ）、Ｈ．３２３、メディアゲートウェイ制御プロトコル（ＭＧＣＰ）、シグナリングシステム＃７（ＳＳ７）、移動通信のためのグローバルシステム（ＧＳＭ）プロトコル、プッシュツートーク（ＰＴＴ）プロトコル、ＰＴＴオーバセルラ（ＰＯＣ）プロトコル、および／または、他の通信プロトコルを含むことができる。
【００８７】
計算システムのデバイスは、例えば、コンピュータ、ブラウザデバイスを有するコンピュータ、電話機、ＩＰ電話機、移動電話機（例えば、セルラ電話機、パーソナルデジタルアシスタント（ＰＤＡ）デバイス、ラップトップコンピュータ、電子メールデバイス）、および／または、他の通信デバイスを含むことができる。ブラウザは、例えば、ワールドワイドウェブブラウザ（例えば、マイクロソフト（登録商標）社から入手できるマイクロソフトインターネットエクスプローラ（登録商標）、モジラ（登録商標）社から入手できるモジラファイアフォックス）を有するコンピュータ（例えば、デスクトップコンピュータ、ラップトップコンピュータ）を含むことができる。移動計算デバイスは、例えば、ブラックベリー（登録商標）を含む。ＩＰ電話機は、例えば、シスコ（登録商標）システム社から入手できるシスコ統一ＩＰ電話機７９８５Ｇ、および／または、シスコシステム社から入手できるシスコ統一ワイヤレス電話機７９２０を含む。
【００８８】
‘備える’、‘含む’、および／または、それぞれの複数の形態は、拡張可能であり、リスト表示された部分を含み、リスト表示されていない追加の部分を含むことができる。‘および／または’は、拡張可能であり、リスト表示された部分のうちの１つ以上およびリスト表示された部分の組み合わせを含む。
【００８９】
当業者は、本発明の精神または本質から逸脱することなく、他の特定の形態において本発明を具現してもよいことを認識するだろう。それゆえに、上述の実施形態は、ここで記述した発明の限定ではなく、すべての点で、実例であると考えるべきである。
【図１】
2013507089.tif 000003
【図２】
2013507089.tif 000004
【図３】
2013507089.tif 000005
【図４】
2013507089.tif 000006
【図５】
2013507089.tif 000007
【図６】
2013507089.tif 000008
【図７】
2013507089.tif 000009
【図８】
2013507089.tif 000010
【図９】
2013507089.tif 000011
【国際調査報告】
2013507089.tif 000012