(57)【要約】  優先順位の繰り延べ決定を用いて要求の優先順位をポリシングする方法と、コンピュータプログラム製品を含む装置とが記載されている。この方法は、データストリームにおける各パケットをポリサに送ることを含む。更に、この方法は、ポリサに関連付けられたパラメータに基づいて、ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定することを含む。更に、この方法は、ポリサを通じて条件付きで通された各パケットを、ポリサに関連付けられた分類器に送ることを含む。更に、この方法は、ポリサから受信した各パケットの優先順位値を、分類器によって決定することを含む。更に、この方法は、各優先順位を付けられたパケットを、分類器によってポリサに送ることを含む。更に、この方法は、優先順位値に基づいて、ポリサを通じて、各優先順位を付けられたパケットを許可するか又は拒絶するかを決定することを含む。【選択図】      図１
2013501422.tif 000002
【特許請求の範囲】
【請求項１】
データサービスの優先順位を認識してポリシングする方法であって、
データストリームにおける各パケットをポリサに送るステップと、
前記ポリサに関連付けられたパラメータに基づいて、前記ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定するステップと、
前記ポリサによって条件付きで通された各パケットを、前記ポリサに関連付けられた分類器に送るステップと、
前記ポリサから受信した各パケットの優先順位値を、前記分類器によって決定するステップと、
各優先順位を付けられたパケットを、前記分類器によって前記ポリサに送るステップと、
前記優先順位値に基づいて、前記ポリサを通じて、各優先順位を付けられたパケットを許可するか又は拒絶するかを決定するステップと、
を含む、方法。
【請求項２】
前記ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する前記ステップは、
前記ポリサを通じて、各パケットを条件付きで通すサブステップと、
前記条件付きで通されたパケットを前記分類器に送るサブステップと、
を含む、請求項１の方法。
【請求項３】
前記ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する前記ステップは、
前記ポリサを通じて、各パケットを拒絶するか又は条件付きで通すサブステップと、
前記条件付きで通されたパケットを前記分類器に送るサブステップと、
を含む、請求項１の方法。
【請求項４】
前記ポリサから受信した各パケットの優先順位値を決定するステップは、前記パケットの１つ以上の属性に基づく、請求項１の方法。
【請求項５】
前記パケットの前記１つ以上の属性は、
前記パケットに関連付けられたコンテンツデータ、又は、
前記パケットに関連付けられたメタデータ、
のうちの少なくとも一方を含む、請求項４の方法。
【請求項６】
前記パケットに関連付けられた前記コンテンツデータは、
前記パケットの１つ以上のネットワークプロトコルヘッダに関連付けられたデータ、
前記パケットの１つ以上のアプリケーションヘッダに関連付けられたデータ、又は、
前記パケットのペイロードに関連付けられたデータ、
のうちの少なくとも１つを含む、請求項５の方法。
【請求項７】
前記パケットに関連付けられた前記メタデータは、パケット到着インターフェイス、アップストリームルータ識別、ＶＬＡＮ識別、又はアクセス媒体識別、のうちの少なくとも１つを含む、請求項５の方法。
【請求項８】
前記ポリサを通じて許可された各パケットに対して、前記ポリサを充填するステップと、
前記ポリサによって前記分類器に条件付きで通された各パケットに対して、前記ポリサを充填しないステップと、
を更に含む、請求項１の方法。
【請求項９】
優先順位を付けられたパケットの優先順位値が、最小優先順位値よりも高い場合に、前記分類器は、前記優先順位を付けられたパケットの各々を前記ポリサに送る、請求項１の方法。
【請求項１０】
前記ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する前記ステップは、各パケットに関連付けられた任意の優先順位値に関係なく行なわれる、請求項１の方法。
【請求項１１】
前記ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する前記ステップは、最小優先順位値に基づいている、請求項１の方法。
【請求項１２】
データサービスの優先順位を認識してポリシングする方法であって、
データストリームにおける各パケットを優先順位ポリサに送るステップと、
前記優先順位ポリサに関連付けられたパラメータに基づいて、前記優先順位ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定するステップと、
前記優先順位ポリサによって条件付きで通された各パケットに対する最小優先順位値を決定するステップと、
前記優先順位ポリサを通じて条件付きで通された各パケットと、各パケットに関連付けられた前記最小優先順位値とを、前記優先順位ポリサに関連付けられた分類器に送るステップと、
前記優先順位ポリサから受信した各パケットに対する優先順位値を、前記分類器によって決定するステップと、
各パケットに対する前記決定された優先順位値が、各パケットに関連付けられた前記最小優先順位値未満である場合は、前記分類器によって、各パケットを拒絶するステップと、
各パケットに対する前記優先順位値が、各パケットに関連付けられた前記最小優先順位値以上である場合は、前記分類器によって、各パケットを前記優先順位ポリサに送るステップと、
前記決定された優先順位値に基づいて、前記優先順位ポリサを通じて、各パケットを許可するか又は拒絶するかを決定するステップと、
を含む、方法。
【請求項１３】
前記優先順位ポリサによって許可された各パケットに対して、前記ポリサを充填するステップと、
前記優先順位ポリサによって前記分類器に条件付きで通された各パケットに対して、前記ポリサを充填しないステップと、
を更に含む、請求項１２の方法。
【請求項１４】
前記優先順位ポリサによって許可された各パケットに対して、前記優先順位ポリサを充填するステップと、
前記優先順位ポリサによって前記分類器に条件付きで通された各パケットに対して、前記優先順位ポリサを充填するステップと、
前記パケットが前記分類器によって拒絶された場合に、前記優先順位ポリサによって条件付きで通された各パケットに対して、前記充填を取り消すステップと、
を更に含む、請求項１２の方法。
【請求項１５】
前記優先順位ポリサを通じて各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する前記ステップは、各パケットに関連付けられた任意の優先順位値と無関係に行なわれる、請求項１２の方法。
【請求項１６】
前記最小優先順位値は、前記優先順位ポリサがパケットを無条件で許可する最低優先順位値である、請求項１２の方法。
【請求項１７】
Ｎが２よりも大きい場合に、Ｎ個のポリシング段階を備えた、データサービスの優先順位を認識してポリシングする方法であって、
ａ）データストリームにおける各パケットを、ポリシング段階Ｋにおけるポリサに送るステップと、
ｂ）前記ポリサに関連付けられたパラメータに基づいて、前記ポリシング段階Ｋにおける前記ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定するステップと、
ｃ）前記ポリシング段階Ｋにおける前記ポリサによって条件付きで通された各パケットを、前記分類器に送るステップと、
ｄ）前記ポリシング段階Ｋにおける前記ポリサから受信した前記パケットの優先順位値を、前記分類器によって決定するステップと、
ｅ）前記パケットと、前記パケットの前記優先順位値とを、前記分類器よって、前記ポリシング段階Ｋにおける前記ポリサに送るステップと、
ｆ）前記分類器から受信した前記優先順位値に基づいて、前記ポリシング段階Ｋにおける前記ポリサを通じて、前記パケットを許可するか又は拒絶するかを決定するステップと、
ｇ）前記ポリシング段階Ｋにおける前記ポリサによって許可された各パケットと、前記パケットの前記優先順位値とを、後のポリシング段階Ｋ＋１におけるポリサに送るステップと、
ｈ）前記Ｎ個のポリシング段階の各々に対して、ステップｂ−ｇを繰り返すステップと、
を含む、方法。
【請求項１８】
Ｎが２よりも大きい場合に、Ｎ個のポリシング段階を備えた、データサービスの優先順位を認識してポリシングする方法であって、
ａ）データストリームにおける各パケットを、ポリシング段階Ｋにおけるポリサに送るステップと、
ｂ）前記ポリシング段階Ｋにおける前記ポリサに関連付けられたパラメータに基づいて、前記ポリシング段階Ｋにおける前記ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定するステップと、
ｃ）前記ポリシング段階Ｋにおける前記ポリサによって条件付きで通された各パケットを、前記ポリシング段階Ｋにおける前記分類器に送るステップと、
ｄ）前記ポリシング段階Ｋにおける前記ポリサから受信した前記パケットの優先順位値を、前記ポリシング段階Ｋにおける前記分類器によって決定するステップと、
ｅ）前記パケットと、前記パケットの前記優先順位値とを、前記ポリシング段階Ｋにおける前記分類器よって、前記ポリシング段階Ｋにおける前記ポリサに送るステップと、
ｆ）前記ポリシング段階Ｋにおける前記分類器から受信した前記パケットの前記優先順位値に基づいて、前記パケットを許可するか又は拒絶するかを決定するステップと、
ｇ）前記ポリシング段階Ｋにおける前記ポリサによって許可された各パケットと、前記許可されたパケットの前記優先順位値とを、後のポリシング段階Ｋ＋１におけるポリサに送るステップと、
ｈ）前記Ｎ個のポリシング段階の各々に対して、ステップｂ−ｇを繰り返すステップと、
を含む、方法。
【請求項１９】
データサービスの優先順位を認識してポリシングするために、コンピュータ読出し可能記憶媒体において実体的に具現されるコンピュータプログラム製品であって、
前記コンピュータプログラム製品は、
データストリームにおける各パケットをポリサに送って、
前記ポリサに関連付けられたパラメータに基づいて、前記ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定して、
前記ポリサによって条件付きで通された各パケットを、前記ポリサに関連付けられた分類器に送って、
前記ポリサから受信した各パケットの優先順位値を、前記分類器によって決定して、
各優先順位を付けられたパケットを、前記分類器によって前記ポリサに送って、
前記優先順位値に基づいて、前記ポリサを通じて、各優先順位を付けられたパケットを許可するか又は拒絶するかを決定することを、
データ処理装置にさせるように実施可能な命令を含む、コンピュータプログラム製品。
【請求項２０】
データサービスの優先順位を認識してポリシングするシステムであって、
前記システムは、ポリサを具備しており、
前記ポリサは、
前記ポリサに関連付けられたパラメータに基づいて、前記ポリサを通じて、データストリームにおける各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定して、
前記ポリサによって条件付きで通された各パケットを、前記ポリサに関連付けられた分類器に送って、
前記ポリサから受信した各パケットの優先順位値を、前記分類器によって決定して、
各優先順位を付けられたパケットを、前記分類器によって前記ポリサに送って、
前記優先順位値に基づいて、前記ポリサを通じて、各優先順位を付けられたパケットを許可するか又は拒絶するかを決定する、
ように構成されている、システム。
【請求項２１】
データサービスの優先順位を認識してポリシングするシステムであって、
データストリームにおける各パケットをポリサに送る手段と、
前記ポリサに関連付けられたパラメータに基づいて、前記ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する手段と、
前記ポリサによって条件付きで通された各パケットを、前記ポリサに関連付けられた分類器に送る手段と、
前記ポリサから受信した各パケットの優先順位値を、前記分類器によって決定する手段と、
各優先順位を付けられたパケットを、前記分類器によって前記ポリサに送る手段と、
前記優先順位値に基づいて、前記ポリサを通じて、各優先順位を付けられたパケットを許可するか又は拒絶するかを決定する手段と、
を具備する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願の内容は、概して、優先レベルの繰り延べ決定を用いた要求の優先順位をポリシング（policing）する方法と、コンピュータプログラム製品を含む装置とに関する。
【背景技術】
【０００２】
通信ネットワークに関連する一定の限られた資源には、通信ネットワークの多くの加入者間でこれらの資源を配分する方式が一般に必要である。一人又は何人かの加入者の一部における使い過ぎが他の加入者のネットワークの操作性に影響を及ぼさないことを保証するために更なる検討をして、配分方式を実施する。各加入者（例えば、ネットワークを利用する特定のエンティティ）は、許容資源数（例えば、呼数及びＩＭセッション数）に対する絶対的な制限と、要求レートに対する制限との両者を受ける。通常は、何らかの計数方式によって、絶対的な資源の制限に対する制約を実施して、何らかの形式のポリシングを通じて、レート制限を実施する。一般に、ネットワークトラフィックのポリシングは、特定のエンティティからの要求レートを、特定の望ましいパラメータに制約することを必要とし得る。一般に、これらのパラメータは、平均要求レートとバーストサイズとの両者を含む。加入者からの全ての要求が同じクラスと特性とを有する場合は、基本的なポリシング方式が全て適切に働く。
【０００３】
しかしながら、多くのプロトコルでは、同じインフラストラクチャにおいて非常に異なるサービスの設定を可能にしている。ＳＩＰプロトコルは、特にフレキシブルであって、例えば、電話呼と、インスタントメッセージングと、存在の監視（presence watching）と、会議の開催との設定を可能にしている。セッションは、重要度、コストにおいて、又は種々の他の測度に基づいて同等と見なされないことが多い。従って、幾つかのセッションタイプを、同じ顧客からの他のセッションタイプよりも優先する必要がある。
【０００４】
トラフィックのポリシングを実施する基本構成要素は、ポリサ（規制装置、policer）の使用を含む。ポリサは、ネットワークトラフィックを（例えば、パケット形式で）受信して、そのトラフィックをネットワーク内で更に進めることを許可するかどうかを決定する。一般に、ポリサは、トラフィックの属性と、ポリサがトラフィックを更に進めることを許可するために行わなければならない動作レベルに関連付けられたコストとに基づいて、この決定を行なう。このため、ポリサは、クレジット額をローカルに維持しており、１単位のデータを進めることを可能にするコストが、このクレジット額に対して請求される。ポリサは、所定の単位の時間間隔でクレジット額を補充して、次のデータ単位を許可するのに十分なクレジットが確実に得られるようにする。例えば、１００のうちの１０のクレジットを１秒以内に使用する場合に、ポリサは、次の１秒で１０のクレジットを補充して、合計クレジット額を１００に戻す。
【０００５】
通常のタイプのポリサは、複数の閾値のトークンバケットポリサ（multi-threshold token bucket policer）である。トークンバケットポリサはバケットを含んでいる。バケットのサイズは、望ましいバーストサイズ（ＢＣ）である。バケットは、望ましいポリシングレート（ＲＣ）で、トークンで埋められる。従って、特定の時間間隔（Ｔｉ）後に、バケットはＴｉ×ＲＣ個のトークンを有する。トークン計数がバケットのサイズに達すると、過剰なトークンはあふれ出して失われるので、トークン数はＢＣを決して超えない。バケットは、全体的なトラフィックストリーム内における各優先レベルに対して、異なる閾値、又は下限Ｆｐを有する。各下限の相対的なレベルが、一方の優先順位が他方の優先順位に対して有する優位度を決定する。優先順位Ａの要求が優先順位Ｂの要求よりも高い優先順位を有するならば、Ｆａ＞Ｆｂである。
【０００６】
複数の閾値のトークンバケットポリサを使用すると、トラフィックストリームのポリシングは、次のように進んでいく。優先順位ｐのパケットがポリサに提供されると、Ｆｐを超えているトークンについて、バケットをチェックする。Ｆｐを超えているトークンが存在する場合は、バケットからそれを取り除いて、パケットが通される。Ｆｐを超えているトークンが存在しない場合は、パケットは許可されない。全体的なパケット到着レートＲａがちょうどポリシングレートＲｃである場合は、概して全てのパケットが許可されて、バケット中のトークンレベルは変化せずに維持される。パケット到着レートＲａがポリシングレートＲｅよりも低い場合は、Ｂｅの最大値までバケットを埋めて、ポリシングレートＲｅを上回るパケットのバーストを許可する。最後に、パケット到着レートＲａがポリシングレートよりも高い場合は、より高い優先順位のトラフィックを優位にして、バケットのトークンレベルを下げる。トークンレベルが各優先順位の下限よりも低下するときは、最低優先順位のトラフィックを最初にドロップする。概して、相対的な優先順位の下限レベルによって決まる優先順位の集まりとＲａの優先順位の集まりについて、パケット到着レートのうちのＲｃのみが、通過を許可される。
【発明の概要】
【０００７】
全体的な概要において、ここに記載されている技術は、トラフィックが幾つかの異なるサービスに関係し得る場合に、通信ネットワークを通じて送信されるデータトラフィックをポリシングして優先順位を付けることに関する。この技術は、トラフィックの特定のセグメントに割り当てられた優先順位値に関連してデータトラフィックをポリシングすることを可能にする、多段階ポリシング（multi-stage policing）のアプローチを提供している。更に、この技術は、進入点の近くでトラフィックをポリシングすることによって、ポリシングシステムによって費やされる作業量をできるだけ少なくする一方で、トラフィックを許可するか又は拒絶するかを決定するために優先順位を付けなければならない（例えば、通常の電話呼対緊急の電話呼）場合に、同じポリシング段階においてトラフィックのその部分のみに優先順位を付ける。高負荷又は攻撃のシナリオを示しているときに、この技術は、受信パケットを構文解析又は復号する前に、受信パケットをポリシングして、その結果、各パケットを復号するコスト高の動作を避けて、システムの不安定化を防ぐことが、好都合である。更に、トラフィックが、レート又はバーストに違反しているために、後のポリシング段階を通るのを許可されない場合は、前のポリシング段階におけるトラフィックの許可に関連する、以前に行なわれた充填を取り消すことができる。その結果として、この技術は、１つ以上のポリシング段階を通じてトラフィックを許可又は拒否することを決定することによって後のデータトラフィックが影響を受けるのを確実になくすことができる。
【０００８】
１つの態様において、本発明は、データサービスの優先順位を認識してポリシングする方法を特徴とする。この方法は、データストリームにおける各パケットをポリサに送ることを含む。更に、この方法は、ポリサに関連付けられたパラメータに基づいて、ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定することを含む。更に、この方法は、ポリサによって条件付きで通された各パケットを、ポリサに関連付けられた分類器に送ることを含む。更に、この方法は、ポリサから受信した各パケットの優先順位値を、分類器によって決定することを含む。更に、この方法は、各優先順位を付けられたパケットを、分類器によってポリサに送ることを含む。更に、この方法は、優先順位値に基づいて、ポリサを通じて、各優先順位を付けられたパケットを許可するか又は拒絶するかを決定することを含む。
【０００９】
別の態様において、本発明は、データサービスの優先順位を認識してポリシングする方法を特徴とする。この方法は、データストリームにおける各パケットを優先順位ポリサに送ることを含む。更に、この方法は、優先順位ポリサに関連付けられたパラメータに基づいて、優先順位ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定することを含む。更に、この方法は、優先順位ポリサによって条件付きで通された各パケットに対する最小優先順位値を決定することを含む。更に、この方法は、優先順位ポリサによって条件付きで通された各パケットと、各パケットに関連付けられた最小優先順位値とを、優先順位ポリサに関連付けられた分類器に送ることを含む。更に、この方法は、優先順位ポリサから受信した各パケットの優先順位値を、分類器によって決定することを含む。更に、この方法は、各パケットに対する決定された優先順位値が、各パケットに関連付けられた最小優先順位値未満である場合は、分類器によって、各パケットを拒絶することを含む。更に、この方法は、各パケットに対する優先順位値が、各パケットに関連付けられた最小優先順位値以上である場合は、分類器によって、各パケットを優先順位ポリサに送ることを含む。更に、この方法は、決定された優先順位値に基づいて、優先順位ポリサを通じて、各パケットを許可するか又は拒絶するかを決定することを含む。
【００１０】
本発明は、別の態様において、Ｎが２よりも大きい場合に、Ｎ個のポリシング段階と分類器とを備えた、データサービスの優先順位を認識してポリシングする方法を特徴とする。この方法は、データストリームにおける各パケットを、ポリシング段階Ｋにおけるポリサに送ることを含む。更に、この方法は、ポリシング段階Ｋにおけるポリサに関連付けられたパラメータに基づいて、ポリシング段階Ｋにおけるポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定することを含む。更に、この方法は、ポリシング段階Ｋにおけるポリサによって条件付きで通された各パケットを、分類器に送ることを含む。更に、この方法は、ポリシング段階Ｋにおけるポリサから受信したパケットの優先順位値を、分類器によって決定することを含む。更に、この方法は、パケットと、パケットの優先順位値とを、分類器によって、ポリシング段階Ｋにおけるポリサに送ることを含む。更に、この方法は、分類器から受信した優先順位値に基づいて、ポリシング段階Ｋにおけるポリサを通じて、パケットを許可するか又は拒絶するかを決定することを含む。更に、この方法は、ポリシング段階Ｋにおけるポリサによって許可された各パケットと、パケットの優先順位値とを、後のポリシング段階Ｋ＋１におけるポリサに送ることを含む。更に、この方法は、Ｎ個のポリシング段階の各々に対して、ステップｂ−ｇを繰り返すことを含む。
【００１１】
本発明は、別の態様において、Ｎが２よりも大きい場合に、Ｎ個のポリシング段階を備えた、データサービスの優先順位を認識してポリシングする方法を特徴とする。この方法は、データストリームにおける各パケットを、ポリシング段階Ｋにおけるポリサに送ることを含む。更に、この方法は、ポリシング段階Ｋにおけるポリサに関連付けられたパラメータに基づいて、ポリシング段階Ｋにおけるポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定することを含む。更に、この方法は、ポリシング段階Ｋにおけるポリサによって条件付きで通された各パケットを、ポリシング段階Ｋにおける分類器に送ることを含む。更に、この方法は、ポリシング段階Ｋにおけるポリサから受信したパケットの優先順位値を、ポリシング段階Ｋにおける分類器によって決定することを含む。更に、この方法は、パケットと、パケットの優先順位値とを、ポリシング段階Ｋにおける分類器よって、ポリシング段階Ｋにおけるポリサに送ることを含む。更に、この方法は、ポリシング段階Ｋにおける分類器から受信したパケットの優先順位値に基づいて、パケットを許可するか又は拒絶するかを決定することを含む。更に、この方法は、ポリシング段階Ｋにおけるポリサによって許可された各パケットと、許可されたパケットの優先順位値とを、後のポリシング段階Ｋ＋１におけるポリサに送ることを含む。更に、この方法は、Ｎ個のポリシング段階の各々に対して、ステップｂ−ｇを繰り返すことを含む。
【００１２】
本発明は、データサービスの優先順位を認識してポリシングするために、コンピュータ読出し可能記憶媒体において実体的に具現されるコンピュータプログラム製品を特徴とする。コンピュータプログラム製品は、データ処理装置に、データストリームにおける各パケットをポリサに送らせるように実施可能な命令を含む。更に、コンピュータプログラム製品は、データ処理装置に、ポリサに関連付けられたパラメータに基づいて、ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定させるように実施可能な命令を含む。更に、コンピュータプログラム製品は、データ処理装置に、ポリサによって条件付きで通された各パケットを、ポリサに関連付けられた分類器に送らせるように実施可能な命令を含む。更に、コンピュータプログラム製品は、データ処理装置に、ポリサから受信した各パケットの優先順位値を、分類器によって決定させるように実施可能な命令を含む。更に、コンピュータプログラム製品は、データ処理装置に、各優先順位を付けられたパケットを、分類器によってポリサに送らせるように実施可能な命令を含む。更に、コンピュータプログラム製品は、データ処理装置に、優先順位値に基づいて、ポリサを通じて、各優先順位を付けられたパケットを許可するか又は拒絶するかを決定させるように実施可能な命令を含む。
【００１３】
本発明は、別の態様において、データサービスの優先順位を認識してポリシングするシステムを特徴とする。このシステムは、ポリサを具備しており、ポリサは、ポリサに関連付けられたパラメータに基づいて、ポリサを通じて、データストリームにおける各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定するように構成されている。更に、ポリサは、ポリサによって条件付きで通された各パケットを、ポリサに関連付けられた分類器に送るように構成されている。分類器は、ポリサから受信した各パケットの優先順位値を決定するように構成されている。更に、分類器は、各優先順位を付けられたパケットをポリサに送るように構成されている。更に、ポリサは、優先順位値に基づいて、ポリサを通じて、各優先順位を付けられたパケットを許可するか又は拒絶するかを決定するように構成されている。
【００１４】
本発明は、別の態様において、データサービスの優先順位を認識してポリシングするシステムを特徴とする。このシステムは、データストリームにおける各パケットをポリサに送る手段を含む。更に、このシステムは、ポリサに関連付けられたパラメータに基づいて、ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する手段を含む。更に、このシステムは、ポリサによって条件付きで通された各パケットを、ポリサに関連付けられた分類器に送る手段を含む。更に、このシステムは、ポリサから受信した各パケットの優先順位値を、分類器によって決定する手段を含む。更に、このシステムは、各優先順位を付けられたパケットを、分類器によってポリサに送る手段を含む。更に、このシステムは、優先順位値に基づいて、ポリサを通じて、各優先順位を付けられたパケットを許可するか又は拒絶するかを決定する手段を含む。
【００１５】
幾つかの実施形態では、上述の特徴の何れかは、次の特徴のうちの１つ以上を含むことができる。幾つかの実施形態では、ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定することは、ポリサを通じて、各パケットを条件付きで通すことと、条件付きで通されたパケットを分類器に送ること、とを含む。幾つかの実施形態では、ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定することは、ポリサを通じて、各パケットを拒絶するか又は条件付きで通すことと、条件付きで通されたパケットを分類器に送ること、とを含む。幾つかの実施形態では、ポリサから受信した各パケットに対する優先順位値を決定することは、パケットの１つ以上の属性に基づく。パケットの１つ以上の属性は、パケットに関連付けられたコンテンツデータ、又はパケットに関連付けられたメタデータ、のうちの少なくとも一方を含むことができる。パケットに関連付けられたコンテンツデータは、パケットの１つ以上のネットワークプロトコルヘッダに関連付けられたデータ、パケットの１つ以上のアプリケーションヘッダに関連付けられたデータ、又は、パケットのペイロードに関連付けられたデータ、のうちの少なくとも１つを含むことができる。パケットに関連付けられたメタデータは、パケット到着インターフェイス、アップストリームルータ識別、ＶＬＡＮ識別、又はアクセス媒体識別、のうちの少なくとも１つを含むことができる。
【００１６】
幾つかの実施形態では、この方法は、ポリサによって許可された各パケットに対して、ポリサを充填することと、ポリサを通じて分類器に条件付きで通された各パケットに対して、ポリサを充填しないこと、とを含む。幾つかの実施形態では、この方法は、ポリサによって許可された各パケットに対して、ポリサを充填することと、ポリサを通じて分類器に条件付きで通された各パケットに対して、ポリサを充填することと、パケットが分類器によってドロップされた場合に、前記ポリサを通じて分類器に条件付きで通された各パケットに対して、充填を取り消すこと、とを含む。幾つかの実施形態では、優先順位を付けられたパケットの優先順位値が、最小優先順位値よりも高い場合に、分類器は、優先順位を付けられたパケットの各々をポリサに送る。
【００１７】
幾つかの実施形態では、ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定するステップは、各パケットに関連付けられた任意の優先順位値に関係なく行なわれる。幾つかの実施形態では、ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定するステップは、最小優先順位値に基づいている。最小優先順位値は、ポリサがパケットを無条件で許可する最低優先順位値であり得る。
【００１８】
ここに記載されている実施形態のうちの何れかは、次の長所のうちの１つ以上を含むことができる。幾つかの実施形態では、パケットに優先順位を付けることに関連するかなりの処理コストを負担するのを避けるために、データストリームにおけるパケットは、最初に、優先順位に関係なくポリシングされる。幾つかの実施形態では、パケットを許可したポリシング段階による充填は取り消されるので、分類器によって又は後のポリシング段階によって拒絶されたパケットは、その後に到達するパケットの処理に影響を及ぼさない。
【図面の簡単な説明】
【００１９】
【図１】本発明の例示的な実施形態に従って、優先レベルの繰り延べ決定を用いて要求の優先順位をポリシングする、典型的なシステムのブロック図である。
【図２】本発明の例示的な実施形態に従って、優先レベルの繰り延べ決定を用いて要求の優先順位をポリシングする、典型的な方法のフローチャートである。
【図３】本発明の例示的な実施形態に従って、優先レベルの繰り延べ決定を用いて要求の優先順位をポリシングする、１つの分類器を備えた典型的な多段階システムのブロック図である。
【図４】本発明の例示的な実施形態に従って、優先レベルの繰り延べ決定を用いて要求の優先順位をポリシングする、段階ごとに異なる分類器を備えた典型的な多段階システムのブロック図である。
【発明を実施するための形態】
【００２０】
図１は、本発明の例示的な実施形態に従って、優先レベルの繰り延べ決定を用いて要求の優先順位をポリシングする典型的なシステム１００のブロック図である。システム１００は、入力データストリーム１０５と、優先順位ポリサ１１０と、分類器１２０と、ポリサのパケットドロップ１３０と、分類器のパケットドロップ１４０とを含んでいる。
【００２１】
幾つかの実施形態では、分類器１２０は、（プロセッサ又は他のコンピューティングデバイスに実装された）ハードウェア又はソフトウェアモジュールであり、優先順位ポリサ１１０から受信したパケットに割り当てる優先順位値を決定する。パケットに関連付けられたネットワークプロトコルヘッダのコンテンツと、パケットに関連付けられたアプリケーションデータと、パケットに関連付けられたメタデータ（例えば、入力インターフェイス、ＶＬＡＮ識別）と、のうちの１つ以上に基づいて、分類器１２０は優先順位値を決定する。例えば、パケットの発信元ＩＰアドレス、パケットの宛先ＩＰアドレス、パケットの発信元トランスポートポート、パケットの宛先トランスポートポート、パケットのプロトコルタイプ、パケットのＳＩＰメッセージタイプ、又はパケットに関連付けられたＳＩＰ ｃａｌｌｉｄ(例えば、呼セッションに関する識別子)に基づいて、分類器１２０は優先順位値を決定する。
【００２２】
幾つかの実施形態では、ポリサのパケットドロップ１３０は、優先順位ポリサ１１０とシステム１００の外部のデバイスとの間におけるデータリンクであって、ドロップされたパケットは、パケットドロップ１３０を介して送信される。別の実施形態では、ポリサのパケットドロップ１３０は、ドロップされたパケットを後の処理のために記憶する物理的なメモリ位置である。更に別の実施形態では、ポリサのパケットドロップ１３０は、ドロップされたパケットを破棄するデバイス又はモジュールである。
【００２３】
幾つかの実施形態では、分類器のパケットドロップ１４０は、分類器１２０とシステム１００の外部のデバイスとの間におけるデータリンクであって、ドロップされたパケットは、パケットドロップ１４０を介して送信される。別の実施形態では、分類器のパケットドロップ１４０は、ドロップされたパケットを後の処理のために記憶する物理的なメモリ位置である。更に別の実施形態では、分類器のパケットドロップ１４０は、ドロップされたパケットを破棄するデバイス又はモジュールである。
【００２４】
システム１００は、入力データストリーム１０５を受信する。例えば、通信会社又はサービスプロバイダに関連付けられたデバイスから、入力データストリーム１０５を受信することができる。一般に、入力データストリーム１０５は、一連のパケットから構成されている。パケットは、通信ネットワークを介して送信するためにフォーマットされたデータの単位である。一般に、パケットは、メタデータとペイロードとを含んでいる。パケットのメタデータは、パケットに関係する属性（例えば、着信情報、宛先情報、源情報、符号化プロトコル、又はパケット中の情報の構造）を含んでいる。ペイロードは、送信先のユーザデータを含んでいる。
【００２５】
図１において、コンポーネント１１０と、１２０と、１３０と、１４０との各々は、１つの物理的デバイス内に含まれているように表されているが、その代わりに、２つ以上の異なる物理的デバイスの中に、コンポーネントが存在していてもよい。コンポーネント及び／又はデバイスは、通信ネットワーク（示されていない）を介して通信することができる。通信ネットワークは、例えば、ローカルネットワーク（例えば、ＬＡＮ）又はワイドエリアネットワーク（例えば、インターネット）である。
【００２６】
図２は、本発明の例示的な実施形態に従って、例えば、図１のシステム１００を使用して、優先レベルの繰り延べ決定を用いて要求の優先順位をポリシングする例示的な方法のフローチャート２００である。入力データストリーム１０５におけるパケットを優先順位ポリサ１１０に送る（２０２）。入力データストリーム１０５におけるパケットは、優先順位ポリサ１１０によって受信されたときは、分類されていない（例えば、優先順位値を割り当てられない）。例えば、優先順位値を入力データストリーム１０５におけるパケットに割り当てると、パケットの更なる処理（例えば、構文解析）が必要になり得る。これは、システム１００による後の処理ステップで行なわれる。別の例では、入力データストリーム１０５におけるパケットに優先順位値を割り当てるコスト（システム１００によって要求される作業量）があまりにも高いので、システムは、入力データストリーム１０５における全てのパケットではなく、特定のパケットのみに対して、優先順位値を割り当てる。
【００２７】
優先順位ポリサ１１０は、優先順位ポリサ１１０に関連付けられたパラメータに基づいて、優先順位ポリサ１１０を通じて、各パケットを許可するか、拒絶するか、又は条件付で通すかを決定する（２０４）。入力データストリーム１０５から未分類のパケットを受信すると、優先順位ポリサ１１０は、パケットを無条件で許可できるかどうかを決定する。例えば、優先順位ポリサ１１０が複数の閾値のトークンバケットポリサである場合は、最低優先順位値に関連付けられた閾値（例えば、トークンバケットポリサにおける最高閾値）を超えた少なくとも１つのトークンが利用可能であるならば、優先順位ポリサ１１０は、パケットを無条件で許可する。この例では、優先順位ポリサ１１０は、任意の優先順位値に関係なく、ポリサ１１０を通じてパケットを許可するので、パケットは優先順位値を割り当てられない。優先順位ポリサ１１０は、無条件で許可されたパケット（例えば、許可されたパケット１５０）を、（例えば、システム１００の他のモジュールによって更に処理するために、他のデバイス又はシステムに送信するために）システム１００の外部に送る（２０６）。更に、この例では、パケットを無条件で許可したときに、優先順位ポリサ１１０は充填される（例えば、トークンは取り除かれる）。
【００２８】
パケットが無条件で許可されない場合は、優先順位ポリサ１１０は、優先順位ポリサ１１０を通じて、パケットを拒絶するか又は条件付きで通すかを決定する。例えば、優先順位ポリサ１１０が複数の閾値のトークンバケットポリサである場合は、最高優先順位値に関連付けられた閾値（例えば、トークンパケットポリサにおける最低閾値）を超えたトークンがないならば、優先順位ポリサ１１０はパケットを拒絶する。この例では、優先順位ポリサ１１０は、任意の優先順位値に関係なく、パケットを拒絶するので、パケットは優先順位値を割り当てられない。優先順位ポリサ１１０は、拒絶されたパケットを、優先順位ポリサ１１０に関連付けられたパケットドロップ１３０に送る（２０８）。更に、この例では、パケットを拒絶したときに、優先順位ポリサ１１０は充填されない（例えば、トークンは取り除かれない）。
【００２９】
優先順位ポリサ１１０が、パケットを無条件で許可せず、又は拒絶もしない場合は、優先順位ポリサ１１０は、優先順位ポリサ１１０を通じて、パケットを条件付きで通すことを決定する。例えば、優先順位ポリサ１１０が複数の閾値のトークンバケットポリサである場合は、優先順位ポリサ１１０は、ポリサ１１０が有している利用可能なトークンに対する最低優先順位値Ｐ（ｋ）（例えば、トークンバケットポリサにおける最高閾値）を決定する。パケットに関連付けられた優先順位値がＰ（ｋ）未満であると最終的に決定された場合は、優先順位ポリサ１１０は、パケットを拒絶すべきであることを示している状態コード（例えば、状態コード１１７）を返す。
【００３０】
幾つかの実施形態では、優先順位ポリサ１１０は、入力データストリーム１０５から受信したパケットを無条件で許可せず、又は拒絶もしない。その代わりに、優先順位ポリサ１１０は、入力データストリーム１０５から受信した各パケットを分類器１２０に条件付きで通す（例えば、条件付きで通されたパケット１１５）。分類器１２０は、パケットの優先順位値を決定して、優先順位を付けられたパケット（例えば、優先順位を付けられたパケット１２５）を優先順位ポリサ１１０に送る。次に、優先順位ポリサ１１０は、優先順位値に基づいて、優先順位を付けられたパケット１２５を許可するか又は拒絶するかを決定する。
【００３１】
幾つかの実施形態では、優先順位ポリサ１１０は、入力データストリーム１０５から受信したパケットを無条件で許可しない。その代わりに、優先順位ポリサ１１０は、（上述したように）入力データストリーム１０５から受信したパケットを拒絶するか、又は（後述するように）入力データストリーム１０５から受信したパケットを条件付きで通すかを決定する。
【００３２】
優先順位ポリサ１１０は、条件付きで通されたパケット１１５を、優先順位ポリサ１１０に関連付けられた分類器１２０に送る（２１０）。更に、優先順位ポリサ１１０は、最低優先順位値Ｐ（ｋ）を示している状態コード１１７を、分類器１２０に送る。幾つかの実施形態では、パケットを条件付きで通したときに、優先順位ポリサ１１０は充填されない（例えば、トークンは取り除かれない）。その理由は、システム１００を通じてパケットが許可される（例えば、許可されたパケット１５０）か又は拒絶されるかを決定するのに、システム１００がパケットをまだ十分に処理していないからである。条件付きで通されたパケットに対して充填する（例えば、トークンを取り除く）と、システム１００を通じて実際に許可されたパケット数との不一致を優先順位ポリサ１１０が生じさせることになって、全体的なポリシングレートが、予測レートよりも低くなるからである。
【００３３】
分類器１２０は、優先順位ポリサ１１０から受信した各パケットの優先順位値を決定する（２１２）。幾つかの実施形態では、パケットに関連付けられたネットワークプロトコルヘッダのコンテンツ、パケットに関連付けられたアプリケーションデータ、又はパケットに関連付けられたメタデータ、のうちの１つ以上に基づいて、分類器１２０は優先順位値を決定する。
【００３４】
分類器１２０は、パケットの決定された優先順位値と、優先順位ポリサ１１０から受信した最低優先順位値を示している状態コード１１７とを比較して、パケットを拒絶するか、又は決定された優先順位値と共にパケットを優先順位ポリサ１１０に戻すかを決定する。例えば、パケットの優先順位値がＰ（ｍ）であり、且つＰ（ｍ）がＰ（ｋ）未満であると、分類器１２０が決定した場合は、このパケットの優先順位値は、優先順位ポリサ１１０がパケットを許可する最低優先順位値を下回っているので、分類器１２０は、分類器１２０に関連付けられたパケットドロップ１４０に、このパケットを送る。別の例では、パケットの優先順位値がＰ（ｓ）であり、且つＰ（ｓ）がＰ（ｋ）以上であると、分類器１２０が決定した場合は、このパケットの優先順位値は、優先順位ポリサ１１０がパケットを許可する最低優先順位値を満たしているか又は上回っているので、分類器１２０は、優先順位ポリサ１１０に、このパケットを送る（２１４）。この例では、分類器１２０は、決定された優先順位値（例えば、Ｐ（ｓ））を、優先順位を付けられたパケット１２５と共に、優先順位ポリサ１１０に送る（２１４）。
【００３５】
優先順位を付けられたパケット１２５を分類器１２０から受信すると、優先順位ポリサ１１０は、優先順位を付けられたパケット１２５に関連付けられた優先順位値に基づいて、優先順位ポリサ１１０を通じて、優先順位を付けられたパケット１２５を許可するか又は拒絶するかを決定する（２１６）。例えば、優先順位ポリサ１１０が複数の閾値のトークンバケットポリサである場合は、優先順位ポリサ１１０は、優先順位を付けられたパケットに関連付けられた優先順位値と、少なくとも１つのトークンが利用可能である優先順位値（例えば、トークンバケットポリサにおける閾値）とを比較する。望ましい閾値を越えた少なくとも１つのトークンが利用可能である場合は、優先順位ポリサ１１０はそのパケットを許可して（例えば、許可されたパケット１５０）、優先順位ポリサ１１０は充填される（例えば、トークンは取り除かれる）。望ましい閾値を超えた少なくとも１つのトークンが利用可能でない場合は、優先順位ポリサ１１０は、パケットをパケットドロップ１３０に送ることによってパケットを拒絶し、優先順位ポリサ１１０は充填されない（例えば、トークンは取り除かれない）。
【００３６】
幾つかの実施形態では、優先順位ポリサ１１０が複数の閾値のトークンバケットポリサである場合は、パケットが優先順位ポリサ１１０によって条件付きで通された時と、分類器１２０がパケットに対する優先順位値を決定した後で、パケットが優先順位ポリサ１１０に戻された時との間において、優先順位ポリサ１１０において利用可能なトークンの数は減少している。例えば、分類器１２０がパケットの優先順位値(例えば、Ｐ（ｍ）)を決定して、この優先順位値(例えば、Ｐ（ｍ）)が、パケットが分類器１２０に条件付きで通された時に優先順位ポリサ１１０から受信する最低優先順位値(例えば、Ｐ（ｋ）)を示している状態コードを満たしているか又は上回っていると、結果として、分類器１２０は、パケットを優先順位値Ｐ（ｍ）と共に優先順位ポリサ１１０に戻す。その間に、優先順位ポリサ１１０は、パケットを無条件で許可して(例えば、許可されたパケット１５０)、利用可能なトークン数が、以前に決定された最低優先順位値Ｐ（ｋ）に関連付けられた閾値よりも、且つ決定された優先順位値Ｐ（ｍ）に関連付けられた閾値よりも少なくなっているかもしれない。優先順位ポリサ１１０は、優先順位を付けられたパケット(例えば、優先順位を付けられたパケット１２５)と、決定された優先順位値Ｐ（ｍ）とを受信すると、優先順位ポリサ１１０は、決定された優先順位値と、トークンが利用可能である最低優先順位値とを比較する(例えば、現在のＰ（ｇ）は、Ｐ（ｋ）及びＰ（ｍ）よりも低い)。優先順位ポリサ１１０は、Ｐ（ｇ）がＰ（ｍ）よりも低い優先順位値であり、且つ優先順位値Ｐ（ｍ）に関連付けられた閾値においてトークンが利用可能でないと決定する。分類器１２０がそのパケットを以前に許可したとしても、優先順位ポリサ１１０はそのパケットを拒絶する。
【００３７】
上述の技術と実施形態は、一段階のポリシング構造(例えば、優先順位ポリサ(例えば、優先順位ポリサ１１０)と、分類器(例えば、分類器１２０)とを使用して記載されている。しかしながら、幾つかの実施形態では、本発明は、任意の数のポリシング段階を使用して実施される。本発明の例示的な実施形態によると、図３は、優先レベルの繰り延べ決定を用いて要求の優先順位をポリシングする、１つの分類器３４０を備えた典型的な多段階システム３００のブロック図である。システム３００は、入力データストリーム１０５と、複数のポリシング段階(例えば、段階Ｋ３７０と、段階Ｋ＋１ ３８０と、段階Ｎ３９０)と、１つの分類器３４０とを含んでいる。各ポリシング段階３７０と、３８０と、３９０は、優先順位ポリサ(例えば、それぞれ、優先順位ポリサ３１０と、３２０と、３３０)を含んでいる。各パケットドロップ３１７と、３２７と、３３７は、優先順位ポリサ(例えば、それぞれ、優先順位ポリサ３１０と、３２０と、３３０)に関連付けられている。パケットドロップ３４７は、分類器３４０に関連付けられている。
【００３８】
幾つかの実施形態では、入力データストリーム１０５からのパケットは、システム３００がパケットの分類を決定する前に、各ポリシング段階３７０と、３８０と、３９０とに進む。幾つかの実施形態では、ポリシング段階３７０と、３８０と、３９０は各々、その段階においてポリシングされるパケットの異なるサブセットに関連付けられている。例えば、第１のポリシング段階(例えば、段階Ｋ３７０)は、集合のパケットをポリシングすることができ、後のポリシング段階(例えば、段階Ｋ＋１ ３８０)は、ＳＩＰパケット(例えば、集合のパケットのサブセット)をポリシングすることができ、更に後のポリシング段階(例えば、段階Ｎ３９０)は、ＳＩＰ ＩＮＶＩＴＥパケット(例えば、ＳＩＰパケットのサブセット)をポリシングすることができる。
【００３９】
１つの実施形態では、ポリシング段階Ｋ３７０における優先順位ポリサ３１０は、入力データストリーム１０５を受信する。入力データストリーム１０５は、未分類のパケットを含んでいる。優先順位ポリサ３１０は、優先順位ポリサ３１０に関連付けられたパラメータに基づいて、ポリシング段階Ｋ３７０における優先順位ポリサ３１０を通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する。入力データストリーム１０５から未分類のパケットを受信すると、優先順位ポリサ３１０は、パケットを無条件で許可できるかどうかを決定する。例えば、優先順位ポリサ３１０が複数の閾値のトークンバケットポリサである場合は、最低優先順位値に関連付けられた閾値(例えば、トークンバケットポリサにおける最高閾値)を超えた少なくとも１つのトークンが利用可能であるならば、優先順位ポリサ３１０は、パケットを無条件で許可する。この例では、優先順位ポリサ３１０は、任意の優先順位値に関係なく、ポリサ３１０を通じてパケットを許可するので、パケットは優先順位値を割り当てられない。優先順位ポリサ３１０は、無条件で許可されたパケットを、ポリシング段階Ｋ＋１ ３８０における優先順位ポリサ３２０に送る。更に、この例では、パケットを無条件で許可したときに、優先順位ポリサ３１０は充填される(例えば、トークンは取り除かれる)。
【００４０】
パケットが無条件で許可されない場合は、優先順位ポリサ３１０は、優先順位ポリサ３１０を通じて、パケットを拒絶するか又は条件付きで通すかを決定する。例えば、優先順位ポリサ３１０が複数の閾値のトークンバケットポリサである場合は、最高優先順位値に関連付けられた閾値(例えば、トークンバケットポリサにおける最低閾値)を超えたトークンがないならば、優先順位ポリサ３１０はパケットを拒絶する。この例では、優先順位ポリサ３１０は、任意の優先順位値に関係なく、パケットを拒絶するので、パケットは優先順位値を割り当てられない。優先順位ポリサ３１０は、拒絶されたパケットを、優先順位ポリサ３１０に関連付けられたパケットドロップ３１７に送る。更に、この例では、パケットを拒絶したときに、優先順位ポリサ３１０は充填されない(例えば、トークンは取り除かれない)。
【００４１】
優先順位ポリサ３１０が、パケットを無条件で許可せず、又は拒絶もしない場合は、優先順位ポリサ３１０は、優先順位ポリサ３１０を通じて、パケットを条件付きで通すことを決定する。例えば、優先順位ポリサ３１０が複数の閾値のトークンバケットポリサである場合は、優先順位ポリサ３１０は、ポリサ３１０が有している利用可能なトークンに対する最低優先順位値Ｐ（ｋ）(例えば、トークンバケットポリサにおける最高閾値)を決定する。パケットに関連付けられた優先順位値がＰ（ｋ）未満であると最終的に決定された場合は、優先順位ポリサ３１０は、パケットを拒絶すべきであることを示している状態コード３１３を返す。
【００４２】
優先順位ポリサ３１０は、条件付きで通されたパケット３１５を、分類器３４０に送る。更に、優先順位ポリサ３１０は、最低優先順位値Ｐ（ｋ）を示している状態コード３１３を、分類器３４０に送る。分類器３４０は、ポリシング段階Ｋ３７０における優先順位ポリサ３１０から受信した各パケットの優先順位値を決定する。幾つかの実施形態では、パケットに関連付けられたネットワークプロトコルヘッダのコンテンツ、パケットに関連付けられたアプリケーションデータ、又はパケットに関連付けられたメタデータ、のうちの１つ以上に基づいて、分類器３４０は優先順位値を決定する。
【００４３】
分類器３４０は、パケットの決定された優先順位値と、優先順位ポリサ３１０から受信した最低優先順位値を示している状態コード３１３とを比較して、パケットを拒絶するか、又は決定された優先順位値と共にパケットを優先順位ポリサ３１０に戻すかを決定する。例えば、パケットの優先順位値がＰ（ｍ）であり、且つＰ（ｍ）がＰ（ｋ）未満であると、分類器３４０が決定した場合は、このパケットの優先順位値は、優先順位ポリサ３１０がパケットを許可する最低優先順位値を下回っているので、分類器３４０は、分類器３４０に関連付けられたパケットドロップ３４７に、このパケットを送る。
【００４４】
別の例では、パケットの優先順位値がＰ（ｓ）であり、且つＰ（ｓ）がＰ（ｋ）以上であると、分類器３４０が決定した場合は、このパケットの優先順位値は、優先順位ポリサ３１０がパケットを許可する最低優先順位値を満たしているか又は上回っているので、分類器３４０は、このパケットを優先順位ポリサ３１０に送る。この例では、分類器３４０は、決定された優先順位値(例えば、Ｐ（ｓ）)を、優先順位を付けられたパケットと共に、優先順位ポリサ３１０に送る。
【００４５】
優先順位を付けられたパケット(例えば、優先順位を付けられたパケット３５０)を分類器３４０から受信すると、優先順位ポリサ３１０は、優先順位を付けられたパケット３５０に関連付けられた優先順位値に基づいて、優先順位ポリサ３１０を通じて、優先順位を付けられたパケット３５０を許可するか又は拒絶するかを決定する。例えば、優先順位ポリサ３１０が複数の閾値のトークンバケットポリサである場合は、優先順位ポリサ３１０は、優先順位を付けられたパケット３５０に関連付けられた優先順位値と、少なくとも１つのトークンが利用可能である優先順位値(例えば、トークンバケットポリサにおける閾値)とを比較する。望ましい閾値を越えた少なくとも１つのトークンが利用可能である場合は、優先順位ポリサ３１０は、後のポリシング段階(例えば、ポリシング段階Ｋ＋１ ３８０)における優先順位ポリサ３２０に、パケットを送り、優先順位ポリサ３１０は充填される(例えば、トークンは取り除かれる)。望ましい閾値を越えた少なくとも１つのトークンが利用可能でない場合は、優先順位ポリサ３１０は、パケットをパケットドロップ３１７に送ることによってパケットを拒絶し、優先順位ポリサ３１０は充填されない(例えば、トークンは取り除かれない)。
【００４６】
ポリシング段階Ｋ３７０における優先順位ポリサ３１０によって許可されたパケットを受信すると、ポリシング段階Ｋ＋１ ３８０における優先順位ポリサ３２０は、優先順位ポリサ３２０に関連付けられたパラメータに基づいて、優先順位ポリサ３２０を通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する。優先順位ポリサ３２０は、パケットを無条件で許可できるかどうかを決定する。例えば、優先順位ポリサ３２０が複数の閾値のトークンバケットポリサである場合は、最低優先順位値に関連付けられた閾値(例えば、トークンバケットポリサにおける最高閾値)を越えた少なくとも１つのトークンが利用可能であるならば、優先順位ポリサ３２０は、パケットを無条件で許可する。この例では、優先順位ポリサ３２０は、任意の優先順位値に関係なく、ポリサ３２０を通じてパケットを許可するので、パケットは優先順位値を割り当てられない。優先順位ポリサ３２０は、無条件で許可されたパケットを、後のポリシング段階(示されていない)における優先順位ポリサに送る。更に、この例では、パケットを無条件で許可したときに、優先順位ポリサ３２０は充填される(例えば、トークンは取り除かれる)。
【００４７】
パケットが無条件で許可されない場合は、優先順位ポリサ３２０は、優先順位ポリサ３２０を通じて、パケットを拒絶するか又は条件付きで通すかを決定する。例えば、優先順位ポリサ３２０が複数の閾値のトークンバケットポリサである場合は、最高優先順位値に関連付けられた閾値(例えば、トークンバケットポリサにおける最低閾値)を越えたトークンがないならば、優先順位ポリサ３２０はパケットを拒絶する。この例では、優先順位ポリサ３２０は、任意の優先順位値に関係なく、パケットを拒絶するので、パケットは優先順位値を割り当てられない。優先順位ポリサ３２０は、拒絶されたパケットを、優先順位ポリサ３２０に関連付けられたパケットドロップ３２７に送る。更に、この例では、パケットを拒絶したときに、優先順位ポリサ３２０は充填されない(例えば、トークンは取り除かれない)。
【００４８】
ポリシング段階Ｋ＋１ ３８０における優先順位ポリサ３２０が、パケットを拒絶する場合は、優先順位ポリサ３２０は、ポリシング段階Ｋ３７０における優先順位ポリサ３１０に、取り消しコマンド３１９を送る。取り消しコマンド３１９を受信すると、優先順位ポリサ３１０は、ドロップされたパケットを許可することによって優先順位ポリサ３１０が以前に適用した充填を取り消す(例えば、トークン計数を１ずつインクリメントする)。優先順位ポリサ３１０の状態(例えば、トークン計数)は、優先順位ポリサ３１０を通じて通されなかったドロップされたパケットを優先順位ポリサ３１０が有しているのと同等の状態に更新される。取り消しコマンド３１９を受信して充填を取り消さないならば、ポリシング段階(例えば、ポリシング段階Ｋ３７０と、ポリシング段階Ｋ＋１ ３８０と、ポリシング段階Ｎ３９０)の全てを通過していないパケットに対して、優先順位ポリサ３１０は正しく充填されないかもしれない。
【００４９】
優先順位ポリサ３２０が、パケットを無条件で許可せず、又は拒絶もしない場合は、優先順位ポリサ３２０は、優先順位ポリサ３２０を通じて、パケットを条件付きで通すことを決定する。例えば、優先順位ポリサ３２０が複数の閾値のトークンバケットポリサである場合は、優先順位ポリサ３２０は、ポリサ３２０が有している利用可能なトークンに対する最低優先順位値Ｐ（ｋ）(例えば、トークンバケットポリサにおける最高閾値)を決定する。パケットに関連付けられた優先順位値がＰ（ｋ）未満であると最終的に決定された場合は、優先順位ポリサ３２０は、パケットを拒絶すべきであることを示している状態コード３２３を返す。
【００５０】
優先順位ポリサ３２０は、条件付きで通されたパケット３２５を、分類器３４０に送る。更に、優先順位ポリサ３２０は、最低優先順位値Ｐ（ｋ）を示している状態コード３２３を、分類器３４０に送る。分類器３４０は、ポリシング段階Ｋ＋１ ３８０における優先順位ポリサ３２０から受信した各パケットの優先順位値を決定する。幾つかの実施形態では、パケットに関連付けられたネットワークプロトコルヘッダのコンテンツ、パケットに関連付けられたアプリケーションデータ、又はパケットに関連付けられたメタデータ、のうちの１つ以上に基づいて、分類器３４０は優先順位値を決定する。
【００５１】
分類器３４０は、パケットの決定された優先順位値と、優先順位ポリサ３２０から受信した最低優先順位値を示している状態コード３２３とを比較して、パケットを拒絶するか、又は決定された優先順位値と共にパケットを優先順位ポリサ３１０に戻すかを決定する。例えば、パケットの優先順位値がＰ（ｍ）であり、且つＰ（ｍ）がＰ（ｋ）未満であると、分類器３４０が決定した場合は、このパケットの優先順位値は、優先順位ポリサ３２０がパケットを許可する最低優先順位値を下回っているので、分類器３４０は、分類器３４０に関連付けられたパケットドロップ３４７に、このパケットを送る。分類器３４０が、ポリシング段階Ｋ＋１ ３８０における優先順位ポリサ３２０から受信したパケットを拒絶する場合は、分類器３４０は、ポリシング段階Ｋ３７０における優先順位ポリサ３１０に、取り消しコマンド３１９を送る。取り消しコマンド３１９を受信すると、優先順位ポリサ３１０は、ドロップされたパケットを許可することによって優先順位ポリサ３１０が以前に適用した充填を取り消す(例えば、トークン計数を１ずつインクリメントする)。優先順位ポリサ３１０の状態(例えば、トークン計数)は、優先順位ポリサ３１０を通じて通されなかったドロップされたパケットを優先順位ポリサ３１０が有しているのと同等の状態に更新される。
【００５２】
別の例では、パケットの優先順位値がＰ（ｓ）であり、且つＰ（ｓ）がＰ（ｋ）以上であると、分類器３４０が決定した場合は、このパケットの優先順位値は、優先順位ポリサ３２０がパケットを許可する最低優先順位値を満たしているか又は上回っているので、分類器３４０は、このパケット(例えば、優先順位を付けられたパケット３５３)を優先順位ポリサ３２０に送る。この例では、分類器３４０は、決定された優先順位値(例えば、Ｐ（ｓ）)を、優先順位を付けられたパケット３５３と共に、優先順位ポリサ３１０に送る。
【００５３】
優先順位を付けられたパケット３５３を分類器３４０から受信すると、優先順位ポリサ３２０は、優先順位を付けられたパケット３５３に関連付けられた優先順位値に基づいて、優先順位ポリサ３２０を通じて、優先順位を付けられたパケットを許可するか又は拒絶するかを決定する。例えば、優先順位ポリサ３２０が複数の閾値のトークンバケットポリサである場合は、優先順位ポリサ３２０は、優先順位を付けられたパケットに関連付けられた優先順位値と、少なくとも１つのトークンが利用可能な優先順位値(例えば、トークンバケットポリサにおける閾値)とを比較する。望ましい閾値を越えた少なくとも１つのトークンが利用可能である場合は、優先順位ポリサ３２０は、後のポリシング段階における優先順位ポリサ(示されていない)に、パケットを送り、優先順位ポリサ３２０は充填される(例えば、トークンは取り除かれる)。望ましい閾値を越えた少なくとも１つのトークンが利用可能でない場合は、優先順位ポリサ３３０は、パケットをパケットドロップ３２７に送ることによってパケットを拒絶し、優先順位ポリサ３２０は充填されない(例えば、トークンは取り除かれない)。更に、優先順位ポリサ３２０は、ポリシング段階Ｋ３７０における優先順位ポリサ３１０に、取り消しコマンド３１９を送る。
【００５４】
ポリシング段階Ｎ３９０における優先順位ポリサ３３０は、前のポリシング段階の全て(ポリシング段階Ｋ３７０と、ポリシング段階Ｋ＋１ ３８０とを含む)によって許可されたパケットを受信する。優先順位ポリサ３３０は、優先順位ポリサ３３０に関連付けられたパラメータに基づいて、ポリシング段階Ｎ３９０における優先順位ポリサ３３０を通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する。前のポリシング段階の全てによって許可されたパケットを受信すると、優先順位ポリサ３３０は、パケットを無条件で許可できるかどうかを決定する。例えば、優先順位ポリサ３３０が複数の閾値のトークンバケットポリサである場合は、最低優先順位値に関連付けられた閾値(例えば、トークンバケットポリサにおける最高閾値)を越えた少なくとも１つのトークンが利用可能であるならば、優先順位ポリサ３３０はパケットを無条件で許可する。この例では、優先順位ポリサ３３０は、任意の優先順位値に関係なく、ポリサ３３０を通じてパケットを許可するので、パケットは優先順位値を割り当てられない。優先順位ポリサ３３０は、無条件で許可されたパケットを、システム３００の外部に送る。更に、この例では、パケットを無条件で許可したときに、優先順位ポリサ３３０は充填される(例えば、トークンは取り除かれる)。
【００５５】
パケットが無条件で許可されない場合は、優先順位ポリサ３３０は、優先順位ポリサ３３０を通じて、パケットを拒絶するか又は条件付きで通すかを決定する。例えば、優先順位ポリサ３３０が複数の閾値のトークンバケットポリサである場合は、最高優先順位値に関連付けられた閾値(例えば、トークンバケットポリサにおける最低閾値)を越えたトークンがないならば、優先順位ポリサ３３０はパケットを拒絶する。この例では、優先順位ポリサ３３０は、任意の優先順位値に関係なく、パケットを拒絶するので、パケットは優先順位値を割り当てられない。優先順位ポリサ３３０は、拒絶されたパケットを、優先順位ポリサ３３０に関連付けられたパケットドロップ３３７に送る。更に、この例では、パケットを拒絶したときに、優先順位ポリサ３３０は充填されない(例えば、トークンは取り除かれない)。
【００５６】
ポリシング段階Ｎ３９０における優先順位ポリサ３３０が、パケットを拒絶する場合は、優先順位ポリサ３３０は、前のポリシング段階の各々(例えば、ポリシング段階Ｋ３７０、ポリシング段階Ｋ＋１ ３８０)における優先順位ポリサ(例えば、優先順位ポリサ３１０、優先順位ポリサ３２０)に、取り消しコマンド３１９を送る。取り消しコマンド３１９を受信すると、前のポリシング段階の各々(例えば、ポリシング段階Ｋ３７０、ポリシング段階Ｋ＋１ ３８０)における優先順位ポリサ(例えば、優先順位ポリサ３１０、優先順位ポリサ３２０)は、ドロップされたパケットを許可することによってその優先順位ポリサが以前に適用した充填を取り消す(例えば、トークン計数を１ずつインクリメントする)。優先順位ポリサ(例えば、優先順位ポリサ３１０、優先順位ポリサ３２０)の状態(例えば、トークン計数)は、優先順位ポリサ(例えば、優先順位ポリサ３１０、優先順位ポリサ３２０)を通じて通されなかったドロップされたパケットをその優先順位ポリサが有しているのと同等の状態に更新される。
【００５７】
優先順位ポリサ３３０がパケットを無条件で許可せず、又は拒絶もしない場合は、優先順位ポリサ３３０は、優先順位ポリサ３３０を通じて、パケットを条件付きで通すことを決定する。例えば、優先順位ポリサ３３０が複数の閾値のトークンバケットポリサである場合は、優先順位ポリサ３３０は、ポリサ３３０が有している利用可能なトークンに対する最低優先順位値Ｐ（ｋ）(例えば、トークンバケットポリサにおける最高閾値)を決定する。パケットに関連付けられた優先順位値がＰ（ｋ）未満であると最終的に決定された場合は、優先順位ポリサ３３０は、パケットを拒絶すべきであることを示している状態コード３３３を返す。
【００５８】
優先順位ポリサ３３０は、条件付きで通されたパケット３３５を、分類器３４０に送る。更に、優先順位ポリサ３３０は、最低優先順位値Ｐ（ｋ）を示している状態コード３３３を、分類器３４０に送る。分類器３４０は、ポリシング段階Ｎ３９０における優先順位ポリサ３３０から受信した各パケットの優先順位値を決定する。幾つかの実施形態では、パケットに関連付けられたネットワークプロトコルヘッダのコンテンツ、パケットに関連付けられたアプリケーションデータ、又はパケットに関連付けられたメタデータ、のうちの１つ以上に基づいて、分類器３４０は優先順位値を決定する。
【００５９】
分類器３４０は、パケットの決定された優先順位値と、優先順位ポリサ３３０から受信した最低優先順位値を示している状態コード３３３とを比較して、パケットを拒絶するか、又は決定された優先順位値と共にパケットを優先順位ポリサ３３０に戻すかを決定する。例えば、パケットの優先順位値がＰ（ｍ）であり、且つＰ（ｍ）がＰ（ｋ）未満であると、分類器３４０が決定した場合は、このパケットの優先順位値は、優先順位ポリサ３３０がパケットを許可する最低優先順位値を下回っているので、分類器３４０は、分類器３４０に関連付けられたパケットドロップ３４７に、このパケットを送る。
【００６０】
分類器３４０が、ポリシング段階Ｎ３９０における優先順位ポリサ３３０から受信したパケットを拒絶する場合は、分類器３４０は、前のポリシング段階の各々(例えば、ポリシング段階Ｋ３７０、ポリシング段階Ｋ＋１ ３８０)における優先順位ポリサ(例えば、優先順位ポリサ３１０、優先順位ポリサ３２０)に、取り消しコマンド３１９を送る。取り消しコマンド３１９を受信すると、優先順位ポリサの各々(例えば、優先順位ポリサ３１０、３２０)は、ドロップされたパケットを許可することによってその優先順位ポリサが以前に適用した充填を取り消して(例えば、トークン計数を１ずつインクリメントして)、優先順位ポリサ(例えば、優先順位ポリサ３１０、優先順位ポリサ３２０)の状態(例えば、トークン計数)を、優先順位ポリサ(例えば、優先順位ポリサ３１０、優先順位ポリサ３２０）を通じて通されなかったドロップされたパケットをその優先順位ポリサが有しているのと同等の状態に更新する。
【００６１】
別の例では、パケットの優先順位値がＰ（ｓ）であり、且つＰ（ｓ）がＰ（ｋ）以上であると、分類器３４０が決定した場合は、このパケットの優先順位値は、優先順位ポリサ３３０がパケットを許可する最低優先順位値を満たしているか又は上回っているので、分類器３４０は、このパケット(例えば、優先順位を付けられたパケット３５５)を優先順位ポリサ３３０に送る。この例では、分類器３４０は、決定された優先順位値(例えば、Ｐ（ｓ）)を、優先順位を付けられたパケット３５５と共に、優先順位ポリサ３３０に送る。
【００６２】
優先順位を付けられたパケット３５５を分類器３４０から受信すると、優先順位ポリサ３３０は、優先順位を付けられたパケット３５５に関連付けられた優先順位値に基づいて、優先順位ポリサ３３０を通じて、優先順位を付けられたパケット３５５を許可するか又は拒絶するかを決定する。例えば、優先順位ポリサ３３０が複数の閾値のトークンバケットポリサである場合は、優先順位ポリサ３３０は、優先順位を付けられたパケットに関連付けられた優先順位値と、少なくとも１つのトークンが利用可能である優先順位値(例えば、トークンバケットポリサにおける閾値)とを比較する。望ましい閾値を越えた少なくとも１つのトークンが利用可能である場合は、優先順位ポリサ３３０は、そのパケット(例えば、許可されたパケット３６０)をシステム３００の外部に送り、パケットを無条件で許可したときに、優先順位ポリサ３３０は充填される(例えば、トークンは取り除かれる)。望ましい閾値を越えた少なくとも１つのトークンが利用可能でない場合は、優先順位ポリサ３３０は、パケットをパケットドロップ３３７に送ることによってパケットを拒絶し、優先順位ポリサ３３０は充填されない(例えば、トークンは取り除かれない)。更に、優先順位ポリサ３３０は、前のポリシング段階の各々(例えば、ポリシング段階Ｋ３７０、ポリシング段階Ｋ＋１ ３８０)における優先順位ポリサ(例えば、優先順位ポリサ３１０、優先順位ポリサ３２０)に、取り消しコマンド３１９を送る。
【００６３】
図４は、本発明の例示的な実施形態に従って、優先順位の繰り延べ決定を用いて要求の優先順位をポリシングする、段階ごとに異なる分類器(例えば、分類器４１５と、４２５と、４３５)を備えた典型的な多段階システム４００のブロック図である。システム４００は、入力データストリーム１０５と、複数のポリシング段階(例えば、段階Ｋ４７０と、段階Ｋ＋１ ４８０と、段階Ｎ４９０)とを含んでいる。ポリシング段階４７０、４８０、４９０は、優先順位ポリサ(例えば、それぞれ、優先順位ポリサ４１０と、４２０と、４３０)と、分類器(例えば、それぞれ、分類器４１５と、４２５と、４３５)とを含んでいる。パケットドロップ４１７と、４２７と、４３７は各々、優先順位ポリサ(例えば、それぞれ優先順位ポリサ４１０と、４２０と、４３０)に関連付けられている。パケットドロップ４１６と、４２６と、４３６は各々、分類器(例えば、それぞれ、分類器４１５と、４２５と、４３５)に関連付けられている。
【００６４】
１つの実施形態では、ポリシング段階Ｋ ４７０における優先順位ポリサ４１０は、入力データストリーム１０５を受信する。入力データストリーム１０５は、未分類のパケットを含んでいる。優先順位ポリサ４１０は、優先順位ポリサ４１０に関連付けられたパラメータに基づいて、ポリシング段階Ｋ４７０における優先順位ポリサ４１０を通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する。入力データストリーム１０５から未分類のパケットを受信すると、優先順位ポリサ４１０は、パケットを無条件で許可できるかどうかを決定する。例えば、優先順位ポリサ４１０が複数の閾値のトークンバケットポリサである場合は、最低優先順位値に関連付けられた閾値(例えば、トークンバケットポリサにおける最高閾値)を越えた少なくとも１つのトークンが利用可能であるならば、優先順位ポリサ４１０はパケットを無条件で許可する。この例では、優先順位ポリサ４１０は、任意の優先順位値に関係なく、ポリサ４１０を通じてパケットを許可するので、パケットは優先順位値を割り当てられない。優先順位ポリサ４１０は、無条件で許可されたパケットを、ポリシング段階Ｋ＋１ ４８０における優先順位ポリサ４２０に送る。更に、この例では、無条件でパケットを許可したときに、優先順位ポリサ４１０は充填される(例えば、トークンは取り除かれる)。
【００６５】
パケットが無条件で許可されない場合は、優先順位ポリサ４１０は、優先順位ポリサ４１０を通じて、パケットを拒絶するか又は条件付きで通すかを決定する。例えば、優先順位ポリサ４１０が複数の閾値のトークンバケットポリサである場合は、最高優先順位値に関連付けられた閾値(例えば、トークンバケットポリサにおける最低閾値)を超えたトークンがないならば、優先順位ポリサ４１０はパケットを拒絶する。この例では、優先順位ポリサ４１０は、任意の優先順位値に関係なく、パケットを拒絶するので、パケットは優先順位値を割り当てられない。優先順位ポリサ４１０は、拒絶されたパケットを、優先順位ポリサ４１０に関連付けられたパケットドロップ４１７に送る。更に、この例では、パケットを拒絶したときに、優先順位ポリサ４１０は充填されない(例えば、トークンは取り除かれない)。
【００６６】
優先順位ポリサ４１０が、パケットを無条件で許可せず、又は拒絶もしない場合は、優先順位ポリサ４１０は、優先順位ポリサ４１０を通じて、パケットを条件付きで通すことを決定する。例えば、優先順位ポリサ４１０が複数の閾値のトークンバケットポリサである場合は、優先順位ポリサ４１０は、ポリサ４１０が有している利用可能なトークンに対する最低優先順位値Ｐ（ｋ）(例えば、トークンバケットポリサにおける最高閾値)を決定する。パケットに関連付けられた優先順位値がＰ（ｋ）未満であると最終的に決定された場合は、優先順位ポリサ４１０は、パケットを拒絶すべきであることを示している状態コード４１１を返す。
【００６７】
優先順位ポリサ４１０は、条件付きで通されたパケット４１３を、優先順位ポリサ４１０に関連付けられた分類器４１５に送る。更に、優先順位ポリサ４１０は、最低優先順位値Ｐ（ｋ）を示している状態コード４１１を、分類器４１５に送る。分類器４１５は、ポリシング段階Ｋ４７０における優先順位ポリサ４１０から受信した各パケットの優先順位値(例えば、Ｐ（ｓ）)を決定する。幾つかの実施形態では、パケットに関連付けられたネットワークプロトコルヘッダのコンテンツ、パケットに関連付けられたアプリケーションデータ、又はパケットに関連付けられたメタデータ、のうちの少なくとも１つに基づいて、分類器４１５は優先順位値を決定する。
【００６８】
分類器４１５は、パケットの決定された優先順位値と、優先順位ポリサ４１０から受信した最低優先順位値を示している状態コード４１１とを比較して、パケットを拒絶するか、又は決定された優先順位値と共にパケットを優先順位ポリサ４１０に戻すかを決定する。例えば、パケットの優先順位値がＰ（ｍ）であり、且つＰ（ｍ）がＰ（ｋ）未満であると、分類器４１５が決定した場合は、このパケットの優先順位値は、優先順位ポリサ４１０がパケットを許可する最低優先順位値を下回っているので、分類器４１５は、分類器４１５に関連付けられたパケットドロップ４１６に、このパケットを送る。
【００６９】
パケットを優先順位ポリサ４１０に戻すべきであると分類器４１５が決定した場合は、分類器４１５は、優先順位を付けられたパケット４１８を、決定された優先順位値Ｐ（ｓ）と共に、ポリシング段階Ｋ４７０における優先順位ポリサ４１０に送る。優先順位を付けられたパケット４１８を分類器４１５から受信すると、優先順位ポリサ４１０は、優先順位を付けられたパケット４１８に関連付けられた優先順位値に基づいて、優先順位ポリサ４１０を通じて、優先順位を付けられたパケット４１８を許可するか又は拒絶するかを決定する。例えば、優先順位ポリサ４１０が複数の閾値のトークンバケットポリサである場合は、優先順位ポリサ４１０は、優先順位を付けられたパケット４１８に関連付けられた優先順位値と、少なくとも１つのトークンが利用可能である優先順位値(例えば、トークンバケットポリサにおける閾値)とを比較する。望ましい閾値を越えた少なくとも１つのトークンが利用可能である場合は、優先順位ポリサ４１０は、後のポリシング段階(例えばポリシング段階Ｋ＋１ ４８０)における優先順位ポリサ４２０に、パケットを送り、優先順位ポリサ４１０は充填される(例えば、トークンは取り除かれる)。望ましい閾値を越えた少なくとも１つのトークンが利用可能でない場合は、優先順位ポリサ４１０は、パケットをパケットドロップ４１７に送ることによってパケットを拒絶し、優先順位ポリサ４１０は充填されない(例えば、トークンは取り除かれない)。
【００７０】
後のポリシング段階は各々、それぞれのポリシング段階における優先順位ポリサに関連付けられたパラメータに基づいて、それぞれのポリシング段階における優先順位ポリサを通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する。次の例は、後のポリシング段階としてポリシング段階Ｋ＋１ ４８０を使用するが、最終的なポリシング段階(例えば、ポリシング段階Ｎ４９０)よりも前の各それぞれのポリシング段階における処置は一貫している。優先順位ポリサ４２０は、パケットを無条件で許可できるかどうかを決定して、無条件で許可されたパケットを、後のポリシング段階(示されていない)における優先順位ポリサに送る。更に、この例では、パケットを無条件で許可したときに、優先順位ポリサ４２０は充填される(例えば、トークンは取り除かれる)。
【００７１】
パケットが無条件で許可されない場合は、優先順位ポリサ４２０は、優先順位ポリサ４２０を通じて、パケットを拒絶するか又は条件付きで通すかを決定する。優先順位ポリサ４２０は、拒絶されたパケットを、優先順位ポリサ４２０に関連付けられたパケットドロップ４２７に送る。更に、この例では、パケットを拒絶したときに、優先順位ポリサ４２０は充填されない(例えば、トークンは取り除かれない)。
【００７２】
ポリシング段階Ｋ＋１ ４８０における優先順位ポリサ４２０が、パケットを拒絶する場合は、優先順位ポリサ４２０は、取り消しコマンド４１９を、ポリシング段階Ｋ４７０における優先順位ポリサ４１０に送る。取り消しコマンド４１９を受信すると、ポリシング段階Ｋ４７０における優先順位ポリサ４１０は、ドロップされたパケットを許可することによって優先順位ポリサ４１０が以前に適用した充填を取り消す(例えば、トークン計数を１ずつインクリメントする)。優先順位ポリサ４１０の状態(例えば、トークン計数)は、優先順位ポリサ４１０を通じて通されなかったドロップされたパケットを優先順位ポリサ４１０が有しているのと同等の状態に更新される。
【００７３】
優先順位ポリサ４２０が、パケットを無条件で許可せず、又は拒絶もしない場合は、優先順位ポリサ４２０は、優先順位ポリサ４２０を通じて、パケットを条件付きで通すことを決定する。優先順位ポリサ４２０は、条件付きで通されたパケット４２３を、優先順位ポリサ４２０に関連付けられた分類器４２５に送る。更に、優先順位ポリサ４２０は、最低優先順位値を示している状態コード４２１を、分類器４２５に送る。分類器４２５は、ポリシング段階Ｋ＋１ ４８０における優先順位ポリサ４２０から受信した各パケットの優先順位値を決定する。幾つかの実施形態では、パケットに関連付けられたネットワークプロトコルヘッダのコンテンツ、パケットに関連付けられたアプリケーションデータ、又はパケットに関連付けられたメタデータ、のうちの１つ以上に基づいて、分類器４２５は優先順位値を決定する。
【００７４】
分類器４２５は、パケットの決定された優先順位値と、優先順位ポリサ４２０から受信した最低優先順位値を示している状態コード４２１とを比較して、パケットを拒絶するか、又は決定された優先順位値と共にパケットを優先順位ポリサ４２０に戻すかを決定する。例えば、パケットの優先順位値がＰ（ｍ）であり、且つＰ（ｍ）がＰ（ｋ）未満であると、分類器４２５が決定した場合は、このパケットの優先順位値は、優先順位ポリサ４２０がパケットを許可する最低優先順位値を下回っているので、分類器４２５は、分類器４２５に関連付けられたパケットドロップ４２６に、このパケットを送る。
【００７５】
分類器４２５が、ポリシング段階Ｋ＋１ ４８０における優先順位ポリサ４２０から受信したパケットを拒絶する場合は、分類器４２５は、ポリシング段階Ｋ４７０における優先順位ポリサ４１０に、取り消しコマンド４１９を送る。取り消しコマンド４１９を受信すると、優先順位ポリサ４１０は、ドロップされたパケットを許可することによって優先順位ポリサ４１０が以前に適用した充填を取り消す(例えば、トークン計数を１ずつインクリメントする)。優先順位ポリサ４１０の状態(例えば、トークン計数)は、優先順位ポリサ４１０を通じて通されなかったドロップされたパケットを優先順位ポリサ４１０が有しているのと同等の状態に更新される。
【００７６】
パケットを優先順位ポリサ４２０に戻すべきであると分類器４２５が決定した場合は、分類器４２５は、パケット(例えば、優先順位を付けられたパケット４２８)を、決定された優先順位値と共に、ポリシング段階Ｋ＋１ ４８０における優先順位ポリサ４２０に送る。優先順位を付けられたパケット４２８を分類器４２５から受信すると、優先順位ポリサ４２０は、優先順位を付けられたパケット４２８に関連付けられた優先順位値に基づいて、優先順位ポリサ４２０を通じて、優先順位を付けられたパケット４２８を許可するか又は拒絶するかを決定する。優先順位ポリサ４２０が優先順位を付けられたパケット４２８を許可する場合は、優先順位ポリサ４２０は、後のポリシング段階(示されていない)における優先順位ポリサに、パケットを送り、優先順位ポリサ４２０は充填される(例えば、トークンは取り除かれる)。優先順位ポリサ４２０が優先順位を付けられたパケット４２８を拒絶する場合は、優先順位ポリサ４２０は、パケットをパケットドロップ４２７に送り、優先順位ポリサ４２０は充填されない(例えば、トークンは取り除かれない)。更に、優先順位ポリサ４２０は、ポリシング段階Ｋ４７０における優先順位ポリサ４１０に、取り消しコマンド４１９を送る。
【００７７】
ポリシング段階Ｎ４９０における優先順位ポリサ４３０は、前のポリシング段階の全て(ポリシング段階Ｋ４７０と、ポリシング段階Ｋ＋１ ４８０とを含む)によって許可されたパケットを受信する。優先順位ポリサ４３０は、優先順位ポリサ４３０に関連付けられたパラメータに基づいて、ポリシング段階Ｎ４９０における優先順位ポリサ４３０を通じて、各パケットを許可するか、拒絶するか、又は条件付きで通すかを決定する。前のポリシング段階の全てによって許可されたパケットを受信すると、優先順位ポリサ４３０は、パケットを無条件で許可できるかどうかを決定する。優先順位ポリサ４３０は、無条件で許可されたパケットを、システム４００の外部に送る。更に、この例では、パケットを無条件で許可したときに、優先順位ポリサ４３０は充填される(例えば、トークンは取り除かれる)。
【００７８】
パケットが無条件で許可されない場合は、優先順位ポリサ４３０は、優先順位ポリサ４３０を通じて、パケットを拒絶するか又は条件付きで通すかを決定する。優先順位ポリサ４３０は、拒絶されたパケットを、優先順位ポリサ４３０に関連付けられたパケットドロップ４３７に送る。更に、この例では、パケットを拒絶したときに、優先順位ポリサ４３０は充填されない(例えば、トークンは取り除かれない)。
【００７９】
ポリシング段階Ｎ４９０における優先順位ポリサ４３０がパケットを拒絶する場合は、優先順位ポリサ４３０は、前のポリシング段階の各々(例えば、ポリシング段階Ｋ４７０、ポリシング段階Ｋ＋１ ４８０)における優先順位ポリサ(例えば、優先順位ポリサ４１０、優先順位ポリサ４２０)に、取り消しコマンド４１９を送る。取り消しコマンド４１９を受信すると、前のポリシング段階の各々(例えば、ポリシング段階Ｋ４７０、ポリシング段階Ｋ＋１ ４８０)における優先順位ポリサ(例えば、優先順位ポリサ４１０、優先順位ポリサ４２０)は、ドロップされたパケットを許可することによってその優先順位ポリサが以前に適用した充填を取り消す(例えば、トークン計数を１ずつインクリメントする)。優先順位ポリサ(例えば優先順位ポリサ４１０、優先順位ポリサ４２０)の状態(例えば、トークン計数)は、優先順位ポリサ(例えば、優先順位ポリサ４１０、優先順位ポリサ４２０)を通じて通されなかったドロップされたパケットをその優先順位ポリサが有しているのと同等の状態に更新される。
【００８０】
優先順位ポリサ４３０が、パケットを無条件で許可せず、又は拒絶もしない場合は、優先順位ポリサ４３０は、優先順位ポリサ４３０を通じて、パケットを条件付きで通すことを決定する。優先順位ポリサ４３０は、条件付きで通されたパケット４３３を、ポリシング段階Ｎ４９０における分類器４３５に送る。更に、優先順位ポリサ４３０は、最低優先順位値を示している状態コード４３１を分類器４３５に送る。分類器４３５は、ポリシング段階Ｎ４９０における優先順位ポリサ４３０から受信した各パケットの優先順位値を決定する。幾つかの実施形態では、パケットに関連付けられたネットワークプロトコルヘッダのコンテンツ、パケットに関連付けられたアプリケーションデータ、又はパケットに関連付けられたメタデータ、のうちの１つ以上に基づいて、分類器４３５は優先順位値を決定する。
【００８１】
分類器４３５は、パケットの決定された優先順位値と、優先順位ポリサ４３０から受信した最低優先順位値を示している状態コード４３１とを比較して、パケットを拒絶するか、又は決定された優先順位値と共にパケットを優先順位ポリサ４３０に戻すかを決定する。例えば、パケットの優先順位値がＰ（ｍ）であり、且つＰ（ｍ）がＰ（ｋ）未満であると、分類器４３５が決定した場合は、このパケットの優先順位値は、優先順位ポリサ４３０がパケットを許可する最低優先順位値を下回っているので、分類器４３５は、分類器４３５に関連付けられたパケットドロップ４３６に、このパケットを送る。
【００８２】
分類器４３５が、ポリシング段階Ｎ４９０における優先順位ポリサ４３０から受信したパケットを拒絶する場合は、分類器４３５は、前のポリシング段階の各々(例えば、ポリシング段階Ｋ４７０、ポリシング段階Ｋ＋１ ４８０)における優先順位ポリサ(例えば、優先順位ポリサ４１０、優先順位ポリサ４２０)に、取り消しコマンド４１９を送る。取り消しコマンド４１９を受信すると、優先順位ポリサの各々(例えば、優先順位ポリサ４１０、４２０)は、ドロップされたパケットを許可することによってその優先順位ポリサが以前に適用した充填を取り消す(例えば、トークン計数を１ずつインクリメントする)。優先順位ポリサ(例えば、優先順位ポリサ４１０、優先順位ポリサ４２０)の状態(例えば、トークン計数)は、優先順位ポリサ(例えば、優先順位ポリサ４１０、優先順位ポリサ４２０)を通じて通されなかったドロップされたパケットをその優先順位ポリサが有しているのと同等の状態に更新される。
【００８３】
パケットを優先順位ポリサ４３０に戻すべきであると分類器４３５が決定した場合は、分類器４３５は、優先順位を付けられたパケット４３８を、決定された優先順位値と共に、優先順位ポリサ４３０に送る。
【００８４】
優先順位を付けられたパケット４３８を分類器４３５から受信すると、優先順位ポリサ４３０は、優先順位を付けられたパケット４３８に関連付けられた優先順位値に基づいて、優先順位ポリサ４３０を通じて、優先順位を付けられたパケット４３８を許可するか又は拒絶するかを決定する。優先順位ポリサ４３０がパケットを許可した場合は、優先順位ポリサ４３０はパケットをシステム４００の外部に送る。優先順位ポリサ４３０がパケットを拒絶した場合は、優先順位ポリサ４３０はパケットをパケットドロップ４３７に送り、優先順位ポリサ４３０は充填されない(例えば、トークンは取り除かれない)。更に、優先順位ポリサ４３０は、前のポリシング段階の各々(例えば、ポリシング段階Ｋ４７０、ポリシング段階Ｋ＋１ ４８０)における優先順位ポリサ(例えば、優先順位ポリサ４１０、優先順位ポリサ４２０)に、取り消しコマンド４１９を送る。
【００８５】
上述の技術は、ディジタル及び／又はアナログ電子回路において、或いはコンピュータのハードウェア、ファームウェア、ソフトウェア、又はこれらの組合せにおいて実施され得る。データ処理装置、例えば、プログラマブルプロセッサ、１台のコンピュータ、及び／又は複数のコンピュータによって実行するために、又はデータ処理装置の動作を制御するために、コンピュータプログラム製品、即ち、機械読み出し可能な記憶デバイスにおいて実体的に具現されるコンピュータプログラムとして、この実施をすることができる。ソースコード、コンパイルされたコード、翻訳されたコード、及び／又は機械コードを含む、任意の形式のコンピュータ言語又はプログラミング言語で、コンピュータプログラムを書くことができる。コンピュータプログラムは、任意の形式で、例えば、独立型プログラムとして、或いはサブルーチン、要素、又はコンピューティング環境で使用するに適した他の単位として展開することができる。コンピュータプログラムは、１台のコンピュータ上で、又は１つ以上のサイトにおける複数のコンピュータ上で実行されるように展開することができる。
【００８６】
入力データを操作する及び／又は出力データを生成することによって本発明の機能を行なうコンピュータプログラムを実行する１台以上のプロセッサによって、方法のステップを行なうことができる。更に、専用論理回路によって方法のステップを行なうことができ、専用論理回路として装置を実施することができる。専用論理回路は、例えば、フィールドプログラマブルゲートアレイ（field programmable gate array, FPGA）、フィールドプログラマブルアナログアレイ（field-programmable analogue array, FPAA）、複合プログラマブル論理デバイス（complex programmable logic device, CPLD)、プログラマブルシステムオンチップ（Programmable System-on-Chip, PSoC）、特定用途向け命令プロセッサ（application-specific instruction processor, ASIP）、特定用途向け集積回路（application-specific integrated circuit, ASIC）、等である。サブルーチンは、記憶されたコンピュータプログラム及び／又はプロセッサの部分、並びに／或いは１つ以上の機能を実施する特別な回路を指し得る。
【００８７】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び専用の両者のマイクロプロセッサと、任意の種類のディジタル又はアナログコンピュータの任意の１つ以上のプロセッサとを含む。一般に、プロセッサは、読み取り専用メモリ又はランダムアクセスメモリ、或いは両者から、命令とデータとを受信する。コンピュータの本質的な要素は、命令を実行するプロセッサと、命令及び／又はデータを記憶する１つ以上のメモリデバイスである。キャッシュのようなメモリデバイスを使用して、データを一時的に記憶することができる。更に、長期間データを記憶するメモリデバイスも使用できる。一般に、コンピュータは、データを記憶する１つ以上の大容量記憶装置を含んでいるか、或いは大容量記憶装置に動作可能に接続されていて、大容量記憶装置からデータを受信する、大容量記憶装置にデータを転送する、又はこの両者を行なう。大容量記憶装置は、例えば、磁気、光磁気ディスク、又は光ディスクである。更に、ネットワークから命令及び／又はデータを受信する、並びに／或いは、ネットワークに命令及び／又はデータを転送するために、コンピュータを通信ネットワークに動作可能に接続することができる。コンピュータプログラム命令とデータとを具現するのに適したコンピュータ読出し可能記憶媒体は、全ての形式の揮発性及び不揮発性メモリ、例として、半導体メモリデバイス、例えば、ＤＲＡＭ、ＳＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリデバイスと、磁気ディスク、例えば、内蔵ハードディスク又は取り外し可能ディスクと、光磁気ディスクと、光ディスク、例えば、ＣＤ、ＤＶＤ、ＨＤ−ＤＶＤ、ブルーレイディスクとを含む。プロセッサとメモリは、専用論理回路によって補助され得る、及び／又は専用論理回路に組み込まれ得る。
【００８８】
ユーザとのインタラクションを提供するために、情報をユーザに表示するディスプレイデバイス、例えば、陰極線管（cathode ray tube, CRT）、プラズマ、又は液晶ディスプレイ（liquid crystal display, LCD）モニタと、ユーザがコンピュータに入力する（例えば、ユーザインターフェイス要素とインタラクトする）ことを可能にするキーボード及びポインティングデバイス、例えば、マウス、トラックボール、タッチパッド、又はモーションセンサと通信して、コンピュータ上で、上述の技術を実施することができる。ユーザとのインタラクションを提供するために、他の種類のデバイスも使用できる。例えば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、触覚フィードバックであり得る。ユーザからの入力は、音響、音声、及び／又は触覚の入力を含む任意の形式で受信できる。
【００８９】
上述の技術は、バックエンドコンポーネントを含んでいる分散コンピューティングシステムで実施できる。バックエンドコンポーネントは、例えば、データサーバ、ミドルウェアコンポーネント、及び／又はアプリケーションサーバであり得る。上述の技術は、フロントエンドコンポーネントを含んでいる分散コンピューティングシステムで実施できる。フロントエンドコンポーネントは、例えば、グラフィカルユーザインターフェイスを有するクライアントコンピュータ、典型的な実施でユーザがインタラクトすることを可能にするウェブブラウザ、及び／又は送信デバイスのための他のグラフィカルユーザインターフェイスであり得る。上述の技術は、このようなバックエンド、ミドルウェア、又はフロントエンドコンポーネントの任意の組み合わせを含む分散コンピューティングシステムで実施できる。
【００９０】
コンピューティングシステムのコンポーネントは、伝送媒体によって相互接続され得る。伝送媒体は、任意の形式又は媒体のディジタル又はアナログデータ通信(例えば、通信ネットワーク)を含むことができる。伝送媒体は、任意の構成における１つ以上のパケットベースのネットワーク及び／又は１つ以上の回線ベースのネットワークを含むことができる。パケットベースのネットワークは、例えば、インターネット、キャリアインターネットプロトコル(internet protocol, IP)ネットワーク（例えば、ローカルエリアネットワーク(local area network, LAN)、ワイドエリアネットワーク(wide area network, WAN)、キャンパスエリアネットワーク(campus area network, CAN)、メトロポリタンエリアネットワーク(metropolitan area network, MAN)、ホームエリアネットワーク(home area network, HAN)）、プライベートＩＰネットワーク、ＩＰ構内交換(IP private branch exchange, IPBX)、ワイヤレスネットワーク(例えば、無線アクセスネットワーク(radio access network, RAN))、ブルートゥース（登録商標）、ワイファイ（Wi-Fi）、ワイマックス（WiMAX）、汎用パケット無線サービス(general packet radio network, GPRS)ネットワーク、ＨｉｐｅｒＬＡＮ）、及び／又は他のパケットベースのネットワークを含むことができる。回線ベースのネットワークは、例えば、公衆交換電話網(public switched telephone network, PSTN)、レガシー構内交換(private branch exchange, PBX)、ワイヤレスネットワーク(例えば、ＲＡＮ、符号分割多元接続(code division multiple access, CDMA)ネットワーク、時分割多元接続(time division multiple access, TDMA)ネットワーク、グローバルシステムフォーモバイルコミュニケーションズ(global system for mobile communication, GSM)（登録商標）ネットワーク)、及び／又は他の回線ベースのネットワークを含むことができる。
【００９１】
伝送媒体による情報転送は、１つ以上の通信プロトコルに基づくことができる。通信プロトコルは、例えば、イーサネット（登録商標）プロトコル、インターネットプロトコル(Internet Protocol, IP)、ボイスオーバーＩＰ(Voice over IP, VOIP)、ピアツーピア(Peer-to-Peer, P2P)プロトコル、ハイパーテキスト転送プロトコル(Hyper Text Transfer Protocol, HTTP)、セッション開始プロトコル(Session Initiation Protocol, SIP)、Ｈ．３２３、メディアゲートウェイ制御プロトコル(Media Gateway Control Protocol, MGCP)、シグナリングシステム＃７(Signaling System #7, SS7)、グローバルシステムフォーモバイルコミュニケーションズ(Global System for Mobile Communications, GSM)プロトコル、プッシュトゥトーク(Push-to-Talk, PTT)プロトコル、ＰＴＴオーバセルラ(PTT over Cellular, POC)プロトコル、及び／又は他の通信プロトコルを含むことができる。
【００９２】
コンピューティングシステムのデバイスは、例えば、コンピュータ、即ち、ブラウザデバイス、電話、ＩＰ電話、モバイルデバイス(例えば、セルラ電話、パーソナルディジタルアシスタント(personal digital assistant, PDA)デバイス、ラップトップコンピュータ、電子メールデバイス)、及び／又は他の通信デバイスを備えたコンピュータを含むことができる。ブラウザデバイスは、例えば、ワールドワイドウェブブラウザ(例えば、マイクロソフトコーポレーション（Microsoft Corporation）から入手可能なマイクロソフト（登録商標）インターネットエクスプローラ(登録商標)、モジラコーポレーション(Mozilla Corporation)から入手可能なモジラ（登録商標）ファイアフォックス(Firefox)）を備えたコンピュータ（例えば、デスクトップコンピュータ、ラップトップコンピュータ）を含む。モバイルコンピューティングデバイス、例えば、ブラックベリー（Blackberry、登録商標）を含む。ＩＰ電話は、例えば、シスコシステムズ社（Cisco Systems, Inc）から入手可能なシスコ(登録商標)ユニファイドＩＰフォン７９８５Ｇ（Cisco Unified IP Phone 7985G）、及び／又はシスコシステムズ社から入手可能なシスコ(登録商標)ユニファイドワイヤレスフォン７９２０（Cisco Unified wireless Phone 7920）を含む。
【００９３】
具備する、含む、及び／又は各々の複数形は、非制限的であって、列挙されている部分と、列挙されていない更なる部分とを含むことができる。及び／又は（and/or）は、非制限的であって、列挙されている部分のうちの１つ以上と、列挙されている部分の組み合わせとを含む。
【００９４】
本発明は、本発明の意図又は本質的な特性から逸脱することなく、他の具体的な形態で具現され得ることが、当業者に分かるであろう。従って、上述の実施形態は、ここに記載されている発明を制限しているのではなく、全ての点において例示的であると見なされるべきである。
【符号の説明】
【００９５】
３１３，３２３，３３３，４１１，４２１，４３１・・・状態コード、３１５，３２５，３３５，４１３，４２３，４３３・・・条件付きで通されたパケット、３１７，３２７，３３７，３４７，４１６，４１７，４２６，４２７，４３６，４３７・・・パケットドロップ、３５０，３５５，４１８，４２８，４３８・・・優先順位を付けられたパケット。
【図１】
2013501422.tif 000003
【図２】
2013501422.tif 000004
【図３】
2013501422.tif 000005
【図４】
2013501422.tif 000006
【国際調査報告】
2013501422.tif 000007