JP2003515978A - コンピュータ・ネットワークでパケットの伝送を制御する方法およびシステム - Google Patents

コンピュータ・ネットワークでパケットの伝送を制御する方法およびシステム

Info

Publication number
JP2003515978A
JP2003515978A JP2001540492A JP2001540492A JP2003515978A JP 2003515978 A JP2003515978 A JP 2003515978A JP 2001540492 A JP2001540492 A JP 2001540492A JP 2001540492 A JP2001540492 A JP 2001540492A JP 2003515978 A JP2003515978 A JP 2003515978A
Authority
JP
Japan
Prior art keywords
queue
level
transmission fraction
flow
constant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001540492A
Other languages
English (en)
Other versions
JP4195221B2 (ja
Inventor
アイデマー、メティン
バス、ブライアン、ミッチェル
ジェフリーズ、クラーク、デブス
ロヴナー、ソニア、キアン
シーゲル、マイケル、スティーヴン
ガロ、アンソニー、マテオ
ゴーティ、ブラマンド、クマー
ヘデス、マーコ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/448,197 external-priority patent/US6657960B1/en
Priority claimed from US09/448,380 external-priority patent/US6771652B1/en
Priority claimed from US09/448,190 external-priority patent/US6724776B1/en
Priority claimed from US09/547,280 external-priority patent/US6674718B1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2003515978A publication Critical patent/JP2003515978A/ja
Application granted granted Critical
Publication of JP4195221B2 publication Critical patent/JP4195221B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/568Calendar queues or timing rings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1546Non-blocking multistage, e.g. Clos using pipelined operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】 コンピュータ・ネットワークで複数のパケットのフローを制御する方法、装置、およびプログラム製品を開示する。 【解決手段】 コンピュータ・ネットワークに、キューを定義する装置が含まれる。この方法、装置、およびプログラム製品には、キューのキュー・レベルを判定することと、キューへの複数のパケットの提供速度を判定することが含まれる。この方法、装置、およびプログラム製品には、キュー・レベルが少なくとも第1キュー・レベルと第2キュー・レベルの間にある場合に伝送分数およびキュー・レベルが臨界減衰されるように、キュー・レベル、提供速度、および伝送分数の前の値に基づいて、キューへまたはキューからの複数のパケットの伝送分数を制御することも含まれる。さまざまな技法を使用して制御の形を決定する複数の実施形態を開示する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、コンピュータ・ネットワークに関し、具体的には、コンピュータ・
ネットワーク内でのデータの破棄の制御、したがって、データの伝送の制御の方
法およびシステムに関する。
【0002】
【従来の技術】
コンピュータ・ネットワークは、インターネットを用いるものなどの、さまざ
まなネットワーク・アプリケーションの使用の増加に起因して、関心が高まって
いる。スイッチは、ネットワークの一部またはネットワークを結合するのにしば
しば使用される。図1に、コンピュータ・ネットワークで使用することができる
スイッチ10の単純化されたブロック図を示す。スイッチ10には、ブレード7
、8、および9に結合されたスイッチ・ファブリック3が含まれる。各ブレード
7、8、および9は、一般に、回路ボードであり、少なくとも、ポート4に結合
されたネットワーク・プロセッサ2を含む。ポート4は、ホスト(図示せず)に
、直接にまたはさまざまなネットワーク・ノードを介して間接的に結合される。
ブレード7、8、および9は、スイッチ・ファブリック3にトラフィックを供給
し、スイッチ・ファブリック3からトラフィックを受け入れることができる。し
たがって、ブレード7、8、または9の1つに接続されたホストは、同一のまた
は別のブレード7、8、または9に接続された別のホストと通信することができ
る。
【0003】 図2に、図1に示されたネットワーク・プロセッサ2として有用なプログラマ
ブル・ネットワーク・プロセッサの実施形態の高水準ブロック図を示す。図から
わかるように、ネットワーク・プロセッサ2には、入スイッチ・インターフェー
ス(入SWI)11、入エンキュー/デキュー/スケジューリング・ロジック(
入EDS)12、組込プロセッサ複合体(EPC)13、入物理MACマルチプ
レクサ(入PMM)14、出物理MACマルチプレクサ(出PMM)15、出エ
ンキュー/デキュー/スケジューリング・ロジック(出EDS)16、および出
スイッチ・インターフェース(出SWI)17が含まれる。ネットワーク・プロ
セッサ2に、他の記憶装置および処理装置も含めることができる。EPC13に
は、複数のプロトコル・プロセッサおよびコプロセッサが含まれる。入EDS1
2および出EDS16は、それぞれ、イーサネット(R)・デバイスなどのデバ
イスからスイッチ・ファブリックに移動するトラフィックおよびスイッチ・ファ
ブリックからデバイスに移動するトラフィックの、あるエンキュー機能、デキュ
ー機能、およびスケジューリング機能を実行することができる。入SWI11お
よび出SWI17は、別のネットワーク・プロセッサまたはスイッチ(図2に図
示せず)などの他のデバイスへの接続用のリンクを提供する。スイッチ・ファブ
リックと共に使用される入SWI11および出SWI17は、スイッチ10のス
イッチ・ファブリック3(図1)と結合される。入PMM14および出PMM1
5は、それぞれ物理層デバイスからトラフィックを受け取り、物理層デバイスに
トラフィックを送出する。ここで説明するプログラマブル・ネットワーク・プロ
セッサのアーキテクチャおよび動作は、本明細書に開示される発明とは別の保護
の対象である。いくつかの応用例で、本明細書でスイッチ・ファブリックと1つ
または複数のネットワーク・プロセッサの組合せによって達成されるものとして
説明される機能を、単一のネットワーク・プロセッサまたはネットワーク・プロ
セッサの結合された対によって、スイッチ・ファブリックの提供とは別に達成す
ることができる。
【0004】 図3に、ネットワーク・プロセッサ2によって実行される機能の一部を異なる
形で示す、スイッチ10の代替の単純化されたブロック図を示す。機能の一部が
、図1に示されたものと同一のコンポーネントによって実行されるが、これらの
コンポーネントに、異なる符号が付される場合がある。たとえば、スイッチ10
を介するトラフィックのパスを説明するために、図1のスイッチ・ファブリック
3が、図3ではスイッチ・ファブリック26として示されている。スイッチ10
は、ポートA18に接続されたホスト(図示せず)を、ポートB36に接続され
たホスト(図示せず)に結合する。したがって、スイッチ10を用いると、デー
タのパケットをソースから宛先に転送できるようになる。データ・パケットに、
複数の異なるタイプのデータ・パケットを含めることができる。たとえば、イー
サネット(R)・パケット(通常はフレームと称する)、ATMパケット(通常
はセルと称する)、およびIPパケット(通常はパケットと称する)のすべてを
、本明細書ではパケットと称する。
【0005】 スイッチ10は、スイッチ10に供給されるデータ・パケットの分類、スイッ
チ10を介するデータ・パケットの伝送、およびパケットの再組立を含むさまざ
まな機能を実行する。これらの機能は、それぞれ、クラシファイヤ22、スイッ
チ・ファブリック26、およびリアセンブラ30によって提供される。クラシフ
ァイヤ22は、それに供給されるパケットを分類し、各パケットを、本明細書で
セルと称する都合のよいサイズの部分に分割する。スイッチ・ファブリック26
は、接続のマトリックスであり、これを介して、セルがスイッチ10を介して伝
送される。リアセンブラ30は、セルを適当なパケットに再組立する。その後、
パケットをポートB36の適当なポートに供給し、宛先ホストに出力することが
できる。クラシファイヤ22は、あるネットワーク・プロセッサ1の一部とする
ことができ、リアセンブラ30は、他のネットワーク・プロセッサ5の一部とす
ることができる。図示されたネットワーク・プロセッサ1およびネットワーク・
プロセッサ5の諸部分は、それぞれ、ポートA18から移動するトラフィックお
よびポートB36に移動するトラフィックに関する機能を実行する。しかし、ネ
ットワーク・プロセッサ1および5は、それぞれ、ポートA18から移動するト
ラフィックおよびポートB36に移動するトラフィックに関する機能も実行する
。しかし、ネットワーク・プロセッサ1および5は、それぞれ、ポートB36か
ら移動するトラフィックおよびポートA18に移動するトラフィックに関する機
能も実行する。したがって、各ネットワーク・プロセッサ1および5は、分類機
能および再組立機能を実行することができる。さらに、各ネットワーク・プロセ
ッサ1および5は、図1および2に示されたネットワーク・プロセッサとするこ
とができる。
【0006】 スイッチ10を介するトラフィックの転送のボトルネックに起因して、データ
・パケットが、分類機能、伝送機能、および再組立機能の実行の前に、待つこと
が必要になる場合がある。その結果、キュー20、24、28、および34が設
けられる場合がある。キュー20、24、28、および34に結合されるのが、
エンキュー機構19、23、27、および32である。エンキュー機構は、パケ
ットまたはセルを対応するキューに置き、そのパケットが発したホストに送り返
される通知を提供することができる。分類機能、エンキュー機能、およびスケジ
ューリング機能は、図2に示されたネットワーク・プロセッサ内の入EDS12
および出EDS16によって提供されることが好ましい。エンキュー機構19お
よび23と、キュー20および24と、クラシファイヤ22と、スケジューラ2
1および25が、入EDS12を使用して制御される。同様に、エンキュー機構
27および32と、キュー28および34と、リアセンブラ30と、スケジュー
ラ29および35は、出EDS16を使用して制御される。
【0007】 図3には、スケジューラ21、25、29、および35も示されている。スケ
ジューラは、それぞれ、キュー20、24、28、および34から出る予定の個
々のパケットのスケジューリングを制御する。一般に、下でより明瞭になるよう
に、本明細書の関心事は、図2の出PMM15、出EDS16、および出SWI
17によって示されるネットワーク・プロセッサ2の出部分である。本発明の例
示的な焦点の1つに、ポートB36へのトラフィックを制御するスケジューラ3
5が含まれる。明瞭にするために、スケジューラの機能を、スケジューラ35お
よびキュー34に関して説明する。通常、スケジューラ35は、キュー34内の
各パケットに関する情報を与えられる。この情報には、伝送の時間が重要である
リアルタイム・パケットまたは伝送の速度が重要でないデータ・パケットなどの
パケットのタイプを含めることができる。この情報および供給される他の情報に
基づいて、スケジューラ35は、キュー34内の各個々のパケットをキューから
除去し、その宛先に送ることを決定する。たとえば、スケジューラ35に、それ
ぞれが複数の位置を含む1つまたは複数のカレンダと、もう1つの複数の位置を
含む加重公平キューイング・リングを含めることができる。スケジューラ35は
、あるパケットをカレンダに置き、他のパケットをリングに置くことができる。
スケジューラは、カレンダの各位置に、ある長さの時間を割り振る。カレンダ内
の各位置は、通常は識別子によって表される単一のパケットを有することができ
、また、空にすることができる。スケジューラが、ある位置に達した時に、その
位置に置かれたパケットが、キューから取り出され、その宛先に送られる。しか
し、カレンダ内の位置が空である場合には、スケジューラ35は、特定の長さの
時間が経過するまで待ち、その後、カレンダ内の次の位置に移る。同様に、スケ
ジューラ35は、スケジューラ35の加重公平キューイング・リングの位置に他
のパケットを置く。加重公平キューイング・リング内の位置も、単一のパケット
によって占められるか空のいずれかとすることができる。位置が占められる場合
に、スケジューラ35は、その位置に達した時にその位置のパケットを送出する
。位置が占められていない場合には、スケジューラ35は、次の占められている
位置にスキップする。スケジューラ35を使用してキュー34を出る個々のパケ
ットを制御することによって、トラフィックが、スイッチ10を介して流れられ
るようになる。
【0008】 キュー20、24、28、および34が、別々に図示されているが、当業者は
、これらのキューの一部またはすべてを、同一の物理メモリ・リソースの一部と
することができることを容易に諒解するであろう。
【0009】 スイッチ10を介して流れるトラフィックを制御し、これによって、そのスイ
ッチが使用されるネットワークの性能を改善するための方法が開発されてきた。
具体的に言うと、RED(random early discard or detection)と称する方法
を、キューなどのメモリ関連メモリ・リソースが過負荷でないことを保証する試
みに使用することができる。図4に、REDで使用される方法を示す。方法RE
Dは、通常は、エンキュー機構19、23、27、および32の1つによって、
それぞれ対応するキュー20、24、28、および34を介するトラフィックを
制御するのに使用される。明瞭にするために、方法REDを、エンキュー機構1
9およびキュー20に関して説明する。
【0010】 エポックと称する短い時間の期間の終りに、ステップ41を介して、そのエポ
ックのキュー20のキュー・レベルが、エンキュー機構19によって判定される
。判定されるキュー・レベルが、そのエポックの平均キュー・レベルであること
に留意されたい。さらに、判定されるキュー・レベルを、キュー20がその一部
であるメモリ・リソースの総レベルとすることができる。その後、ステップ42
を介して、キュー・レベルが最小閾値を超えるかどうかが判定される。キュー・
レベルが、最小閾値を超えない場合には、ステップ43を介して、通常の伝送分
数に1をセットする。また、ステップ43では、破棄分数に0をセットする。伝
送分数によって、パケットのうちで次のエポックに伝送される部分が決定される
。破棄分数によって、パケットのうちでドロップされる部分が決定される。した
がって、従来の破棄分数は、1から従来の伝送分数を引いた値に等しい。したが
って、1の伝送分数は、すべてのパケットを伝送しなければならず、どのパケッ
トもドロップしてはならないことを示す。
【0011】 ステップ42で、キュー・レベルが最小閾値を超えると判定される場合には、
次に、ステップ44を介して、エポックのキュー・レベルが最大閾値を超えるか
どうかを判定する。キュー・レベルが最大閾値を超えると判定される場合には、
ステップ45を介して、通常の伝送分数に0をセットし、通常の破棄分数に1を
セットする。キュー・レベルが最大閾値を超えない場合には、ステップ46を介
して、通常の破棄分数を、前のエポックのキュー・レベルを最大の可能なキュー
・レベルで割った値、または、代替案として、キュー・レベルの他の線形関数に
比例してセットする。したがって、従来の破棄分数は、キュー20のうちの占め
られた部分またはキュー・レベルの他の線形関数に比例する。したがって、ステ
ップ46で、従来の伝送分数も、1から従来の破棄分数を引いたものに比例して
セットされる。
【0012】 ステップ43、45、または46でセットされた従来の伝送分数および従来の
破棄分数が、ステップ47を介して、次のエポックでランダムにパケットを破棄
するのに使用される。したがって、キュー・レベルが最小閾値未満の時には、す
べてのパケットが、次のエポック中にエンキュー機構19によってキュー20に
伝送される。キュー・レベルが最大閾値を超える時には、すべてのパケットが、
次のエポック中にエンキュー機構19によって破棄されるか、破棄キューにエン
キューされる。キュー・レベルが、最小閾値と最大閾値の間である時には、パケ
ットのうちでエンキュー機構19によって破棄される部分が、キュー20のうち
で占められた部分またはキュー・レベルの他の線形関数に比例する。したがって
、キュー・レベルが高いほど、パケットのうちで破棄される部分が多くなる。さ
らに、破棄されるパケットの送信側に通知を供給することができ、これによって
、送信側が、ある時間期間の間追加パケットの送出を中断することになる。
【0013】 破棄のために選択される個々のパケットを、ランダムに選択することもできる
。たとえば、パケットごとに、エンキュー機構19が、0と1の間の乱数を生成
することができる。この乱数を、従来の破棄分数と比較する。乱数が、従来の破
棄分数以下である場合には、そのパケットをドロップする。そうでない場合には
、そのパケットをキュー20に送る。伝送分数に基づいてパケットを破棄するこ
の処理は、ステップ48を介してエポックが終了したと判定されるまで継続され
る。エポックが終わった時に、方法REDは、ステップ41でもう一度開始され
て、次のエポックについて従来の伝送分数を判定し、次のエポック中に従来の伝
送分数に従ってパケットをドロップする。
【0014】 パケットを、キュー・レベルに基づいて破棄することができるので、方法RE
Dを用いると、スイッチ10を介するトラフィックに対するある程度の制御が可
能になる。その結果、キュー20が満杯になる前にパケットを破棄する機構を有
しないスイッチよりも、droptailに起因してドロップされるパケットを少なくす
ることができる。droptailが発生するのは、キューが満杯になったのでパケット
をドロップしなければならない時である。その結果、パケットをドロップするか
どうかを判定する際に、パケットの優先順位を考慮する機会がない。さらに、い
くつかの情況で、方法REDによって、スイッチ10にパケットを送るホストの
同期化が低下する可能性がある。これが発生するのは、キュー・レベルが最大キ
ュー・レベルまたはその近くである時にすべてのパケットをドロップするのでは
なく、従来の伝送分数に基づいてパケットがランダムにドロップされる可能性が
あるからである。したがって、スイッチ10の性能は、方法REDを使用しない
スイッチすなわち、バッファ・リソースが枯渇した時に次に到着するパケットを
単純にドロップするスイッチに対して改善される。
【0015】 方法REDによって、スイッチ10の動作が改善されるが、当業者は、多くの
情況で、この方法がスイッチ10を介するトラフィックを適当に制御できなくな
る可能性があることを容易に理解するであろう。パケットまたはセルを、キュー
が満杯になる前にドロップすることができるという事実にもかかわらず、ホスト
は、いくつかの情況で同期化される傾向を有する。これは、スイッチ10のトラ
フィックの適度なまたは高いレベルの輻輳について特にそうである。従来の伝送
分数は、キュー・レベルに基づく。しかし、キュー・レベルは、スイッチの状態
を示していない場合がある。たとえば、最小閾値未満のキュー・レベルが、スイ
ッチ10内の低いレベルのトラフィック(スイッチを通過するパケットの数が少
ない)に起因する可能性がある。しかし、低いキュー・レベルが、スイッチ10
を通る高いトラフィックが原因の前のエポックでの多数の破棄に起因する可能性
もある。低いキュー・レベルが、低いトラフィック・レベルに起因する場合には
、従来の伝送分数を増やすことが適当である。低いキュー・レベルが、高い破棄
分数に起因する場合には、従来の伝送分数を増やすことが望ましくない可能性が
ある。方法REDは、これらの情況を区別しない。その結果、伝送分数が、そう
すべきでない時に増やされる場合がある。これが行われた時には、キューが急速
に満たされる可能性がある。その後、伝送分数が下げられ、キュー・レベルが減
る。キュー・レベルが下がった時に、伝送分数が増やされ、キューが再び急速に
満たされる。したがって、スイッチ10は、キュー満杯とキュー空の間で発振し
始める。その結果、スイッチ10の平均使用量が、非常に低くなり、スイッチ1
0を使用するネットワークの性能が低下する。
【0016】 図5に、米国ニューヨーク州アーモンクのInternational Business Machines,
Inc.社の従業員によってより最近に開発された方法の流れ図を示す。この方法
を、BLUEと称する。方法BLUEは、キュー・レベルだけではなく、伝送速
度および提供速度も考慮に入れる。提供速度とは、パケットまたはセルがエンキ
ュー機構に提供されて対応するキューに供給される速度である。方法REDと同
様に、方法BLUEを、エンキュー機構19およびキュー20を使用して説明す
る。ステップ52を介して、キュー20のキュー・レベル、エンキュー機構19
によってキュー20に供給される伝送分数、および提供速度が、終了したばかり
のエポックについて判定される。提供速度は、パケットがエンキュー機構19に
供給される速度である。したがって、提供速度は、ポートA18の1つまたは複
数によって供給されるトラフィックのフローから来る可能性がある。
【0017】 その後、ステップ54を介して、パケット・ロスまたはある閾値を超えるキュ
ー・レベルがあったかどうかを判定する。どちらのイベントも、破棄分数を増や
さなければならないことを示す。そうである場合には、ステップ56を介して、
経験的に決定することができる第1定数量だけ破棄分数を増分する。ステップ5
6で、1から破棄分数を引いた値である伝送分数を減らす。ステップ54で、破
棄分数を増やしてはならないことが示される場合には、ステップ58を介して、
破棄分数を減らさなければならないかどうかを判定する。キュー・レベルが低い
か、提供速度が低い場合に、破棄分数を減らさなければならない。破棄分数を減
らさなければならない場合には、ステップ60を介して、やはり経験的に決定す
ることができる第2定数量を引くことによって、これが達成される。ステップ6
2を介して、変更される場合にステップ56または60で決定された破棄分数、
または古い破棄分数を使用して、次のエポック中にキュー20に伝送されるパケ
ットの分数を決定する。ステップ62で、パケットを、ランダムに、または各パ
ケットの優先順位も考慮することによって、破棄することができる。したがって
、正しい破棄分数、したがって正しい伝送分数が維持されることが保証される。
その後、ステップ64を介して、エポックが終わったかどうかを判定する。そう
である場合には、ステップ52に戻る。そうでない場合には、方法BLUEは、
ステップ62での開始を繰り返す。BLUEに関するさらなる詳細については、
ウェブサイトhttp://www.eecs.umich.edu/usuchang/blue/を参照されたい。
【0018】 方法BLUEは、その初期の目的に関して良好に動作し、方法REDに対する
改良であるが、当業者は、方法BLUEが、安定状態に達するのに比較的長い時
間を要する可能性があることを容易に理解するであろう。したがって、性能は方
法REDに対して改善されるが、ネットワークの性能は、まだ所望の性能より低
い可能性がある。
【0019】 スイッチを介するトラフィックを制御するもう1つの方法では、たとえばサー
ビスについて顧客が支払う料金に基づいて、顧客に異なるサービスを提供する。
消費者は、より高速の応答を保証するため、または、他の顧客のトラフィックが
輻輳に起因してドロップされる時であっても自分のためのトラフィックが伝送さ
れることを保証するために、より多くを支払うことを望む場合がある。したがっ
て、差異化サービスの概念が展開された。差異化サービスは、異なるレベルのサ
ービスまたはネットワークを介するトラフィックのフローを、異なる顧客に提供
することができる。
【0020】 DiffServは、差異化サービスを提供するための、新しいInternet Engineering
Task Force(IETF)標準規格である(IETF RFC 2475および
関連RFCを参照されたい)。DiffServは、behaviour aggregate flowに基づく
。behaviour aggregate flowは、ネットワークの一端からネットワークの他端へ
のパイプラインとみなすことができる。各behaviour aggregate flow内に、個々
のホストの間の数百のセッションがある可能性がある。しかし、DiffServは、be
haviour aggregate flow内のセッションに関するものではない。そうではなく、
DiffServは、behaviour aggregate flowの間の帯域幅の割振りに関する。DiffSe
rvによれば、過剰帯域幅が、behaviour aggregate flowの間で公平に割り振られ
る。さらに、DiffServは、下で説明する、各behaviour aggregate flowに提供さ
れるサービスのレベルを測定する判断基準を提供する。
【0021】 異なるレベルのサービスを提供する機構の1つでは、重みとキュー・レベルの
組合せを使用して、異なるレベルのサービスを提供する。図6に、そのような方
法を示す。ステップ72を介して、キュー・レベル閾値および重みをセットする
。通常、キュー・レベル閾値は、ステップ72で、ネットワーク管理者によって
セットされる。重みは、特定のキュー、スイッチ10、またはネットワーク・プ
ロセッサ1または5を介する、異なるパイプまたはフローについてセットするこ
とができる。したがって、重みは、通常、異なるbehaviour aggregate flowにつ
いてセットされる。ステップ74を介して、瞬間キュー・レベル、平均キュー・
レベル、瞬間パイプ・フロー速度、または平均パイプ・フロー速度を、通常はエ
ポックの終わりと称する時間の期間の終りに、観察する。その後、ステップ76
を介して、キュー・レベルがキュー・レベル閾値にどれほど匹敵するかと重みと
に基づいて、パイプのフローを変更する。ステップ76で、より大きい重みを有
するパイプのフローが、より大きい変化をうける。パイプのキュー値またはパイ
プ・フロー速度によって、パイプによってキュー34などのキューに提供される
トラフィックのどれほどが、エンキュー機構32などの対応するエンキュー機構
によってキュー34に送られるかが決定される。したがって、ステップ78を介
して、トラフィックが、フローに基づいて、キューに伝送されるかドロップされ
る。その後、ステップ80を介して、ネットワーク管理者が、所望のサービスの
レベルが満たされているかどうかを判定する。そうである場合には、ネットワー
ク管理者の作業が完了する。しかし、所望のサービスのレベルが達成されていな
い場合には、ステップ72を介して、キュー・レベルまたはパイプ・フロー・レ
ベルの閾値とおそらくは重みが、リセットされ、この方法が繰り返される。
【0022】 ここで説明したDiffServ方法は、機能するが、当業者は、キュー・レベル閾値
の変更がネットワークを通る特定のパイプにどのような影響を有するかを判定す
ることが困難であることを容易に理解するであろう。したがって、この方法を使
用するネットワーク管理者は、異なる顧客またはコンピュータ内のパイプ(beha
viour aggregate flow)について所望のフロー速度に達する前に、大量の経験を
積む必要が生じる可能性がある。
【0023】 さらに、この方法は、サービスの品質を測定するのに通常使用されるパラメー
タに対して間接的に動作する。キュー・レベルは、サービスに関して通常使用さ
れる判断基準の直接の尺度ではない。通常、たとえばDiffServ(IETF RF
C 2475および関連RFCを参照されたい)では、サービスのレベルが、4
つのパラメータすなわち、ドロップ率、帯域幅、待ち時間、およびジッタによっ
て測定される。ドロップ率は、トラフィックのうちでスイッチを介して流れる際
にドロップされるものの比率である。behaviour aggregate flowの帯域幅は、ス
イッチを横切って宛先に達するbehaviour aggregate flowのトラフィックの量の
尺度である。待ち時間は、ネットワークを介してトラフィックを送る際にこうむ
る遅延である。ジッタは、経時的な待ち時間の変動である。キュー・レベルは、
サービスの品質の直接の尺度とみなされない。したがって、この方法は、サービ
スの品質の判断基準のいずれにも直接には対処せず、ネットワーク管理者が異な
るレベルのサービスを提供するのにこの方法を使用することが、より困難になっ
ている。
【0024】 方法REDまたは方法BLUEを使用する時であっても、スケジューラ35な
どのスケジューラに、所与の時間内に達成できる量より多い量の作業が与えられ
る場合がある。具体的に言うと、特定の長さの時間であまりに大量のパケットが
キュー34から除去されることが所望される場合に、スケジューラが、スイッチ
10を通るトラフィックに対処できなくなる可能性がある。たとえば、スケジュ
ーラ35が、キュー34から除去されるパケットが、ターゲット・ポートなどの
その第1の宛先に、第1の速度で転送されることを保証することができる場合が
ある。この第1の速度は、ターゲット・ポートがトラフィックを受け入れる能力
などのさまざまな要因によって制限される可能性がある。方法REDおよびBL
UEでは、パケットを、第2の速度でキューから除去できる場合がある。第2の
速度が、第1の速度より高い場合に、パケットが、スケジューラ35内でバック
・アップされ始める。たとえば、スケジューラ35に、カレンダと加重公平キュ
ーイング・リングが含まれる場合に、カレンダ内および加重公平キューイング・
リング内のすべての位置が、最終的に占められる可能性がある。したがって、パ
ケットは、スケジューラ35内のカレンダまたは加重公平キューイング・リング
内の位置が空くまで、キュー34から出ることができなくなる。その結果、スイ
ッチ10を介して移動するパケットの待ち時間が増え、トラフィックが遅くなり
、スイッチ10が、望まれるほど効率的に機能しなくなる。
【0025】
【発明が解決しようとする課題】
上の議論を念頭において、当業者は、スイッチを介するトラフィックをよりよ
く制御するシステムおよび方法が必要であることを諒解するであろう。本発明は
、そのような必要に対処する。
【0026】
【課題を解決するための手段】
本発明は、コンピュータ・ネットワーク内で複数のパケットのフローを制御で
きるようにする方法、装置、およびコンピュータ可読媒体を提供する。コンピュ
ータ・ネットワークに、キューが含まれる。この方法および装置には、キューの
キュー・レベルを判定することと、キューへの複数のパケットの提供速度を判定
することが含まれる。この方法および装置には、キュー・レベルが少なくとも第
1キュー・レベルと第2キュー・レベルの間である場合に伝送分数およびキュー
・レベルが臨界減衰(本明細書で定義する)されるように、キューへの複数のパ
ケットの伝送分数を、キュー・レベルおよび提供速度に基づいて制御することも
含まれる。
【0027】 本明細書で開示される方法、装置、および媒体によれば、本発明は、伝送分数
を提供し、したがって、パケットをドロップし、その結果、コンピュータ・ネッ
トワークが安定するだけではなく平衡にすばやく達するようにする機構を提供す
る。
【0028】
【発明の実施の形態】 本発明は、コンピュータ・ネットワークでのトラフィックの制御の改良に関す
る。以下の説明は、当業者が本発明のさまざまな実施形態を作り、使用すること
ができるようにするために提示され、特許出願およびその要件の文脈で提供され
る。好ましい実施形態に対するさまざまな修正形態が、当業者に容易に明白にな
り、本明細書に記載の包括的な原理が、他の実施形態に適用可能である。したが
って、本発明は、示される実施形態に制限されることを意図されたものではなく
、本明細書に記載の原理および特徴との一貫性を有する最も広い範囲に従う。
【0029】 コンピュータ・ネットワークで使用されるスイッチには、通常はキューが含ま
れ、このキューは、同一のメモリ・リソースの論理キュー部分または別のメモリ
・リソースとすることができ、このキューに、パケットまたはセルと称するパケ
ットより小さいサイズの片が一時的に置かれる。パケットをキューに置くエンキ
ュー機構は、スイッチを介するトラフィックを制御し、ネットワークの動作を改
善するために、パケットを破棄する機構も有することができる。たとえば、上で
図4の方法で説明したrandom early discard or detection(RED)は、キュ
ー・レベルに基づいていくつかのパケットを破棄する。REDは、いくつかの情
況で機能するが、多くのネットワークで、REDは、ネットワーク性能を改善で
きない。たとえば、スイッチが適度なまたは高いトラフィック量のトラフィック
を有するネットワークは、まだ発振しやすい。したがって、そのようなネットワ
ークは、そのようなネットワークが設計された容量と比較して非常に少ない量の
トラフィックしか搬送できない。
【0030】 本発明は、コンピュータ・ネットワーク内で複数のパケットのフローを制御す
る方法、装置、および命令を担持する媒体を提供する。コンピュータ・ネットワ
ークに、キューが含まれる。本発明の方法、装置、および媒体には、キューのキ
ュー・レベルを判定することと、キューへの複数のパケットの提供速度を判定す
ることが含まれる。本発明の方法、装置、および媒体には、キューへの複数のパ
ケットの伝送分数を制御することも含まれる。伝送分数は、キュー・レベルが少
なくとも第1キュー・レベルと第2キュー・レベルの間である場合に伝送分数お
よびキュー・レベルが臨界減衰されるように、キュー・レベルおよび提供速度に
基づいて制御される。
【0031】 本発明を、特定のシステムおよび特定のコンポーネントに関して説明する。し
かし、当業者は、これらの方法およびシステムが、コンピュータ・ネットワーク
内の他のコンポーネントに関して効率的に動作することを容易に理解するであろ
う。また、本発明を、キューに関して説明する。しかし、当業者は、キューが単
一メモリ・リソース内の論理キューである時、またはキューが別のメモリ・リソ
ースの一部である時に、本発明が効率的に機能することを容易に理解するであろ
う。また、本発明を、系の臨界減衰に関して説明する。しかし、当業者は、本発
明が、エポックにまたがって一般的に動作することを容易に理解するであろう。
したがって、提供される減衰は、動作の各瞬間での瞬間臨界減衰でない可能性が
ある。また、本発明を、特定の動作の実行の前または後に使用されるパケットお
よびキューに関して説明する。しかし、当業者は、この方法およびシステムが、
セルなどのトラフィックの他の部分について、他のキューについて、および他の
動作の実行の前または後に、効率的に動作することを容易に理解するであろう。
また、本発明を、パケットの事前破棄によるネットワーク・フローの制御に関し
て説明する。しかし、当業者は、この方法およびシステムが、キューに到着する
パケットの速度を制御することと、ソースに送られ、ソースで保持されるほかの
ものと共に送られるパケットの分数を指示する信号が、効果的であることを、容
易に理解するであろう。したがって、伝送分数の制御は、たとえば1つまたは複
数のソースによってパケットが提供される速度の類似する制御である。
【0032】 本発明による方法およびシステムをより具体的に示すために、本発明による方
法90の1実施形態を示す図7を参照されたい。方法90は、図1に示されたス
イッチ10と共に使用することができる。明瞭にするために、方法90を、図3
に示されたキュー20およびエンキュー機構19に関して説明する。しかし、方
法90は、キュー24、28、および34などの他のキューと共に使用すること
ができる。方法90は、エンキュー機構23、27、および32などの他のエン
キュー機構と共に使用することもできる。好ましい実施形態では、方法90は、
複数のキューが同一のメモリ・リソースの一部であるシステムで使用される。し
かし、方法90を、各キューが別々のメモリ・リソースを有する別のシステムで
使用することを妨げるものはない。
【0033】 図7を参照すると、ステップ92を介して、前のエポックのキュー・レベルお
よび提供速度が判定される。好ましい実施形態では、キュー・レベルが、前のエ
ポックの終りに判定され、メモリ・リソースのレベルである。また、好ましい実
施形態では、ステップ92で判定される提供速度が、前のエポック中にメモリ・
リソースに提供された総入力である。好ましい実施形態では、前のエポックの伝
送分数も、ステップ92で判定される。代替実施形態では、方法90のキュー・
レベルの判定に、エンキュー機構19に対応するキュー20のレベルを判定する
ことが含まれる。また、好ましい実施形態では、伝送分数が、1エポックについ
て一定であり、したがって、前のエポック中のいつでも判定することができるが
、方法90を使用する、前のエポックの開始時に判定されることが好ましい。
【0034】 その後、ステップ94を介して、伝送分数およびキュー・レベルがキュー・レ
ベルの範囲にわたって臨界減衰するように、伝送分数を制御する。伝送分数は、
キュー・レベルと入力分数に基づいて制御される。好ましい実施形態では、伝送
分数が、前の伝送分数にも基づいて制御される。好ましい実施形態では、ステッ
プ94で、臨界減衰に望ましい伝送分数を供給するために前のエポック以降の伝
送分数の変化を計算し、伝送分数の変化を、前のエポックの伝送分数に加算する
。伝送分数がそのように制御されるキュー・レベルの範囲を、すべての可能なキ
ュー・レベルに拡張することができる。しかし、好ましい実施形態では、臨界減
衰のために伝送分数が制御される範囲が、0以上の最小キュー・レベルと、最大
の可能なキュー・レベル以下の最大キュー・レベルの間である。その後、ステッ
プ96を介して、伝送分数を使用してパケットを破棄し、その結果、スイッチ機
能が維持されるようにする。伝送分数が、1から破棄分数を引いた値と等しいの
で、伝送分数を使用して、パケットの適当な部分を破棄することができる。上で
述べたように、破棄分数は、パケットのうちで破棄される部分である。1実施形
態では、パケットがランダムに破棄される。しかし、もう1つの実施形態では、
パケットが、パケットの優先順位に部分的に基づいて破棄される。また、好まし
い実施形態では、ステップ96でのパケットの破棄によって、送信側ホストへの
、パケットが破棄されたことの通知も供給される。その結果、ホストが、スイッ
チ10へのトラフィックを一時的に中断することができる。
【0035】 上で述べたように、伝送分数は、ステップ94で、伝送分数およびキュー・レ
ベルによって記述される系の臨界減衰をもたらすように制御される。これによっ
て、キュー20を介する、したがってスイッチ10を介するトラフィックが、す
ばやく安定状態に達することが可能になる。臨界減衰がもたらされるので、キュ
ー・レベルおよび伝送分数によって記述されるキュー20を介するトラフィック
は、最小限の時間で安定状態に達しなければならない。臨界減衰に必要な伝送分
数および伝送分数とキュー・レベルの間の関係を、下記のようにさまざまな理論
によって記述することができる。
【0036】 キュー・レベルおよび破棄率は、キュー20の状態を記述する変数とみなすこ
とができる。キュー・レベルを増やす時に、キュー20が満杯にならないように
するために、破棄率を増やさなければならない。しかし、破棄率を増やす場合に
は、キュー・レベルを減らさなければならない。したがって、キューは、キュー
・レベルと破棄率の間の負帰還ループまたは負帰還関係を有するものとみなすこ
とができる。この関係は、通常の系で発振を引き起こすことができるものである
。本発明は、破棄率に摩擦を加え、その結果、破棄率が、REDなどのトラフィ
ックを制御する従来の方法のようにすばやくキュー・レベルに伴って変化しない
ようにすることとみなすことができる。その結果、発振を、減衰させるか防止す
ることができる。
【0037】 本発明は、安定性理論を使用して説明することもできる。しかし、説明を単純
にするために、破棄率ではなく伝送速度を使用する。キュー・レベルは、伝送速
度、提供速度、および出力速度を使用して記述することができる。出力速度は、
項目がキューまたはメモリ・リソースから送出される速度である。時間に関する
キュー・レベルの変化は、伝送速度に提供速度をかけ、出力速度を引いた値によ
って与えられる。したがって、時間に関するキュー・レベルの変化は、項目がキ
ューに入力される速度から、項目がキューから出力される速度を引いた値に等し
い。これを、次のように説明することができる。 dQ(t)/dt=I(t)×T(t)−O(t) ただし、 Q(t)=キュー・レベル I(t)=項目(パケットなど)がエンキュー機構に提供される速度 T(t)=伝送分数 =たとえばエンキュー機構に提供される項目のキューに送出される 部分 O(t)=項目がキューから出力される速度 また、 D(t)=1−T(t) ただし、 D(t)=破棄分数 であることに留意されたい。
【0038】 さらに、Q(t)、I(t)、およびO(t)が、本来非負であり、T(t)
が、[0、1]の範囲の値を有することに留意されたい。
【0039】 キュー・レベルの変化の時間速度と伝送分数の間の関係は、キュー20の特性
によって設定される。同様に、破棄分数と伝送分数の間の関係は、それらの特性
によって設定される。しかし、伝送分数自体は、事実上すべての所望の量とする
ことができる。さらに、伝送分数を、望み通りに変更することができる。したが
って、伝送分数は、臨界減衰がもたらされることを保証するように設定すること
ができる。好ましい実施形態では、伝送分数を、下記によって記述されるものに
なるように選択する。 dT(t)/dt=κ(t)×(β−αT(t)−Q/Qmax) ただし、 κ(t)=時間に依存するものとすることができる数 α=定数 β=定数 Qmax=最大の可能なキュー・レベル
【0040】 伝送分数に課せられる物理的制約は、それが0と1の間であること以外にはな
いので、 、および を、任意に選択することができる。
【0041】 上で述べたように、伝送分数の目標は、臨界減衰をもたらし、系ができる限り
早く安定性に到達できるようにすることである。臨界減衰の説明を簡単にするた
めに、提供速度I(t)および出力速度O(t)が、平衡すなわち安定状態で一
定であると仮定する。しかし、ネットワークについて一般的にそうであるように
、I(t)およびO(t)が変化し続ける場合であっても、この分析は真である
【0042】 平衡では、時間に関するキュー・レベルの変化の速度と、時間に関する伝送の
変化の速度は、出力速度および提供速度が一定であるならば、0にならなければ
ならない。言い換えると、平衡では、下記が成り立つ。 0=I(t)×T(t)−O(t) 0=κ(t)×(β−αT(t)−Q/Qmax) I(t)=I =定数 O(t)=O =定数 結果として、平衡では、下記が成り立つ T= O/I α×T=β−Q/Qmax
【0043】 わかりやすくするために、最低限で、Q/Qmaxが、0.25などの定数であ
ると仮定する。安定性の領域内で許容されるI/Oの最大比が、1.6であると
決定され、このI/O比で、QがQmaxに達し、T=5/8になる。同様に、Qm
ax/4以下のQで、Tが1と等しくならなければならないことが決定された。し
たがって、この2つの極端な平衡で、 0=β−α×5/8−1 0=β−α−1/4 になる。これらの前提から、αおよびβの数値を、それぞれ2および2.25に
決定することができる。Q/QmaxおよびI/Oの他の許容範囲を設けて、αお
よびβの他の数値を得ることができることに留意されたい。したがって、αおよ
びβを、平衡条件およびスイッチ10が動作することを望まれる範囲に関するい
くつかの仮定に基づいて決定することができる。
【0044】 安定性に関して、キュー・レベルおよび伝送分数系の線形近似行列を、偏導関
数をとることによって決定することができる。したがって、この系を記述する行
列は、次のようになる。
【数1】
【0045】 この行列の固有値は、負の実数部を有する。したがって、キュー・レベルおよ
び伝送分数によって記述されるこの系の軌跡は、安定である。すなわち、スイッ
チを介するトラフィックを、したがって、レベルの範囲にわたって安定するよう
に制御することができる。さらに、固有値は、正確に(t)=I/Qmax(臨界
減衰の条件)である場合に、等しい。微分方程式の理論から、臨界減衰は、この
系の行列の軌跡の自乗が、4に行列式をかけたものと等しい時にもたらされる。
言い換えると、 α2×κ2(t)=4×κ(t)×I/Qmax または κ(t)=4×I/(Qmax×α2) =I(t)/Qmax (上の前提について) したがって、この系が動作することを望まれる値で臨界減衰をもたらす伝送分
数をもたらすようにj (t)、α、およびβを選択することができる。上の式
を使用して、臨界減衰をもたらすことが望まれる伝送分数を、スイッチ10につ
いて提供することができる。たとえば、Q/QmaxおよびI/Oに関する上の仮
定を使用すると、伝送分数およびキュー・レベルによって記述された系は、次の
ようになる。 Q(t+Dt)=Q(t)+[I(t)×T(t)−O(t)]×Dt T(t+Dt)=T(t)+(I(t)×Dt/Qmax)×(2.25−2×
T(t)−Q(t)/Qmax) ただし、 Dt=QとTの計算の間の時間間隔 =エポックの時間 Q(t)/Qmaxは、0.25以上である I(t)/O(t)は、1.6以下である
【0046】 Q(t)、I(t)、およびO(t)の上の条件に違反する情況を考慮に入れ
るために、伝送分数を、キュー・レベルに基づいて変更することができる。たと
えば、Q/Qmaxが0.25未満の時に、伝送分数を1にすることができる。同
様に、I(t)/O(t)が1.6を超える時には、キューが、所望よりすばや
く満たされ始める。その結果、キューが、最大値またはその近くのレベルに達し
た時に、伝送分数に0または小さい値をセットすることができる。
【0047】 上で述べたように、上の分析は、提供速度I(t)および出力速度O(t)が
、平衡のときに一定であると仮定して説明されたが、臨界減衰の分析は、平衡で
I(t)およびO(t)が一定でない時にもあてはまる。したがって、やはり臨
界減衰をもたらすことができ、伝送分数をキュー・レベルの変化にすばやく対応
させ、したがって、提供速度および出力速度の変化にすばやく対応させることが
できる。
【0048】 本発明による方法およびシステムをより明瞭に説明するために、図8を参照さ
れたい。図8は、スイッチを介するトラフィックを制御する方法100のより詳
細な実施形態を示す図である。わかりやすくするために、スイッチ10のエンキ
ュー機構19およびキュー20を使用する際の方法100を説明する。したがっ
て、エンキュー機構19が、方法100を実行する。しかし、方法100を、別
のエンキュー機構によって使用することができる。さらに、エンキュー機構19
に対するキュー・レベルおよび提供速度に言及するが、判定されるキュー・レベ
ルを、メモリ・リソース全体に関するものとすることができ、提供速度を、メモ
リ・リソース全体に関するものとすることができる。
【0049】 ステップ102を介して、前のエポックについてキュー・レベルおよび提供速
度を判定する。キュー・レベルは、エポックの終りに、最小キュー・レベルQmi
nおよび最大キュー・レベルQmaxに対して相対的に判定されることが好ましい。
ステップ102で、前のエポックの伝送分数も使用可能になる。一般に、伝送分
数は、方法100を使用して判定されており、したがって、簡単に使用可能にな
る。しかし、まだ使用可能でない場合には、伝送分数を判定することができる。
【0050】 ステップ104を介して、キュー・レベルがQminを超えるかどうかを判定す
る。そうでない場合には、ステップ106を介して、伝送分数に1をセットする
。したがって、ステップ106で、キュー・レベルが十分に低い場合に、すべて
のパケットがエンキュー機構19によってキュー20に伝送されることが保証さ
れる。ステップ104で、キュー・レベルがQminを超えると判定される場合に
は、ステップ108を介して、キュー・レベルがQmaxを超えるかどうかを判定
する。キュー・レベルがQmaxを超える場合には、ステップ110を介して、伝
送分数に0をセットする。したがって、ステップ110で、キュー・レベルが高
すぎる場合に、すべてのパケットが破棄されることが保証される。
【0051】 キュー・レベルが、Qmin未満でもQmax超でもない場合には、ステップ112
で、臨界減衰に関して伝送分数を制御する。好ましい実施形態では、伝送分数が
、上で述べた式を使用してセットされる。したがって、伝送分数は、前のエポッ
クからのキュー・レベル、提供速度、および伝送分数、ならびにエポックの長さ
に基づいて、臨界減衰に関してセットされる。ステップ106、110、または
112でセットされた伝送分数を使用して、エンキュー機構19によってパケッ
トを伝送または破棄し(ステップ114)、その結果、パケットのうちでキュー
20に供給される部分が、伝送分数と等しくなるようにする。パケットは、図4
に関して上で述べた従来のREDで使用されるものに似た形で、ランダムに破棄
されることが好ましい。しかし、図8に戻って、パケットを、その優先順位に基
づいて破棄することもできる。さらに、破棄されるパケットを送出したホストに
通知を送り返し、その結果、ホストがスイッチへのトラフィックを一時的に中断
できるようにすることが好ましい。その後、ステップ116を介して、現在のエ
ポックが完了したかどうかを判定する。これは、伝送分数の計算が完了してから
特定の時間が経過したかどうかを判定することによって達成することができる。
エポックが完了していない場合には、ステップ114を継続する。エポックが完
了した場合には、ステップ102に戻る。
【0052】 したがって、伝送分数を、方法90または方法100を使用して、臨界減衰の
ためにセットすることができる。臨界減衰は、キュー・レベルの所望の範囲内で
のみ発生することが好ましい。この範囲の外では、臨界減衰計算に関してキュー
・レベルが高すぎるまたは低すぎるのどちらであると判定されるかに応じて、伝
送分数に0または1をセットする。パケットは、ランダムにまたは少なくとも部
分的にその優先順位に基づいて破棄されるので、スイッチ10にトラフィックを
送るホストの同期化を防ぐことができる。臨界減衰がもたらされるので、方法9
0または100は、方法REDよりよいシステムの安定性を提供することができ
る。また、臨界減衰がもたらされるので、方法90および100は、方法BLU
Eよりすばやく平衡に達する。その結果、方法90または100を使用するスイ
ッチ10を使用するネットワークの性能が、改善される。
【0053】 方法90または100を使用することによる性能の改善は、実験によって調べ
ることができる。ボトルネック・リンクが存在するネットワークをモデル化した
。さらに、このネットワークに、約30%の超過を得るのに十分なトラフィック
を与えた。したがって、このネットワークは、約30%のトラフィックが破棄さ
れなければならなくなるように、意図的に管理された。実験中に、方法REDで
は、droptailによって約20000フレームまたはパケットが破棄された(最大
キュー・レベルに起因して、その次のパケットをドロップしなければならなかっ
た)。前に述べたように、droptailによるフレームの破棄は、単にキューが満杯
なのでフレームが破棄される時に発生する。droptailによる破棄は、キューが満
杯である時にフレームが破棄されるので、望ましくない。droptailによるパケッ
トの破棄は、ネットワークの安定性を下げ、パケットの優先順位に従って動作す
ることができない。
【0054】 同一の実験で、本発明は、droptailによるフレームの破棄がなかった。したが
って、本発明は、破棄を実行するか否かを判定する時に、パケットの優先順位を
考慮に入れることができた。さらに、本発明によって伝送されたフレームの総数
は、方法REDの総数より多かった。その結果、方法90および100は、高い
超過がある時であっても、ネットワークのトラフィックをよりよく管理すること
ができる。本明細書で開示する実施形態では、本発明が、少なくとも50%まで
の超過について良好に動作する。上で述べたように、臨界減衰がもたらされるの
で、方法90および100は、方法BLUEよりもすばやく平衡に達する。
【0055】 図9に示された本発明のもう1つの実施形態(120)では、ステップ122
を介して、前のエポックのキュー・レベルと提供速度を判定する。好ましい実施
形態では、キュー・レベルが、前のエポックの終りに判定され、メモリ・リソー
スのレベルである。また、好ましい実施形態では、ステップ122で判定される
提供速度が、前のエポック中にメモリ・リソースに提供された総入力である。好
ましい実施形態では、ステップ122で、前のエポックの伝送分数も判定される
。代替実施形態では、方法120のキュー・レベルの判定に、エンキュー機構1
9に対応するキュー20のレベルを判定することが含まれる。また、好ましい実
施形態では、伝送分数が、1エポックにわたって一定であり、したがって、前の
エポック中にいつでも判定することができるが、前のエポックの始めに判定され
ることが好ましい。
【0056】 ステップ124を介して、前のエポックからのキュー・レベルを使用して、キ
ュー20の仮想最大キュー・レベルを判定する。仮想最大キュー・レベルは、ス
イッチ10が輻輳していると判定される時に減らされる。仮想最大キュー・レベ
ルは、スイッチが輻輳していないと判定される時に、可能な最大キュー・レベル
以下とすることができる最大値までの範囲で増やされる。これは、キュー・レベ
ルが可能な最大のキュー・レベル未満の閾値を超えることを判定することによっ
て達成されることが好ましい。言い換えると、スイッチ10は、キュー20が満
たされる前に輻輳していると判定される。仮想最大キュー・レベルが、伝送分数
の判定に使用されるので、キュー20の使用可能なメモリ・リソースが、メモリ
・リソースの実際のサイズより小さいかのように、伝送分数を計算することがで
きる。その結果、高い輻輳の発生中に、伝送分数を、それ以外の場合の伝送分数
より小さい値にセットすることができる。その結果、スイッチ10が、高トラフ
ィックの情況によりよく対処できるようになる。
【0057】 その後、ステップ126を介して、キュー・レベル、提供速度、および仮想最
大キュー・レベルに基づいて、伝送分数を制御する。また、好ましい実施形態で
は、仮想最大キューレベルが判定された後に伝送分数およびキュー・レベルによ
って記述される系が臨界減衰されるように、伝送分数が制御される。好ましい実
施形態では、伝送分数が、前の伝送分数にも基づいて制御される。伝送分数がそ
のように制御されるキュー・レベルの範囲を、すべての可能なキュー・レベルに
拡張することができる。しかし、好ましい実施形態では、伝送分数が臨界減衰の
ために制御される範囲が、0以上の最小キュー・レベルと、最大の可能なキュー
・レベル以下の最大キュー・レベルの間である。伝送分数は、キュー・レベルが
仮想最大キュー・レベルを超えないようにも制御されることが好ましい。その後
、ステップ128を介して、伝送分数を使用してパケットを破棄し、その結果、
スイッチ機能が維持されるようにする。伝送分数が、1から破棄分数を引いた値
と等しいので、伝送分数を使用して、パケットの適当な部分を破棄することがで
きる。上で述べたように、破棄分数は、パケットのうちで破棄される部分である
。1実施形態では、パケットが、ランダムに破棄される。しかし、もう1つの実
施形態では、パケットが、そのパケットの優先順位に部分的に基づいて破棄され
る。また、好ましい実施形態では、ステップ128でのパケットの破棄によって
、パケットが破棄されたことの通知が、送信側ホストに供給される。その結果、
ホストが、スイッチ10へのトラフィックを一時的に中断することができる。
【0058】 図10は、図9の方法120のステップ124で仮想最大キュー・レベルを判
定するための、方法130の好ましい実施形態を示す流れ図である。好ましい実
施形態では、仮想最大キュー・レベルを更新する方法130が、方法120のス
テップ126での伝送分数の更新と並列に実行される。図10を参照すると、ス
テップ132を介して、キュー・レベルが閾値以上であるかどうかが判定される
。閾値は、最大キュー・レベルの分数であることが好ましい。この分数は、0と
1の間の任意の値とすることができるが、1/2と31/32の間であることが
好ましい。閾値は、最大の可能なキュー・レベルの31/32であることが好ま
しい。しかし、127/148、7/8、3/4、および1/2を含む、最大の
可能なキュー・レベルの他の分数を使用することができる。しかし、スループッ
トの低下と引き換えに、キュー・レベルを最大の可能なキュー・レベルより小さ
くすることができることに留意されたい。キュー・レベルが、閾値以上である場
合に、ステップ134を介して、乗数をセットする。ステップ134では、乗数
が、次の関数に従ってセットされることが好ましい。 M(t+Dt)=minimum{1、a×M(t)+b} ただし、 M(t)=前のエポックで計算された乗数 a=1未満の正の定数、好ましくは31/32 b=(1−a)以上で、1未満の正の定数、好ましくは1/4
【0059】 したがって、好ましい実施形態では、乗数は、ステップ132でキュー・レベ
ルが閾値を超えると繰り返して判定される時に、第1の量、好ましい実施形態で
は1に近づく。
【0060】 キュー・レベルが閾値未満である場合には、ステップ136を介して乗数をセ
ットする。ステップ136では、乗数が、次の関数に従ってセットされることが
好ましい。 M(t+Dt)=cM(t)+d ただし、 M(t)=前のエポックで計算された乗数 c=1未満の正の定数、好ましくは31/32 d=(1−c)以下の正の定数、好ましくは1/64 したがって、好ましい実施形態では、乗数は、ステップ132でキュー・レベ
ルが閾値未満であると繰り返して判定される時に、第2の量すなわち1/2に近
づく。
【0061】 したがって、ステップ134および136で、1を上限とする前の乗数の指数
関数的加重平均である乗数が決定される。さらに、輻輳が繰り返される場合に、
キュー・レベルが繰り返して閾値より高くなる時に、乗数が、指数関数的に第1
の値、好ましくは1に近づく。輻輳が繰り返して回避される時に、キュー・レベ
ルが繰り返して閾値より低くなる時に、乗数が、指数関数的に第2の値、好まし
くは1/2に近づく。
【0062】 仮想バッファ容量または仮想最大キュー・レベルは、次のように定義される。
繰り返して輻輳がない場合に、キューが繰り返して閾値未満になる時に、仮想バ
ッファ容量は、Qmaxと表される物理バッファ容量と同一である。繰り返して輻
輳がある場合に、キュー・レベルが繰り返して閾値を超える時に、仮想バッファ
容量は、物理バッファ容量の1/2またはQmax/2である。当業者は、1/2
以外の分数も、繰り返される輻輳の場合の間の仮想バッファ容量の定義に十分で
あることを諒解するであろう。
【0063】 上で説明したフロー制御アルゴリズムの一部では、バッファにエンキューされ
るデータの量が、最大バッファ容量Qmaxの分数として表される。したがって、
Qmaxが、いくつかの式に分母として現れ、たとえば、Qmaxによって除算される
キュー・レベルQ(t)すなわちQ/Qmaxとして現れる。仮想バッファ容量の
所望の定義は、したがって、量2×M×Q/Qmaxの使用と同等である。すなわ
ち、繰り返して輻輳がない場合に、Mが1/2または1/2に近い時に、式2×
M×Q/Qmaxが、単にQ/Qmaxになる。繰り返して輻輳が発生する場合に、M
が1または1に近い時に、式2×M×Q/Qmaxが、単に2×Q/QmaxまたはQ
/(Qmax/2)になる。したがって、キュー占有分数Q/Qmaxに乗数Mの2倍
をかけることは、Qを仮想バッファ容量または仮想最大キュー・レベルと比較す
るという効果を有する。
【0064】 複数スイッチ・モデルを用いるシミュレーションで、乗数Mの上の定義および
使用が、8対1輻輳までの厳しい輻輳の場合に、破棄分数の計算を安定させるこ
とが実証された。そのような輻輳は、複数の着信ソースが、1つの発信シンクに
関するトラフィックを有する時に、スイッチの動作で瞬間的に生じる可能性があ
る。
【0065】 図11は、ネットワークのトラフィックを制御する、本発明による方法140
のより詳細な流れ図である。方法140は、図1および3に示されたスイッチ1
0と共に使用することができる。明瞭にするために、方法140を、図3に示さ
れたキュー20およびエンキュー機構19に関して説明する。しかし、方法14
0は、他のキューおよび他のエンキュー機構と共に使用することができる。好ま
しい実施形態では、方法140が、複数のキューが同一のメモリ・リソースの一
部であるシステムで使用される。しかし、方法140を、各キューが別々のメモ
リ・リソースを有する別のシステムで使用することを妨げるものはない。
【0066】 ステップ142を介して、前のエポックのキュー・レベルおよび提供速度を判
定する。さらに、ステップ142で、前のエポックの伝送分数および乗数も使用
可能にされることが好ましい。というのは、これらの量が、好ましくは前のエポ
ックについて計算されたからである。しかし、前のエポックの伝送分数および乗
数が使用可能でない場合には、ステップ142でこれらの量を判定することが好
ましい。その後、ステップ144を介して、キュー・レベルが最小閾値以上であ
るかどうかを判定する。好ましい実施形態では、最小閾値が、最大キュー・レベ
ルの1/4である。キュー・レベルが最小閾値以上でない場合には、伝送分数に
1をセットする(ステップ146)。
【0067】 キュー・レベルが最小閾値を超える場合には、ステップ148を介して、キュ
ー・レベルが最大閾値を超えるかどうかを判定する。好ましい実施形態では、ス
テップ148に、キュー・レベルが仮想最大キュー・レベルを超えるかどうかを
判定することが含まれる。
【0068】 キュー・レベルが最大閾値を超えると判定される場合には、ステップ150を
介して、伝送分数に0または0に近い値をセットする。しかし、キュー・レベル
が最大閾値を超えないと判定される場合には、ステップ152を介して、前のエ
ポックの乗数、キュー・レベル、前の伝送分数、提供速度、および最大キュー・
レベルを使用して、伝送分数を決定する。好ましい実施形態では、伝送分数が、
次式によって与えられる。 T(t+Dt)=minimum{1、maximum(1/8、T(t)+
(2×I(t)×M(t)×Dt/Qmax)×(9/4−2×T(t)−2×M
(t)×Q(t)/Qmax))] ただし、 M(t)=前のエポックの乗数 Dt=適当な時間単位でのエポックの長さ
【0069】 T(t+Dt)の式に乗数M(t)が現れることに留意されたい。TとMの両
方が、Dt時間単位ごとに同時に更新される。さらに、乗数M(t)がT(t+
Dt)の式に2回現れることに留意されたい。これは、上で説明したように、項
2×M(t)×Q(t)/Qmaxに現れる。その効果は、輻輳が繰り返される場
合に、バッファ容量を2で割ることである。乗数M(t)は、2×M(t)×I
(t)×Dt/Qmaxにも現れる。ここで、時間間隔Dtにキュー系に提供され
るビット数が、I(t)×Dtである。この量をQmaxと比較して、分数I(t
)×Dt/Qmaxがもたらされる。この分数に、2×M(t)をかける。やはり
、その効果は、輻輳の場合にバッファ容量を2で割ることである。
【0070】 好ましい実施形態では、ステップ154を介して、伝送分数の計算と並列に、
乗数を更新する。好ましい実施形態では、乗数が、図10に示された方法130
を使用して更新される。しかし、乗数を伝送分数と直列に更新することを妨げる
ものがないことに留意されたい。さらに、現在のエポックの伝送分数の計算に現
在のエポックの乗数を使用することを妨げるものはない。しかし、その場合には
、図11のステップ152の伝送分数の数式が異なるものになる。
【0071】 ステップ146、ステップ150、またはステップ152でセットされた伝送
分数を使用して、ステップ156を介して、エンキュー機構19が、スイッチ1
0の機能を維持するためにパケットを事前に破棄する。ステップ158を介して
、エポックが終わったかどうかを判定する。そうでない場合には、ステップ15
6に戻る。終わった場合には、ステップ142を繰り返す。
【0072】 方法120および140は、安定しており、スイッチ10でトラフィックを制
御できるようになる。さらに、方法120または140を使用すると、仮想最大
キュー・レベルまたは乗数を使用することによって、大量のトラフィックを計上
することができる。したがって、方法120または140の1実施形態を使用す
るスイッチ10は、800%の超過に対処することができ、非常に超過している
時であってもキューまたはメモリ・リソースを満たさずに機能し継ける。さらに
、方法150を使用することによって、乗数が既にセットされているか、他の形
で減衰決定のために定数とみなされると仮定すると、伝送機能およびキュー・レ
ベルが臨界減衰される。キュー・レベルおよび伝送分数が臨界減衰されるので、
スイッチ10は、できる限りすばやく平衡に達する。
【0073】 本発明が、コンピュータ・ネットワーク内の複数のパイプを制御する方法およ
びシステムを提供することも企図されている。上で開示したように、コンピュー
タ・ネットワークには、スイッチ用の少なくとも1つのプロセッサが含まれる。
少なくとも1つのプロセッサは、キューを有する。複数のパイプは、スイッチを
介するトラフィックの伝送にキューを使用する。この方法およびシステムには、
最小フローおよび最大フローを複数のパイプのそれぞれについてセットできるよ
うにすることと、キューに過剰帯域幅が存在するかどうかを判定することが含ま
れる。この方法およびシステムには、過剰帯域幅が存在する場合と、複数のパイ
プのうちのパイプのフローがそのパイプの最大フロー未満である場合に、最小フ
ローまたは最大フローに基づいて、複数のパイプのうちのそのパイプのフローを
線形に増やすことも含まれる。この方法およびシステムには、過剰帯域幅が存在
せず、フローがパイプの最小フローを超える場合に、最小フローまたは最大フロ
ーに基づいて、複数のパイプのうちのパイプのフローを指数関数的に減らすこと
も含まれる。したがって、キューを介するトラフィックが安定する。
【0074】 本発明を、キューを介するそのようなパイプまたはキューに供給されるフロー
に関して説明する。しかし、当業者は、パイプを、異なるクラスまたは同一のク
ラスの、もしくはストレージにキューを使用する特定のコンポーネントへの任意
の提供速度の、behaviour aggregate flowとすることができることを容易に理解
するであろう。
【0075】 本発明による方法およびシステムをより具体的に示すために、本発明による方
法160の1実施形態を示す図12を参照されたい。方法160は、図1および
3のスイッチ10と共に使用することができる。したがって、方法160を、複
数のブレード7、8、および9と各ブレード7、8、および9上の複数のポート
を有するスイッチ10内で実行することができる。明瞭にするために、方法16
0を、図3に示されたキュー20およびエンキュー機構19に関して説明する。
しかし、方法160は、キュー24、28、および34などの他のキューと共に
使用することができる。方法160は、エンキュー機構23、27、および32
などの他のエンキュー機構と共に使用することもできる。好ましい実施形態では
、方法160が、複数のキューが同一のメモリ・リソースの一部であるシステム
で使用される。しかし、方法160を、各キューが別々のメモリ・リソースを有
する別のシステムで使用することを妨げるものはない。
【0076】 図3および12を参照すると、ステップ162を介して、キュー20にトラフ
ィックを供給するパイプの最小フローおよび最大フローがセットされる。パイプ
は、ポートA18のいずれかからエンキュー機構19に来る可能性がある。好ま
しい実施形態では、当該のパイプが、behaviour aggregate flowである。したが
って、ステップ162で、当該のbehaviour aggregate flowの最小帯域幅および
最大帯域幅がセットされることが好ましい。さらに、パイプの最小フローの合計
が、共用されるキュー・プロセッサのサービス速度S以下でなければならない。
これは、フローが、キュー20がサービスできるトラフィックの総量の分数とし
て定義されるからである。あるパイプの最小フローを、0にすることができる。
通常、キュー20は、定義されたサービス速度すなわち、キュー20がキューか
ら項目を出力できる速度を有する。好ましい実施形態では、最小フロー速度の合
計が、サービス速度Sの1/2未満である。また、好ましい実施形態では、各パ
イプの最大フローが、サービス速度以下である。好ましい実施形態では、キュー
20によってサービスされるパイプの最大個数が、1024以下であるが、制御
されるパイプの個数に対する実際の上限はない。さらに、各パイプは、キュー2
0に提供速度Ii(t)でトラフィックを提供し、このiは、i番目のパイプを
表す。異なる要因に応じて、トラフィックの一部をドロップすることができる。
i番目のパイプの伝送分数Ti(t)は、キュー20に伝送されるi番目のパイ
プからのトラフィックの分数である。したがって、i番目のパイプの瞬間フロー
は、fi(t)=Ii(t)×Ti(t)である。好ましい実施形態では、方法1
60は、それを流れるトラフィックを有するパイプが、少なくともその最小フロ
ーを有することを保証することもできる。
【0077】 ステップ164を介して、キュー20が使用可能な過剰帯域幅を有するかどう
かを判定する。好ましい実施形態では、キュー・レベルが増加中である場合には
、過剰帯域幅が存在しないと判定される。また、好ましい実施形態では、キュー
20が空である場合、またはキュー20のキュー・レベルが減少中である場合に
、ステップ164で過剰帯域幅が存在すると判定される。したがって、ステップ
164に、キュー・レベルを判定することと、そのキュー・レベルを前のキュー
・レベルと比較することが含まれることが好ましい。また、好ましい実施形態で
は、キュー・レベルが0でも減少中でもない場合に、過剰帯域幅が存在しないと
判定される。しかし、過剰帯域幅が存在するかどうかを判定する他の判断基準の
使用を妨げるものはない。
【0078】 ステップ164で、過剰帯域幅が存在すると判定される場合には、ステップ1
66を介して、パイプのフローを線形に増やす。ステップ166が、パイプのそ
れぞれの伝送分数を線形に増やすことによって達成されることが好ましい。パイ
プに関する線形の増加は、最小フロー、最大フロー、または重みに基づくものと
することができる。したがって、パイプに関する線形の増加は、パイプの最小フ
ローだけ、最大フローだけ、最小フローと重みの何らかの組合せ、最大フローと
重みの何らかの組合せ、または最小フロー、最大フロー、および重みの何らかの
組合せに基づくものとすることができる。しかし、好ましい実施形態では、パイ
プに関する線形の増加が、そのパイプの最小フローに基づく。
【0079】 ステップ164で、過剰帯域幅が存在しないと判定される場合には、ステップ
168を介して、パイプのフォローを指数関数的に減らす。ステップ168が、
パイプのそれぞれの伝送分数を指数関数的に減らすことによって達成されること
が好ましい。パイプに関する指数関数的な減少は、最小フローまたは最大フロー
に基づくものとすることができる。したがって、パイプに関する指数関数的な減
少は、パイプの最小フローだけ、最大フローだけ、または最小フローと最大フロ
ーの何らかの組合せに基づくものとすることができる。しかし、好ましい実施形
態では、パイプに関する指数関数的な減少が、そのパイプの最小フローに基づく
。減少が性質において指数関数的なので、減少は、パイプの現在のフローまたは
伝送分数にも基づく。
【0080】 方法160では、フローを線形に増やし、フローを指数関数的に減らすので、
方法160では、一般に、パイプを介するキュー20へのトラフィックが、自動
的に漸近的に安定性に達することができることが保証される。フローは、キュー
20が過剰帯域幅を有するかどうかに応じて増減される。安定性に達した時に、
フローは、過剰帯域幅が存在する限り線形に増加し、その後、過剰帯域幅がなく
なったことに起因して、過剰帯域幅が再び使用可能になるまで指数関数的に減る
。この振る舞いが繰り返される。言い換えると、パイプからのトラフィックが、
極限閉軌道と称する定常循環状態にとどまることができる。したがって、パイプ
を介するトラフィックが開始される状態に無関係に、この系は、安定した循環挙
動に向かう。この安定した挙動は、増加と減少の別の組合せを用いて達成するこ
とはできない。たとえば、指数関数的増加および線形減少または指数関数的増加
および指数関数的減少は、安定した挙動をもたらすことができない。さらに、各
パイプのフローの増減が、そのパイプの最小フローまたは最大フローと、そのパ
イプの前のフローに依存する。したがって、異なるパイプが、異なるレベルのフ
ローまたはサービスを有することができる。その結果、方法160は、安定した
挙動をもたらすだけではなく、差異化サービスを提供し、キュー20の過剰帯域
幅を公平に割り振ることもできる。ネットワーク管理者または他のユーザが行わ
なければならないことは、特定の顧客に望ましいサービスのレベルに応じて異な
る形で、顧客の最大フローおよび最小フローをセットすることである。したがっ
て、方法160は、DiffServを使用するネットワークなどのさまざまな応用分野
で、異なる顧客に対してまたは異なる媒体に関して、異なるレベルのサービスを
提供することを望むインターネット・サービス・プロバイダが使用することがで
きる。これは、方法160のパイプに対応する、behaviour aggregate flow、顧
客、媒体、クラス、または他のフローについて、単に最大フローおよび最小フロ
ーをセットできるようにすることによって達成される。
【0081】 図13に、図1および3に示されたスイッチ10を用いて差異化サービスを提
供する、本発明による方法170のより詳細な流れ図を示す。したがって、方法
170を、複数のブレード7、8、および9と各ブレード7、8、および9上の
複数のポートを有するスイッチ10で実行することができる。明瞭にするために
、方法170を、図3に示されたキュー20およびエンキュー機構19に関して
説明する。しかし、方法170は、キュー24、28、および34などの他のキ
ューと共に使用することができる。方法170は、エンキュー機構23、27、
および32などの他のエンキュー機構と共に使用することもできる。好ましい実
施形態では、方法170が、複数のキューが同一のメモリ・リソースの一部であ
るシステムで使用される。しかし、方法170を、各キューが別々のメモリ・リ
ソースを有する別のシステムで使用することを妨げるものはない。さらに、方法
170を、パイプに関して説明するが、方法170は、パイプに対応する、beha
viour aggregate flowを含む、さまざまなコンポーネントに関して使用すること
ができる。
【0082】 方法170は、たとえばネットワーク管理者によって、制御されるパイプのそ
れぞれの最小フローおよび最大フローがセットされた後に開始される。ステップ
172を介して、パイプの最小フローおよび最大フローに基づいて、パイプのそ
れぞれについて定数を計算する。パイプiのそれぞれについて、ステップ172
で、定数Ciおよび定数Diを計算する。定数Ciは、下で説明するように、パイ
プiのフローを線形に増やすのに使用される。同様に、定数Diは、下で説明す
るように、パイプiのフローを指数関数的に減らすのに使用される。好ましい実
施形態では、定数CiおよびDiの両方が、最小フローに基づく。代替実施形態で
は、異なるパイプの重みも設けることができる。その場合には、定数Ciおよび
Diを、設けられた重みにも基づいて計算することができる。
【0083】 定数を決定した後に、ステップ174を介して、トラフィックが、パイプを介
してキュー20に流れることを許可される。ステップ176を介して、キュー・
レベル、瞬間過剰帯域幅信号B、および過剰帯域幅信号Eが、まだ使用可能でな
い場合に、前のエポックについて判定される。好ましい実施形態では、前のエポ
ックのフローも、ステップ176で使用可能にされる。言い換えると、ステップ
176では、方法170でシステムを更新するのに必要な量を判定する。その後
、ステップ178を介して、過剰帯域幅が存在するかどうかを判定する。好まし
い実施形態では、キュー20のキュー・レベルが0であるか減少中である場合に
限って、過剰帯域幅が存在すると判定される。それ以外の場合には、過剰帯域幅
が存在しないと判定される。しかし、過剰帯域幅が存在するかどうかを判定する
別の判断基準の使用を妨げるものはない。好ましい実施形態では、判定されるキ
ュー・レベルが、メモリ・リソース全体のレベルである。しかし、キュー・レベ
ルが論理キューまたはサブキューについて判定されることを妨げるものはない。
過剰帯域幅が存在しない場合には、ステップ180を介して、瞬間過剰帯域幅信
号Bに0をセットする。信号Bを瞬間と呼ぶのは、これが、キュー・レベルの単
一の測定と、キュー・レベルの変化の単一の判定に基づくからである。ステップ
182を介して、過剰帯域幅信号Eに、定数に前の過剰帯域幅信号をかけた値を
セットする。定数が、31/32であることが好ましく、定数は、一般に1未満
でなければならない。好ましい実施形態では、過剰帯域幅信号が、瞬間過剰帯域
幅信号の指数関数的加重平均である。過剰帯域幅信号の値は、ステップ182で
は適当にセットされる。というのは、瞬間過剰帯域幅信号が0であるからである
【0084】 ステップ178で、過剰帯域幅が存在すると判定される場合には、ステップ1
84を介して、瞬間過剰帯域幅信号に1をセットする。ステップ186を介して
、過剰帯域幅信号に、瞬間過剰帯域幅信号の指数関数的加重平均をセットする。
したがって、好ましい実施形態では、過剰帯域幅信号が、まず、第1定数に前の
過剰帯域幅信号をかけたものと第2定数に瞬間過剰帯域幅信号をかけたものの和
になる。第1定数および第2定数の両方を、それぞれ1未満とすることができ、
好ましくは31/32と1/32である。
【0085】 好ましい実施形態では、各パイプiの伝送分数が、ステップ188を介して、
ステップ178から186と並列にセットされる。しかし、代替実施形態では、
伝送分数を、瞬間過剰帯域幅信号および過剰帯域幅信号と直列に更新することが
できる。前の瞬間過剰帯域幅信号Bが1(過剰帯域幅が使用可能)であった場合
には、ステップ188で、前の伝送分数、定数Ci、および過剰帯域幅信号に基
づいて各パイプiの伝送分数をセットする。ステップ188で前に存在した過剰
帯域幅に関してセットされる伝送分数は、次式であることが好ましい。 Ti(t+Dt)=Ti(t)+Ci×E(t) ただし、 Dt=エポックの長さ(伝送分数が最後に計算された時からの時間)
【0086】 フロー単位は、Dtおよび最大の可能なキュー・レベルQmaxが1になるよう
にセットされることが好ましい。したがって、伝送分数が、線形に減少する。さ
らに、伝送分数は、過剰帯域幅が存在し続ける限り、線形に増加し続ける。前の
エポックに過剰帯域幅が存在しなかった(Bが0であった)場合には、ステップ
188で、各パイプiの伝送分数Ti(t+Dt)が、パイプの前の伝送分数Ti
(t)、Di、およびパイプの前のフローfi(t)に基づいてセットされる。過
剰帯域幅が前に存在しなかった時の伝送分数は、次式によって与えられることが
好ましい。 Ti(t+Dt)=Ti(t)−Di×fi(t)
【0087】 したがって、ステップ188でセットされる伝送分数によって、過剰帯域幅が
存在しないままである限り、伝送分数が、したがってフローが、指数関数的に減
少することが保証される。定数CiおよびDiは、最小フロー値に基づくことが好
ましい。定数CiおよびDiの正確な好ましい値は、図14に関して下で説明する
【0088】 図13に戻って、ステップ188で計算された伝送分数を使用して、ステップ
190を介して、スイッチ10を通過するパケットが、エポック中に転送される
かドロップされる。好ましい実施形態では、パケットは、それが流れているパイ
プの伝送分数だけではなく、各パケットの優先順位にも基づいてドロップされる
。もう1つの実施形態では、パケットがランダムにドロップされる。ステップ1
92を介して、エポックが完了したかどうかを判定する。そうでない場合には、
ステップ190を介して、トラフィックが、同一の伝送分数に基づいて転送され
続ける。エポックが終了した場合には、この方法は、ステップ176での開始を
繰り返す。
【0089】 方法170は、フローを線形に増やし、フローを指数関数的に減らすので、方
法160に似た形で機能し、同一の利益の多くを提供する。したがって、方法1
70では、パイプを介するキュー20へのトラフィックが自動的に漸近的に安定
性に達することができることを保証することができる。パイプからのトラフィッ
クは、極限閉軌道と称する定常循環状態にとどまることができる。したがって、
パイプを介するトラフィックが開始される状態に無関係に、この系は、安定した
循環挙動に向かう。さらに、各パイプのフローの増減が、そのパイプの最小フロ
ーとそのパイプの前のフローに依存する。したがって、異なるパイプが、異なる
レベルのフローまたはサービスを有することができる。その結果、方法170は
、安定した挙動を生じ、キュー20の過剰帯域幅を公平に割り振り、差異化サー
ビスを提供することができる。ネットワーク管理者または他のユーザが行わなけ
ればならないことは、特定の顧客に望ましいサービスのレベルに応じて異なる形
で、顧客の最小フローおよび最大フローをセットすることである。したがって、
方法170は、DiffServを使用するネットワークなどのさまざまな応用分野で、
異なる顧客に対してまたは異なる媒体に関して、異なるレベルのサービスを提供
することを望むインターネット・サービス・プロバイダが使用することができる
。これは、方法170のパイプに対応する、behaviour aggregate flow、顧客、
クラス、媒体、または他のフローについて、単に最小フローおよび最大フローを
セットできるようにすることによって達成される。
【0090】 さらに、伝送分数からのフロー速度の減少が十分に速い場合に、パイプのフロ
ーを記述する曲線の下の面積が、フローの線形増加の傾斜に比例する。フローの
曲線の下の面積は、パイプを介してキュー20に流れる毎秒のビット数を示す。
パイプを介するフローを、1エポックにわたって計算し、パイプを介する正確な
フローを示すこともできる。したがって、フローまたはDiffServで定義される帯
域幅が、調整される。
【0091】 図14に、差異化サービスを提供する方法200の好ましい実施形態のより詳
細な流れ図を示す。方法200は、上で開示した発明を組み込まれることが好ま
しい。一般に、これから開示する方法では、上で開示した発明を使用して、必要
な時に高いレベルで伝送分数を制御し、そうでない時には、前に開示した方法に
類似する方法を使用する。
【0092】 方法200は、図1および3に示されたスイッチ10と共に使用することがで
きる。したがって、方法200を、複数のブレード7、8、および9と各ブレー
ド7、8、および9上の複数のポートを有するスイッチ10内で実行することが
できる。明瞭にするために、方法200を、図3に示されたキュー20およびエ
ンキュー機構19に関して説明する。しかし、方法200は、キュー24、28
、および34などの他のキューと共に使用することができる。方法200は、エ
ンキュー機構23、27、および32などの他のエンキュー機構と共に使用する
こともできる。好ましい実施形態では、方法200が、複数のキューが同一のメ
モリ・リソースの一部であるシステムで使用される。しかし、方法200を、各
キューが別々のメモリ・リソースを有する別のシステムで使用することを妨げる
ものはない。さらに、方法200を、パイプに関して説明するが、方法200は
、パイプに対応する、behaviour aggregate flowを含む、さまざまなコンポーネ
ントに関して使用することができる。
【0093】 方法200は、パイプのそれぞれの最小フローおよび最大フローと、使用され
る場合に重みが、セットされた後に、開始されることが好ましい。前に述べたよ
うに、最小フローの合計が、1未満でなければならず、キュー20のサービス速
度の半分未満であることが好ましい。また、好ましい実施形態では、最小フロー
と最大フローのそれぞれが、サービス速度未満である。好ましい実施形態では、
フローの数が、64以下である。好ましい実施形態では、各パイプの重みが、1
であり、したがって、スイッチ10の挙動に影響しない。上で述べたように、パ
イプのフローfi(t)を得るために、パイプによるキューへの提供速度Ii(t
)に、パイプの伝送分数Ti(t)をかける。
【0094】 ステップ202を介して、パイプのフローを増減するための定数を、最小フロ
ーと、使用される時に重みとに基づいて決定する。パイプのフローを増やすため
の定数Ciおよびフローを減らすための定数Diは、次のように計算されることが
好ましい。
【数2】 好ましい実施形態の場合のように、すべての重みが1と等しい場合には、
【数3】 である。ただし、 N=帯域幅が割り振られるフローの数 Wi=i番目のパイプの重みであり、範囲[0、1]内であることが好ましい W=N個の重みすべての合計 fimin=i番目のパイプの最小フロー さらに、フロー単位は、やはり、Dtが1になり、Qmaxが1になるように選
択される。
【0095】 ステップ204を介して、パイプのフローおよびキュー20のキュー・レベル
を判定する。エポックが完了したばかりである場合には、前のエポックのフロー
およびキュー・レベルを判定する。フローはエポック全体にわたって判定される
が、キュー・レベルは、エポックの終りのキュー・レベルであることが好ましい
。好ましい実施形態では、キュー・レベルが、キュー20がその一部であるメモ
リ・リソース全体のレベルである。しかし、もう1つの実施形態では、キュー・
レベルを、論理キューまたはサブキューに関するものとすることができる。好ま
しい実施形態では、瞬間過剰帯域幅信号Bと、過剰帯域幅信号Eが、前のエポッ
クについて既に判定されてはいない場合に、使用可能にされる。したがって、こ
れから行われる計算に必要な情報が使用可能になる。
【0096】 ステップ206を介して、キュー20について過剰帯域幅が存在するかどうか
を判定する。好ましい実施形態では、ステップ206に、キュー・レベルが0ま
たは減少中であるかどうかを判定することが含まれる。しかし、過剰帯域幅が存
在するかどうかを判定する別の判断基準の使用を妨げるものはない。キュー・レ
ベルが減少中または0である場合に、ステップ206で、過剰帯域幅が存在する
と判定される。そうでない場合には、過剰帯域幅が存在しないと判定される。過
剰帯域幅が存在する場合には、ステップ208を介して、瞬間過剰帯域幅信号に
1をセットする。そうでない場合には、ステップ210を介して、瞬間過剰帯域
幅信号に0をセットする。
【0097】 ステップ212を介して、過剰帯域幅信号に瞬間過剰帯域幅信号の指数関数的
加重平均をセットする。好ましい実施形態では、指数関数的加重平均が、次式に
よってセットされる。 E(t+Dt)=(31/32)×E(t)+B(t+Dt)/32 ただし、 E(t+Dt)=現在のエポックの過剰帯域幅信号 E(t)=前のエポックの過剰帯域幅信号 B(t+Dt)=現在のエポックの瞬間過剰帯域幅信号
【0098】 ステップ206から212の瞬間過剰帯域幅信号と過剰帯域幅信号の更新と並
列に、ステップ214を介して、現在のエポックの伝送分数が更新される。伝送
分数は、ステップ214で、可能な時にアクティブ・パイプのそれぞれに最小フ
ローが供給され、各パイプのフローが最大値を超えず、キュー20(または対応
するメモリ・リソース)が所望のレベルを超えず、必要である限り、フローが線
形に増やされ、指数関数的に減らされ、キュー・レベルおよびグローバル伝送分
数によって記述される系が、臨界減衰され、より高い超過速度を考慮することが
できるように伝送分数がセットされるように、セットされる。臨界減衰は、キュ
ー・レベルおよびグローバル伝送分数によって記述される系が、できる限り早く
平衡に達することを意味する。好ましい実施形態では、各パイプの伝送分数が、
下記のようにセットされる。 Ti(t+Dt)=時刻tの提供速度の合計が定数D以上である場合にA =fi(t)がfimin以下の場合にmin{1、Ti(t)+
F} =fi(t)がfimaxを超える場合にG×Ti(t) =それ以外の場合に、B(t)=1の場合はmin{T(t
)、Ti(t)+Ci×E(t)}、B(t)=0の場合はmin{T(t)、T
i(t)−Di×fi(t)} ただし、 A=1未満の定数、好ましくは.125 D=1未満の定数、好ましくは.25 F=1未満の定数、好ましくは.125 G=1未満の定数、好ましくは.875 T(t)=グローバル伝送分数 グローバル伝送分数は、次式によって与えられることが好ましい。 T(t)=minimum{1、maximum(1/8、T(t−Dt)+
2×I(t−Dt)×M(t−Dt)×Dt/Qmax)×(9/4−2×T(t
)−2×M(t)×Q(t)/Qmax))} ただし、 M(t−Dt)=前のエポックからの乗数 =乗数は、好ましい実施形態では、キュー・レベルが閾値を超
えると繰り返して判定される時に1に近づき、キュー・レベルが閾値を超えない
と繰り返して判定される時に1/2に近づく Dt=適当な時間単位でのエポックの長さ
【0099】 したがって、グローバル伝送分数によって、キュー・レベルおよびグローバル
伝送分数が臨界減衰されることと、超過を考慮に入れることができることが保証
される。
【0100】 ステップ214で決定された伝送分数に基づいて、パイプのパケットまたはト
ラフィックの一部が、ステップ216を介して伝送またはドロップされる。好ま
しい実施形態では、ステップ216で、特定のパケットをドロップするかどうか
を決定する時に、パケットの優先順位が考慮される。もう1つの実施形態では、
個々のパケットをランダムにドロップして、計算された伝送分数を維持する。
【0101】 その後、ステップ218を介して、エポックが完了したかどうかを判定する。
そうでない場合には、ステップ216を介してパケットのドロップまたは伝送を
続ける。エポックが終了した場合には、次のエポックについて値を更新するため
に、ステップ202に戻る。
【0102】 方法200は、差異化サービスを安定した形で提供でき、過剰帯域幅を公平に
割り振ることができるという点で、方法160および170とほぼ同一の利益を
もたらす。これは、単にパイプの最小フローおよび最大フローをセットすること
によって、ユーザによる最小の労力で達成される。方法200は、DiffServを使
用するネットワークなどのさまざまな応用分野で、異なる顧客、クラス、behavi
our aggregate flows、または異なる媒体に異なるレベルのサービスを提供する
ことを望むインターネット・サービス・プロバイダが使用することもできる。こ
れは、方法200のパイプに対応する、behaviour aggregate flow、顧客、媒体
、または他のフローについて、単に最小フローおよび最大フローをセットできる
ようにすることによって達成される。したがって、サービスのDiffServ判断基準
であるパイプを介するフローを、望み通りに調整することができる。
【0103】 さらに、方法200は、上で説明した2つの方法の追加の利益を利用する。グ
ローバル伝送分数を使用することができるので、方法200では、より高い輻輳
を効率的な形で考慮することができる。キュー20が繰り返して閾値を超えるに
連れて減少する仮想最大キュー・レベルに対応する乗数の使用によって、スイッ
チが広範囲の超過に対して安定を保てることが保証される。1実施形態では、8
00%までの超過を考慮に入れることができる。さらに、グローバル伝送分数が
、ある意味で臨界減衰されるので、キュー・レベルおよびグローバル伝送分数に
よって記述される系は、素早く安定状態に達する。その結果、方法200は、平
衡に関する所望の伝送速度を素早く達成することを可能にする。
【0104】 一般に、方法200のうちで方法160および170に対応する部分をスイッ
チ10で使用することが想定されている。したがって、パイプは、一般に、安定
した極限閉軌道が達成されるように調整される。好ましい実施形態では、パイプ
を介するフローが、キュー・レベルがもはや減少しなくなるまで増やされ、キュ
ー・レベルが減少中または0になるまで減らされる。これは、通常モードの動作
であると思われる。しかし、クリティカルな場合に、たとえば複数のパイプが突
然アクティブになり、その最小フローを所望するか、キュー・レベルが閾値を超
えたので、別の方法がアクティブになる可能性がある。たとえば、グローバル伝
送分数を使用して、キュー20が満杯にならないことを保証することを試みるこ
とができる。クリティカルであり、通常は一時的な状態を考慮に入れた時には、
安定した極限閉軌道をもたらす伝送分数が、使用される。したがって、方法20
0を使用するスイッチは、より広範囲の超過に対して効果的に動作することがで
きる。
【0105】 本発明では、複数のパイプの1パイプのフローの伝送分数がグローバル伝送分
数と差分伝送分数の最小値になるようにセットすることを含む方法およびシステ
ムも企図されている。過剰帯域幅が存在し、パイプのフローがそのパイプについ
てセットされた最大フロー未満である場合に、差分伝送分数によって、最小フロ
ーまたは最大フローに基づいてフローを線形に増やすことができる。過剰帯域幅
が存在せず、フローがパイプについてセットされた最小フローを超える場合に、
差分伝送分数によって、最小フローまたは最大フローに基づいて、パイプのフロ
ーを指数関数的に減らすこともできる。したがって、キューを介するトラフィッ
クが安定する。この方法およびシステムには、伝送分数に基づいてキューへのト
ラフィックの伝送を制御することと、キューからのトラフィックを制御するため
にスケジューラを使用することも含まれる。スケジューラは、1つのポリシまた
はポリシの組合せをイネーブルすることができる。たとえば、スケジューラは、
先入れ先出し、優先順位キューイング、カスタム・キューイング、加重公平キュ
ーイング、クラス・ベース加重公平キューイング、多目的インターフェース・プ
ロセッサ加重公平キューイング、ラウンド・ロビン、加重ラウンド・ロビン、ま
たは他の既知のキューイング・ポリシの1つまたは組合せを使用することができ
る。
【0106】 本発明による追加の方法およびシステムをより具体的に示すために、本発明に
よる方法220の1実施形態を示す図15および16を参照されたい。方法22
0は、図1および3のスイッチ10と共に使用することができる。したがって、
方法220を、複数のブレード7、8、および9と各ブレード7、8、および9
上の複数のポートを有するスイッチ10内で実行することができる。明瞭にする
ために、方法220を、図3に示されたキュー34およびエンキュー機構32に
関して説明する。好ましい実施形態では、方法220が、スイッチ10の出側で
使用され、したがって、ネットワーク・プロセッサ5の出側で使用される。した
がって、方法220は、エンキュー機構32、キュー34、およびスケジューラ
35と共に使用されることが好ましい。しかし、方法200を、キュー20、2
4、28などの他のキュー、エンキュー機構19、23、27などの他のエンキ
ュー機構、および他のスケジューラと共に使用することを妨げるものはない。好
ましい実施形態では、方法220が、複数のキューが同一のメモリ・リソースの
一部であるシステムで使用される。しかし、方法220を各キューが別々のメモ
リ・リソースを有する別のシステムで使用することを妨げるものはない。
【0107】 ステップ222を介して、キュー34にトラフィックを供給するパイプの最小
フローおよび最大フローをセットする。パイプは、ポートA18のいずれかから
エンキュー機構32に来る可能性がある。好ましい実施形態では、当該のパイプ
が、behaviour aggregate flowである。したがって、ステップ222で、当該の
behaviour aggregate flowの最小帯域幅および最大帯域幅をセットすることが好
ましい。さらに、出ポートのそれぞれについて、パイプの最小保証フローの合計
が、そのポートの送出容量S未満でなければならず、好ましい実施形態では、ポ
ートの送出容量Sの1/2未満である。これは、フローが、キュー34がサービ
スできるトラフィックの総量の分数として定義されるからである。パイプの最小
フローを、0にすることができる。通常、キュー34は、定義されたサービス速
度すなわち、キュー34がキューから項目を出力できる速度を有する。好ましい
実施形態では、キュー34によってサービスされるパイプの最大個数が、224
8以下であるが、制御されるパイプの数に対する実際の上限はない。さらに、各
パイプが、提供速度Ii(t)でキュー34にトラフィックを提供し、このiは
、i番目のパイプを表す。異なる要因に応じて、トラフィックの一部をドロップ
することができる。i番目のパイプの伝送分数Ti(t)は、キュー34に伝送
される、i番目のパイプからのトラフィックの分数である。したがって、i番目
のパイプの瞬間的なフローは、fi(t)=Ii(t)×Ti(t)である。好ま
しい実施形態では、方法220によって、それを通って流れるトラフィックを有
するパイプが少なくともその最小フローを有することを保証することもできる。
【0108】 パイプの最小フローおよび最大フローをセットした後に、ステップ224を介
して、組込プロセッサ複合体が、スイッチ10を介するトラフィックの制御を開
始することができる。それぞれステップ226および228を介して、前のエポ
ックのキュー・レベルおよび提供速度を判定する。好ましい実施形態では、キュ
ー・レベルが、前のエポックの終りに判定され、メモリ・リソースのレベルであ
る。また、好ましい実施形態では、ステップ228で判定される提供速度が、前
のエポック中にメモリ・リソースに提供された総入力である。好ましい実施形態
では、前のエポックの伝送分数および、下で説明するグローバル伝送分数も、ス
テップ226またはステップ228で判定される。代替実施形態では、方法22
0のキュー・レベルの判定に、エンキュー機構32に対応するキュー34のレベ
ルの判定が含まれる。また、好ましい実施形態では、伝送分数およびグローバル
伝送分数が、1エポックにわたって一定であり、したがって前のエポック中にい
つでも判定できるが、前のエポックの始めに判定されることが好ましい。
【0109】 ステップ230を介して、グローバル伝送分数が使用される場合に、グローバ
ル伝送分数を制御し、その結果、グローバル伝送分数およびキュー・レベルが、
キュー・レベルのある範囲にわたって臨界減衰されるようにする。グローバル伝
送分数は、キュー・レベルおよび提供される入力に基づいて制御される。好まし
い実施形態では、グローバル伝送分数が、前のグローバル伝送分数にも基づいて
制御される。好ましい実施形態では、ステップ230で、臨界減衰のために望ま
しいグローバル伝送分数を提供するために前のエポック以降のグローバル伝送分
数の変化を計算し、このグローバル伝送分数の変化を、前のエポックのグローバ
ル伝送分数に加算する。グローバル伝送分数がそのように制御されるキュー・レ
ベルの範囲を、すべての可能なキュー・レベルに拡張することができる。しかし
、好ましい実施形態では、臨界減衰のためにグローバル伝送分数が制御される範
囲が、0以上の最小キュー・レベルと、最大の可能なキュー・レベル以下の最大
キュー・レベルとの間である。
【0110】 ステップ232(図16)を介して、キュー34が使用可能な過剰帯域幅を有
するかどうかを判定する。好ましい実施形態では、キュー・レベルが増加中であ
る場合に、過剰帯域幅が存在しないと判定される。また、好ましい実施形態では
、ステップ232で、キュー34が空である場合、またはキュー34のキュー・
レベルが0である、低い、または減少中である場合に、過剰帯域幅が存在すると
判定される。したがって、ステップ232に、キュー・レベルを判定することと
、そのキュー・レベルを前のキュー・レベルと比較することが含まれることが好
ましい。また、好ましい実施形態では、キュー・レベルが0でなく、減少中でも
ない場合に、過剰帯域幅が存在しないと判定される。しかし、過剰帯域幅が存在
するかどうかを判定する別の判断基準の使用を妨げるものはない。
【0111】 ステップ232で、過剰帯域幅が存在すると判定される場合には、ステップ2
34を介して、パイプの差分伝送分数をセットして、パイプのフローを線形に増
やせるようにする。ステップ234が、パイプのそれぞれの差分伝送分数を線形
に増やすことによって達成されることが好ましい。パイプに関する線形増加は、
最小フロー、最大フロー、または重みに基づくものとすることができる。したが
って、パイプに関する線形増加は、そのパイプの最小フローだけ、最大フローだ
け、最小フローと重みのなんらかの組合せ、最大フローと重みの何らかの組合せ
、または最小フローと最大フローと重みのなんらかの組合せに基づくものとする
ことができる。しかし、好ましい実施形態では、パイプに関する線形増加が、パ
イプの最小フローに基づく。
【0112】 ステップ232で、過剰帯域幅が存在しないと判定される場合には、ステップ
236を介して、差分伝送分数をセットして、パイプのフローを指数関数的に減
らせるようにする。ステップ236は、各パイプの差分伝送分数を指数関数的に
減らすことによって達成されることが好ましい。パイプに関する指数関数的減少
は、最小フローまたは最大フローに基づくものとすることができる。したがって
、パイプに関する指数関数的減少は、パイプの最小フローだけ、最大フローだけ
、または最小フローと最大フローの何らかの組合せに基づくものとすることがで
きる。しかし、好ましい実施形態では、パイプに関する指数関数的減少が、パイ
プの最小フローに基づく。減少が、性質において指数関数的なので、減少は、パ
イプの現在のフローにも基づく。
【0113】 ステップ238を介して、伝送分数に、ステップ230で判定されたグローバ
ル伝送分数と、ステップ234または236のいずれかで判定された差分伝送分
数の最小値をセットする。1実施形態では、ステップ238を、前のエポックに
ついて判定されたグローバル伝送分数および差分伝送分数を使用して実行するこ
とができる。その場合には、ステップ238を、ステップ226から236と並
列に実行することができる。
【0114】 ステップ240を介して、キュー34へのトラフィックを、伝送分数に基づい
て制御する。好ましい実施形態では、ステップ240に、ランダムにまたはパケ
ット優先順位などの他の要因に基づいてのいずれかでパケットを破棄して、ステ
ップ238でセットされた伝送分数が維持されることを保証することが含まれる
。もう1つの実施形態では、伝送分数ではなく、破棄分数を使用することができ
る。通常、破棄分数は、1から伝送分数を引いた値である。
【0115】 ステップ242を介して、スケジューラ35を使用して、パケットの最終宛先
に向けて送るために、キューからの個々のパケットの除去をスケジューリングす
る。したがって、スケジューラ35は、キュー34を出るパケットのための帯域
幅を割り振る。言い換えると、スケジューラ35は、フレームがキュー34から
送られる機会を割り振る。スケジューラ35は、ステップ240でキュー34に
入ることを許可されたパケットを、キュー34から除去し、その最終宛先に向け
て送出する時を決定する。したがって、スケジューラ35は、スイッチ10を介
するトラフィックの制御のもう1つのレベルを提供する。
【0116】 好ましい実施形態では、スケジューラ35が、スケジューラ35に提示された
パケットの特性ならびにターゲット・ポート(たとえばポートB36の1つ)な
どの後続リソースの使用可能帯域幅に基づいて、ステップ242を実行する。し
たがって、スケジューラ35は、各パケットがそのパケットの要件との一貫性が
ある形で送信されるように、各パケットをスケジューリングする。たとえば、ス
ケジューラ35に、リアルタイム・パケットが与えられる場合がある。音声デー
タのパケットなどのリアルタイム・パケットは、伝送の速度ならびに伝送のジッ
タに関係する可能性がある。さらに、スケジューラ35は、パケットを送出する
か受け取るクライアントが支払ったサービスのタイプを考慮に入れることができ
る。サービスのタイプは、パケットが来たパイプの最小フローおよび最大フロー
によって、またはパケット自体のタイプによって表すことができる。リアルタイ
ム・パケットについて、スケジューラ35は、高優先順位の形でパケットをスケ
ジューリングし、その結果、そのパケットが、所望の時間フレーム内で到達でき
るようにする。しかし、スケジューラ35に、たとえばその宛先に到達するのに
単にベストエフォートだけを必要とするパケットなどの、データ・パケットが与
えられる場合もある。ベストエフォートは、単にパケットをその宛先に送る際に
ネットワークのベストエフォートが使用されることだけを必要とする、安価な低
レベルのサービスである。スケジューラ35は、そのようなパケットを、はるか
に低い優先順位でスケジューリングし、その結果、そのパケットが、スイッチ1
0にそのパケットを転送するのに十分な帯域幅がある時に限ってそのパケットが
先に送られるようにすることができる。
【0117】 ステップ230でセットされたグローバル伝送分数およびステップ234また
は236でセットされた差分伝送分数を使用して、ステップ242でスケジュー
ラの使用に関連する伝送分数を判定することには、3つの利点がある。第1に、
方法220は、伝送分数としてのグローバル伝送分数の使用を介して、キュー3
4が満杯にならないことを保証することができる。キュー34が満たされると、
キュー34に置かれるそれ以降のパケットのドロップが必要になるが、これは望
ましくない。グローバル伝送分数は、キュー34のキュー・レベルが、キュー3
4が満杯になる可能性があるという懸念を引き起こすのに十分に高い時に、伝送
分数としてステップ238で選択される可能性がある。したがって、グローバル
伝送分数は、ステップ238で伝送分数としてセットされることが希であること
が好ましい。
【0118】 グローバル伝送分数が、伝送分数として使用される時には、伝送分数およびキ
ュー・レベルによって記述される系の臨界減衰がもたらされる。これによって、
キュー34を介する、したがってスイッチ10を介するトラフィックが、素早く
安定状態に達することが可能になる。この安定状態は、最小の所望のキュー・レ
ベルと最大の所望のキュー・レベルの間のキュー・レベルであり、このレベルは
、キュー・レベルが、絶対に、キュー34が満杯になる危険性が生じるのに十分
に高くならないことを保証するようにセットすることができる。臨界減衰がもた
らされるので、キュー・レベルおよび伝送分数によって記述される、キュー34
を介するトラフィックは、グローバル伝送分数が使用される時に最短の時間で安
定状態に達しなければならない。
【0119】 方法220を用いると、差異化サービスを安定した形で提供できるようになる
。ステップ238を介して、キュー・レベルが最大の所望のキュー・レベルを超
える危険がない場合に、差分伝送分数が使用される。言い換えると、ステップ2
34または236でセットされる差分伝送分数は、一般に、ステップ238で伝
送分数を提供するのに使用される。差分伝送分数は、フローを線形に増やし、フ
ローを指数関数的に減らすので、差分伝送分数によって、一般に、パイプを介す
るキュー34へのトラフィックが、自動的に漸近的に安定性に達することができ
ることが保証される。フローは、キュー34が過剰帯域幅を有するかどうかに応
じて増減される。安定性に達した時に、フローは、過剰帯域幅が存在する限り線
形に増やされ、その後、過剰帯域幅がないことに起因して、過剰帯域幅がもう一
度使用可能になるまで、指数関数的に減らされる。この挙動が繰り返される。言
い換えると、パイプからのトラフィックは、極限閉軌道と称する定常循環状態に
とどまることができる。したがって、パイプを介するトラフィックが開始される
状態に無関係に、この系は、安定した循環挙動に向かう。この安定した挙動は、
増加と減少の別の組合せを用いて達成することができない。たとえば、指数関数
的増加および線形減少または指数関数的増加および指数関数的減少は、安定した
挙動をもたらすことができない。さらに、各パイプのフローの増減が、そのパイ
プの最小フローまたは最大フローとそのパイプの前のフローに依存する。したが
って、異なるパイプが、異なるレベルのフローまたはサービスを有することがで
きる。その結果、差分伝送分数は、安定した挙動を生じる割り振るだけではなく
、差異化サービスを提供し、キュー34の過剰帯域幅を公平に割り振ることもで
きる。ネットワーク管理者または他のユーザが行わなければならないことは、特
定の顧客に望ましいサービスのレベルに応じて異なる形で、顧客の最小フローお
よび最大フローをセットすることである。したがって、方法220は、DiffServ
を使用するネットワークなどのさまざまな応用分野で、異なる顧客に対してまた
は異なる媒体に関して異なるレベルのサービスを提供することを望むインターネ
ット・サービス・プロバイダが使用することができる。これは、方法220のパ
イプに対応する、behaviour aggregate flow、顧客、媒体、クラス、または他の
フローについて、単に最小フローおよび最大フローをセットできるようにするこ
とによって達成される。したがって、方法220は、キュー・レベルが安定した
形で制御されることを保証するだけではなく、安定した形で差異化サービスを提
供することもする。
【0120】 方法220の第3の利点は、ステップ242でのスケジューラ35の使用にあ
る。伝送分数が、ステップ238でグローバル伝送分数と差分伝送分数の最小値
になるようにセットされるので、キュー34に提供されるトラフィックの量を制
御することができる。その結果、スケジューラ35に、実行可能な量の作業を与
えることができ、スケジューラ35は、その作業を所望の速度で達成することが
できる。言い換えると、方法220は、スケジューラ35が処理できる速度より
高い速度でスケジューラ35にキューからトラフィックが提示されないようにす
ることができる。これによって、スケジューラ35が満杯にならなくなる。その
結果、スケジューラ35に起因して導入される待ち時間を、減らすかなくすこと
ができる。これによって、待ち時間、ロス、帯域幅割振り、およびジッタに対す
る予測不能な効果を有する、スケジューラ35の上流でのパケットのバックログ
の形成が、防止される。
【0121】 図17の符号250に、キュー・レベルおよび提供速度に基づいてグローバル
伝送分数を制御する、ステップ230のより詳細な実施形態を示す。ステップ2
30は、前のエポックのグローバル伝送分数、キュー・レベル、および提供速度
が判定された後に開始される。好ましい実施形態では、前のエポックのグローバ
ル伝送分数が、方法220の前の反復で判定される。しかし、伝送分数がまだ使
用可能でない場合には、伝送分数を判定することができる。キュー・レベルは、
エポックの終りに、最小キュー・レベルQminおよび最大キュー・レベルQmaxに
対して相対的に判定されることが好ましい。
【0122】 ステップ252を介して、キュー・レベルがQminを超えるかどうかを判定す
る。そうでない場合には、ステップ254を介して、グローバル伝送分数に1を
セットする。したがって、ステップ254によって、キュー・レベルが十分に低
い場合に、すべてのパケットがエンキュー機構32によってキュー34に伝送さ
れることが保証される。ステップ252で、キュー・レベルがQminを超えると
判定される場合には、ステップ256を介して、キュー・レベルがQmaxを超え
るかどうかを判定する。キュー・レベルがQmaxを超える場合には、ステップ2
58を介して、グローバル伝送分数に0をセットする。したがって、ステップ2
58によって、キュー・レベルが高すぎる場合に、すべてのパケットが破棄され
ることが保証される。
【0123】 キュー・レベルが、Qmin未満でなく、Qmaxを超えない場合には、ステップ2
60を介して、臨界減衰のためにグローバル伝送分数を制御する。グローバル伝
送分数としての設定をより明瞭に説明するために、キュー34への提供速度I(
t)およびキュー34からの出力速度O(t)が、平衡すなわち安定状態で一定
であると仮定する。しかし、この分析は、ネットワークで一般的にそうであるよ
うに、I(t)およびO(t)が変化し続ける場合にもあてはまる。
【0124】 平衡で、時間に関するキュー・レベルの変化の速度と、時間に関する伝送の変
化の速度は、出力速度および提供速度が一定であるならば0でなければならない
。言い換えると、平衡では、下記が成り立つ。 0=I(t)×gT(t)−O(t) 0=κ(t)×(β−αγT(t)−Q/Qmax) I(t)=I =定数 O(t)=O =定数 gT(t)=グローバル伝送分数 その結果、平衡では、下記が成り立つ。 gT=O/I α×gT=β−Q/Qmax わかりやすくするために、最低限で、Q/Qmaxが、0.25などの定数であ
ると仮定する。安定性の領域内で許容されるI/Oの最大比が、1.6であると
決定され、このI/O比で、QがQmaxに達し、T=5/8になる。同様に、Qm
ax/4以下のQで、gTが1と等しくならなければならないことが決定された。
したがって、この2つの極端な平衡で、 0=β−α×5/8−1 かつ =β−α−1/4 である。これらの前提から、αおよびβの数値を、それぞれ2および2.25に
決定することができる。Q/QmaxおよびI/Oの他の許容範囲を設けて、αお
よびβの他の数値を得ることができることに留意されたい。したがって、αおよ
びβを、平衡条件およびスイッチ10が動作することを望まれる範囲に関するい
くつかの仮定に基づいて決定することができる。安定性に関して、下記を示すこ
とができる。 α2×κ2(t)=4×κ(t)×I/Qmax または κ(t)=4×I/(Qmax×α2) =I(t)/Qmax 上で設けた仮定に関して したがって、κ(t)、α、およびβを選択して、系が動作することを望まれ
る値で臨界減衰をもたらす伝送分数をもたらすことができる。上の式を使用して
、臨界減衰をもたらすために所望される伝送分数を、スイッチ10について提供
することができる。たとえば、Q/QmaxおよびI/Oに関する仮定を使用する
と、伝送分数およびキュー・レベルによって記述される系は、次のようになる。 Q(t+Dt)=Q(t)+[I(t)×gT(t)−O(t)]×Dt gT(t+Dt)=gT(t)+(I(t)×Dt/Qmax)×(2.25−
2×gT(t)−Q(t)/Qmax)×Dt ただし、 Dt=QおよびgTの計算の間の時間間隔 =エポックの時間 Q(t)/Qmaxは、0.25以上 I(t)/O(t)は、1.6以下 Q(t)、I(t)、およびO(t)の上の条件に違反する情況を考慮に入れ
るために、伝送分数を、キュー・レベルに基づいて変更することができる。たと
えば、Q/Qmaxが0.25未満の時に、伝送分数を1にすることができる。同
様に、I(t)/O(t)が1.6を超える時には、キューが、所望よりすばや
く満たされ始める。その結果、キューが、最大値またはその近くのレベルに達し
た時に、伝送分数に0または小さい値をセットすることができる。
【0125】 したがって、グローバル伝送分数は、前のエポックのキュー・レベル、提供速
度、および伝送分数ならびにエポックの長さに基づいて、臨界減衰のためにセッ
トされる。グローバル伝送分数が、伝送分数として使用される場合に、パケット
が、エンキュー機構32によって伝送または破棄され、その結果、パケットのう
ちでキュー34に供給される分数が、伝送分数と等しくなる。パケットは、方法
REDで使用されるものに類似する形でランダムに破棄されることが好ましい。
しかし、パケットを、その優先順位に基づいて破棄することもできる。さらに、
破棄されるパケットを送るホストに通知を送り返し、その結果、そのホストがス
イッチ10へのトラフィックを一時的に中断できるようにすることが好ましい。
【0126】 したがって、グローバル伝送分数を、方法250を使用して臨界減衰のために
セットすることができる。臨界減衰が、キュー・レベルの所望の範囲内でのみ発
生できることが好ましい。この範囲の外では、グローバル伝送分数に、キュー・
レベルが臨界減衰計算について高すぎるまたは低すぎるのどちらと判定されるか
に応じて、0または1がセットされる。パケットを、ランダムにまたはその優先
順位に少なくとも部分的に基づいて破棄することができるので、スイッチ10に
トラフィックを送るホストの同期化を防ぐことができる。臨界減衰がもたらされ
るので、方法220および250は、方法REDよりよい系の安定性をもたらす
ことができる。また、臨界減衰がもたらされるので、方法220および250は
、方法BLUEより素早く平衡に達する。その結果、方法220または250を
使用するスイッチ10を使用するネットワークの性能が、改善される。
【0127】 図18に、差分伝送分数を提供する、本発明による方法270のより詳細な流
れ図を示す。方法270は、図15および16に示された方法220のステップ
232、234、および236を実行するのに使用することができる。図18を
参照すると、キュー・レベル、瞬間過剰帯域幅信号B、および過剰帯域幅値Eが
、好ましくは方法270の前の反復から、既に使用可能であると仮定する。しか
し、使用可能でない場合には、これらの値を計算しなければならない。好ましい
実施形態では、前のエポックのフローも使用可能でなければならない。
【0128】 方法270は、たとえばネットワーク管理者によって、制御されるパイプのそ
れぞれの最小フローおよび最大フローがセットされた後に開始される。ステップ
272を介して、パイプの最小フローおよび最大フローに基づいて、パイプのそ
れぞれについて定数を計算する。パイプiのそれぞれについて、ステップ272
で、定数Ciおよび定数Diを計算する。定数Ciは、下で説明するように、パイ
プiのフローを線形に増やすのに使用される。同様に、定数Diは、下で説明す
るように、パイプiのフローを指数関数的に減らすのに使用される。好ましい実
施形態では、定数Ciおよび定数Diの両方が、最小フローに基づく。代替実施形
態では、異なるパイプの重みも提供することができる。その場合には、定数Ci
およびDiを、提供される重みにも基づいて計算することができる。
【0129】 パイプのフローを増減するための定数は、最小フローと、使用される場合に重
みとに基づいて決定される。パイプのフローを増やす定数Ciおよびフローを減
らす定数Diが、下記のように計算されることが好ましい。
【数4】 好ましい実施形態の場合のように、すべての重みが1と等しい場合には、
【数5】 ただし、 Wi=i番目のパイプの重みであり、範囲[0、1]内であることが好ましい W=N個すべての重みの合計 fimin=i番目のパイプの最小フロー さらに、フローの単位は、やはり、Dtが1になり、Qmaxが1になるように
選択される。
【0130】 定数を判定した後に、トラフィックが、パイプを介してキュー34に流れるこ
とを許可される。ステップ274を介して、過剰帯域幅が存在するかどうかを判
定する。好ましい実施形態では、キュー34のキュー・レベルが0であるか減少
中である場合に限って、過剰帯域幅が存在すると判定される。それ以外の場合に
は、過剰帯域幅が存在しないと判定される。しかし、過剰帯域幅が存在するかど
うかを判定する別の判断基準の使用を妨げるものはない。好ましい実施形態では
、判定されるキュー・レベルが、メモリ・リソース全体のレベルである。しかし
、キュー・レベルが論理キューまたはサブキューについて判定されることを妨げ
るものはない。過剰帯域幅が存在しない場合には、ステップ280を介して、瞬
間過剰帯域幅信号Bに0をセットする。信号Bを瞬間と呼ぶのは、これが、キュ
ー・レベルの単一の測定と、キュー・レベルの変化の単一の判定に基づくからで
ある。ステップ282を介して、過剰帯域幅値Eに、好ましくは31/32であ
る定数に過剰帯域幅値の前の値をかけたものと、1から同一の定数を引いた値、
好ましくは1/32にBをかけた値の和をセットする。したがって、好ましい実
施形態では、過剰帯域幅値Eが、瞬間過剰帯域幅信号Bの指数関数的加重平均で
ある。過剰帯域幅値は、ステップ282では適当にセットされる。というのは、
瞬間過剰帯域幅信号が0であるからである。
【0131】 ステップ274で、過剰帯域幅が存在すると判定される場合には、ステップ2
76を介して、瞬間過剰帯域幅信号に1をセットする。ステップ278を介して
、過剰帯域幅値Eに、瞬間過剰帯域幅信号の指数関数的加重平均をセットする。
したがって、好ましい実施形態では、過剰帯域幅値が、第1定数に前の過剰帯域
幅値をかけた値と、第2定数に瞬間過剰帯域幅信号をかけた値の和になる。第1
定数および第2定数は、両方とも1未満とすることができ、好ましくはそれぞれ
31/32および1/32である。好ましい実施形態では、指数関数的加重帯域
幅値に、次の値がセットされる。 E(t+Dt)=(31/32)×E(t)+B(t)/32 ただし、 E(t+Dt)=現在のエポックの過剰帯域幅値 E(t)=前のエポックの過剰帯域幅値 B(t)=前のエポックの瞬間過剰帯域幅信号
【0132】 好ましい実施形態では、ステップ284を介して、ステップ274から282
と並列に、各パイプiの差分伝送分数がセットされる。しかし、代替実施形態で
は、差分伝送分数を、瞬間過剰帯域幅信号および過剰帯域幅値と直列に更新する
ことができる。前の瞬間過剰帯域幅信号Bが1(過剰帯域幅が使用可能)であっ
た場合には、ステップ284で、前の差分伝送分数、定数Ci、および過剰帯域
幅値に基づいて、各パイプiの差分伝送分数がセットされる。ステップ284で
前に存在した過剰帯域幅についてセットされる差分伝送分数は、次式であること
が好ましい。 Ti(t+Dt)=Ti(t)+Ci×E(t) ただし、 Dt=エポックの長さ(伝送分数が最後に計算されてからの時間) Ti(t)=i番目のパイプの前のエポック(時刻t)の差分伝送分数 フロー単位は、Dtおよび最大の可能なキュー・レベルQmaxが1になるよう
にセットされることが好ましい。したがって、差分伝送分数は、線形に増加する
。さらに、差分伝送分数は、過剰帯域幅が存在し続ける限り、線形に増加し続け
る。前のエポックに過剰帯域幅が存在しなかった(Bが0であった)場合には、
ステップ284で、各パイプiの差分伝送分数Ti(t+Dt)が、そのパイプ
の前の差分伝送分数Ti(t)、Di、およびそのパイプの前のフローfi(t)
に基づいてセットされる。過剰帯域幅が前に存在しなかった時の差分伝送分数は
、次式によって与えられることが好ましい。 Ti(t+Dt)=Ti(t)−Di×fi(t) したがって、ステップ284でセットされる差分伝送分数によって、差分伝送
分数が、したがってフローが、過剰帯域幅が存在しない状態が続く限り、指数関
数的に減少することが保証される。
【0133】 図19に、本発明と共に使用されるスケジューラ290の好ましい実施形態を
示す。したがって、スケジューラ290は、スケジューラ21、25、29、お
よび35、特にスケジューラ35として使用されることが好ましい。スケジュー
ラ290には、カレンダ292、294、および296ならびに加重公平キュー
イング・リング(「リング」)298が含まれる。しかし、他のスケジューラ(
図示せず)を、本発明と共に使用できることに留意されたい。たとえば、スケジ
ューラ290より単純な、1つまたは複数のFIFOを使用することができる。
もう1つの実施形態では、各パケットの締切を再検討し、最も早い締切を有する
パケットを最初に送信されるようにするEDF(earliest deadline first)ス
ケジューラを使用することができる。同様に、もう1つの実施形態では、別のス
ケジューラを使用することができる。一般に、どのスケジューラが使用されるに
せよ、スケジューラが、次に送出されるパケットを繰り返し選択することによっ
て、ある所望のポリシまたはポリシの組合せを繰り返して達成すると仮定するこ
とができる。好ましい実施形態の1つでは、ポリシを単純にすることができ、ス
ケジューリングを、2つのFIFO機構(一方は絶対優先順位を有するリアルタ
イム・トラフィック用、他方は第1FIFOが空の時に限ってサービスされる他
のすべてのトラフィック用)によって達成することができる。その代わりに、代
替の好ましい実施形態では、持続送出速度、ピーク送出速度、最大バースト・サ
イズ、およびジッタ限界を含む複数のポリシを、洗練されたスケジューラによっ
て実施することができる。どの場合でも、スケジューラ自体は、フロー制御すな
わち、輻輳中の低価値パケットの意図的なドロップを実行しない。その代わりに
、上で説明した、グローバル伝送分数および差分伝送分数を使用する上流のフロ
ー制御機構が、フロー制御を提供すると同時に、単純さ、堅牢性、安定性、公平
な帯域幅割振り、低いドロップ率、低いバッファ占有、および高い使用率という
競合する目標の要求を満たす。
【0134】 各カレンダ292、294、および296は、前に述べたように機能する。し
たがって、各カレンダ292、294、および296は、特定の個数の位置を有
する。1つのカレンダ292、294、または296内の位置の数を、別のカレ
ンダ292、294、または296の位置の数と異なるものとすることができる
ことに留意されたい。各位置が、正確に0個または1個の送出されるパケットを
保持することができる。この開示に関して、スケジューラ290などのスケジュ
ーラ、カレンダ292、294、または296、またはリング298を、1つの
パケットを有するものとして説明する。しかし、スケジューラ290、カレンダ
292、294、または296、およびリング298は、パケット自体ではなく
、パケットの識別子を使用することが好ましい。
【0135】 各カレンダ292、294、および296は、各位置で特定の長さの時間を費
やす。好ましい実施形態では、カレンダ292が、低待ち時間カレンダであり、
したがって、カレンダ292、294、および296のうちで最高の優先順位を
有する。カレンダ294は、通常の待ち時間のカレンダであり、したがって、カ
レンダ292、294、および296のうちで2番目に高い優先順位を有する。
カレンダ296は、ピーク速度カレンダであり、したがって、カレンダ292、
294、および296のうちで最低の優先順位を有する。したがって、好ましい
実施形態では、カレンダ292の各位置で費やされる時間が、カレンダ294の
各位置で費やされる時間より短い。同様に、カレンダ294の各位置で費やされ
る時間は、カレンダ296の各位置で費やされる時間より短い。したがって、カ
レンダ292、294、および296は、最高、普通、および最低の優先順位の
パケットのスケジューリングに使用される。カレンダ292、294、および2
96のそれぞれの位置をトラバースすることによって、スケジューラ290は、
パケットが、パケットの優先順位との一貫性を有する形でキュー20などの対応
するキューから送出されることを保証する。
【0136】 リング298は、最低の優先順位のパケットのスケジューリングに使用される
ことが好ましい。したがって、リング298に置かれたパケットは、カレンダ2
92、294、および296の1つに置かれたパケットより低い優先順位を有す
る。リング298は、作業保存的であることが好ましい。したがって、特定の長
さの時間の間に、リング298は、リング298が空でない限り、一定の量の作
業を行う。リング298も、特定の数の位置を有する。リング298の各位置は
、正確に0個または1個のパケットを保持することができる。しかし、リング2
98がトラバースされる時に、リング298は、占められていないすべての位置
をスキップして、次の占められている位置に直接に進む。その結果、リング29
8が、作業保存的になる。
【0137】 図20に、スケジューラ290を使用するパケットのスケジューリングの方法
300の1実施形態の単純化された流れ図を示す。ステップ302を介して、ス
ケジューリングされるパケットの、タイプなどの特性を判定する。スケジューリ
ングされるパケットのタイプは、たとえばビデオなどのリアル・タイム・データ
対電子メールなどの純データなど、パケットによって搬送されるデータの種類に
部分的に基づくものとすることができる。さらに、パケットがそこから来るパイ
プのタイプも、考慮することができる。たとえば、1実施形態では、一般に使用
可能なパイプのタイプが、expedited forwarding(EF)、ベストエフォート(
BE)、およびassured forwarding(AF)である。通常、EFパイプは、リア
ル・タイム・トラフィックを搬送する。EFパイプを用いると、トラフィックが
、保証された最大フロー速度まで流れることができ、したがって、高い、比較的
高価なレベルのサービスがもたらされる。EFパイプによって搬送される、保証
された最大フロー速度を超えるトラフィックは、破棄される場合がある。したが
って、EFパイプのトラフィックは、カレンダ292などの高優先順位カレンダ
にマッピングされる可能性が高いが、カレンダ294および296にマッピング
される場合もある。BEは、通常は、データ・パケットなどの低優先順位トラフ
ィックを搬送する。BEパイプは、通常は、より高い優先順位のトラフィックが
少なくともその最小帯域幅を割り振られた後で使用可能であるネットワークのリ
ソースを使用してトラフィックを搬送する。したがって、BEパイプのトラフィ
ックを、リング298にマッピングすることができる。AFパイプは、保証され
た最小速度を有し、これに対して、顧客が通常は特別料金を支払う。しかし、A
Fパイプは、ネットワーク内で使用可能な過剰なリソースまたは帯域幅のある部
分を割り振られる場合がある。したがって、AFパイプのトラフィックを、カレ
ンダ292、294、および296とリング298のある組合せにマッピングす
ることができる。
【0138】 好ましい実施形態では、スケジューリングされるパケットと同一のパイプ(対
応するパイプ)からの前のパケットの、タイプなどの特性も、ステップ304を
介して判定される。その後、ステップ306を介して、スケジューリングされる
パケットが最高の優先順位であるかどうかを判定する。ステップ306で考慮さ
れる「最高の優先順位」は、高い優先順位の範囲とすることができる。さらに、
パケットの優先順位の判定で、前のパケットの優先順位および対応するパイプの
フロー速度を考慮に入れることができる。たとえば、あるパケットが、リアル・
タイム・パケットなどの高い優先順位を有するが、対応するパイプが保証された
速度より高いフローを有することが示される場合に、そのパケットが、最高の優
先順位を有すると見なされない場合がある。パケットが、最高の優先順位である
場合に、ステップ308を介して、そのパケットがカレンダ292のある位置に
置かれる。1実施形態では、パケットが置かれる位置が、カレンダ292内のあ
る個数の他のパケットの優先順位を考慮に入れたものである。1実施形態では、
パケットが、カレンダ292内の空き位置に置かれる。しかし、代替実施形態で
は、パケットを、占められている位置に置くことができ、その占められていた位
置からのパケットが、別の位置に移動される。
【0139】 パケットが、最高優先順位でない場合には、ステップ310を介して、パケッ
トが2番目に高い優先順位であるかどうかを判定する。ステップ310で考慮さ
れる「2番目に高い優先順位」は、優先順位の範囲とすることができる。さらに
、パケットの優先順位の判定で、前のパケットの優先順位および対応するパイプ
のフロー速度を考慮に入れることができる。パケットが2番目に高い優先順位で
ある場合には、ステップ312を介して、パケットを、2番目に高い優先順位を
有するカレンダ294のある位置に置く。1実施形態では、パケットが置かれる
位置が、カレンダ294内のある個数の他のパケットの優先順位を考慮に入れた
ものである。1実施形態では、パケットが、カレンダ294の空き位置に置かれ
る。しかし、代替実施形態では、パケットを、占められている位置に置くことが
でき、その占められていた位置からのパケットが、別の位置に移動される。
【0140】 パケットが、2番目に高い優先順位でない場合には、ステップ314を介して
、パケットが3番目に高い優先順位であるかどうかを判定する。ステップ314
で考慮される「3番目に高い優先順位」は、優先順位の範囲とすることができる
。さらに、パケットの優先順位の判定で、前のパケットの優先順位および対応す
るパイプのフロー速度を考慮に入れることができる。パケットが3番目に高い優
先順位である場合には、ステップ316を介して、パケットを、3番目に高い優
先順位を有するカレンダ296のある位置に置く。他の実施形態では、パケット
が置かれる位置が、カレンダ296内のある個数の他のパケットの優先順位を考
慮に入れたものである。1実施形態では、パケットが、カレンダ296の空き位
置に置かれる。しかし、代替実施形態では、パケットを、占められている位置に
置くことができ、その占められていた位置からのパケットが、別の位置に移動さ
れる。
【0141】 パケットが3番目に高い優先順位でない場合には、ステップ318を介して、
そのパケットをリング298のある位置に置く。1実施形態では、パケットが置
かれる位置が、リング298内のある個数の他のパケットの優先順位を考慮に入
れたものである。1実施形態では、パケットが、リング298の空き位置に置か
れる。しかし、代替実施形態では、パケットを、占められている位置に置くこと
ができ、その占められていた位置からのパケットが、別の位置に移動される。好
ましい実施形態では、ステップ318で、リング298にパケットを置く際に、
同一のパイプからの前のパケットのサイズを考慮に入れる。たとえば、前のパケ
ットが存在しない場合には、パケットを、リング298の最も離れた占められて
いない位置に置くことが好ましい。しかし、同一のパイプからの前のパケットが
大きい場合には、パケットを、より離れた占められていない位置に置くことが好
ましい。同一のパイプからの前のパケットが小さい場合には、パケットを、リン
グ298内でより近い占められていない位置に置くことが好ましい。したがって
、より大きいパケットを送出するパイプは、リング298のトラーバサルのそれ
ぞれで、より少ない機会(位置)を有する。パケットの配置は、リング298が
ほぼ同一の割合で異なるパイプに作用することを保証するために、同一のパイプ
からの前のパケットのサイズに部分的に基づくことが好ましい。
【0142】 図21は、カレンダ292、294、および296とリング298のパケット
の位置に基づいて対応するキューからパケットを送出する方法320の1実施形
態を示す流れ図である。一般に、スケジューラ290は、カレンダ294からよ
りもすばやくカレンダ292からパケットを送出する。また、スケジューラ29
0は、カレンダ296からよりもすばやくカレンダ294からパケットを送出す
る。また、スケジューラ290は、リング298からよりもすばやくカレンダ2
96からパケットを送出する。したがって、カレンダ292、294、および2
96を使用してスケジューリングされるパケットは、リング298内でスケジュ
ーリングされるパケットの前に送出されることが好ましい。
【0143】 ステップ322を介して、最高優先順位のカレンダ292内の現在位置が空で
あるかどうかを判定する。現在位置が空でない場合には、ステップ324を介し
て、カレンダ292の現在位置のパケットを、キューから除去し、スイッチの次
の部分に送出する。カレンダ292の現在位置が空である場合には、ステップ3
26を介して、2番目に高い優先順位のカレンダ294の現在位置が空であるか
どうかを判定する。カレンダ294の現在位置が空でない場合には、ステップ3
28を介して、その位置のパケットを、キューから除去し、スイッチの次の部分
に送出する。カレンダ294の現在位置が空である場合には、ステップ330を
介して、3番目に高い優先順位のカレンダ296の現在位置が空であるかどうか
を判定する。カレンダ296の現在位置が占められている場合には、ステップ3
32を介して、カレンダ296のパケットを、キューから除去し、スイッチの次
の部分に送出する。カレンダ296の現在位置が占められていない場合には、リ
ング298の現在位置が空であるかどうかを判定する(ステップ334)。そう
でない場合には、カレンダ292、294、または296の1つの次の位置に移
動する時になるまで、リング298の位置に対応するパケットを、キューから除
去し、スイッチの次の部分に送出する(ステップ336)。カレンダの次の位置
への移動は、カレンダ292の次の位置が現在位置になる時に行われることが好
ましい。これは、最高優先順位のカレンダ292が、各位置で最短の時間を費や
すことが好ましいからである。
【0144】 ステップ338を介して、1つまたは複数のカレンダの次の位置を、そのカレ
ンダの現在位置にする。スケジューラ290のどの部分からパケットが送出され
るかに無関係に、少なくとも1つのカレンダを進める。好ましい実施形態では、
ステップ338で、少なくともカレンダ292が、次の位置に進められる。また
、好ましい実施形態では、カレンダ294および296が、カレンダ292が次
の位置に複数回進められた時に、次の位置に進められる。たとえば、1実施形態
では、カレンダ294は、カレンダ292が次の位置に512回進められるたび
に次の位置に進められる。したがって、好ましい実施形態では、ステップ338
で、複数のカレンダ292、294、および296が次の位置に進められる場合
がある。その後、方法320を繰り返すことができる。したがって、方法300
および320を使用して、トラフィックのフロー、持続速度、ピーク速度、およ
びバースト・サイズが、扱われる望まれる。トラフィックのフローの速度が、持
続速度以下である場合に、パケットが、規則的なインターバルで最高優先順位の
カレンダ292に入ることを許可される。トラフィックのフローの速度が、持続
速度を超えるがピーク速度未満である場合には、バースト・サイズによって決定
される時間の間、パケットが、より高い優先順位のカレンダ292、294、お
よび296でスケジューリングされる。トラフィックが、長時間にわたって持続
速度を超えるがピーク速度未満にとどまる場合には、パケットが、リング298
に入れられ、これによって、パケットの送出にベストエフォートだけが使用され
ることが保証される。その後、フローが、保証された速度または持続速度以下に
落ちた場合に、パケットを、もう一度高い優先順位のカレンダにスケジューリン
グすることができる。その後、パケットは、カレンダ292、294、および2
96およびリング298と方法320を使用して、キューから除去される。
【0145】 したがって、スケジューラ290は、パケットの特性ならびに、パイプからの
前のパケットの特性などの、パケットが来たパイプの特性に基づいて、キュー3
4などのキューからの、異なるパイプからの個々のパケットの除去をスケジュー
リングする。その結果、スケジューラ290は、スイッチを介するトラフィック
を微細に制御することができる。
【0146】 したがって、上で説明した方法を使用して、トラフィックを介してスイッチ1
0を制御することができる。たとえばグローバル伝送分数の使用を介して、スイ
ッチのメモリ・リソースを使い果たさないことを保証することができる。具体的
に言うと、特定のメモリ・リソースのキュー・レベルを、ほとんどの情況で低い
レベルに駆動することができる。低いキュー・レベルは、キューが使い果たされ
ないことだけではなく、満杯またはほぼ満杯のキューに部分的に起因するジッタ
および他の望ましくない現象を減らせるか回避できることも保証する。さらに、
たとえば差分伝送分数の使用を介して、差異化サービスを提供することができる
。したがって、異なる顧客に、異なるレベルのサービスを提供することができる
。さらに、スケジューラは、トラフィックがパケット・レベルで制御されること
を保証することができる。さらに、説明したスケジューラおよび方法を使用する
ことによって、達成が可能な量の作業がスケジューラに与えられることを保証す
ることができる。したがって、スケジューラに起因する追加の待ち時間を、減ら
すかなくすことができる。
【0147】 ネットワークを介するトラフィックを制御する方法およびシステムを開示した
。本発明を実施するために記述されたソフトウェアは、メモリ、CD−ROMな
どの何らかの形のコンピュータ可読媒体に保管されるか、ネットワークを介して
伝送され、プロセッサによって実行される。その代わりに、本発明の一部または
すべてを、ハードウェアで実施することができる。本発明を、図示の実施形態に
よって説明したが、当業者は、これらの実施形態に対する変形形態が可能であり
、これらの変形形態が、本発明の趣旨および範囲に含まれることを容易に認識す
るであろう。したがって、請求項の趣旨および範囲から逸脱せずに、当業者が多
数の修正形態を作ることができる。
【図面の簡単な説明】
【図1】 コンピュータ・ネットワークで有用なスイッチの単純化されたブロック図であ
る。
【図2】 コンピュータ・ネットワークで有用であり、いくつかのアプリケーションでス
イッチとして機能することができる、プログラマブル・ネットワーク・プロセッ
サの単純化されたブロック図である。
【図3】 コンピュータ・ネットワーク内で有用なスイッチの代替の単純化されたブロッ
ク図である。
【図4】 スイッチを介するトラフィックを制御する方法REDを示す流れ図である。
【図5】 スイッチを介するトラフィックを制御する方法BLUEを示す流れ図である。
【図6】 スイッチを介するトラフィックを制御するDiffServ方法を示す流れ図である。
【図7】 図1から3などのスイッチを介するトラフィックを制御する、本発明による方
法のいくつかの特性を示す単純化された流れ図である。
【図8】 図7の方法の実施形態の単純化された流れ図である。
【図9】 本発明によるもう1つの方法の特性を示す、図7に類似する図である。
【図10】 図9の方法に有用ないくつかの方法ステップの単純化された流れ図である。
【図11】 図9の方法の実施形態の単純化された流れ図である。
【図12】 本発明によるもう1つの方法の特性を示す、図7および9に類似する図である
【図13】 図12の方法の実施形態の単純化された流れ図である。
【図14】 図12の方法のもう1つの実施形態の単純化された流れ図である。
【図15】 図16と共に、本発明の方法のもう1つの実施形態の単純化された流れ図を構
成する図である。
【図16】 図15と共に、本発明の方法のもう1つの実施形態の単純化された流れ図を構
成する図である。
【図17】 図15および16の方法に有用ないくつかの方法ステップの単純化された流れ
図である。
【図18】 図15および16の方法に有用ないくつかの方法ステップの単純化された流れ
図である。
【図19】 図1から3のスイッチに存在するスケジューラの概略図である。
【図20】 本発明による方法で有用な、図19のスケジューラを作動させるいくつかの方
法ステップの流れ図である。
【図21】 本発明による方法で有用な、図19のスケジューラを作動させるいくつかの方
法ステップの流れ図である。
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 09/448,197 (32)優先日 平成11年11月23日(1999.11.23) (33)優先権主張国 米国(US) (31)優先権主張番号 09/547,280 (32)優先日 平成12年4月11日(2000.4.11) (33)優先権主張国 米国(US) (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CR,CU,CZ,DE,DK ,DM,DZ,EE,ES,FI,GB,GD,GE, GH,GM,HR,HU,ID,IL,IN,IS,J P,KE,KG,KP,KR,KZ,LC,LK,LR ,LS,LT,LU,LV,MA,MD,MG,MK, MN,MW,MX,MZ,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,SL,TJ ,TM,TR,TT,TZ,UA,UG,UZ,VN, YU,ZA,ZW (72)発明者 バス、ブライアン、ミッチェル アメリカ合衆国27502 ノースカロライナ 州エーペックス オールド・スターブリッ ジ・ドライブ 4021 (72)発明者 ジェフリーズ、クラーク、デブス アメリカ合衆国27713−1441 ノースカロ ライナ州ダラム ベインブリッジ・ドライ ブ 2806 エイチ (72)発明者 ロヴナー、ソニア、キアン アメリカ合衆国27516 ノースカロライナ 州チャペル・ヒル パーク・サークル 209 (72)発明者 シーゲル、マイケル、スティーヴン アメリカ合衆国27615 ノースカロライナ 州ローリー ラウリー・ドライブ 10625 (72)発明者 ガロ、アンソニー、マテオ アメリカ合衆国27502 ノースカロライナ 州エーペックス コーシャム・ドライブ 3308 (72)発明者 ゴーティ、ブラマンド、クマー アメリカ合衆国27513 ノースカロライナ 州ケアリー クリークウォッチ・レーン 1812 (72)発明者 ヘデス、マーコ アメリカ合衆国27612 ノースカロライナ 州ローリー グランド・マナー・コート 4109 ナンバー 308 Fターム(参考) 5K030 GA13 HA08 HB17 KA03 KX29 LA03 LC01 MA13

Claims (88)

    【特許請求の範囲】
  1. 【請求項1】 (a)コンピュータ・ネットワーク内のキューを介して移動する複数のパケッ
    トのフローを制御するステップと、 (b)前記キューのキュー・レベルを判定するステップと、 (c)前記キューへの前記複数のパケットの提供速度を判定するステップと、 (d)前記キュー・レベルおよび前記提供速度に基づいて前記キューへの前記
    複数のパケットの伝送分数を制御するステップであって、前記キュー・レベルが
    少なくとも第1キュー・レベルと第2キュー・レベルとの間にある場合に、前記
    伝送分数および前記キュー・レベルが臨界減衰される、ステップと を含む方法。
  2. 【請求項2】 前記キューが、可能である最大キュー・レベルを有し、 (e)前記判定されたキュー・レベルおよび前記最大キュー・レベルに基づい
    て仮想最大キュー・レベルを判定するステップ をさらに含む、請求項1に記載の方法。
  3. 【請求項3】 前記仮想最大キュー・レベルを判定するステップ(e)が、 (e1)前記キュー・レベルが第1閾値を超える場合に、前記仮想最大キュー
    ・レベルを、前記最大キュー・レベル以下の最大値まで増加するステップと、 (e2)前記キュー・レベルが第2閾値未満である場合に、前記仮想最大キュ
    ー・レベルを減らすステップと をさらに含む、請求項2に記載の方法。
  4. 【請求項4】 前記仮想最大キュー・レベルを判定するステップ(e)が、 (e1)前記最大キュー・レベルに関する乗数を提供するステップであって、
    前記乗数が、前記キュー・レベルが閾値未満の場合に第1レベルに近づき、前記
    キュー・レベルが閾値を超える場合に第2レベルに近づく指数関数的加重平均で
    あり、前記第1レベルが、前記仮想キュー・レベルが最小仮想キュー・レベルで
    あることに対応し、前記第2レベルが、前記仮想キュー・レベルが前記最大キュ
    ー・レベルであることに対応する、ステップ をさらに含み、前記伝送分数を制御するステップ(d)が、 (d1)前記キュー・レベル、前記提供速度、前の伝送分数、前記乗数、およ
    び前記最大キュー・レベルに基づいて前記伝送分数を制御するステップ をさらに含む、請求項2に記載の方法。
  5. 【請求項5】 前記乗数を提供するステップ(e1)が、 (e1i)前記キュー・レベルが前記閾値未満の場合に、前記乗数を、第1定
    数に前の乗数をかけ、第2定数を加えたものに等しくセットするステップと、 (e1ii)前記キュー・レベルが前記閾値を超える場合に、前記乗数を、前
    記第1定数に前記前の乗数をかけ、第3定数を加えたものに等しくセットするス
    テップと をさらに含む、請求項4に記載の方法。
  6. 【請求項6】 前記伝送分数を制御するステップ(d1)が、 (d1i)前記キュー・レベルが最小キュー・レベル未満である場合に、1に
    なるように前記伝送分数を制御するステップと、 (d1ii)1と第2値との最小値になるように前記伝送分数を制御するステ
    ップであって、前記第2値が、第4定数と第3値との最大値であり、前記第3値
    が、前記前の伝送分数に第4値を加えたものであり、前記第4値が、第5値に第
    6値をかけたものであり、前記第5値が、第5定数に前の乗数をかけ、前記提供
    速度をかけ、時間間隔をかけ、前記最大キュー・レベルによって割ったものであ
    り、前記第6値が、第6定数から、第7定数に前記前の伝送分数をかけたものを
    引き、第8定数に前記前の乗数をかけ、前記キュー・レベルをかけ、前記最大キ
    ュー・レベルによって割ったものを引いたものである、ステップと をさらに含む、請求項5に記載の方法。
  7. 【請求項7】 前記キュー・レベルが、前のキュー・レベルであり、前記提供速度が、前の提
    供速度である、請求項6に記載の方法。
  8. 【請求項8】 前記伝送分数が、複数のエポックのそれぞれの後で制御され、前記伝送分数を
    制御するステップ(d)が、 (d1)前記複数のエポックのエポックの前記伝送分数および前のエポックの
    前記キュー・レベルが臨界減衰されるように、前記前のエポックの前記キュー・
    レベル、前記前のエポックの前記提供速度、および前記前のエポックの前記伝送
    分数に基づいて、前記エポックの前記伝送分数を制御するステップ をさらに含む、請求項1に記載の方法。
  9. 【請求項9】 前記キューが、さらに、ハードウェア・メモリ・リソースを含む、請求項1に
    記載の方法。
  10. 【請求項10】 前記伝送分数を制御するステップ(d)が、 (d1)時間に関する前記伝送分数の変化を第1量に第2量をかけたものに等
    しくセットするステップであって、前記第1量が、時間に依存し、前記第2量が
    、第1定数から、第2定数に前記伝送分数をかけたものを引き、前記キュー・レ
    ベルを最大の可能なキュー・レベルによって割ったものを引いたものである、ス
    テップ をさらに含む、請求項1に記載の方法。
  11. 【請求項11】 前記伝送分数を制御するステップ(d)が、 (d1)前記複数のパケットの各パケットの前記伝送速度および優先順位に基
    づいて、前記複数のパケットの一部をドロップするステップ をさらに含む、請求項1に記載の方法。
  12. 【請求項12】 前記伝送分数を制御するステップ(d)が、 (d1)前記キュー・レベルが最小閾値未満の場合に、前記複数のパケットの
    各パケットが伝送されるように、前記伝送分数を制御するステップと、 (d2)前記キュー・レベルが最大閾値を超える場合に、パケットが伝送され
    ないか前記複数のパケットの小さい分数が伝送されるように、前記伝送分数を制
    御するステップと、 (d3)前記キューレベルが、前記最小閾値と前記最大閾値との間にある場合
    に、前記伝送分数および前記キュー・レベルが臨界減衰されるように、前記伝送
    分数を制御するステップと をさらに含む、請求項1に記載の方法。
  13. 【請求項13】 (e)前記キューを使用する複数のパイプを定義することと、 (f)前記複数のパイプのそれぞれの最小フローおよび最大フローをセットす
    ることと、 (g)前記キューについて過剰帯域幅が存在するかどうかを判定することと、 前記キューを介する前記トラフィックが安定するようにするために (h)過剰帯域幅が存在する場合、および前記複数のパイプのパイプのフロー
    が前記パイプの前記最大フロー未満である場合に、前記最小フローおよび前記最
    大フローの1つに基づいて前記パイプのフローを線形に増やすこと、または (i)過剰帯域幅が存在せず、前記フローが前記パイプの前記最小フローを超
    える場合に、前記最小フローおよび前記最大フローの1つに基づいて前記パイプ
    の前記フローを指数関数的に減らすことと をさらに含む、請求項1に記載の方法。
  14. 【請求項14】 前記複数のパイプが、複数のbehaviour aggregate flowである、請求項13に
    記載の方法。
  15. 【請求項15】 前記増やすステップ(h)または前記減らすステップ(i)が、前記複数のパ
    イプのそれぞれについて実行される、請求項13に記載の方法。
  16. 【請求項16】 前記過剰帯域幅を判定するステップ(g)が、 (g1)前記キューの前記キュー・レベルを判定するステップと、 (g2)前記キュー・レベルが増加または減少したかどうかを判定するステッ
    プと、 (g3)前記キュー・レベルが減少したか0である場合に、過剰帯域幅が存在
    すると判定し、そうでない場合に、過剰帯域幅が存在しないと判定するステップ
    と をさらに含む、請求項13に記載の方法。
  17. 【請求項17】 前記過剰帯域幅を判定するステップ(g3)が、 (g3i)前記キュー・レベルが減ったか0である場合に、1になるように瞬
    間過剰帯域幅信号をセットし、そうでない場合に、0になるように前記瞬間過剰
    帯域幅信号をセットするステップ をさらに含む、請求項16に記載の方法。
  18. 【請求項18】 前記過剰帯域幅を判定するステップ(g3)が、 (g3ii)前記瞬間過剰帯域幅信号の指数関数的加重平均になるように過剰
    帯域幅信号をセットするステップ をさらに含む、請求項17に記載の方法。
  19. 【請求項19】 前記複数のパイプの前記パイプの前記フローが、提供速度に伝送分数をかけた
    ものであり、前記増やすステップ(h)または前記減らすステップ(i)が、 (h1)過剰帯域幅が存在する場合に、前の伝送分数に第1量を加えたものに
    なるように前記フローの伝送分数をセットするステップであって、前記第1量が
    、第1定数に前記過剰帯域幅信号をかけたものである、ステップと、 (i1)過剰帯域幅が存在しない場合に、前記前の伝送分数から第2量を引い
    たものになるように前記伝送分数をセットするステップであって、前記第2量が
    、前のフローに第2定数をかけたものである、ステップと をさらに含む、請求項18に記載の方法。
  20. 【請求項20】 前記第1定数および前記第2定数が、前記パイプの前記最小フローに依存する
    、請求項19に記載の方法。
  21. 【請求項21】 前記第1定数が、重みに第3量をかけたものであり、前記第3量が、キュー・
    サービス速度に前記パイプの前記最小フローを加え、前記複数のパイプのそれぞ
    れの前記最小フローの合計を引いたものである、請求項20に記載の方法。
  22. 【請求項22】 前記フローが、伝送分数に提供速度をかけたものであり、前記増やすステップ
    (h)または前記減らすステップ(i)が、 (hi1)前記複数のパイプからの複数のフローの合計が、第1キュー・レベ
    ルより大きい場合に、前記フローの前記伝送分数に第1定数をセットするステッ
    プと、 (hi2)前記パイプの前記フローが前記パイプの前記最小フロー以下である
    場合に、1と、前記パイプの前の伝送分数に前記第1定数を加えたものとの最小
    値になるように前記パイプの前記伝送分数をセットするステップと、 (hi3)前記パイプの前記フローが前記パイプの前記最大フローを超える場
    合に、前記パイプの前記前の伝送分数に第2定数をかけたものになるように前記
    伝送分数をセットするステップであって、前記第2定数が、1未満である、ステ
    ップと、 (hi4)それ以外の場合に、グローバル伝送分数と第1量との最小値になる
    ように前記パイプの前記伝送分数をセットするステップであって、前記第1量が
    、過剰帯域幅が存在する場合に前記前の伝送分数に第2量を加えたものであり、
    前記第1量が、過剰帯域幅が存在しない場合に前記前の伝送分数から第3量を引
    いたものであり、前記第2量が、第3定数に信号をかけたものであり、前記第3
    定数が、前記最小フローに依存し、前記信号が、過剰帯域幅の繰り返される事例
    について1に近づき、過剰帯域幅なしの繰り返される事例について0に近づき、
    前記第3量が、前記最小フローに依存する第4定数に前記前のフローをかけたも
    のであり、前記グローバル伝送分数が、前記グローバル伝送分数と前記キュー・
    レベルとの間の臨界減衰を可能にする、ステップと をさらに含む、請求項13に記載の方法。
  23. 【請求項23】 前記グローバル伝送分数が、1と第1値との最小値であり、前記第1値が、第
    5定数と第2値との最大値であり、前記第2値が、前のグローバル伝送分数に第
    3値を加えたものであり、前記第3値が、第4値に第5値をかけたものであり、
    前記第4値が、第6定数に前の乗数をかけ、グローバル提供速度をかけ、時間間
    隔をかけ、最大キュー・レベルによって割ったものであり、前記第5値が、第7
    定数から、第8定数に前記前の乗数をかけ、前記キュー・レベルをかけ、前記最
    大キュー・レベルで割ったものを引いたものであり、前記乗数が、前のキュー・
    レベルが閾値未満の場合に第1レベルに近づき、前記前のキュー・レベルが前記
    閾値を超える場合に第2レベルに近づく指数関数的加重平均である、請求項22
    に記載の方法。
  24. 【請求項24】 前記伝送分数を制御するステップ(d)が、グローバル伝送分数を制御し、 (j)グローバル伝送分数と差分伝送分数との最小値になるように前記複数の
    パイプのパイプのフローの伝送分数をセットするステップであって、前記差分伝
    送分数が、前記キューを介する前記トラフィックが安定するように、過剰帯域幅
    が存在する場合に、および前記複数のパイプの前記パイプの前記フローが前記パ
    イプの前記最大フロー未満である場合に、前記最小フローまたは前記最大フロー
    に基づいて前記フローを線形に増やすことができ、過剰帯域幅が存在せず、前記
    フローが前記パイプの前記最小フローを超える場合に、前記最小フローまたは前
    記最大フローに基づいて前記複数のパイプの前記パイプの前記フローを指数関数
    的に減らすことができる、ステップと、 (k)前記伝送分数に基づいて前記キューへのトラフィックの伝送を制御する
    ステップと、 (l)前記キューからのトラフィックを制御するためにスケジューラを使用す
    るステップと をさらに含む、請求項13に記載の方法。
  25. 【請求項25】 前記伝送分数をセットするステップ(j)が、 (j1)過剰帯域幅が存在する場合に、前の差分伝送分数に第1量を加えたも
    のになるように、前記フローの前記差分伝送分数をセットするステップであって
    、前記第1量が、第1定数に過剰帯域幅値をかけたものである、ステップと、 (j2)過剰帯域幅が存在しない場合に、前記前の差分伝送分数から第2量を
    引いたものになるように、前記差分伝送分数をセットするステップであって、前
    記第2量が、前記前のフローに第2定数をかけたものである、ステップと をさらに含む、請求項24に記載の方法。
  26. 【請求項26】 前記伝送分数をセットするステップ(j)が、 (j1)前記複数のパイプからの複数のフローの合計が第1キュー・レベルを
    越える場合に、前記フローの前記差分伝送分数に第1定数をセットするステップ
    と、 (j2)前記パイプの前記フローが前記パイプの前記最小フロー以下である場
    合に、1と、前記パイプの前の差分伝送分数に前記第1定数を加えたものとの最
    小値になるように、前記パイプの前記差分伝送分数をセットするステップと、 (j3)前記パイプの前記フローが前記パイプの前記最大フローを超える場合
    に、前記パイプの前記前の伝送分数に第2定数をかけたものになるように前記差
    分伝送分数をセットするステップであって、前記第2定数が、1未満である、ス
    テップと、 (j4)それ以外の場合に、グローバル伝送分数と第1量との最小値になるよ
    うに前記パイプの前記伝送分数をセットするステップであって、前記第1量が、
    過剰帯域幅が存在する場合に、前記前の差分伝送分数に第2量を加えたものであ
    り、前記第1量が、過剰帯域幅が存在しない場合に、前記前の差分伝送分数から
    第3量を引いたものであり、前記第2量が、第3定数に信号をかけたものであり
    、前記第3定数が、前記最小フローに依存し、前記信号が、過剰帯域幅の繰り返
    される事例について1に近づき、過剰帯域幅なしの繰り返される事例について0
    に近づき、前記第3量が、前記最小フローに依存する第4定数に前記前のフロー
    をかけたものである、ステップと をさらに含む、請求項24に記載の方法。
  27. 【請求項27】 前記伝送分数をセットするステップ(j)が、前記複数のパイプのそれぞれに
    ついて実行される、請求項24に記載の方法。
  28. 【請求項28】 前記グローバル伝送分数が、1と第1値との最小値であり、前記第1値が、第
    5定数と第2値との最大値であり、前記第2値が、前のグローバル伝送分数に第
    3値を加えたものであり、前記第3値が、第4値に第5値をかけたものであり、
    前記第4値が、第6定数に前の乗数をかけ、グローバル提供速度をかけ、時間間
    隔をかけ、最大キュー・レベルによって割ったものであり、前記第5値が、第7
    定数から、第8定数に前記前の乗数をかけ、前記キュー・レベルをかけ、前記最
    大キュー・レベルによって割ったものを引いたものであり、前記乗数が、前のキ
    ュー・レベルが閾値未満の場合に第1レベルに近づき、前記前のキュー・レベル
    が前記閾値を超える場合に第2レベルに近づく指数関数的加重平均である、請求
    項24に記載の方法。
  29. 【請求項29】 前記複数のパイプのそれぞれが、少なくとも1つのタイプのサービスを含み、
    前記使用するステップ(l)が、 (l1)サービスの前記少なくとも1つのタイプに基づいて、前記複数のパイ
    プのそれぞれについて、前記キューからのトラフィックをスケジューリングする
    のに前記スケジューラを使用するステップ をさらに含む、請求項24に記載の方法。
  30. 【請求項30】 前記少なくとも1つのタイプのサービスが、前記複数のパイプのそれぞれでの
    前記複数のフローの各フローの特定のタイプのサービスであり、前記使用するス
    テップ(l1)が、 (l1i)前記複数のフローのそれぞれの前記特定のタイプのサービスに基づ
    いて、前記複数のフローのそれぞれについて、前記キューからのトラフィックを
    スケジューリングするのに前記スケジューラを使用するステップ をさらに含む、請求項29に記載の方法。
  31. 【請求項31】 前記スケジューラが、少なくとも1つのカレンダを含む、請求項24に記載の
    方法。
  32. 【請求項32】 前記スケジューラが、少なくとも1つの加重公平キューイング・リングを含む
    、請求項24に記載の方法。
  33. 【請求項33】 前記スケジューラが、少なくとも1つのカレンダと、少なくとも1つの加重公
    平キューイング・リングとを含む、請求項24に記載の方法。
  34. 【請求項34】 前記スケジューラが、少なくとも1つのカレンダと少なくとも1つの先入れ先
    出し機構とを含む、請求項24に記載の方法。
  35. 【請求項35】 コンピュータ・ネットワークを介して移動する複数のパケットのフローの一部
    を保管するキューと、 前記複数のパケットの提供速度を受け取り、前記複数のパケットの前記キュー
    への伝送分数を制御する、前記キューに結合されたエンキュー機構であって、伝
    送速度が、前記キューのキュー・レベルおよび前記提供速度に基づいて制御され
    、その結果、前記キュー・レベルが少なくとも第1キュー・レベルと第2キュー
    ・レベルの間にある場合に、前記伝送分数および前記キュー・レベルが臨界減衰
    されるようになる、エンキュー機構と を含む装置。
  36. 【請求項36】 前記エンキュー機構が、前記キューのキュー・レベルおよび最大キュー・レベ
    ルに基づいて仮想最大キュー・レベルを判定し、前記エンキュー機構が、前記キ
    ューの前記キュー・レベル、前記提供速度、および前記仮想最大キュー・レベル
    に基づいて前記伝送速度を制御する、請求項35に記載の装置。
  37. 【請求項37】 前記エンキュー機構が、さらに、前記キュー・レベルが第1閾値を超える場合
    に、前記仮想最大キュー・レベルを前記最大キュー・レベル以下の最大値まで増
    やし、前記キュー・レベルが第2閾値未満である場合に、前記仮想キュー・レベ
    ルを減らす、請求項36に記載の装置。
  38. 【請求項38】 前記エンキュー機構が、さらに、前記最大キュー・レベルの乗数を提供し、前
    記乗数が、前記キュー・レベルが閾値未満の場合に第1レベルに近づき、前記キ
    ュー・レベルが閾値を超える場合に第2レベルに近づく指数関数的加重平均であ
    り、前記第1レベルが、前記仮想キュー・レベルが最小仮想キュー・レベルであ
    ることに対応し、前記第2レベルが、前記仮想キュー・レベルが前記最大キュー
    ・レベルであることに対応し、前記エンキュー機構が、さらに、前記キュー・レ
    ベル、前記提供速度、前の伝送分数、前記乗数、および前記最大キュー・レベル
    に基づいて前記伝送分数を制御する、請求項36に記載の装置。
  39. 【請求項39】 前記エンキュー機構が、さらに、前記キュー・レベルが前記閾値未満の場合に
    、前記乗数を、第1定数に前の乗数をかけ、第2定数を加えたものに等しくセッ
    トし、前記キュー・レベルが前記閾値を超える場合に、前記乗数を、前記第1定
    数に前記前の乗数をかけ、第3定数を加えたものに等しくセットする、請求項3
    8に記載の装置。
  40. 【請求項40】 前記エンキュー機構が、さらに、1と第2値との最小値になるように前記伝送
    分数を制御し、前記第2値が、第4定数と第3値との最大値であり、前記第3値
    が、前記前の伝送分数に第4値を加えたものであり、前記第4値が、第5値に第
    6値をかけたものであり、前記第5値が、第5定数に前の乗数をかけ、前記提供
    速度をかけ、時間間隔をかけ、前記最大キュー・レベルによって割ったものであ
    り、前記第6値が、第6定数から、第7定数に前記前の伝送分数をかけたものを
    引き、第8定数に前記前の乗数をかけ、前記キュー・レベルをかけ、前記最大キ
    ュー・レベルによって割ったものを引いたものである、請求項39に記載の装置
  41. 【請求項41】 前記キュー・レベルが、前のキュー・レベルであり、前記提供速度が、前の提
    供速度である、請求項40に記載の装置。
  42. 【請求項42】 前記キューが、さらに、ハードウェア・メモリ・リソースを含む、請求項36
    に記載の装置。
  43. 【請求項43】 前記エンキュー機構が、さらに、前記複数のパケットの各パケットの前記伝送
    速度および優先順位に基づいて、前記複数のパケットの一部を破棄する、請求項
    36に記載の装置。
  44. 【請求項44】 前記キューが、それを介してトラフィックが伝送される複数のパイプによって
    使用され、さらに、前記エンキュー機構が、ユーザによって前記複数のパイプの
    それぞれについてセットされる最大フローおよび最小フローを使用し、前記エン
    キュー機構が、前記キューについて過剰帯域幅が存在するかどうかを判定し、前
    記キューを介する前記トラフィックが安定するようにするために、(a)過剰帯
    域幅が存在する場合、および前記複数のパイプのパイプのフローが前記パイプの
    前記最大フロー未満である場合に、前記最小フローまたは前記最大フローに基づ
    いて前記複数のパイプの前記パイプのフローを線形に増やすか、(b)過剰帯域
    幅が存在せず、前記フローが前記パイプの前記最小フローを超える場合に、前記
    最小フローまたは前記最大フローに基づいて前記複数のパイプの前記パイプのフ
    ローを指数関数的に減らす、請求項35に記載の装置。
  45. 【請求項45】 前記複数のパイプが、複数のbehaviour aggregate flowである、請求項44に
    記載の装置。
  46. 【請求項46】 前記エンキュー機構が、過剰帯域幅が存在するか否かに基づいて、前記複数の
    パイプのそれぞれの前記フローを増やすか減らす、請求項44に記載の装置。
  47. 【請求項47】 エンキュー機構が、前記キューの前記キュー・レベルを判定することと、前記
    キュー・レベルが増加または減少したかどうかを判定することと、前記キュー・
    レベルが減少したか0である場合に、過剰帯域幅が存在することを示すことと、
    そうでない場合に、過剰帯域幅が存在しないことを示すことによって、過剰帯域
    幅が存在するかどうかを判定する、請求項44に記載の装置。
  48. 【請求項48】 エンキュー機構が、さらに、前記キュー・レベルが減ったか0である場合に、
    1になるように瞬間過剰帯域幅信号をセットし、そうでない場合に、0になるよ
    うに前記瞬間過剰帯域幅信号をセットすることによって、過剰帯域幅が存在する
    ことを示す、請求項47に記載の装置。
  49. 【請求項49】 前記エンキュー機構が、さらに、前記瞬間過剰帯域幅信号の指数関数的加重平
    均になるように過剰帯域幅信号をセットすることによって、過剰帯域幅が存在す
    ることを示す、請求項48に記載の装置。
  50. 【請求項50】 前記パイプの前記フローが、提供速度に伝送分数をかけたものであり、前記エ
    ンキュー機構が、さらに、過剰帯域幅が存在する場合に、前の伝送分数に第1量
    を加えたものになるように前記伝送分数をセットすることであって、前記第1量
    が、第1定数に前記過剰帯域幅信号をかけたものである、セットすることと、過
    剰帯域幅が存在しない場合に、前記前の伝送分数から第2量を引いたものになる
    ように前記伝送分数をセットすることであって、前記第2量が、前記前の伝送分
    数に第2定数をかけたものである、セットすることとによって前記フローを増や
    すか減らす、請求項49に記載の装置。
  51. 【請求項51】 前記第1定数および前記第2定数が、前記パイプの前記最小フローに依存する
    、請求項50に記載の装置。
  52. 【請求項52】 前記第1定数が.125であり、前記第2定数が.875である、請求項51
    に記載の装置。
  53. 【請求項53】 前記第1定数が、重みに第3量をかけたものであり、前記第3量が、キュー・
    サービス速度に前記パイプの前記最小フローを加え、前記複数のパイプのそれぞ
    れの前記最小フローの合計を引いたものである、請求項51に記載の装置。
  54. 【請求項54】 前記エンキュー機構が、さらに、前記複数のパイプからの複数のフローの合計
    が、第1キュー・レベルより大きい場合に、前記伝送分数に第1定数をセットす
    ることと、前記パイプの前記フローが前記パイプの前記最小フロー以下である場
    合に、1と、前記パイプの前の伝送分数に前記第1定数を加えたものとの最小値
    になるように前記パイプの前記伝送分数をセットすることと、前記パイプの前記
    フローが前記パイプの前記最大フローを超える場合に、前記パイプの前記前の伝
    送分数に第2定数をかけたものになるように前記伝送分数をセットすることであ
    って、前記第2定数が、1未満である、セットすることと、それ以外の場合に、
    グローバル伝送分数と第1量との最小値になるように前記パイプの前記伝送分数
    をセットすることとによって前記フローを増やすか減らし、前記第1量が、過剰
    帯域幅が存在する場合に前記前の伝送分数に第2量を加えたものであり、前記第
    1量が、過剰帯域幅が存在しない場合に前記前の伝送分数から第3量を引いたも
    のであり、前記第2量が、第3定数に信号をかけたものであり、前記第3定数が
    、前記最小フローに依存し、前記信号が、過剰帯域幅の繰り返される事例につい
    て1に近づき、過剰帯域幅なしの繰り返される事例について0に近づき、前記第
    3量が、前記最小フローに依存する第4定数に前記前の伝送分数をかけたもので
    あり、前記グローバル伝送分数が、前記グローバル伝送分数と前記キュー・レベ
    ルとの間の臨界減衰を可能にする、請求項44に記載の装置。
  55. 【請求項55】 前記グローバル伝送分数が、1と第1値との最小値であり、前記第1値が、第
    5定数と第2値との最大値であり、前記第2値が、前のグローバル伝送分数に第
    3値を加えたものであり、前記第3値が、第4値に第5値をかけたものであり、
    前記第4値が、第6定数に前の乗数をかけ、グローバル提供速度をかけ、時間間
    隔をかけ、最大キュー・レベルによって割ったものであり、前記第5値が、第7
    定数から、第8定数に前記前の乗数をかけ、前記キュー・レベルをかけ、前記最
    大キュー・レベルで割ったものを引いたものであり、前記乗数が、前のキュー・
    レベルが閾値未満の場合に第1レベルに近づき、前記前のキュー・レベルが前記
    閾値を超える場合に第2レベルに近づく指数関数的加重平均である、請求項54
    に記載の装置。
  56. 【請求項56】 前記装置が、複数のブレードに対応する複数のプロセッサを含み、前記複数の
    プロセッサのそれぞれが、複数のポートを有し、前記キューが、前記複数のプロ
    セッサのプロセッサのためのものである、請求項44に記載の装置。
  57. 【請求項57】 前記エンキュー機構が、前記キュー・レベルおよび前記提供速度に基づいて、
    前記キューへの前記複数のパケットのグローバル伝送分数を制御し、その結果、
    前記キュー・レベルが少なくとも第1キュー・レベルと第2キュー・レベルとの
    間にある場合に、前記グローバル伝送分数および前記キュー・レベルが、臨界減
    衰されるようにし、前記エンキュー機構が、前記グローバル伝送分数と差分伝送
    分数との最小値になるように前記複数のパイプのパイプのフローの伝送分数もセ
    ットし、前記差分伝送分数が、前記キューを介する前記トラフィックが安定する
    ように、過剰帯域幅が存在する場合に、および前記複数のパイプの前記パイプの
    前記フローが前記パイプの前記最大フロー未満である場合に、前記最小フローま
    たは前記最大フローに基づいて前記フローを線形に増やすことができ、過剰帯域
    幅が存在せず、前記フローが前記パイプの前記最小フローを超える場合に、前記
    最小フローまたは前記最大フローに基づいて前記複数のパイプの前記パイプの前
    記フローを指数関数的に減らすことができ、前記エンキュー機構が、前記伝送分
    数に基づいて前記キューへのトラフィックの伝送も制御し、さらに、 前記キューからのトラフィックを制御するスケジューラ を含む、請求項44に記載の装置。
  58. 【請求項58】 前記複数のパイプのそれぞれが、少なくとも1つのタイプのサービスを含み、
    前記スケジューラが、さらに、サービスの前記少なくとも1つのタイプに基づい
    て、前記複数のパイプのそれぞれについて、前記キューからのトラフィックをス
    ケジューリングする、請求項57に記載の装置。
  59. 【請求項59】 前記少なくとも1つのタイプのサービスが、前記複数のパイプのそれぞれでの
    前記複数のフローの各フローの特定のタイプのサービスであり、前記スケジュー
    ラが、前記複数のフローのそれぞれの前記特定のタイプのサービスに基づいて、
    前記複数のフローのそれぞれについて、前記キューからのトラフィックをスケジ
    ューリングする、請求項58に記載の装置。
  60. 【請求項60】 前記スケジューラが、少なくとも1つのカレンダを含む、請求項57に記載の
    装置。
  61. 【請求項61】 前記スケジューラが、少なくとも1つの加重公平キューイング・リングを含む
    、請求項57に記載の装置。
  62. 【請求項62】 前記スケジューラが、少なくとも1つのカレンダと、少なくとも1つの加重公
    平キューイング・リングとを含む、請求項57に記載の装置。
  63. 【請求項63】 前記スケジューラが、少なくとも1つのカレンダと少なくとも1つの先入れ先
    出し機構とを含む、請求項57に記載の装置。
  64. 【請求項64】 前記エンキュー機構が、複数のエポックのそれぞれの後で前記伝送分数を制御
    し、前記エンキュー機構が、前記複数のエポックのエポックの前記伝送分数およ
    び前のエポックの前記キュー・レベルが臨界減衰されるように、前記前のエポッ
    クの前記キュー・レベル、前記前のエポックの前記提供速度、および前記前のエ
    ポックの前記伝送分数に基づいて、前記エポックの前記伝送分数を制御する、請
    求項35に記載の装置。
  65. 【請求項65】 前記キューが、さらに、ハードウェア・メモリ・リソースを含む、請求項35
    に記載の装置。
  66. 【請求項66】 前記エンキュー機構が、さらに、時間に関する前記伝送分数の変化を第1量に
    第2量をかけたものに等しくセットすることによって前記伝送分数を制御し、前
    記第1量が、時間に依存し、前記第2量が、第1定数から、第2定数に前記伝送
    分数をかけたものを引き、前記キュー・レベルを最大の可能なキュー・レベルに
    よって割ったものを引いたものである、請求項35に記載の装置。
  67. 【請求項67】 前記エンキュー機構が、さらに、前記複数のパケットの各パケットの前記伝送
    速度および優先順位に基づいて、前記複数のパケットの一部をドロップする、請
    求項35に記載の装置。
  68. 【請求項68】 前記エンキュー機構が、さらに、前記キュー・レベルが最小閾値未満の場合に
    、前記複数のパケットの各パケットが伝送され、前記キュー・レベルが最大閾値
    を超える場合に、前記複数のパケットのパケットが伝送されず、前記キューレベ
    ルが、前記最小閾値と前記最大閾値との間にある場合に、前記伝送分数および前
    記キュー・レベルが臨界減衰されるように、前記伝送分数を制御する、請求項3
    5に記載の装置。
  69. 【請求項69】 (a)それを介してコンピュータ・ネットワーク内を流れる複数のパケットが
    渡されるキューのキュー・レベルを判定する命令と、 (b)前記キューへの前記複数のパケットの提供速度を判定する命令と、 (c)前記キュー・レベルおよび前記提供速度に基づいて前記キューへの前記
    複数のパケットの伝送分数を制御する命令であって、前記キュー・レベルが少な
    くとも第1キュー・レベルと第2キュー・レベルとの間にある場合に、前記伝送
    分数および前記キュー・レベルが臨界減衰される、命令と を含むコンピュータ実行可能プログラムを含むコンピュータ可読媒体。
  70. 【請求項70】 (d)前記キュー・レベルおよび前記最大キュー・レベルに基づいて仮想最大
    キュー・レベルを判定する命令をさらに含み、さらに、前記伝送分数を制御する
    命令が、前記キュー・レベル、前記提供速度、および前記仮想最大キュー・レベ
    ルに基づく、請求項69に記載のコンピュータ可読媒体。
  71. 【請求項71】 前記仮想最大キュー・レベルを判定する命令(d)が、 (d1)前記キュー・レベルが第1閾値を超える場合に、前記仮想最大キュー
    ・レベルを、前記最大キュー・レベル以下の最大値まで増やす命令と、 (d2)前記キュー・レベルが第2閾値未満である場合に、前記仮想最大キュ
    ー・レベルを減らす命令と をさらに含む、請求項70に記載のコンピュータ可読媒体。
  72. 【請求項72】 前記仮想最大キュー・レベルを判定する命令(d)が、 (d1)前記最大キュー・レベルに関する乗数を提供する命令であって、前記
    乗数が、前記キュー・レベルが閾値未満の場合に第1レベルに近づき、前記キュ
    ー・レベルが前記閾値を超える場合に第2レベルに近づく指数関数的加重平均で
    あり、前記第1レベルが、前記仮想キュー・レベルが最小仮想キュー・レベルで
    あることに対応し、前記第2レベルが、前記仮想キュー・レベルが前記最大キュ
    ー・レベルであることに対応する、命令 をさらに含み、前記伝送分数を制御する命令(c)が、 (c1)前記キュー・レベル、前記提供速度、前の伝送分数、前記乗数、およ
    び前記最大キュー・レベルに基づいて前記伝送分数を制御する命令 をさらに含む、請求項70に記載のコンピュータ可読媒体。
  73. 【請求項73】 前記乗数を提供する命令(d1)が、 (d1i)前記キュー・レベルが前記閾値未満の場合に、前記乗数を、第1定
    数に前の乗数をかけ、第2定数を加えたものに等しくセットする命令と、 (d1ii)前記キュー・レベルが前記閾値を超える場合に、前記乗数を、前
    記第1定数に前記前の乗数をかけ、第3定数を加えたものに等しくセットする命
    令と をさらに含む、請求項72に記載のコンピュータ可読媒体。
  74. 【請求項74】 前記伝送分数を制御する命令(c1)が、 (c1i)前記キュー・レベルが最小キュー・レベル未満である場合に、1に
    なるように前記伝送分数を制御する命令と、 (c1ii)1と第2値との最小値になるように前記伝送分数を制御する命令
    であって、前記第2値が、第4定数と第3値との最大値であり、前記第3値が、
    前記前の伝送分数に第4値を加えたものであり、前記第4値が、第5値に第6値
    をかけたものであり、前記第5値が、第5定数に前の乗数をかけ、前記提供速度
    をかけ、時間間隔をかけ、前記最大キュー・レベルによって割ったものであり、
    前記第6値が、第6定数から、第7定数に前記前の伝送分数をかけたものを引き
    、第8定数に前記前の乗数をかけ、前記キュー・レベルをかけ、前記最大キュー
    ・レベルによって割ったものを引いたものである、命令と をさらに含む、請求項73に記載のコンピュータ可読媒体。
  75. 【請求項75】 前記キュー・レベルが、前のキュー・レベルであり、前記提供速度が、前の提
    供速度である、請求項74に記載のコンピュータ可読媒体。
  76. 【請求項76】 前記伝送分数を制御する命令(c)が、 (c1)前記複数のパケットの各パケットの前記伝送速度および優先順位に基
    づいて、前記複数のパケットの一部を破棄する命令 をさらに含む、請求項70に記載のコンピュータ可読媒体。
  77. 【請求項77】 (d)前記キューを使用する複数のパイプのそれぞれについて最小フローおよ
    び最大フローをセットできるようにする命令と、 (e)前記キューについて過剰帯域幅が存在するかどうかを判定する命令と、 (f)前記キューを介する前記トラフィックが安定するようにするために、過
    剰帯域幅が存在する場合、および前記複数のパイプのパイプのフローが前記パイ
    プの前記最大フロー未満である場合に、前記最小フローまたは前記最大フローに
    基づいて前記複数のパイプの前記パイプのフローを線形に増やすか、過剰帯域幅
    が存在せず、前記フローが前記パイプの前記最小フローを超える場合に、前記最
    小フローまたは前記最大フローに基づいて前記複数のパイプの前記パイプのフロ
    ーを指数関数的に減らす命令と をさらに含む、請求項69に記載のコンピュータ可読媒体。
  78. 【請求項78】 前記過剰帯域幅を判定する命令(e)が、 (e1)前記キューの前記キュー・レベルを判定する命令と、 (e2)前記キュー・レベルが増加または減少したかどうかを判定する命令と
    、 (e3)前記キュー・レベルが減少したか0である場合に、過剰帯域幅が存在
    すると判定し、そうでない場合に、過剰帯域幅が存在しないと判定する命令と をさらに含む、請求項77に記載のコンピュータ可読媒体。
  79. 【請求項79】 前記フローが、提供速度に伝送分数をかけたものであり、前記増やすか減らす
    命令(f)が、 (f1)前記複数のパイプからの複数のフローの合計が、第1キュー・レベル
    より大きい場合に、前記伝送分数に第1定数をセットする命令と、 (f2)前記パイプの前記フローが前記パイプの前記最小フロー以下である場
    合に、1と、前記パイプの前の伝送分数に前記第1定数を加えたものとの最小値
    になるように前記パイプの前記伝送分数をセットする命令と、 (f3)前記パイプの前記フローが前記パイプの前記最大フローを超える場合
    に、前記パイプの前記前の伝送分数に第2定数をかけたものになるように前記伝
    送分数をセットする命令であって、前記第2定数が、1未満である、命令と、 (f4)それ以外の場合に、グローバル伝送分数と第1量との最小値になるよ
    うに前記パイプの前記伝送分数をセットする命令であって、前記第1量が、過剰
    帯域幅が存在する場合に前記前の伝送分数に第2量を加えたものであり、前記第
    1量が、過剰帯域幅が存在しない場合に前記前の伝送分数から第3量を引いたも
    のであり、前記第2量が、第3定数に信号をかけたものであり、前記第3定数が
    、前記最小フローに依存し、前記信号が、過剰帯域幅の繰り返される事例につい
    て1に近づき、過剰帯域幅なしの繰り返される事例について0に近づき、前記第
    3量が、前記最小フローに依存する第4定数に前記前の伝送分数をかけたもので
    あり、前記グローバル伝送分数が、前記グローバル伝送分数と前記キュー・レベ
    ルとの間の臨界減衰を可能にする、命令と をさらに含む、請求項77に記載のコンピュータ可読媒体。
  80. 【請求項80】 前記グローバル伝送分数が、1と第1値との最小値であり、前記第1値が、第
    5定数と第2値との最大値であり、前記第2値が、前のグローバル伝送分数に第
    3値を加えたものであり、前記第3値が、第4値に第5値をかけたものであり、
    前記第4値が、第6定数に前の乗数をかけ、グローバル提供速度をかけ、時間間
    隔をかけ、最大キュー・レベルによって割ったものであり、前記第5値が、第7
    定数から、第8定数に前記前の乗数をかけ、前記キュー・レベルをかけ、前記最
    大キュー・レベルで割ったものを引いたものであり、前記乗数が、前のキュー・
    レベルが閾値未満の場合に第1レベルに近づき、前記前のキュー・レベルが前記
    閾値を超える場合に第2レベルに近づく指数関数的加重平均である、請求項79
    に記載のコンピュータ可読媒体。
  81. 【請求項81】 前記伝送分数を制御する命令(c)が、グローバル伝送分数を制御し、 (g)前記複数のパイプのそれぞれについて最小フローおよび最大フローをセ
    ットできるようにする命令と、 (h)前記キューについて過剰帯域幅が存在するかどうかを判定する命令と、 (i)前記キューのキュー・レベルを判定する命令と、 (j)前記キューへの前記複数のパケットの提供速度を判定する命令と、 (k)前記キュー・レベルが少なくとも第1キュー・レベルと第2キュー・レ
    ベルとの間にある場合に、前記グローバル伝送分数および前記キュー・レベルが
    臨界減衰されるように、前記キュー・レベルおよび前記提供速度に基づいて、前
    記キューへの前記複数のパケットの前記グローバル伝送分数を制御する命令と、 (l)前記グローバル伝送分数と差分伝送分数との最小値になるように前記複
    数のパイプのパイプのフローの伝送分数をセットする命令であって、前記差分伝
    送分数が、前記キューを介する前記トラフィックが安定するように、過剰帯域幅
    が存在する場合に、および前記複数のパイプの前記パイプの前記フローが前記パ
    イプの前記最大フロー未満である場合に、前記最小フローまたは前記最大フロー
    に基づいて前記フローを線形に増やすことができ、過剰帯域幅が存在せず、前記
    フローが前記パイプの前記最小フローを超える場合に、前記最小フローまたは前
    記最大フローに基づいて前記複数のパイプの前記パイプの前記フローを指数関数
    的に減らすことができる、命令と、 (m)前記伝送分数に基づいて前記キューへのトラフィックの伝送を制御する
    命令と、 (n)前記キューからのトラフィックを制御するためにスケジューラを使用す
    る命令と をさらに含む、請求項77に記載のコンピュータ可読媒体。
  82. 【請求項82】 前記複数のパイプのそれぞれが、少なくとも1つのタイプのサービスを含み、
    前記使用する命令(n)が、 (n1)サービスの前記少なくとも1つのタイプに基づいて、前記複数のパイ
    プのそれぞれについて、前記キューからのトラフィックをスケジューリングする
    のに前記スケジューラを使用する命令 をさらに含む、請求項81に記載のコンピュータ可読媒体。
  83. 【請求項83】 前記少なくとも1つのタイプのサービスが、前記複数のパイプのそれぞれでの
    前記複数のフローの各フローの特定のタイプのサービスであり、前記使用する命
    令(n1)が、 (n1i)前記複数のフローのそれぞれの前記特定のタイプのサービスに基づ
    いて、前記複数のフローのそれぞれについて、前記キューからのトラフィックを
    スケジューリングするのに前記スケジューラを使用する命令 をさらに含む、請求項81に記載のコンピュータ可読媒体。
  84. 【請求項84】 前記スケジューラが、少なくとも1つのカレンダと、少なくとも1つの加重公
    平キューイング・リングとを含む、請求項81に記載のコンピュータ可読媒体。
  85. 【請求項85】 前記伝送分数が、複数のエポックのそれぞれの後で制御され、前記伝送分数を
    制御する命令(c)が、 (c1)前記複数のエポックのエポックの前記伝送分数および前のエポックの
    前記キュー・レベルが臨界減衰されるように、前記前のエポックの前記キュー・
    レベル、前記前のエポックの前記提供速度、および前記前のエポックの前記伝送
    分数に基づいて、前記エポックの前記伝送分数を制御する命令 をさらに含む、請求項69に記載のコンピュータ可読媒体。
  86. 【請求項86】 前記伝送分数を制御する命令(c)が、 (c1)時間に関する前記伝送分数の変化を第1量に第2量をかけたものに等
    しくセットする命令であって、前記第1量が、時間に依存し、前記第2量が、第
    1定数から、第2定数に前記伝送分数をかけたものを引き、前記キュー・レベル
    を最大の可能なキュー・レベルによって割ったものを引いたものである、命令 をさらに含む、請求項69に記載のコンピュータ可読媒体。
  87. 【請求項87】 前記伝送分数を制御する命令(c)が、 (c1)前記複数のパケットの各パケットの前記伝送速度および優先順位に基
    づいて、前記複数のパケットの一部をドロップする命令 をさらに含む、請求項69に記載のコンピュータ可読媒体。
  88. 【請求項88】 前記伝送分数を制御する命令(c)が、 (c1)前記キュー・レベルが最小閾値未満の場合に、前記複数のパケットの
    各パケットが伝送されるように、前記伝送分数を制御する命令と、 (c2)前記キュー・レベルが最大閾値を超える場合に、前記複数のパケット
    のパケットが伝送されないように、前記伝送分数を制御する命令と、 (c3)前記キュー・レベルが、前記最小閾値と前記最大閾値との間にある場
    合に、前記伝送分数および前記キュー・レベルが臨界減衰されるように、前記伝
    送分数を制御する命令と をさらに含む、請求項69に記載のコンピュータ可読媒体。
JP2001540492A 1999-11-23 2000-11-21 コンピュータ・ネットワークでパケットの伝送を制御する方法およびシステム Expired - Lifetime JP4195221B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US09/448,197 US6657960B1 (en) 1999-11-23 1999-11-23 Method and system for providing differentiated services in computer networks
US09/448,380 US6771652B1 (en) 1999-11-23 1999-11-23 Method and system for controlling transmission of packets in computer networks
US09/448,190 1999-11-23
US09/448,197 1999-11-23
US09/448,380 1999-11-23
US09/448,190 US6724776B1 (en) 1999-11-23 1999-11-23 Method and system for providing optimal discard fraction
US09/547,280 2000-04-11
US09/547,280 US6674718B1 (en) 2000-04-11 2000-04-11 Unified method and system for scheduling and discarding packets in computer networks
PCT/GB2000/004410 WO2001039467A1 (en) 1999-11-23 2000-11-21 Method and system for controlling transmission of packets in computer networks

Publications (2)

Publication Number Publication Date
JP2003515978A true JP2003515978A (ja) 2003-05-07
JP4195221B2 JP4195221B2 (ja) 2008-12-10

Family

ID=27503960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001540492A Expired - Lifetime JP4195221B2 (ja) 1999-11-23 2000-11-21 コンピュータ・ネットワークでパケットの伝送を制御する方法およびシステム

Country Status (15)

Country Link
EP (1) EP1232627B1 (ja)
JP (1) JP4195221B2 (ja)
KR (1) KR100546968B1 (ja)
CN (1) CN1391756B (ja)
AT (1) ATE435556T1 (ja)
AU (1) AU1406901A (ja)
CA (1) CA2387101C (ja)
CZ (1) CZ20021780A3 (ja)
DE (1) DE60042493D1 (ja)
HU (1) HUP0203928A2 (ja)
IL (1) IL149435A0 (ja)
MY (1) MY133997A (ja)
PL (1) PL356725A1 (ja)
TW (1) TW580813B (ja)
WO (1) WO2001039467A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6771652B1 (en) 1999-11-23 2004-08-03 International Business Machines Corporation Method and system for controlling transmission of packets in computer networks
US7035289B2 (en) 2002-05-03 2006-04-25 Cedar Point Communications Communications switching architecture
US7453798B2 (en) * 2004-02-19 2008-11-18 Internationl Business Machines Corporation Active flow management with hysteresis
US7701898B2 (en) 2004-09-15 2010-04-20 Research In Motion Limited Switch-in of centralised infrastructure for management for wireless communications
US9549016B2 (en) 2014-08-18 2017-01-17 Cisco Technology, Inc. Congestion control for media flows
US9929958B2 (en) 2014-11-21 2018-03-27 Arris Enterprises Llc Quality of service for mixed service tiers
CN106656851B (zh) * 2016-12-28 2019-12-24 国网辽宁省电力有限公司 一种电力系统终端通信接入网汇聚节点的队列调度方法
KR102010670B1 (ko) * 2017-12-14 2019-08-13 순천향대학교 산학협력단 저전력 광역 네트워크에서 트래픽 특성을 고려한 이중 채널 매체 접근 제어 방법 및 장치
CN111447263A (zh) * 2020-03-24 2020-07-24 中国建设银行股份有限公司 一种消息通信系统
CN116346739B (zh) * 2023-03-31 2023-12-05 南京金阵微电子技术有限公司 多队列调度方法和系统、电路及芯片

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134218A (en) * 1994-04-28 2000-10-17 Pmc-Sierra (Maryland), Inc. Many dimensional congestion detection system and method

Also Published As

Publication number Publication date
CZ20021780A3 (cs) 2002-10-16
IL149435A0 (en) 2002-11-10
EP1232627A1 (en) 2002-08-21
WO2001039467A1 (en) 2001-05-31
CN1391756B (zh) 2010-12-29
CA2387101A1 (en) 2001-05-31
TW580813B (en) 2004-03-21
KR100546968B1 (ko) 2006-01-31
CN1391756A (zh) 2003-01-15
MY133997A (en) 2007-11-30
ATE435556T1 (de) 2009-07-15
JP4195221B2 (ja) 2008-12-10
PL356725A1 (en) 2004-06-28
KR20020063578A (ko) 2002-08-03
EP1232627B1 (en) 2009-07-01
HUP0203928A2 (en) 2003-04-28
CA2387101C (en) 2006-01-03
DE60042493D1 (de) 2009-08-13
AU1406901A (en) 2001-06-04
WO2001039467A8 (en) 2002-10-31

Similar Documents

Publication Publication Date Title
US10764215B2 (en) Programmable broadband gateway hierarchical output queueing
US6674718B1 (en) Unified method and system for scheduling and discarding packets in computer networks
Semeria Supporting differentiated service classes: queue scheduling disciplines
US7142513B2 (en) Method and multi-queue packet scheduling system for managing network packet traffic with minimum performance guarantees and maximum service rate control
Guérin et al. Quality-of-service in packet networks: basic mechanisms and directions
Guérin et al. Scalable QoS provision through buffer management
US8218437B2 (en) Shared shaping of network traffic
US7414973B2 (en) Communication traffic management systems and methods
US20100302942A1 (en) Shared weighted fair queuing (wfq) shaper
US20090141732A1 (en) Methods and apparatus for differentiated services over a packet-based network
US20110199899A1 (en) Rate-Adaptive Bundling of Data in a Packetized Communication System
US20120063313A1 (en) Hybrid weighted round robin (wrr) traffic scheduling
JP2002543669A (ja) 経路設定装置
US6657960B1 (en) Method and system for providing differentiated services in computer networks
JP2003515978A (ja) コンピュータ・ネットワークでパケットの伝送を制御する方法およびシステム
Astuti Packet handling
US7801152B2 (en) Method and system for scheduling utilization of resources, related communication network and computer program product
JPH11298523A (ja) パケット・スケジューリング方法
US8159944B2 (en) Time based queuing
Lim et al. Weighted deficit earliest departure first scheduling
JP2003087313A (ja) 多重化装置および帯域制御装置およびプログラムおよび記録媒体
Ferreira et al. Adaptive admission control in a NGN service platform
Kiameso et al. Analysis of prioritized scheduling of assured forwarding in DiffServ Architectures
WO2014032960A1 (en) Method and device for scheduling data traffic
Ferreira et al. Adaptive admission control in real-time systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060209

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070320

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070614

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080909

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080925

R150 Certificate of patent or registration of utility model

Ref document number: 4195221

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131003

Year of fee payment: 5

EXPY Cancellation because of completion of term