(57)【特許請求の範囲】
【請求項１】
データ通信システムのトラフィックフローにバックプレッシャーフロー制御を提供するための装置であって、
トラフィックフローのデータパケットにパケット処理操作を行うためのパケット処理モジュールと、
少なくとも２つの異なるしきい値に基づいて、パケット処理モジュールの輻輳のレベルを判定するバックプレッシャーモジュールと、
輻輳のレベルに応じて、トラフィックフローのどれが一定のフロー制御を必要としているかを判定するフローマッピングエンジンと、
パケット処理モジュールから処理済みデータパケットを受け取り、必要に従って１つまたは複数のトラフィックフローに一定のフロー制御を適用するトラフィック管理モジュールと
を含み、
トラフィック管理モジュールが、トラフィックフローのそれぞれのためのそれぞれの仮想出力キューを含み、仮想出力キューから所与のトラフィックフローに対応するデータパケットが放出されるレートを変えることによって所与のトラフィックフローに一定のフロー制御を適用する、装置。
【請求項２】
トラフィック管理モジュールが、レートをゼロまで減少させ、それによって仮想出力キューからのデータパケットの放出を停止することによってレートを変えるように動作可能である、請求項１に記載の装置。
【請求項３】
フローマッピングエンジンが、表を含み、この表を使用して、輻輳のレベルに従って、所与のトラフィックフローの仮想出力キューを判定するように動作可能である、請求項１に記載の装置。
【請求項４】
フローマッピングエンジンがさらに、表を使用して、輻輳のレベルに従って、一定のフロー制御を必要とするパケット処理モジュールへのイングレストラフィックのデータパケットの、それらに適用されるべき、１つまたは複数の優先度を判定するように動作可能である、請求項３に記載の装置。
【請求項５】
さらなるパケット処理のために、トラフィックフローの処理済みデータパケットがトラフィック管理モジュールからパケット処理モジュールに送られることができるように、トラフィック管理モジュールがパケット処理モジュールに通信可能に結合される、請求項１に記載の装置。
【請求項６】
トラフィック管理モジュールが、トラフィックフローのそれぞれのためのそれぞれの仮想出力キューを含み、トラフィック管理モジュールが、仮想出力キューから所与のトラフィックフローに対応するデータパケットが放出されるレートを変えることによって所与のトラフィックフローに一定のフロー制御を適用するように動作可能である、請求項５に記載の装置。
【請求項７】
データ通信システムにおいてトラフィックフローのフロー制御を行う方法であって、
少なくとも２つの異なるしきい値に基づいて、データ通信システムにおけるパケット処理モジュールの輻輳のレベルを検出することと、
輻輳のレベルに応じてパケット処理モジュールによって処理されているトラフィックフローに一定のフロー制御が適用されるべきかどうかを判定することと、
判定が肯定であることに応答してトラフィックフローに一定のフロー制御を適用することと
を含み、
仮想出力キューから所与のトラフィックフローに対応するデータパケットが放出されるレートを変えることによって所与のトラフィックフローに一定のフロー制御が適用される、方法。
【請求項８】
検出するステップは、
パケット処理モジュールの入力バッファの現在の充填レベルを少なくとも２つの異なるしきい値と比較することと、
比較の結果として、現在の充填レベルと少なくとも２つの異なるしきい値との関係に対応する値を有するバックプレッシャーメッセージを形成することと、
を含む、請求項７に記載の方法。
【請求項９】
判定するステップは、
パケット処理モジュールへのイングレストラフィックフロー、パケット処理モジュールへの再循環トラフィックフロー、およびデータ通信システムからのイーグレストラフィックフローのうちの、１つまたは複数について判定を行うこと
をさらに含む、請求項８に記載の方法。
【請求項１０】
判定を行うステップは、
バックプレッシャーメッセージの値に従って、パケット処理モジュールへのイングレストラフィックフローのデータパケットの優先度があればどの優先度がデータパケットに一定のフロー制御を適用すべきか、ならびに再循環トラフィックフローおよびイーグレストラフィックフローのタイプがあればどのタイプがトラフィックフローに一定のフロー制御を適用すべきかを判定すること
をさらに含む、請求項９に記載の方法。
【請求項１１】
適用するステップは、
一定のフロー制御を必要とすると判定された優先度を有するデータパケットのパケット処理モジュールへのイングレストラフィックフローを停止すること、ならびに
一定のフロー制御を必要とすると判断されたトラフィックタイプのイーグレストラフィックフローおよび再循環トラフィックフローを停止することと、
をさらに含む、請求項１０に記載の方法。
【請求項１２】
適用するステップはさらに、
一定のフロー制御を必要とするトラフィックフローのそれぞれのトラフィックフローに対応する仮想出力キューがデータパケットの放出を停止するように、各仮想出力キューの状態を変更することと
をさらに含む、請求項１１に記載の方法。
【請求項１３】
先行するステップを継続的に繰り返すことをさらに含む、請求項７に記載の方法。
【請求項１４】
バックプレッシャーメッセージの３つの異なる値を定義することをさらに含む、請求項８に記載の方法。
【請求項１５】
現在の充填レベルが第１のしきい値未満のときにバックプレッシャーメッセージの第１の値を定義することをさらに含む、請求項１４に記載の方法。
【請求項１６】
現在の充填レベルが第２のしきい値未満であるが、第１のしきい値以上のときにバックプレッシャーメッセージの第２の値を定義することをさらに含む、請求項１５に記載の方法。
【請求項１７】
現在の充填レベルが第２のしきい値以上のときにバックプレッシャーメッセージの第３の値を定義することをさらに含む、請求項１６に記載の方法。
【請求項１８】
バックプレッシャーメッセージの第２の値に応答して、ベストエフォート（ＢＥ）のトラフィックフローのみを停止することをさらに含む、請求項１５に記載の方法。
【請求項１９】
ベストエフォートのトラフィックフローおよび完全優先転送（ＥＦ）のトラフィックフローを停止し、
バックプレッシャーメッセージの第３の値に応答して、相対的優先転送（ＡＦ）のトラフィックフローのみを送信することをさらに含む、請求項１７に記載の方法。
【請求項２０】
データ通信システムのトラフィックフローにバックプレッシャーフロー制御を提供するための装置であって、
トラフィックフローのデータパケットにパケット処理操作を行うためのパケット処理モジュールと、
少なくとも２つの異なるしきい値に基づいて、パケット処理モジュールの輻輳のレベルを判定するバックプレッシャーモジュールとを含み、バックプレッシャーメッセージの少なくとも３つの異なる値がトラフィックフローを選択するのに使用され、さらに、
輻輳のレベルに応じて、トラフィックフローのどれが一定のフロー制御を必要としているかを判定するフローマッピングエンジンと、
パケット処理モジュールから処理済みデータパケットを受け取り、必要に従って１つまたは複数のトラフィックフローに一定のフロー制御を適用するトラフィック管理モジュールと
を含む、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークを対象にし、詳細にはデータ通信システムにおけるフロー制御を対象にする。
【背景技術】
【０００２】
データ通信システムで利用されるフロー制御技術では、一般にバックプレッシャーシグナリングが用いられる。こうした技術は、データ通信システム間の通信リンクで使用されることが可能であり、またデータ通信システムのサブシステム間の通信にも使用されることが可能である。一般に、このようなバックプレッシャーフロー制御技術の目的は、受信側のキューにおける、これらのキューをオーバーフローすることによって引き起こされるデータパケットの損失を防ぐことである。
【０００３】
従来のバックプレッシャーフロー制御技術は、一般に単純なオンオフシグナリングを使用する。この技術によれば、受信側キューにおいて充填レベルのしきい値を超えることによってバックプレッシャー信号（例えば停止）が生成され、この信号はその後データパケットのソースに送られる。システム間通信の場合、データパケットのソースは通常、別のデータ通信システムの送信バッファである。システム内通信の場合、データパケットのソースは通常、サブシステムのイーグレス（ｅｇｒｅｓｓ）キューであり、受信側のキューは、別のサブシステムのイングレス（ｉｎｇｒｅｓｓ）キューである。１つのタイプのバックプレッシャー信号（例えば停止）は、このキューへのデータパケットの送信をその後の通知まで一時停止すべきであることをソースに示し、その後の通知は、別のタイプのバックプレッシャー信号（例えば再開）の形式で与えられる。場合によっては２つ以上のデータパケットソースがある可能性があり、その場合、バックプレッシャー信号は、通常それらのソースのすべてに送信されることになる。この技術は実装が簡単であり、処理するために送信元に返送される必要のある情報の量が限られているので、データ通信システムにおいて非常にうまく行っている。
【０００４】
単純なオンオフ以上のシグナリングを提供するより高度なバックプレッシャーフロー制御技術が知られている。これらは、キューにおいて連続的により高い充填レベルのしきい値が超過されるにつれて、キューへのデータパケットのフローレートを徐々に下げる技術を含む。他の技術は、単に一定の優先度のデータパケットにバックプレッシャーフロー制御を適用するための手段を有する。しかしながら、優先度のみを使用することは、場合によっては十分ではない可能性があり、特に、１つまたは複数のタイプのトラフィックフローに対して、これらのフロー中のデータパケットの優先度にかかわらず個々のフロー制御を選択的に行うことが好ましいとき、十分ではない可能性がある。
【０００５】
データ通信システムのための最先端のトラフィック管理を設計する際の課題の１つは、システムの内部の輻輳状態が、システムのパケット処理およびトラフィック管理エンジンの性能の限界ならびにそのバスインタフェース上の制限によるものであることが多いことである。一般にこうした制限は、このような輻輳状態に柔軟に対処する限られた能力しかないバックプレッシャーフロー制御の解決策をもたらす。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、データ通信システムによって搬送される様々なタイプのトラフィックフローに柔軟に適用されることが可能であるバックプレッシャーフロー制御を提供する必要性がある。
【課題を解決するための手段】
【０００７】
データ通信システムにおいて、本発明の諸実施形態は、システムのパケットプロセッサにおける輻輳のレベルに応答してトラフィックフローに一定のフロー制御を適用することによって、トラフィックフローにバックプレッシャーフロー制御を選択的に提供する。
【０００８】
本発明の一態様によれば、データ通信システムのトラフィックフローにバックプレッシャーフロー制御を提供するための装置が提供される。この装置は、トラフィックフローのデータパケットにパケット処理操作を行うためのパケット処理モジュールと、パケット処理モジュールの輻輳のレベルを判定するためのバックプレッシャーモジュールと、輻輳のレベルに基づいて、トラフィックフローのどれが一定のフロー制御を必要とするかを判断するためのフローマッピングエンジンと、パケット処理モジュールから処理されたデータパケットを受け取るための、および必要に従って一定のフロー制御をトラフィックフローの１つまたは複数に適用するためのトラフィック管理モジュールとを含む。
【０００９】
本発明の別の実施形態によれば、データ通信システムにおいてトラフィックフローのフロー制御を行う方法が提供される。この方法は、データ通信システムにおけるパケット処理モジュールの輻輳のレベルを検出するステップと、輻輳のレベルに応じて一定のフロー制御が、パケット処理モジュールによって処理されているトラフィックフローに適用されるべきかどうかを判定するステップと、判定が肯定であることに応答して一定のフロー制御をトラフィックフローに適用するステップとを含む。
【００１０】
有利には、本発明の諸実施形態は、データ通信システムのコストを実質的に追加させることなく実装されることが可能であり、これは、トラフィック管理がデータ通信システム間の主要な差別化要因である可能性があることから、特に有益である可能性がある。
【００１１】
本発明は、図面を参照した次の詳細な説明からさらに理解されるであろう。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に従って特定のトラフィックフローにバックプレッシャーフロー制御を提供するための装置のハイレベルブロック図である。
【図２】図１のフロー制御表の一例を示す図である。
【図３】図１の仮想出力キュー（ＶＯＱ）割当て表の一例を示す図である。
【図４】図１の例示的バックプレッシャーメッセージおよび対応するＶＯＱフロー制御メッセージを示す図である。
【図５】本発明の第２の実施形態によりトラフィックフロー上でバックプレッシャーフロー制御を行う方法のフローチャートである。
【発明を実施するための形態】
【００１３】
図１を参照すると、データ通信システムにおいてバックプレッシャーフロー制御を提供するための装置１０が、パケット処理モジュール１４、トラフィック管理モジュール１６、およびマイクロプロセッサモジュール１８と通信している入力／出力（Ｉ／Ｏ）インタフェースモジュール１２を含んでいる。またパケット処理モジュール１４とトラフィック管理モジュール１６は、互いと通信している。
【００１４】
Ｉ／Ｏインタフェースモジュール１２は、顧客ポートなど、データ通信システム内のソースからイングレスデータパケット２２を受け取り、これらをイングレストラフィック２６としてパケット処理モジュール１４に転送するための複数の入力ポートを含んでいる。Ｉ／Ｏインタフェースモジュール１２はまた、データ通信システムのＩ／Ｏポートのような通信システム内の宛先にイーグレスデータパケット２４を送信するための複数の出力ポートを含んでいる。Ｉ／Ｏインタフェースモジュール１２はさらに、Ｉ／Ｏインタフェースモジュール１２がイングレストラフィック２６上にバックプレッシャーフロー制御を提供できるように、パケット処理モジュール１４から受け取られたバックプレッシャーメッセージをイングレスデータパケット２２の優先度にマッピングするためのフローマッピングエンジン２０を含んでいる。フロー制御テーブル４６は、後により詳細に説明するように、このようなマッピングを行うためのフローマッピングエンジン２０に含まれている。
【００１５】
パケット処理モジュール１４は、イングレストラフィック２６としてＩ／Ｏインタフェースモジュール１２から受け取られたイングレスデータパケット２２を格納するための入力バッファ２５を含んでいる。それぞれ第１のしきい値Ｔ１および第２のしきい値Ｔ２として示される、複数の連続的な充填レベルしきい値が、入力バッファ２５に対して定義される。灰色の網掛けで示される入力バッファ２５の充填レベルは、第１のしきい値と第２のしきい値の間である。パケット処理モジュール１４はまた、複数のＭ個のパケットプロセッサ（ＰＰ）を含んでおり、これは、入力バッファ２５から受け取られたデータパケットに高スループットのパケット処理操作を行うために並列に動作する。パケット処理モジュール１４はさらに、入力バッファ２５の現在の充填レベルを複数の充填レベルしきい値と比較することによってバックプレッシャーメッセージ３０を作り出すバックプレッシャーモジュール２９を含んでいる。バックプレッシャーメッセージ３０は、Ｉ／Ｏインタフェースモジュール１２に伝えられ、ここでバックプレッシャーメッセージは、イングレスデータパケット２２の優先度があれば、どの優先度が一定のフロー制御をパケットに適用すべきかを判定するために使用される。
【００１６】
インターネットプロトコルＤｉｆｆＳｅｒｖ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅ、差別化サービス）のトラフィックの分類を参照して、前述のバックプレッシャーフロー制御の一例を示す。２つの充填レベルしきい値を使用して、本明細書ではタイプとも呼ばれる、３つの異なる値のバックプレッシャーメッセージ３０が定義されることが可能である。このようなメッセージの第１のタイプは、入力バッファ２５の現在の充填レベルが第１のしきい値Ｔ１未満であることに対応する。同様に、このようなメッセージの第２のタイプは、現在の充填レベルが第２のしきい値Ｔ２未満であるが、第１のしきい値Ｔ１以上であることに対応する。最後にこのようなメッセージの第３のタイプは、現在の充填レベルが第２のしきい値Ｔ２以上であることに対応する。第１のタイプのバックプレッシャーメッセージ３０を受け取ると、Ｉ／Ｏインタフェースモジュール１２は、イングレストラフィック２６としてすべての優先度のデータパケットをパケット処理モジュール１４に渡し続ける。しかしながら、第２のタイプのバックプレッシャーメッセージ３０を受け取ることに応答して、Ｉ／Ｏインタフェースモジュール１２は、イングレストラフィック２６にこのようなデータパケットを含まないことによって、ベストエフォート（ＢＥ）のトラフィックフローを停止させる。さらに、第３のタイプのバックプレッシャーメッセージ３０を受け取ることに応答して、Ｉ／Ｏインタフェースモジュール１２は、イングレストラフィック２６にこのようなデータパケットを含まないことによって、ベストエフォートのトラフィックフローおよび完全優先転送（ＥＦ）のトラフィックフローを停止する。この場合、相対的優先転送（ＡＦ）タイプのデータパケットのみが、パケット処理モジュールに送信されるイングレストラフィック２６に含まれることになる。新しいバックプレッシャーメッセージ３０を受け取ると、このようなメッセージの以前のものを破棄し、Ｉ／Ｏインタフェースモジュール１２によって最も新しく受け取られたバックプレッシャーメッセージ３０の内容に従ってトラフィックフローは停止される、または再開される。この例では、トラフィックフローを停止することが、このようなフローに一定のフロー制御を適用することを構成する。
【００１７】
パケット処理モジュール１４が、入力バッファ２５からデータパケットを読み取り、複数のパケットプロセッサ２８を介してこれらにパケット処理を行うと、処理済みデータパケット３２がもたらされ、これがトラフィック管理モジュール１６に伝えられる。データパケットに行われる処理のタイプは、基本的なプロトコルの終了操作を含み、ディープパケットインスペクション（ＤＰＩ）のような高度な操作を含む場合もある。トラフィック管理モジュール１６は、処理済みデータパケット３２にトラフィック管理操作を行うためのキューイングおよびスケジューリングモジュール３３を含み、データパケットの管理されたトラフィックフローをもたらす。キューイングおよびスケジューリングモジュール３３は、管理されたトラフィックフローのデータパケットが、イーグレストラフィック３５としてＩ／Ｏインタフェースモジュール１２に伝えられる、またはさらなる処理を必要とする再循環トラフィック３６としてパケット処理モジュール１４に伝えられる前にこれらを格納するための複数の仮想出力キュー（ＶＯＱ）３４を含む。
【００１８】
通常、複数のＶＯＱの各１つは、それぞれのトラフィックフローと関連付けられるが、データ通信システムの容量が必要条件を上回る場合、場合によってはあるＶＯＱはどのトラフィックフローにも割り当てられない可能性がある。各トラフィックフローは、トラフィックフロー中のデータパケットのソースアドレスおよび宛先アドレスならびにプロトコルポート識別子によって他のトラフィックフローと区別される。さらに、トラフィックフローのいずれも、トラフィックフローの所有者または顧客、ならびにトラフィックフローによってサポートされるサービスなど他の要素によって識別されることが可能である。
【００１９】
フローマッピングエンジン２０の機能に戻ると、エンジン２０はさらに、ＶＯＱフロー制御メッセージ３１を作り出すために、バックプレッシャーメッセージ３０をＶＯＱ３４にマッピングすることを行うように動作可能である。このために、後にさらに詳細に説明するように、フローマッピングエンジン２０にＶＯＱ割当て表４８が含まれる。ＶＯＱフロー制御メッセージ３１は、トラフィック管理モジュール１６に送信され、パケット処理モジュール１４に送信される再循環トラフィック３６に、および必要に応じてイーグレストラフィック３５に、フロー制御を行う際に使用される。関与するサービスおよびアプリケーションによっては、イーグレストラフィック３５は入力バッファ２５の現在の充填レベルに直接に影響を与えないが、場合によってはイーグレストラフィック３５をフロー制御することは、入力バッファ２５の現在の充填レベルを低減させるという望ましい効果を有することができる。
【００２０】
優先度ベースのバックプレッシャーメッセージ３０の３つのタイプに関する前述の例を参照して、このようなメッセージをＶＯＱ３４にマッピングしてＶＯＱフロー制御メッセージ３１を作り出す例を次に示す。例えば、４つのＶＯＱ３４があると仮定し、そのうちの第１は再循環トラフィック３６用（例えばＤＰＩ操作を含む）であり、そのうちの第２は、ミラーリングされているイーグレストラフィック３５用（例えば政府機関による合法の傍受用）であり、そのうちの第３は、プレミアムサービスに対する顧客の支払い用であり、そのうちの第４はベストエフォートサービスに対する顧客の支払い用である。マッピングエンジン２０が第１のタイプのバックプレッシャーメッセージ３０を受け取る（すなわち、現在の充填レベルが第１のしきい値Ｔ１を下回る）場合、ＶＯＱ３４のどれも一定のフロー制御をこれらに適用しない。したがって、ＶＯＱフロー制御メッセージ３１は、その趣旨で生成される。この例では、単に１つの一定のフロー制御が使用され、これはＶＯＱからの所与のトラフィックフローのすべてのデータパケットの放出を停止することであるが、レート制限など、フロー制御の他の手段が代わりに使用されてもよい。マッピングエンジン２０が第２のタイプのバックプレッシャーメッセージ３０を受け取る（すなわち、現在の充填レベルが第１のしきい値以下、第２のしきい値未満である）場合、ベストエフォートサービスの顧客のトラフィックは、一定のフロー制御がこれらに適用される。したがって、第４のＶＯＱからのトラフィックフローが停止されるべきであることを示すＶＯＱフロー制御メッセージ３１が生成される。マッピングエンジン２０が第３のタイプのバックプレッシャーメッセージ３０を受け取る（すなわち現在の充填レベルが第２のしきい値以上である）場合、再循環トラフィック３６およびベストエフォートサービスの顧客のトラフィックは、一定のフロー制御がこれらに適用される。したがって、第１および第４のＶＯＱからのトラフィックフローが停止されるべきであることを示すＶＯＱフロー制御メッセージ３１が生成される。この例では、第２および第３のＶＯＱのトラフィックによって必要とされるサービスのレベルにより、これらのＶＯＱからのトラフィックは、いかなるタイプのバックプレッシャーメッセージ３０についても停止されないことに注意されたい。
【００２１】
図２を参照して、次にフロー制御表４６の一例について説明する。この例は、バックプレッシャーメッセージ３０およびＶＯＱフロー制御メッセージ３１に関する前述の例に対応する。フロー制御表４６の左列は、前述の例における３つのタイプのバックプレッシャーメッセージ３０を含み、各タイプがそれぞれの行にある。残りの列は、イングレストラフィック２６のどのデータパケットの優先度がフロー制御されるべきであるか、ならびに再循環トラフィック３６およびイーグレストラフィック３５のどのタイプのトラフィックフローがフロー制御されるべきかを示し、イングレストラフィック、再循環トラフィック、およびイーグレストラフィックのそれぞれに対してそれぞれの列がある。フローマッピングエンジン２０は、パケット処理モジュール１４から現在受信済みのバックプレッシャーメッセージ３０のタイプによりフロー制御表４６中の行にインデックスすること、ならびに行から一定のフロー制御を適用すべきデータパケットの優先度およびトラフィックフローのタイプを読み取ることによって、バックプレッシャーメッセージ３０をイングレストラフィック２６の優先度に、ならびに再循環３６フローおよびイーグレストラフィック３５フローのタイプにマッピングする。この例では、適用される一定のフロー制御は、問題のトラフィックフローのデータパケットのフローを停止することである。例えば、図２でタイプ３と示した第３のタイプのバックプレッシャーメッセージ３０については、フローマッピングエンジン２０は、マッピングテーブル４６中の第３の行を読み取り、これは、イングレストラフィック２６のベストエフォートおよび完全優先転送の優先度が停止されるべきこと、再循環トラフィック３６のＤＰＩタイプが停止されるべきこと、ならびにイーグレストラフィック３５のベストエフォートサービスタイプが停止されるべきことを示す。このように、バックプレッシャーフロー制御は、パケット処理モジュール中の輻輳レベルを示すバックプレッシャーメッセージに応答してトラフィックフローに一定のフロー制御を適用することによって、特定のトラフィックフローに選択的に提供される。新しいバックプレッシャーメッセージ３０を受け取ると、このようなメッセージの以前に受信したものを破棄し、Ｉ／Ｏインタフェースモジュール１２によって最も新しく受け取られたバックプレッシャーメッセージ３０の内容に従って様々な手段のフロー制御がトラフィックフローに適用されるようにする。
【００２２】
図３を参照し、次にＶＯＱ割当て表４８の一例について説明する。この例は、バックプレッシャーメッセージ３０およびＶＯＱフロー制御メッセージ３１に関する前述の例に対応する。ＶＯＱ割当て表４８の左列は、ＶＯＱの識別子を含み、各ＶＯＱはそれぞれの行に数値識別子を有する。他の列は、そのＶＯＱによって管理されているトラフィックフローのタイプの表示を含んでおり、各行には、その行で特定されるＶＯＱによって管理されるべきトラフィックフローのそれぞれのトラフィックフロー表示が含まれている。フローマッピングエンジン２０は、まず一定のフロー制御を適用される再循環トラフィック３６およびイーグレストラフィック３５のトラフィックフローのタイプを判定することによって、バックプレッシャーメッセージ３０をＶＯＱにマッピングする。これは、図２を参照してすでに説明したように、フロー制御表４６を使用して行われる。次に、ＶＯＱ割当て表４８からトラフィックフローの表示を読み取り、これをすでに判定されたように一定のフロー制御を適用されるべきトラフィックフローの表示と比較することによって、フローマッピングエンジン２０は、結果的に一致するこのようなすべての比較について対応するＶＯＱ識別子を記録する。
【００２３】
図４を参照して、次にバックプレッシャーメッセージ３０および対応するＶＯＱフロー制御メッセージ３１の一例について説明する。この例は、バックプレッシャーメッセージ３０およびＶＯＱフロー制御メッセージ３１に関する前述の例に対応する。前述の例で使用された３つの異なるタイプのバックプレッシャーメッセージ３０が、図の左側に示されており、それぞれの実際の形式は、メッセージタイプの序数を示す２進数である。図の左側に示された優先度に基づくバックプレッシャーメッセージ３０の各タイプについて、対応するＶＯＱフロー制御メッセージ３１がこれに隣接して図の右側にある。各ＶＯＱフロー制御メッセージ３１の形式は、各ＶＯＱ３４に１ビットのフィールドを含み、メッセージ３１中のこのような各フィールドの位置が、ＶＯＱ割当て表４８中のＶＯＱの数値識別子に対応する。ＶＯＱフロー制御メッセージ３１の内容は、各フィールドに２進数のインジケータを含み、このような各インジケータは、そのフィールドに対応するＶＯＱによって管理されているトラフィックフローが一定のフロー制御を適用されるべきかどうかの指示を与える。この例では、適用される一定のフロー制御は、問題のＶＯＱからの所与のトラフィックフローのすべてのデータパケットを停止することである。しかしながら、この手段は、トラフィックフローをレート制限するなどの他の手段とすることも可能である。図４では、「１」という値はトラフィックフローが停止されるべきであることを示すのに対し、「０」という値はトラフィックフローが停止されるべきではないことを示す。
【００２４】
マイクロプロセッサモジュール１８は、Ｉ／Ｏインタフェースモジュール１２を介して制御プレーントラフィック４４を制御プレーンに挿入する。同様に制御プレーントラフィック４４は、Ｉ／Ｏインタフェースモジュール１２によって制御プレーンから取り出され、マイクロプロセッサモジュール１８に伝えられる。フロー制御表４６およびＶＯＱ割当て表４８をポピュレートするための制御プレーンからの命令は、マイクロプロセッサモジュール１８を介してフローマッピングエンジン２０へ伝えられる。これらの命令は、オペレータコンソールを介してデータ通信システム上で行われるトラフィックおよびサービスプロビジョニング操作の結果として、ネットワーク管理システム、または他のタイプの操作サポートシステムを起動させる。またフローマッピングエンジン２０のマッピング機能は、特定のタイプの制御プレーントラフィック４４にフロー制御を行うために、制御プレーントラフィックに適用される。
【００２５】
図５を参照して、次に本発明の第２の実施形態に従ってデータパケットのトラフィックフローのフロー制御を行う方法について説明する。この方法は、データ通信システムにおけるパケット処理モジュールの輻輳のレベルを判定するステップ１００に始まる。場合によっては、輻輳のレベルを判定することは、パケット処理モジュールの入力バッファの現在の充填レベルを１つまたは複数の充填レベルしきい値と比較し、そのような比較の結果としてバックプレッシャーメッセージを形成するステップを含む。このような場合、バックプレッシャーメッセージは、現在の充填レベルと１つまたは複数の充填レベルしきい値との関係に対応する値を有する。ステップ１００に続き、この方法は、判定された輻輳のレベルによって、パケット処理モジュールにより処理されている１つまたは複数のトラフィックフローに一定のフロー制御が適用されるべきかどうかを判定するステップ１０２へ進む。場合によっては、一定のフロー制御が適用されるべきかどうかを判定することは、パケット処理モジュールへのイングレストラフィックフロー、パケット処理モジュールへの再循環トラフィックフロー、およびデータ通信システムからのイーグレストラフィックフローのうちの１つまたは複数についてこのように判定することを含む。さらに、輻輳のレベルを判定するステップ１００においてバックプレッシャーメッセージが形成された場合、本ステップ１０２は、このバックプレッシャーメッセージの値に従って、パケット処理モジュールへのイングレストラフィックフローのデータパケットの優先度があればどの優先度が一定のフロー制御をトラフィックフローに適用すべきであるか、および再循環およびイーグレストラフィックフローのタイプがあればどのタイプが一定のフロー制御をトラフィックフローに適用すべきであるかを判定することを含む。このステップ１０２に続いてこの方法は、判定に従ってトラフィックフローに一定のフロー制御を適用するステップ１０４に進む。場合によっては、一定のフロー制御を適用するステップ１０４は、一定のフロー制御を必要とすると判定された優先度を有するデータパケットのために、パケット処理モジュールへのイングレストラフィックのデータパケットのフローを停止すること、ならびに一定のフロー制御を必要とすると判断されたトラフィックタイプのイーグレスおよび再循環トラフィックフローのデータパケットのフローを停止することを含む。場合によっては、イーグレスおよび再循環トラフィックフローのトラフィック管理がＶＯＱを含む場合、このようなトラフィックフローを停止することは、このようなトラフィックフローのそれぞれのフローに対応して各ＶＯＱの状態を変更し、ＶＯＱがそこからのデータパケットのフローを停止するようにすることを含む。この方法は、一定のフロー制御を適用するステップ１０４で終了する。しかしながら、通常の動作の下では、この方法は継続的に繰り返され、そのような各繰り返しでは、一定のフロー制御がこの方法の判定によって必要に従ってトラフィックフローに適用され、前の繰り返しから生じる適用から解放される。すなわち、この方法の各繰り返しは前の繰り返しから独立して動作し、一部のトラフィックフローが１つの繰り返しの結果として一定のフロー制御（例えば停止）を適用される場合、同じトラフィックフローは次の繰り返しにおいて一定のフロー制御（例えば再開）を適用されない場合がある。
【００２６】
前述に照らして、パケット処理モジュール１４の入力バッファ２５が輻輳し始めるとき、特に入力バッファ２５の充填レベルが１つまたは複数の充填レベルしきい値を超えるとき、異なるタイプのバックプレッシャーメッセージ３０が生成されることは明らかである。フローマッピングエンジン２０は、パケット処理モジュール１４から受け取るこのバックプレッシャーメッセージ３０を、イングレスデータパケット２２の優先度に、およびＶＯＱ３４にマッピングする。後者から、フローマッピングエンジン２０はＶＯＱフロー制御メッセージ３１を生成し、これをトラフィック管理モジュール１６に送ってＶＯＱ３４の１つまたは複数からのトラフィックフローをフロー制御する。例えば、１つのタイプのバックプレッシャーメッセージは、イーサネット（登録商標）もしくはマルチキャストトラフィックと関連するＶＯＱに、またはデータ通信システムのインターネットプロトコルセキュリティ（ＩＰＳＥＣ）回路カードのようなサービスＩ／Ｏブレードと関連するＶＯＱにマッピングすることが可能である。このような機能は、ネットワークトラフィックがよりインテリジェントに処理される、および輻輳状態の間分散されることを可能にするなど、トラフィック管理に有利な強化を行う。このような機能は、ネットワークトラフィックが輻輳状態の間によりインテリジェントに処理され、分散されることを可能にするなど、トラフィック管理に有利な強化を行い、これがサービスルータのようなデータ通信システムにおいて重要な差別化要因となりうる。
【００２７】
上述の本発明の諸実施形態には、特許請求の範囲で定義される本発明の範囲を逸脱することなく、数多くの変更、変形、および適応が行われることが可能である。例えば、パケット処理モジュール１４の入力バッファ２５は、いくつかの充填レベルしきい値がそれぞれに割り当てられた複数の入力バッファに置き換えられることが可能である。例えば、各パケットプロセッサＰＰに１つのこのような入力バッファがあることが可能である。この場合、バックプレッシャーモジュール２９は、このようなすべての入力バッファの充填レベルおよび対応するしきい値によりバックプレッシャーメッセージ３０を作り出す。さらに、イングレストラフィック２６、処理済みデータパケット３２、再循環トラフィック３６、およびイーグレストラフィック３５を受け取るモジュールの１つまたは複数にリンクバッファが含まれる場合があり、このような各リンクバッファに単純なバックプレッシャーを行うためのそれぞれのオン／オフフロー制御信号を有する。この変更は、装置のより大きいパケットスループット全体に対してモジュールがパケットを処理することができるより高いレートで、このようなモジュールへのデータパケットのバースティングを可能にする。変形は、トラフィック管理モジュール１６にＶＯＱ割当て表４８を含むことである。別の変形は、フロー制御表４６とＶＯＱ割当て表４８を１つの表に結合し、一定のフロー制御を適用される必要があるトラフィックフローのＶＯＱが、バックプレッシャーメッセージのタイプに従って表の行にインデックスすることによって、結合された表から読み取られるようにすることが可能である。例えば、フロー制御表４６中のトラフィックフロー情報のタイプは、ＶＯＱ割当て表に指定するように、それらのタイプのトラフィックフローを搬送するＶＯＱの数値識別子に置き換えられることが可能である。この場合、結合された表は、フローマッピングエンジン２０の中にあることが可能である。
【００２８】
前述の例は数個のＶＯＱ３４を含んでいるだけであるが、一般に高容量のデータ通信システムには数百個のこのようなＶＯＱがある。さらに、細粒度の輻輳レベル検出を提供するために、パケット処理モジュールの入力バッファと関連する多くの充填レベルしきい値がある場合もある。
【００２９】
本発明の諸実施形態の前述の説明から、これらの諸実施形態が、特定のトラフィックフローの特性の１つまたは複数に従って特定のトラフィックフローに一定のフロー制御を適用する際に有利に柔軟性を提供することは明らかであろう。
【図１】
0005431467.tif 000002
【図２】
0005431467.tif 000003
【図３】
0005431467.tif 000004
【図４】
0005431467.tif 000005
【図５】
0005431467.tif 000006