(57)【要約】【課題】  ネットワーク内のトラフィックを管理し、監視し、優先順位付け、帯域幅を割り振って、真のサービス品質（ＱｏＳ）を達成するための、フレキシブルな、ポリシー・ベースの機構を記述する。【解決手段】  パケット送出デバイスは、一連のトラフィック・グループを示す情報を受け取る。パケット送出デバイスは、帯域幅および優先順位パラメータなどの、トラフィック・グループに対応するパラメータも追加的に受け取る。第１ポートでトラフィック・グループのうちの１つに関連するパケットを受信後、パケット送出デバイスは、パケットが関連付けられるトラフィック・グループに対応するパラメータに基づいて、第２ポートからパケットが転送されるのをスケジューリングする。有利なことに、この方法では、いくらかの一連のルールに基づいた帯域幅を共用する、重み付けによる公平な待ち行列化引き渡しスケジュールが達成できる。【選択図】  図１Ａ
2006325275.tif 000002
【特許請求の範囲】
【請求項１】
トラフィック・グループに対するＱｏＳ帯域幅パラメータを決める、トラフィック・グループに対応するＱｏＳメトリックを識別するステップと；
トラフィック・グループに関連付けられたデータ・パケットを受信するステップと；
複数の待ち行列のうちの１つにデータ・パケットを配置するステップと；
データ・パケットが配置された待ち行列の現在の帯域幅を識別するするステップと、
前記待ち行列の現在の帯域幅と少なくとも一つのＱｏＳ帯域幅パラメータとの間の比較結果に基づき、データ・パケットを当該待ち行列から取り出すステップと
を含むことを特徴とするパケット送出デバイスでの帯域幅管理の方法。
【請求項２】
トラフィック・グループに対応するＱｏＳメトリックを識別するステップが：
インターネット・プロトコル（ＩＰ）サブネット・メンバーシップ識別子によってトラフィック・グループを識別するステップと；
トラフィック・グループに対するＱｏＳ帯域幅パラメータを定める対応するＱｏＳメトリックを決定するステップと
をさらに含む請求項１に記載の方法。
【請求項３】
トラフィック・グループに対応するＱｏＳメトリックを識別するステップが：
メディア・アクセス・コントロール（ＭＡＣ）アドレスによってトラフィック・グループを識別するステップと；
トラフィック・グループに対するＱｏＳ帯域幅パラメータを定める対応するＱｏＳメトリックを決定するステップと
をさらに含む請求項１に記載の方法。
【請求項４】
トラフィック・グループに対応するＱｏＳメトリックを識別するステップが：
仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）識別子によってトラフィック・グループを識別するステップと；
トラフィック・グループに対するＱｏＳ帯域幅パラメータを定める対応するＱｏＳメトリックを決定するステップと
をさらに含む請求項１に記載の方法。
【請求項５】
ＱｏＳメトリックを識別するステップが、トラフィック・グループに対する最小帯域幅を示す情報を受信するステップを含む請求項１に記載の方法。
【請求項６】
ＱｏＳメトリックを識別するステップが、トラフィック・グループに対する最大持続帯域幅を示す情報を受信するステップを含む請求項１に記載の方法。
【請求項７】
ＱｏＳメトリックを識別するステップが、トラフィック・グループが使用することができる最大持続帯域幅を超過した帯域幅を表すピーク帯域幅を示す情報を受信するステップを含む請求項６に記載の方法。
【請求項８】
ＱｏＳメトリックを識別するステップが、トラフィック・グループに対する最大許容遅延を示す情報を受信するステップを含む請求項１に記載の方法。
【請求項９】
ＱｏＳメトリックを識別するステップが、トラフィック・グループに関連付けられた相対的優先順位を示す情報を受信するステップを含む請求項１に記載の方法。
【請求項１０】
現在の帯域幅を決定するステップが指定した時間間隔での現在の帯域幅の移動平均を決定することを含む請求項１に記載の方法。
【請求項１１】
データ・パケットを受信するステップが、複数のポートのうちの第１のポートでデータ・パケットを受信するステップを含み、待ち行列からデータ・パケットを取り出すステップが、複数のポートのうちの第２のポートからデータ・パケットを転送するステップを含む請求項１に記載の方法。
【請求項１２】
パケット送出デバイスが非決定性アクセス・プロトコルを使用する請求項１に記載の方法。
【請求項１３】
パケット送出デバイスによって使用される非決定性アクセス・プロトコルが、Ｃａｒｒｉｅｒ Ｓｅｎｓｅ ＭｕｌｔｉｐｌｅＡｃｃｅｓｓ ｗｉｔｈ Ｃｏｌｌｉｓｉｏｎ Ｄｅｔｅｃｔｉｏｎ（ＣＳＭＡ／ＣＤ）プロトコルである請求項１２に記載の方法。
【請求項１４】
アクセスされると電子システムに対して、
トラフィック・グループに対するＱｏＳ帯域幅パラメータを定める、トラフィック・グループに対応するＱｏＳメトリックを識別させ；
トラフィック・グループに関連付けられたデータ・パケットを受信させ；
複数の待ち行列のうちの１つにそのデータ・パケットを配置させ；
前記データ・パケットが配置された待ち行列の現在の帯域幅を識別させ；且つ
前記現在の帯域幅と少なくとも一つのＱｏＳ帯域幅パラメータとの間の比較結果に基づき、データ・パケットを待ち行列から取り出させる
命令を提供するコンテンツを有することを特徴とするマシン・アクセス可能媒体。
【請求項１５】
電子システムにトラフィック・グループに対応するＱｏＳメトリックを識別させる命令を提供するコンテンツが、電子システムに：
インターネット・プロトコル（ＩＰ）サブネット・メンバーシップ識別子によってトラフィック・グループを識別させ；
トラフィック・グループに対するＱｏＳ帯域幅パラメータを決める対応するＱｏＳメトリックを決定させる
命令を提供するコンテンツをさらに含む請求項１４に記載の媒体。
【請求項１６】
電子システムにトラフィック・グループに対応するＱｏＳメトリックを識別させる命令を提供するコンテンツが、電子システムに：
メディア・アクセス・コントロール（ＭＡＣ）アドレスによってトラフィック・グループを識別させ；
トラフィック・グループに対するＱｏＳ帯域幅パラメータを決める対応するＱｏＳメトリックを決定させる
命令を提供するコンテンツをさらに含む請求項１４に記載の媒体。
【請求項１７】
電子システムにトラフィック・グループに対応するＱｏＳメトリックを識別させる命令を提供するコンテンツが、電子システムに対し、
仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）識別子によってトラフィック・グループを識別させ；
トラフィック・グループに対するＱｏＳ帯域幅パラメータを決める対応するＱｏＳメトリックを決定させる
命令を提供するコンテンツをさらに含む請求項１４に記載の媒体。
【請求項１８】
電子システムにＱｏＳメトリックを識別させる命令を提供するコンテンツが、電子システムにトラフィック・グループに対する最小帯域幅を示す情報を受信させる命令を提供するコンテンツを含む請求項１４に記載の媒体。
【請求項１９】
電子システムにＱｏＳメトリックを識別させる命令を提供するコンテンツが、電子システムにトラフィック・グループに対する最大持続帯域幅を示す情報を受信させる命令を提供するコンテンツを含む請求項１４に記載の媒体。
【請求項２０】
電子システムにＱｏＳメトリックを識別させる命令を提供するコンテンツが、電子システムにトラフィック・グループが使用することができる最大持続帯域幅を超過した帯域幅を表すピーク帯域幅を示す情報を受信させる命令を提供するコンテンツを含む請求項１９に記載の媒体。
【請求項２１】
電子システムにＱｏＳメトリックを識別させる命令を提供するコンテンツが、電子システムにトラフィック・グループに対する最大許容遅延を示す情報を受信させる命令を提供するコンテンツを含む請求項１４に記載の媒体。
【請求項２２】
電子システムにＱｏＳメトリックを識別させる命令を提供するコンテンツが、電子システムにトラフィック・グループに関連付けられた相対的優先順位を示す情報を受信させる命令を提供するコンテンツを含む請求項１４に記載の媒体。
【請求項２３】
電子システムにネットワーク・パフォーマンスの現在の測度を決定させる命令を提供するコンテンツが、電子システムに指定した時間間隔で現在の測度を決定させる命令を提供するコンテンツを含む請求項１４に記載の媒体。
【請求項２４】
電子システムにＱｏＳメトリックを受信させる命令を提供するコンテンツが、電子システムに複数のポートのうちの第１のポートでデータ・パケットを受信させる命令を提供するコンテンツを含み、電子システムに待ち行列からデータ・パケットを除去させる命令を提供するコンテンツが、電子システムに複数のポートのうちの第２のポートからデータ・パケットを転送させる命令を提供するコンテンツを含む請求項１４に記載の媒体。
【請求項２５】
パケット送出デバイスが非決定性アクセス・プロトコルを使用する請求項１４に記載の媒体。
【請求項２６】
パケット送出デバイスによって使用される非決定性アクセス・プロトコルが、Ｃａｒｒｉｅｒ Ｓｅｎｓｅ ＭｕｌｔｉｐｌｅＡｃｃｅｓｓ ｗｉｔｈ Ｃｏｌｌｉｓｉｏｎ Ｄｅｔｅｃｔｉｏｎ（ＣＳＭＡ／ＣＤ）プロトコルである請求項２５に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的に、コンピュータ・ネットワーキング・デバイスの分野に関する。より詳細には、本発明は、ネットワーク内のトラフィックを管理し、監視し、優先順位付け、帯域幅を割り振り、それによって真のサービス品質（ＱｏＳ：Quality of Service）を達成するポリシー・ベースのフレキシブルな機構に関する。
【背景技術】
【０００２】
今日のネットワーク・トラフィックは、今までになく多様で、かつ、帯域幅が重要になっている。今日のイントラネットは、対話型マルチメディア、フル・モーション・ビデオ、豊富なグラフィック・イメージ、デジタル写真技術をサポートすることが期待されている。品質と、ネットワークから受け取った情報のタイムリーな提示への期待は、今までになく高い。ネットワークのスピードおよび帯域幅の向上だけでは、こうした今日のイントラネットの高度な要求は満たされないであろう。
【０００３】
ＩＥＴＦ（Internet Engineering Task Force）は、デスクトップ・コンピュータなどのエンド・ステーションがネットワーク内およびネットワーク間で資源を要求、確保することのできるインターネット・プロトコル（ＩＰ）ベースのプロトコルであるＲＳＶＰ（Resource Reservation Protocol）の暫定規格の設定に取り組んでいる。ＲＳＶＰは、本質的には、ルータ間で所望のサービス品質を通信する手段を定義する終端間プロトコルである。ＲＳＶＰは、受信側が主導性を持つ。データ・ストリームを受信しているエンド・ステーションは、隣接したルータにその要求を通信し、これらの要求は、受信エンド・ステーションとデータ・ストリームの発信源との間にある全ての仲介ルータに返され、最終的に、データ・ストリームの発信源自体に返される。したがって、ＲＳＶＰがネットワーク全体に実装されなければならないのは自明なはずである。つまり、両方のステーション（例えばデータ・ストリームの発信源および終着点）および、その間の全ルータは、受信エンド・ステーションの要求に適応するために、ＲＳＶＰに準拠していなければならない。
【０００４】
ＲＳＶＰによって、アプリケーションはある程度の保証付きの性能を得ることができるが、それは、最初に着信した、最初に提出されたプロトコルの場合であって、つまり、ネットワーク内に他の制御機構がない場合は、ＲＳＶＰを使用するアプリケーションは、他の何らかのミッション・クリティカルなアプリケーションに必要とされたかもしれない、またはより効果的に活用されたかもしれない資源を確保し、消費する場合があることを意味する。資源を割り振るこの手法における制約には、さらに、エンド・ステーションおよびルータが、ＲＳＶＰに準拠するように改変されなければならないという事実がある。最終的に、ＲＳＶＰには、多様なトラフィック・フローの間に差別化をもたらすのに適したポリシー機構が欠落する。適切なポリシー・システムがなければ、ネットワーク管理は制御を失うことが理解されるべきである。
【０００５】
トラフィックの差別化および優先順位付けの最近の試みには、米国電気電子学会（ＩＥＥＥ）によって指定された暫定規格が含まれる。ＩＥＥＥ８０２．１Ｑ暫定規格は、どの仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）にパケットが属するか、および、パケットの優先順位を指定するための、アプリケーションのパケット・フォーマットを定めている。ＩＥＥＥ８０２．１ｐ委員会は、８０２．１Ｑフレーム・タグ中に、優先順位インジケータに基づいてトラフィックを分類するガイダンスを定めている。これによって、ＶＬＡＮは、８つの異なるトラフィック・クラスまたは優先順位に分類することができる。しかし、ＩＥＥＥ８０２．１ｐ委員会は、これらのトラフィック・クラスをサービスする機構を定義していない。
【０００６】
異なるトラフィック・クラスを優先順位付け、サービスする能力を有するだけでなく、追加的に帯域幅の管理も実現し、特定のトラフィック・クラスに関連するパケットに対するサービスを計量できる尺度を与える、イーサネット（登録商標）・ネットワークなどの非決定性アクセス・プロトコルを採用して、ネットワーク内に真のサービス品質（「ＱｏＳ」）を実現する方法が必要とされている。より詳細には、帯域幅の管理に関して、使用できる帯域幅を共用する、重み付けによる公平な待ち行列化引き渡しスケジュールを採用し、それによって、高い優先順位のトラフィックが通常最初に転送されるようにすることが望ましく、しかしまた、低い優先順位のトラフィックも、受信可能な最小の帯域幅の割振りを保証されることが望ましい。また、一般的に終端間プロトコルの解決に要求されるエンド・ステーションおよび既存のルータのアップグレードまたは改変なしにＱｏＳを実現することを見据えて、帯域幅の割振りおよびトラフィックの優先順位を集中管理することも望ましい。さらに、管理者指定の一連の管理ポリシーに基づいた帯域幅の割振りおよびトラフィックの優先順位付けを実行することによって、管理をネットワーク管理者の手中に置くことも有利である。最後に、ネットワーク管理者が管理を選択する可能性のある多くの制御レベルが存在するため、ＱｏＳプロファイル属性のコア・セットに基づいた多様なスケジュール機構を提供することが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ネットワーク内のトラフィックを管理し、監視し、優先順位付け、帯域幅を割り振って、真のサービス品質（ＱｏＳ）を達成するための、フレキシブルな、ポリシー・ベースの機構を記述する。本発明の一態様によれば、非決定性アクセス・プロトコルを採用するネットワーク内で帯域幅の割振りを管理する方法が提供される。パケット送出デバイスは、一連のトラフィック・グループを示す情報を受け取る。パケット送出デバイスは、帯域幅および優先順位パラメータなどの、トラフィック・グループに対応するパラメータも追加的に受け取る。第１ポートでトラフィック・グループのうちの１つに関連するパケットを受信後、パケット送出デバイスは、パケットが関連付けられるトラフィック・グループに対応するパラメータに基づいて、第２ポートからパケットが転送されるのをスケジューリングする。有利なことに、この方法では、いくらかの一連のルールに基づいた帯域幅を共用する、重み付けによる公平な待ち行列化引き渡しスケジュールが達成できる。
【課題を解決するための手段】
【０００８】
本発明の他の態様によれば、パケットスイッチ・デバイスにおける帯域幅の割振りおよびトラフィックの優先順位付けを管理する方法が提供される。パケット送出デバイスは、一連のトラフィック・グループを示す情報を受け取る。パケット送出デバイスは、トラフィック・グループのサービス品質（ＱｏＳ）を定義する情報も追加的に受け取る。パケット送出デバイスによってパケットが受け取られた後、パケットが関連付けられるトラフィック・グループが定義される。続いて、パケットは、終端間信号方式プロトコルによってスケジューリングされるのではなく、識別されたトラフィック・グループのＱｏＳに基づいて転送がスケジュールされる。したがって、帯域幅の割振りおよびトラフィックの優先順位付けは、ネットワーク管理者が制御を保持する一連の管理ポリシーに基づく。
【０００９】
本発明の他の態様によれば、パケット送出デバイスの各ポートには、ＱｏＳ待ち行列の番号が与えられる。特定のポートのＱｏＳ待ち行列のそれぞれには、現在帯域幅メトリックが決定される。ＱｏＳ待ち行列は、ＱｏＳ待ち行列の帯域幅メトリックのそれぞれおよび各最小帯域幅要件に基づいて、２つのグループに分割される。続いてグループは、次のパケットのソースとなるＱｏＳを選択する第１レベルの仲裁機構として利用される。
【００１０】
本発明の他の特徴は、添付の図面および後続の詳細な記述を読めば明らかになろう。
【００１１】
本発明は、添付される図面の図の中に限定されることなく、例によって示され、図において類似する記述の番号は、同様のエレメントに言及する。
【００１２】
（発明の詳細な説明）
ネットワーク内のトラフィックを管理し、監視し、優先順位付け、帯域幅を割り振り、真のサービス品質（ＱｏＳ）を達成するための、フレキシブルな、ポリシー・ベースの機構が記述される。この文脈での「サービス品質」とは、本質的に、提供されるサービスを計量できる尺度があるということを意味する。提供されるサービスの尺度は、例えば、パケット・ロスの度合い、最大遅滞、コミットされた最小帯域幅、限定された最大帯域幅などの点から見たものである場合がある。
【００１３】
本発明では、ローカル・エリア・ネットワーク（ＬＡＮ）スイッチなどのパケット送出デバイスの各ポートに、ＱｏＳ待ち行列の番号が与えられる。一連のＱｏＳパラメータに基づいて、様々なタイプのトラフィックが識別され、特定のＱｏＳ待ち行列に関連付けられる。例えば、第１のトラフィック・グループに関連付けられたパケットを第１のＱｏＳ待ち行列上に位置づけ、別のトラフィック・グループに関連付けられたパケットを第２のＱｏＳ待ち行列上に位置づけることができる。ポートが次のパケットを転送する準備ができた時、スケジューリング機構を使用して、そのポートに関連付けられたＱｏＳ待ち行列中のどのＱｏＳ待ち行列が次のパケットを転送するかを選択する。
【００１４】
後続の記述では、本発明がよりよく理解されるために、説明の目的から多くの具体的な詳細が記述される。しかし、本発明がこれらの具体的な詳細のいくつかがなくても実施できることは、当業者にとって自明となるであろう。その他の例では、よく知られた構造および装置がブロック図の形で示される。
【００１５】
本発明は様々なステップを含み、それらは以下に記述される。本発明のステップは、ハードウェア・コンポーネントによって実施することもでき、マシンによって実行される命令に組み込んで、命令でプログラミングされた汎用または専用プロセッサによって実施することもできる。別法としては、これらのステップはハードウェアおよびソフトウェアの組み合わせによって実施することもできる。本発明の実施形態は高速イーサネットのスイッチに関して述べるが、本明細書に述べられる方法および装置は、他のタイプのネットワーク・デバイスまたはパケット送出デバイスにも等しく適用することができる。
【発明を実施するための最良の形態】
【００１６】
例示的スイッチ・アーキテクチャ
本発明の一実施形態を実施できるスイッチ１００のアーキテクチャの概観が、図１Ａに図示される。図示された中央メモリ・アーキテクチャは、多重ポート１０５および１１０を含み、それぞれは、チャネルを介してフィルタ及び送出エンジン１１５に結合される。転送データベース１２０、パケット・ランダム・アクセス・メモリ（ＲＡＭ）１２５、中央処理装置（ＣＰＵ）１３０も、フィルタ及び送出エンジン１１５に結合される。
【００１７】
一実施形態では、各チャネルは、送信方向で毎秒１ギガビット、受信方向で毎秒１ギガビットのデータ転送速度をサポートし、したがって、１チャネルに付き毎秒２ギガビットの全二重通信方式が可能である。加えて、チャネルは１ギガビットのイーサネット・ネットワーク接続または８ビットのファスト・イーサネット・ネットワーク接続をサポートするように構成することもできる。
【００１８】
フィルタ及び送出エンジン１１５は、アドレス・フィルタ（図示せず）、スイッチ基盤（図示せず）、バッファ・マネージャ（図示せず）を含む。アドレス・フィルタは、ブリッジング、ルーティング、仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）タグ付け機能、トラフィック分類を行うことができる。スイッチ基盤は、各チャネルをパケットＲＡＭ１２５などの中央メモリに接続する。バッファ・マネージャは、データ・バッファおよびパケット待ち行列を管理し、パケットＲＡＭ１２５間のアクセスを制御および調整する。
【００１９】
送出データベース１２０は、特に、レイヤ２（例えばメディア・アクセス・コントロール（ＭＡＣ）層）、レイヤ３（例えばネットワーク層）、および／またはレイヤ４（例えばトランスポート層）送出情報など、送出決定をするのに利用できる情報を記憶することができる。スイッチ１００は、入力ポートで受け取ったパケットを、受信パケットのヘッダに収められたアドレス情報を利用して送出データベースを検索することによって、出力ポートに転送する。一致するエントリが見つかる場合、受信パケットが転送されるべき出力ポートがあればどの出力ポートに転送されるべきかを示す送出決定が作成される。そうでない場合、パケットは、送出決定を作成するのを補助するためにＣＰＵ１３０に転送される。
【００２０】
パケットＲＡＭ１２５は、パケットに対してバッファリングを行い、入力と出力との帯域幅の差の間に用いられる弾性バッファとしての役割を果たす。パケット・バッファリングについては、以下でさらに考察される。
【００２１】
例示的スイッチ処理の論理図
図１Ｂは、スイッチ１００全体に分配される例示的なスイッチ処理ブロック間における相互作用の論理図である。例えば、いくつかの処理は、スイッチのポート内の機能的ユニットによって実施でき、その他の処理は、ＣＰＵ１３０またはアドレス・フィルタ／スイッチ基盤／バッファ・マネージャ１１５によって実施できる。どんな場合でも、処理は概念上、入力処理に当てられる機能１６０の第１グループと、出力処理に当てられる機能１８５の第２グループとに分割することができる。本実施形態によれば、第１グループ１６０は、比較エンジン１５５、待ち行列化ブロック１６１、パケット分類ブロック１５０、バッファ・マネージャ１６５を含む。第２グループ１８５は、待ち行列解除グループ１６２、サービス品質（ＱｏＳ）カテゴリ評価ブロック１７５、スケジューラ１７０を含む。
【００２２】
加えて、ネットワーク・マネージャから様々なパラメータを受け取るために、ユーザ・インタフェース（ＵＩ）１４５も用意されている。ＵＩは、テキスト・ベースでも、グラフィカルでも構わない。一実施形態では、ＵＩ１４５は、標準的であればどんなウェブ・ブラウザからでもアクセスできる、バンド内ＨＴＭＬ（Hyper Text Markup Language）ブラウザ・ベースの管理ツールを含むことができる。どんな場合でも、ＵＩ１４５の目標は、トラフィック・グループ化およびＱｏＳプロファイルなどのハイレベルのポリシー・コンポーネントを、内部スイッチ・ハードウェアの細部から分離することである。したがって、ユーザが環境設定に要する時間は最小限にされ、一貫したインタフェースがユーザに提供される。
【００２３】
ＵＩ１４５は、１つまたは複数のトラフィック・グループを示す情報を受け取る。この情報は、ネットワーク管理者から与えることができる。トラフィック・グループを定義するには、いくつかの方法がある。下記の表１は、ＵＩ１４５がサポートできる様々なトラフィック分類体系である。
【表１】
2006325275.tif 000003
【００２４】
トラフィック・グループを識別するのに利用される情報は、一般的に、ＱｏＳポリシーが何に基づいて定義されるかによって決まる。ＱｏＳポリシーがアプリケーションに基づく場合、トラフィック・グループは、伝送制御プロトコル（ＴＣＰ）セッションまたはユーザ・データグラム・プロトコル（ＵＤＰ）セッションによるトランスポート層において識別される。例えば、ネットワーク管理者は、ＴＣＰ発信元および宛先ポート、ＩＰ発信元および宛先アドレスを示す情報を提供できる。しかし、ＱｏＳポリシーがネットワーク層のトポロジまたはユーザ・グループに基づく場合は、トラフィック・グループの定義は、インターネット・プロトコル（ＩＰ）、インターネットワーク・パケット・エクスチェンジ（ＩＰＸ）、サブネット・アドレスまたはＩＰアドレス、ＶＬＡＮ識別子などのネットワーク層プロトコルに関する情報を提供することにより、より便利にすることができる。ＱｏＳポリシーがエンド・ステーション・アプリケーションによって定義される場合は、メディア・アクセス・コントロール（ＭＡＣ）アドレスや、ＩＥＥＥ８０２．１ｐ優先順位指示、ＩＥＥＥ８０２．１Ｑフレームが、トラフィック・グループの識別に利用できる。最後に、ＱｏＳポリシーが物理トポロジに基づく場合は、物理ポート識別子がトラフィック・グループを識別するのに利用できる。
【００２５】
表１は、一連のトラフィック・グループの識別機構を例示しているに過ぎないことを理解されたい。ここに表した例から、追加の、かつ代替の、かつ等価のトラフィック・グループ化体系およびポリシー考察が、当業者には自明なものとなろう。例えば、以前のパケット、以前のトラフィック・ロード、日時その他の履歴などの、他の状況情報が、パケット分類の目的に有用である。
【００２６】
上に列挙された、トラフィック・グループ定義に基づくトラフィックの分類は、重複する場合がある。ネットワーク管理者が重複したトラフィック・グループを定義しなければならない場合、ＵＩ１４５は、エラー・メッセージを出して最も新しいトラフィック・グループ定義を拒否するか、ネットワーク・マネージャに警告メッセージを出して、より具体的なトラフィック・グループ定義ができるようにし、相容れない通常のトラフィック・グループ定義を無効にするか、他の方法に基づくように構成することがある。
【００２７】
パケット送出デバイスの各ポートにＱｏＳ待ち行列１８０の番号を与えることができる。一実施形態では、トラフィック・グループのＱｏＳ待ち行列１８０へのマッピングを維持できる。トラフィック・グループがネットワーク管理者から与えられた時、ＵＩ１４５は、トラフィック・グループのＱｏＳ１８０へのローカル・マッピングを更新する。このマッピング・プロセスは、ネットワーク管理者によってＱｏＳ待ち行列１８０に定義されるトラフィック・グループの１対１のマッピングである場合もあり、より複雑なマッピング・プロセスである場合もある。例えば、ＱｏＳ待ち行列１８０よりも多くのトラフィック・グループが存在することがあり、その場合は、複数のトラフィック・グループが１つのＱｏＳ待ち行列にマッピングされることになる。以下に、複数のトラフィック・グループを１つのＱｏＳ待ち行列に結合するいくつかの統合ルールが考察される。
【００２８】
いずれにしても、この方法で抽象化レイヤを提供することによって、ネットワーク管理者は、ポートごとのＱｏＳ待ち行列番号やその他の待ち行列パラメータなどの、基礎的な実装の細部に煩わされる必要がなくなる。トラフィック・グループ定義と物理的ＱｏＳ待ち行列との間の、この抽象化レイヤによって実現するもう１つの利点は、この時、ＵＩ１４５が基礎的な実装から切り離されるという事実である。したがって、ハードウェアのＱｏＳ実装が変更されても、ＵＩ１４５は更新される必要はない。例えば、ハードウェアによって提供されるポートごとのＱｏＳ待ち行列番号の変更によるだけでは、トラフィック・グループ定義を与えるソフトウェアは変更される必要がない。
【００２９】
入力データ・ストリームは、入力スイッチ・ポート（図示せず）から比較エンジン１５５によって受け取られる。パケット分類ブロック１５０に従って、比較エンジン１５５は、データ・ストリーム中のパケットが、以前に定義されたトラフィック・グループのどれに関連付けられるかを決定する。パケット分類ブロック１５０は、ネットワーク管理者から与えられるトラフィック・グループ指示を利用して、例えば、受信パケットのヘッダ中の、比較すべき、または無視すべき位置およびフィールドに関する情報を比較エンジン１５５に提供することができる。トラフィック分類に必要とされる比較が、従来のパケット送出デバイスにおけるのと同様に単純であれば、比較エンジン１５５とパケット分類ブロック１５０は結合することができる。
【００３０】
ＵＩ１４５に関連するパケット分類ブロック１５０は、スイッチ１００を通してトラフィックの優先順位付けと帯域幅の割振りを管理するフレキシブルな機構をネットワーク管理者に提供する。終端間信号方式プロトコルがネットワーク・プロトコルに実装される必要がないことは重要である。例えば、データ・ストリームを受け取るエンド・ステーションは、データ・ストリームの発信源との間の中間デバイスのそれぞれに帯域幅を確保する必要はない。逆に、本発明を採用するパケット送出デバイスは、トラフィックを識別するために何らかの特定の動作をするルータおよび／またはエンド・ステーションを必要とせず、ネットワークにいくらかの利益をもたらすことができる。したがって、トラフィックの優先順位はスイッチ１００によって実施され、ルータまたはエンド・ステーションを改変せずにアプリケーションにＱｏＳがもたらされる。
【００３１】
一実施形態によれば、バッファ・マネージャ１６５は、パケットＲＡＭ１２５内のバッファ割振りを制御することによって、ポリシー・ベースのＱｏＳに関与する。必要な場合に、バッファは、以下で考察されるＱｏＳプロファイル属性によって確定される制約内で、ＱｏＳ待ち行列１８０に動的に割り振られることがある。バッファ・マネージャ１６５は、ＱｏＳ待ち行列のそれぞれに対する、いくつかのプログラム可能な変数を保持できる。例えば、最低バッファ割振り数および最高待ち行列深度が、ＱｏＳ待ち行列のそれぞれに与えられる。最低バッファ割振り数は、本質的に、関連付けられるＱｏＳ待ち行列に対するパケットＲＡＭ１２５中に、いくらかの最小数のバッファを確保する。最高待ち行列深度は、所与のＱｏＳ待ち行列に配置できる最大数のバッファを確定する。バッファ・マネージャ１６５はまた、最高深度を超過しないことを保証するように、ＱｏＳ待ち行列のそれぞれに対する現在の待ち行列深度も維持する。例えば、バッファが所与のＱｏＳ待ち行列に加えられることが許可される前に、バッファ・マネージャ１６５は、最高待ち行列深度を現在の待ち行列深度と比較して、最高待ち行列深度を超過していないことを保証する。
【００３２】
変数はまた、パケットＲＡＭ１２５中のフリー・バッファを追跡するためにも保持される。初期状態では、バッファ・フリー・カウントは、パケットＲＡＭ１２５中の使用可能なバッファの合計数を含み、バッファ確保カウントは、ＱｏＳ待ち行列１８０に対する最低バッファ割振りの合計を含む。パケットが受け取られると、それらはフリー・バッファに記憶され、こうした記憶域に使用されるバッファの数によって、バッファ・フリー・カウントがデクリメントされる。適切なＱｏＳ待ち行列が識別された後、バッファ・マネージャ１６５は、待ち行列化ブロック１６１に、パケットをＱｏＳ待ち行列に加えるよう命令する。待ち行列化ブロック１６１は、現在の待ち行列深度が最高待ち行列深度より低い場合であって、（１）現在の待ち行列深度が最低バッファ割振りより少ない場合、または、（２）バッファ確保カウントがバッファ・フリー・カウントより少ない場合のどちらかに限って、パケットを識別された待ち行列にリンクする。したがって、ＱｏＳ待ち行列がそのバッファ確保（例えば最低バッファ割振り）を超過し、追加のバッファがフリーな状態のままになる場合、ＱｏＳ待ち行列は増加し続ける可能性がある。そうでない場合は、待ち行列化ブロック１６１はパケットを放棄し、バッファはフリー・プールに戻され、バッファ・フリー・カウントは、パケットに消費されたであろうバッファの数によって増加することになる。パケットが首尾よくＱｏＳ待ち行列にリンクされる時、その待ち行列の現在の待ち行列深度は、パケットに使用されるバッファの数によって増大する。パケットが待ち行列に加えられる前に、現在の待ち行列深度が最低バッファ割振りよりも低かった場合は、バッファ確保カウントは、（１）パケット内のバッファ数、または（２）現在の待ち行列深度と最低バッファ割振りの間の差のうちの低い方によって減少する。
【００３３】
ＱｏＳカテゴリ評価プロセス１７５は、ＱｏＳ待ち行列を帯域幅パラメータに基づいて複数のカテゴリに分割する。スケジューラ１７０は、ＱｏＳカテゴリ評価プロセス１７５によって形成されるグループ化を使用して、特定のポートに対する次のパケットのソースとなるのに適したＱｏＳ待ち行列を選択する。ＱｏＳ待ち行列のカテゴリの評価は、定期的に、または、例えばスケジューラ１７０の命令に従って実施できる。定期的なＱｏＳカテゴリの評価およびスケジューリングは、以下により詳細に考察する。
【００３４】
スケジューラ１７０に応答して、待ち行列解除ブロック１６２は、具体的なＱｏＳ待ち行列からパケットを取り出す。パケットが送られた後、バッファ変数は更新される。パケットを記憶するのに利用されるバッファ数によって、バッファ・フリー・カウントは増加し、現在の待ち行列深度は減少する。その結果の現在の待ち行列深度が最低バッファ割振り数よりも低い場合は、バッファ確保カウントは、パケットを記憶するのに利用されるバッファ数、または、現在の待ち行列深度と最低バッファ割振り数との差のうちの少ない方の数によって増加する。
【００３５】
ＱｏＳプロファイル属性
ＱｏＳポリシーの設定は、トラフィック・グループの識別と、それらのトラフィック・グループのＱｏＳプロファイルの定義付けとの結合である。一実施形態によれば、個別のトラフィック・グループのそれぞれは、ＱｏＳプロファイルに関連付けることができる。しかし、代替の実施形態では、複数のトラフィック・グループが共通のＱｏＳプロファイルを共用することもできる。上記にトラフィック・グループの分類および識別の記述を終え、次に、ＱｏＳプロファイル属性（同様にパラメータとして言及する）を考察する。
【００３６】
トラフィック・グループに関連付けられる、以下のパラメータのうちの１つまたは複数を使用して、いくつかのＱｏＳ待ち行列作成機構が実装できる。それらは、（１）最小帯域幅、（２）最大帯域幅、（３）最高点帯域幅、（４）最大遅滞、（５）相対優先順位である。一般的に、最小、最大、最高点帯域幅パラメータは、帯域幅合計の割合であるＭｂｐｓ、または、都合のよい他の何らかの表示法によって表すことができる。
【００３７】
最小帯域幅は、定義された時間枠にわたって特定のトラフィック・グループに提供される必要のある帯域幅の最小値を表す。定義された全トラフィック・グループの最小帯域幅の合計が、利用可能な帯域幅の１００％である場合は、以下に考察されるスケジューリング処理は、要求された少なくとも１つの最小帯域幅を各グループが受け取るのを保証することができる。
【００３８】
最大帯域幅は、定義された時間枠にわたって特定のトラフィック・グループが認識できる維持された帯域幅の最大値である。対照的に、最高点帯域幅は、特定の時間間隔の間に、トラフィック・グループが最大帯域幅を超過して利用できる帯域幅を表す。最高点帯域幅パラメータは、関連付けられるトラフィック・グループのトラフィック・バーストを制限するのに使用することができる。最高点帯域幅はまた、トラフィック・グループの現在の帯域幅がどれくらい速く最大帯域幅に集束することになるかも決定する。十分な帯域幅が使用できる場合に、最大帯域幅よりもずっと高い値の最高点帯域幅を与えることによって、最高帯域幅は相対的に速く達成できることになる。対照的に、最大帯域幅よりもわずかに高いだけの最高点帯域幅は、最大帯域幅への集束をよりゆるやかにすることになる。
【００３９】
最大遅滞は、特定のトラフィック・グループがそれ以上の遅滞に耐えられないような時間枠を指定する。スイッチ１００によって転送される、トラフィック・グループを含むパケットは、指定された最大遅滞によって、それよりも遅れることがないように保証される。
【００４０】
相対優先順位は、他のトラフィック・グループに対する特定のトラフィック・グループの相対的な重要度を定義する。以下にさらに考察されるが、同一のＱｏＳカテゴリ内では、より高い優先順位のトラフィック・グループが、より低い優先順位のトラフィック・グループ以上に好まれる。
【００４１】
多様なトラフィック分類体系と組み合わせられた、これらの小さな一連のパラメータによって、ネットワーク管理者は、ネットワーク内のパケット送出デバイスを通してトラフィック・フローイングを優先順位付け、管理するにあたり、多大な制御および柔軟性を与えられる。例えば、ＵＤＰセッションによって識別されるビデオ・トラフィック・グループのＱｏＳプロファイルは、高い優先順位および５Ｍｂｐｓの最小帯域幅を有するように定義でき、ＶＬＡＮによって識別されるエンジニアリング・トラフィック・グループのＱｏＳプロファイルは、二次的な優先順位、３０Ｍｂｐｓの最小帯域幅、５０Ｍｂｐｓの最大帯域幅、６０Ｍｂｐｓの最高点帯域幅に設定できる。同時に、プロトコル（例えばＩＰ）によって識別されるＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）トラフィック・グループのＱｏＳプロファイルは、低い優先順位、０Ｍｂｐｓの最小帯域幅、１００％の最大帯域幅、１００％の最高点帯域幅を有するように設定できる。
【００４２】
統合ルール
複数のトラフィック・グループが１つのＱｏＳ待ち行列にマッピングできることは、先に述べた。これは、各トラフィック・グループにすでに関連付けられた変数だけでなく、独立した一連の変数（例えば最小帯域幅、最大帯域幅、最高点帯域幅、最大遅滞、相対優先順位）を、各ＱｏＳ待ち行列に維持すること、および、以下に概説する一般的な統合ルールに従うことによって実現できる。
【００４３】
簡単に言うと、トラフィック・グループからＱｏＳ待ち行列へのマッピングが１対１である時、特定のＱｏＳ待ち行列の属性の決定は単純である。ＱｏＳ待ち行列の属性は、単純にトラフィック・グループの属性と等しい。しかし、共通のＱｏＳプロファイルを共用しない複数のトラフィック・グループを１つのＱｏＳ待ち行列に結合する時は、次の一般的な統合ルールが推奨される。（１）ターゲットのＱｏＳ待ち行列（例えばトラフィックが併合されることになるＱｏＳ待ち行列）に適した最小属性に達するように、結合されるトラフィック・グループの最小属性を加える。（２）ターゲットのＱｏＳ待ち行列に適した最大属性の値に達する最大属性のうちの最大を使用する。（３）異なる相対優先順位のトラフィック・グループを併合するのを避ける。最後のルールでは、異なる優先順位のトラフィック・グループが同一のＱｏＳ待ち行列に結合されないことを保証するために、提供される優先順位レベルの数が、その実施によってサポートされるＱｏＳ待ち行列の数と等しいか、それより少なくなければならない。
【００４４】
重要なことは、ネットワーク管理者が、複数のトラフィック・グループが共通のＱｏＳプロファイルを共用することになると判断した時、ネットワーク管理者はすでに事実上、手動でパラメータを統合しているため、統合ルールを適用する必要はないことである。
【００４５】
帯域幅の管理およびトラフィックの優先順位付け
本発明の一実施形態が実施できる例示的な環境の記述が終わり、次に、図２を参照しながら、帯域幅の管理およびトラフィックの優先順位付けを述べる。図２は、本発明の一実施形態による、ハイレベルの帯域幅の管理およびトラフィックの優先順位付けの処理を図示する流れ図である。この実施形態では、ステップ２１０で、管理者が定義したＱｏＳポリシーが、例えばＵＩ１４５を介して受け取られる。ＱｏＳポリシーは、トラフィック・グループと、これらのトラフィック・グループに対応するＱｏＳプロファイル属性との結合である。
【００４６】
ステップ２２０では、パケットがスイッチ１００によって受け取られる。パケットを転送のためにＱｏＳ待ち行列に配置できるようになる前に、ステップ２３０で、パケットが属するトラフィック・グループが識別される。一般的には、例えばパケットのヘッダ中の情報は、パケットが属するトラフィック・グループを識別するために、ネットワーク管理者によって設定されるトラフィック・グループ基準と比較することができる。この、比較または合致プロセスは、トラフィックを分類できるスイッチ１００中のプログラミング・フィルタによって達成できる。一実施形態によれば、パケットは、表１に列挙したトラフィック・グループ定義を使用して識別できる。
【００４７】
ステップ２５０では、待ち行列化処理が行われる。パケットは、識別されたトラフィック・グループに適したＱｏＳ待ち行列の後部に加えられる。パケットが関連付けられるトラフィック・グループに最大遅滞が割り当てられている場合は、パケットは、指定の期間内に振り落とされるか、転送されるかのどちらかにならなければならないことが重要である。一実施形態によれば、これは、対応するＱｏＳ待ち行列の深度（全長とも呼ばれる）を制限することによって達成できる。ＱｏＳ待ち行列の最小帯域幅、およびトラフィック・グループが耐えられる最大遅滞が与えられれば、ＱｏＳ待ち行列の最高深度が算出できる。ＱｏＳ待ち行列の長さが最高全長と等しいか、それより短い場合は、パケットはＱｏＳ待ち行列に加えられる。しかし、その追加によってＱｏＳ待ち行列の長さが最高全長を超過することになる場合は、パケットは振り落とされる。
【００４８】
ステップ２６０では、スケジューリングが行われる。スケジューリング／待ち行列解除処理は、適切なＱｏＳ待ち行列グループを決定し、そのＱｏＳ待ち行列グループの中から適切なＱｏＳ待ち行列を選択し、選択されたＱｏＳ待ち行列の前部にあるパケットを取り去ることを含む。この選択されたパケットが、ポートが次に転送するパケットとなる。スケジューリングについては、以下でさらに考察する。
【００４９】
ＱｏＳカテゴリの評価
本発明の一実施形態によれば、ＱｏＳ待ち行列を２つのカテゴリに分割することが有利である。カテゴリは、最大帯域幅、最小帯域幅、最高点帯域幅、そして「現在帯域幅」に基づいて定義できる。現在帯域幅は、時間における瞬間的な帯域幅と誤解されてはならず、そうではなくて、所定の時間枠の失効に際して定期的に更新される移動平均である。実験データによれば、この所定の時間枠はおよそ１０パケット時間であるべきであることが推奨され、１パケット時間とは、１つのパケットを転送するのに必要な時間である。しかし、トラフィックの環境および性質によって、１から１００までの範囲の値のパケット時間のほうがより適する場合がある。
【００５０】
第１のカテゴリ（「カテゴリＡ」）のメンバーは、その最高点帯域幅よりも小さく、その最小帯域幅よりも小さい現在帯域幅を有するＱｏＳ待ち行列である。第２のカテゴリ（「カテゴリＢ」）のメンバーには、その最小帯域幅と等しいか、またはそれよりも大きい現在帯域幅であって、しかしその最大帯域幅と最高点帯域幅の両方よりも小さい現在帯域幅を有するＱｏＳ待ち行列が含まれる。残りのＱｏＳ待ち行列（例えば、最高点帯域幅と最大帯域幅のどちらかと等しいか、またはどちらかよりも大きい現在帯域幅を有するＱｏＳ待ち行列）は送られる資格がない。送られる資格のないこれらのＱｏＳ待ち行列は、第３のカテゴリ（「カテゴリＣ」）と見ることができる。こうしたＱｏＳカテゴリの概要に基づいて、次に、ＱｏＳカテゴリの定期的な評価に対する例示的なプロセスを述べる。
【００５１】
図３は、本発明の一実施形態によるＱｏＳカテゴリの定期的評価を図示する流れ図である。この実施形態では、ステップ３１０で、所定の評価時間枠が失効するまで処理が繰り返される。例えば、現在時間が、最後の評価時間に所定の評価時間間隔を加えた時間と等しい、もしくはそれよりも長いかどうかを判断するテストを行うことができる。あるいは、評価プロセスは割り込みによって開始することもできる。いずれの場合でも、ＱｏＳ待ち行列のカテゴリ分けを評価する時が来れば、処理はステップ３２０によって続けられる。
【００５２】
所定の評価時間枠に対して選択された時間間隔は、長すぎても短すぎてもいけないことを理解されたい。時間間隔が長すぎる場合、１つのＱｏＳ待ち行列がその最大帯域幅に達するまでリンクを占有できる場合があり、一方で他のＱｏＳ待ち行列はアイドル状態のままとなる。時間間隔が短すぎる場合は、短い時間間隔にわたって移動平均が非常に速く移動するため、単一のパケットを転送すること、および、単一のパケットのためにアイドル状態でいることは、ＱｏＳ待ち行列が別のＱｏＳカテゴリのメンバーとなる（例えば、単一の転送が、現在帯域幅に最大帯域幅の超過を引き起こす、または、単一のアイドル時間が、現在帯域幅を最大帯域幅以下に引き下げる）ことを引き起こす可能性がある。
【００５３】
ステップ３３０では、第１の重み係数を掛けた、以前の時間間隔内で計算されたＱｏＳ待ち行列に対する現在帯域幅と、第２の重み係数を掛けた、以前の時間間隔内で特定のＱｏＳ待ち行列が受け取った実際の帯域幅とを足して、特定のＱｏＳ待ち行列に対する現在帯域幅が設定され、重み係数は、現在帯域幅メトリック内で所望の応答性レベルに達するように選択できる。例えば、ある割合の帯域幅が、ある程度の時間維持されている場合、現在帯域幅をその維持される帯域幅内に集束することが望ましい場合がある。例示的な重み係数は、それぞれ、（ｗ−１）／ｗおよび１／ｗの形をとる。例えば、第１の重み係数として１５／１６の重み係数を、第２の重み係数として１／１６の値を使用すると、現在帯域幅は、１３時間間隔以内にステップの５０％を反映し、２７時間間隔以内にステップの８０％を反映することになり、およそ６３時間間隔以内に、維持される帯域幅の２％となる（１００％の最大帯域幅および最高点帯域幅を想定した場合）。代替の比率および現在帯域幅の深度は、当業者にとっては明らかとなろう。
【００５４】
現在帯域幅がＱｏＳ待ち行列に対して評価された後、ステップ３４０では、そのＱｏＳ待ち行列がどのＱｏＳカテゴリに属するかを決定するために、ＱｏＳ待ち行列の帯域幅パラメータを現在帯域幅と比較する。上記のように、（ＣＵＲＲ＿ＢＷ＜ＰＥＡＫ＿ＢＷ）および（ＣＵＲＲ＿ＢＷ＜ＭＩＮ＿ＢＷ）である場合は、ＱｏＳ待ち行列はステップ３５０でカテゴリＡに関連付けられる。（ＣＵＲＲ＿ＢＷ  ＭＩＮ＿ＢＷ）および（（ＣＵＲＲ＿ＢＷ＞ＭＡＸ＿ＢＷ）および（ＣＵＲＲ＿ＢＷ＜ＰＥＡＫ＿ＢＷ））である場合は、ＱｏＳ待ち行列はステップ３６０でカテゴリＢに関連付けられる。（ＣＵＲＲ＿ＢＷ  ＰＥＡＫ＿ＢＷ）または（ＣＵＲＲ＿ＢＷ  ＭＡＸ＿ＢＷ）である場合は、ＱｏＳ待ち行列はステップ３７０でカテゴリＣに関連付けられる。
【００５５】
ステップ３８０で、全てのＱｏＳ待ち行列が評価されると、処理はステップ３１０に分岐し、そうでない場合は、処理はステップ３３０によって継続する。
【００５６】
スケジューリング処理
簡単に言うと、各ポートで、次のパケットを転送するのに適したＱｏＳ待ち行列を選択するために、３つの仲裁レベルが使用される。第１の仲裁レベルは、ＱｏＳカテゴリの中から選択する。ＱｏＳ待ち行列メンバーのどれかが１つまたは複数の待ち状態パケットを有する場合、カテゴリＡは優先順位を与えられる。そうでない場合は、カテゴリＢの１つまたは複数の待ち状態パケットを有するＱｏＳ待ち行列が選択される。一実施形態によれば、各ＱｏＳ待ち行列に割り当てられる相対優先順位は、第２の仲裁レベルとして使用される。このような方法で、複数のＱｏＳ待ち行列が第１の仲裁レベルを満たす時、より高い優先順位のＱｏＳ待ち行列が、より低い優先順位のＱｏＳ待ち行列以上に好まれる。最後に、第２の仲裁レベルに同順位のものがある時（例えば、同一のＱｏＳカテゴリ内の２つまたはそれ以上のＱｏＳ待ち行列が、同じ相対優先順位を有する時）は、２つまたはそれ以上のＱｏＳ待ち行列の中から選択するために、ＱｏＳカテゴリが評価されるまで、ラウンド・ロビン方式または最長時間未使用（ＬＲＵ：least recently used）方式が採用される。
【００５７】
ＱｏＳカテゴリの定期的な評価が行われることを想定した場合、スケジューリング処理はそうした評価を組み込む必要がなく、本発明の一実施形態によれば、スケジューリング処理は図４に図示するように行うことができる。ステップ４１０に示される実施形態では、処理は、評価されるＱｏＳ待ち行列グループに関連付けられるポートが、次の転送のためのパケットを受け取る準備ができていることを示すまで繰り返される。例えば、ポートは、その転送状態を決定するためにポーリングできる。別法では、スケジューリング処理は割り込みによって開始できる。どんな場合でも、ポートが次のパケットを受け取る準備ができた時、処理はステップ４２０によって継続する。
【００５８】
ステップ４２０では、ＱｏＳ待ち行列が次の転送のためのパケットを与えることになるＱｏＳカテゴリが選択される。上記のように、最高点帯域幅および最小帯域幅より小さい、待ち状態データを有するＱｏＳ待ち行列を含むカテゴリ（例えばカテゴリＡ）に優先順位が与えられる。しかし、この基準を満たすＱｏＳ待ち行列がない場合は、カテゴリＢが選択される。
【００５９】
ステップ４３０で、複数のＱｏＳ待ち行列が、選択されたＱｏＳカテゴリのメンバーである場合は、処理はステップ４４０によって継続し、そうでない場合は、処理はステップ４７０に分岐する。
【００６０】
ステップ４４０では、待ち状態データを有する、選択されたカテゴリのＱｏＳ待ち行列の中から選択するために、ＱｏＳ待ち行列の相対順位が使用される。
【００６１】
ステップ４５０で、２つまたはそれ以上のＱｏＳ待ち行列が同一優先順位を有する場合は、処理はステップ４６０によって継続する。あるいは、ＱｏＳ待ち行列が最も高い優先順位を有することが判明した場合は、処理はステップ４７０に分岐する。
【００６２】
ステップ４６０では、ラウンド・ロビン方式またはＬＲＵ方式のスケジューリングを行うことによって、同一順位が解決される。つまり、ＱｏＳカテゴリが評価されるまで、同一優先順位のＱｏＳ待ち行列は所定の順番でローテートすることになるか、または、転送するパケットを最近与えられていないＱｏＳ待ち行列にそうした機会が与えられるようにスケジューリングされることになる。このような方法でＱｏＳ待ち行列を選択した後、処理はステップ４７０によって継続する。
【００６３】
ステップ４７０では、選択されたＱｏＳ待ち行列からパケットが待ち行列解除され、パケットは、ステップ４８０でポートによって送られる。このスケジューリング処理は、図示するように、ステップ４１０に折り返すことによって繰り返される場合がある。
【００６４】
待ち行列化の技法
以上で考察したＱｏＳプロファイル属性の多様な組み合わせを使用して、異なる待ち行列化機構が様々に実装できる。以下の表２では、例示的な待ち行列化機構と、ＱｏＳプロファイル属性の対応環境設定とがどのように達成されるかが図示される。
【表２】
2006325275.tif 000004
【００６５】
ＰＲＩＯＲＩＴＹiは、特定のＱｏＳ待ち行列ｉに対するプログラム可能な優先順位の値を表す。同様に、ＭＡＸ＿ＢＷiおよびＰＥＡＫ＿ＢＷiは、それぞれ特定のＱｏＳ待ち行列ｉに対するプログラム可能な最大帯域幅および最高点帯域幅を表す。
【００６６】
厳密な優先順位方式に対しては、各ＱｏＳ待ち行列の最小帯域幅が０％に設定され、各ＱｏＳ待ち行列の最大帯域幅が１００％に設定され、各ＱｏＳ待ち行列の最高点が１００％に設定される。このような方法では、現在帯域幅は最小帯域幅より小さくなることは決してなく、現在帯域幅は最高点帯域幅または最大帯域幅のいずれかを超過することは決してないことになる。この環境設定では、カテゴリＡまたはカテゴリＢの基準を満たすＱｏＳ待ち行列がないために、全てのＱｏＳ待ち行列はカテゴリＢに関連付けることができる。最後に、このような方法でＱｏＳプロファイル属性を環境設定することによって、第２の仲裁レベル（例えばＱｏＳの相対優先順位）は、どのＱｏＳ待ち行列が次のパケットのソースとなるかを決定する。
【００６７】
純粋なラウンド・ロビン方式または最長時間未使用（ＬＲＵ）方式に対しては、ＱｏＳプロファイル属性は上記のとおりだが、追加的に、全てのＱｏＳ待ち行列優先順位が同じ値に設定される。この方法では、第３の仲裁レベルが、どのＱｏＳ待ち行列が次のパケットのソースとなるかを決定する。
【００６８】
最後に、重み付けによる公平な待ち行列化は、少なくとも、所望の最小帯域幅パラメータに０％よりも大きい値を割り当てることによって達成される。ＱｏＳ待ち行列は、少なくともその最小帯域幅が満たされるまでカテゴリＡに関連付けられることになるため、最小帯域幅パラメータに０よりも大きい値を割り当てることによって、特定のＱｏＳ待ち行列が少なくともその値の帯域幅パラメータを平均して得ることが保証される。加えて、特定のＱｏＳ待ち行列がリンクを占有しないようにするために、最高点帯域幅および最大帯域幅に異なる組み合わせの値が割り当てられる場合もある。
【００６９】
（代替の実施形態）
ＱｏＳカテゴリの評価は、定期的に起こるものとして以上に述べられたが、この評価はまた、所定のイベントの発生によって開始されることも可能である。あるいは、ＱｏＳカテゴリの評価は、独立した定期的なバックグラウンド・プロセスの一部としてでなく、スケジューリング処理の一部として実施することも可能である。
【００７０】
優先順位レベルの数とＱｏＳ待ち行列の数との関係を上記に提案したが、ＱｏＳ待ち行列の数は、優先順位レベルの数に関係なく決定することもできることを理解されたい。さらに、各ポートに提供されるＱｏＳ待ち行列の数は各ポートに固定することができ、別法としては、ＱｏＳ待ち行列の数は各ポートに与えることもできる。
【００７１】
最後に、代替の実施形態では、本明細書で提案された以外の重み係数および比率も、特定の実施態様に対する現在帯域幅の計算を調整するために使用することができる。
【００７２】
前述の明細書では、本発明は、特定の実施形態に基づいて述べられた。しかし、本発明のより広い趣旨および範囲を逸脱することなく、それに様々な修正および変更がなされうることは明白となるであろう。したがって、明細書および図面は、限定的ではなく例示的なものとして見なされるべきである。
【図面の簡単な説明】
【００７３】
【図１Ａ】本発明の一実施形態が実施できる例示的なスイッチ・アーキテクチャの簡略化ブロック図である。
【図１Ｂ】本発明の一実施形態による、スイッチ処理ブロック間の相互作用の理論図である。
【図２】本発明の一実施形態による、ハイレベル帯域幅管理およびトラフィックの優先順位付け処理を図示する流れ図である。
【図３】本発明の一実施形態による、定期的なＱｏＳカテゴリの評価を図示する流れ図である。
【図４】本発明の一実施形態による、次のパケットのスケジューリングを図示する流れ図である。
【図１Ａ】
2006325275.tif 000005
【図１Ｂ】
2006325275.tif 000006
【図２】
2006325275.tif 000007
【図３】
2006325275.tif 000008
【図４】
2006325275.tif 000009