JP4195221B2 - コンピュータ・ネットワークでパケットの伝送を制御する方法およびシステム - Google Patents
コンピュータ・ネットワークでパケットの伝送を制御する方法およびシステム Download PDFInfo
- Publication number
- JP4195221B2 JP4195221B2 JP2001540492A JP2001540492A JP4195221B2 JP 4195221 B2 JP4195221 B2 JP 4195221B2 JP 2001540492 A JP2001540492 A JP 2001540492A JP 2001540492 A JP2001540492 A JP 2001540492A JP 4195221 B2 JP4195221 B2 JP 4195221B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- transmission rate
- rate
- level
- excess bandwidth
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
- H04L47/568—Calendar queues or timing rings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
- H04L49/1546—Non-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)
Description
【発明の属する技術分野】
本発明は、コンピュータ・ネットワークに関し、具体的には、コンピュータ・ネットワーク内でのデータの破棄の制御、したがって、データの伝送の制御の方法およびシステムに関する。
【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には、複数のプロトコル・プロセッサおよびコプロセッサが含まれる。入EDS12および出EDS16は、それぞれ、イーサネット(R)・デバイスなどのデバイスからスイッチ・ファブリックに移動するトラフィックおよびスイッチ・ファブリックからデバイスに移動するトラフィックの、あるエンキュー機能、デキュー機能、およびスケジューリング機能を実行することができる。入SWI11および出SWI17は、別のネットワーク・プロセッサまたはスイッチ(図2に図示せず)などの他のデバイスへの接続用のリンクを提供する。スイッチ・ファブリックと共に使用される入SWI11および出SWI17は、スイッチ10のスイッチ・ファブリック3(図1)と結合される。入PMM14および出PMM15は、それぞれ物理層デバイスからトラフィックを受け取り、物理層デバイスにトラフィックを送出する。ここで説明するプログラマブル・ネットワーク・プロセッサのアーキテクチャおよび動作は、本明細書に開示される発明とは別の保護の対象である。いくつかの応用例で、本明細書でスイッチ・ファブリックと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と、スケジューラ21および25が、入EDS12を使用して制御される。同様に、エンキュー機構27および32と、キュー28および34と、リアセンブラ30と、スケジューラ29および35は、出EDS16を使用して制御される。
【0007】
図3には、スケジューラ21、25、29、および35も示されている。スケジューラは、それぞれ、キュー20、24、28、および34から出る予定の個々のパケットのスケジューリングを制御する。一般に、下でより明瞭になるように、本明細書の関心事は、図2の出PMM15、出EDS16、および出SWI17によって示されるネットワーク・プロセッサ2の出部分である。本発明の例示的な焦点の1つに、ポートB36へのトラフィックを制御するスケジューラ35が含まれる。明瞭にするために、スケジューラの機能を、スケジューラ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で使用される方法を示す。方法REDは、通常は、エンキュー機構19、23、27、および32の1つによって、それぞれ対応するキュー20、24、28、および34を介するトラフィックを制御するのに使用される。明瞭にするために、方法REDを、エンキュー機構19およびキュー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】
パケットを、キュー・レベルに基づいて破棄することができるので、方法REDを用いると、スイッチ10を介するトラフィックに対するある程度の制御が可能になる。その結果、キュー20が満杯になる前にパケットを破棄する機構を有しないスイッチよりも、droptailに起因してドロップされるパケットを少なくすることができる。droptailが発生するのは、キューが満杯になったのでパケットをドロップしなければならない時である。その結果、パケットをドロップするかどうかを判定する際に、パケットの優先順位を考慮する機会がない。さらに、いくつかの情況で、方法REDによって、スイッチ10にパケットを送るホストの同期化が低下する可能性がある。これが発生するのは、キュー・レベルが最大キュー・レベルまたはその近くである時にすべてのパケットをドロップするのではなく、従来の伝送率に基づいてパケットがランダムにドロップされる可能性があるからである。したがって、スイッチ10の性能は、方法REDを使用しないスイッチすなわち、バッファ・リソースが枯渇した時に次に到着するパケットを単純にドロップするスイッチに対して改善される。
【0015】
方法REDによって、スイッチ10の動作が改善されるが、当業者は、多くの情況で、この方法がスイッチ10を介するトラフィックを適当に制御できなくなる可能性があることを容易に理解するであろう。パケットまたはセルを、キューが満杯になる前にドロップすることができるという事実にもかかわらず、ホストは、いくつかの情況で同期化される傾向を有する。これは、スイッチ10のトラフィックの適度なまたは高いレベルの輻輳について特にそうである。従来の伝送率は、キュー・レベルに基づく。しかし、キュー・レベルは、スイッチの状態を示していない場合がある。たとえば、最小閾値未満のキュー・レベルが、スイッチ10内の低いレベルのトラフィック(スイッチを通過するパケットの数が少ない)に起因する可能性がある。しかし、低いキュー・レベルが、スイッチ10を通る高いトラフィックが原因の前のエポックでの多数の破棄に起因する可能性もある。低いキュー・レベルが、低いトラフィック・レベルに起因する場合には、従来の伝送率を増やすことが適当である。低いキュー・レベルが、高い破棄率に起因する場合には、従来の伝送率を増やすことが望ましくない可能性がある。方法REDは、これらの情況を区別しない。その結果、伝送率が、そうすべきでない時に増やされる場合がある。これが行われた時には、キューが急速に満たされる可能性がある。その後、伝送率が下げられ、キュー・レベルが減る。キュー・レベルが下がった時に、伝送率が増やされ、キューが再び急速に満たされる。したがって、スイッチ10は、キュー満杯とキュー空の間で発振し始める。その結果、スイッチ10の平均使用量が、非常に低くなり、スイッチ10を使用するネットワークの性能が低下する。
【0016】
図5に、米国ニューヨーク州アーモンクのInternational Business Machines, Inc.社の従業員によってより最近に開発された方法の流れ図を示す。この方法を、BLUEと称する。方法BLUEは、キュー・レベルだけではなく、伝送速度および提供速度も考慮に入れる。提供速度とは、パケットまたはセルがエンキュー機構に提供されて対応するキューに供給される速度である。方法REDと同様に、方法BLUEを、エンキュー機構19およびキュー20を使用して説明する。ステップ52を介して、キュー20のキュー・レベル、エンキュー機構19によってキュー20に供給される伝送率、および提供速度が、終了したばかりのエポックについて判定される。提供速度は、パケットがエンキュー機構19に供給される速度である。したがって、提供速度は、ポートA18の1つまたは複数によって供給されるトラフィックのフローから来る可能性がある。
【0017】
その後、ステップ54を介して、パケット・ロスまたはある閾値を超えるキュー・レベルがあったかどうかを判定する。どちらのイベントも、破棄率を増やさなければならないことを示す。そうである場合には、ステップ56を介して、経験的に決定することができる第1定数量だけ破棄率を増分する。ステップ56で、1から破棄率を引いた値である伝送率を減らす。ステップ54で、破棄率を増やしてはならないことが示される場合には、ステップ58を介して、破棄率を減らさなければならないかどうかを判定する。キュー・レベルが低いか、提供速度が低い場合に、破棄率を減らさなければならない。破棄率を減らさなければならない場合には、ステップ60を介して、やはり経験的に決定することができる第2定数量を引くことによって、これが達成される。ステップ62を介して、変更される場合にステップ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は、behaviour aggregate flow内のセッションに関するものではない。そうではなく、DiffServは、behaviour aggregate flowの間の帯域幅の割振りに関する。DiffServによれば、過剰帯域幅が、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方法は、機能するが、当業者は、キュー・レベル閾値の変更がネットワークを通る特定のパイプにどのような影響を有するかを判定することが困難であることを容易に理解するであろう。したがって、この方法を使用するネットワーク管理者は、異なる顧客またはコンピュータ内のパイプ(behaviour aggregate flow)について所望のフロー速度に達する前に、大量の経験を積む必要が生じる可能性がある。
【0023】
さらに、この方法は、サービスの品質を測定するのに通常使用されるパラメータに対して間接的に動作する。キュー・レベルは、サービスに関して通常使用される判断基準の直接の尺度ではない。通常、たとえばDiffServ(IETF RFC 2475および関連RFCを参照されたい)では、サービスのレベルが、4つのパラメータすなわち、ドロップ率、帯域幅、待ち時間、およびジッタによって測定される。ドロップ率は、トラフィックのうちでスイッチを介して流れる際にドロップされるものの比率である。behaviour aggregate flowの帯域幅は、スイッチを横切って宛先に達するbehaviour aggregate flowのトラフィックの量の尺度である。待ち時間は、ネットワークを介してトラフィックを送る際にこうむる遅延である。ジッタは、経時的な待ち時間の変動である。キュー・レベルは、サービスの品質の直接の尺度とみなされない。したがって、この方法は、サービスの品質の判断基準のいずれにも直接には対処せず、ネットワーク管理者が異なるレベルのサービスを提供するのにこの方法を使用することが、より困難になっている。
【0024】
方法REDまたは方法BLUEを使用する時であっても、スケジューラ35などのスケジューラに、所与の時間内に達成できる量より多い量の作業が与えられる場合がある。具体的に言うと、特定の長さの時間であまりに大量のパケットがキュー34から除去されることが所望される場合に、スケジューラが、スイッチ10を通るトラフィックに対処できなくなる可能性がある。たとえば、スケジューラ35が、キュー34から除去されるパケットが、ターゲット・ポートなどのその第1の宛先に、第1の速度で転送されることを保証することができる場合がある。この第1の速度は、ターゲット・ポートがトラフィックを受け入れる能力などのさまざまな要因によって制限される可能性がある。方法REDおよびBLUEでは、パケットを、第2の速度でキューから除去できる場合がある。第2の速度が、第1の速度より高い場合に、パケットが、スケジューラ35内でバック・アップされ始める。たとえば、スケジューラ35に、カレンダと加重公平キューイング・リングが含まれる場合に、カレンダ内および加重公平キューイング・リング内のすべての位置が、最終的に占められる可能性がある。したがって、パケットは、スケジューラ35内のカレンダまたは加重公平キューイング・リング内の位置が空くまで、キュー34から出ることができなくなる。その結果、スイッチ10を介して移動するパケットの待ち時間が増え、トラフィックが遅くなり、スイッチ10が、望まれるほど効率的に機能しなくなる。
【0025】
【発明が解決しようとする課題】
上の議論を念頭において、当業者は、スイッチを介するトラフィックをよりよく制御するシステムおよび方法が必要であることを諒解するであろう。本発明は、そのような必要に対処する。
【0026】
【課題を解決するための手段】
本発明は、コンピュータ・ネットワーク内で複数のパケットのフローを制御できるようにする方法、装置、およびコンピュータ可読媒体を提供する。コンピュータ・ネットワークに、キューが含まれる。この方法および装置には、キューのキュー・レベルを判定することと、キューへの複数のパケットの提供速度を判定することが含まれる。この方法および装置には、キュー・レベルが少なくとも第1キュー・レベルと第2キュー・レベルの間である場合に伝送率およびキュー・レベルが臨界減衰(本明細書で定義する)されるように、キューへの複数のパケットの伝送率を、キュー・レベルおよび提供速度に基づいて制御することも含まれる。言い換えると、キュー・レベルが少なくとも第1キュー・レベルと第2キュー・レベルとの間にある場合に、伝送率およびキュー・レベルの各値の増減の繰り返しである発振が減衰するように、伝送率を制御することが含まれる。
伝送率は、時間に関する伝送率の変化を第1量に第2量をかけたものに等しくセットされる。ここで、第2量は、第1定数から、第2定数に伝送率をかけたものを引き、キュー・レベルを最大の可能なキュー・レベルによって割ったものを引いたものである。第1量は、提供速度を4倍したものを、最大の可能なキュー・レベルに第2定数の二乗を掛けたもので割ったものである。
またこの方法および装置には、キューを使用する複数のパイプであって、該複数のパイプの各パイプのフローが、提供速度に伝送率をかけたものである複数のパイプを定義することと、複数のパイプのそれぞれの最小フローおよび最大フローをセットすることと、キュー・レベルが減少したか0である場合に過剰帯域幅が存在するとし、そうでない場合に過剰帯域幅が存在しないとすることにより、キューについて過剰帯域幅が存在するかどうかを判定することと、キュー・レベルが減ったか0である場合に、1になるように瞬間過剰帯域幅信号をセットし、そうでない場合に、0になるように瞬間過剰帯域幅信号をセットすることと、そして、瞬間過剰帯域幅信号の指数関数的加重平均になるように過剰帯域幅信号をセットすることとが含まれる。
この場合、1つには、キューを介するトラフィックが安定するようにするために、過剰帯域幅が存在する場合、第1定数に過剰帯域幅信号をかけたものである第1量を前の伝送率に加えたものになるようにフローの伝送率をセットし、過剰帯域幅が存在しない場合に、前のフローに第2定数をかけたものである第2量を前の伝送率から引いたものになるように伝送率をセットする。
また1つには、複数のパイプからの複数のフローの合計が、第1キュー・レベルより大きい場合に、フローの前記伝送率に1未満の第1定数をセットすることと、パイプのフローが前記パイプの前記最小フロー以下である場合に、1と、パイプの前の伝送率に第1定数を加えたものとの最小値になるようにパイプの伝送率をセットすることと、パイプのフローがパイプの最大フローを超える場合に、前パイプの前の伝送率に1未満である第2定数をかけたものになるように伝送率をセットすることと、それ以外の場合に、グローバル伝送率と第1量との最小値になるようにパイプの伝送率をセットすることとが含まれる。
ここで、第1量は、過剰帯域幅が存在する場合に前の伝送率に第2量を加えたものであり、第1量が、過剰帯域幅が存在しない場合に前の伝送率から第3量を引いたものであり、第2量が、第3定数に過剰帯域幅信号をかけたものであり、第3定数が、最小フローに依存第3量が、最小フローに依存する第4定数に前のフローをかけたものであり、グローバル伝送率が、1と第1値との最小値であり、第1値が、第5定数と第2値との最大値であり、第2値が、前のグローバル伝送率に第3値を加えたものであり、第3値が、第4値に第5値をかけたものであり、第4値が、第6定数に前の乗数をかけ、グローバル提供速度をかけ、時間間隔をかけ、最大キュー・レベルによって割ったものであり、第5値が、第7定数から、第8定数に前の乗数をかけ、キュー・レベルをかけ、最大キュー・レベルで割ったものを引いたものであり、乗数が、前のキュー・レベルが閾値未満の場合に第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になる。同様に、Qmax/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/Q max すなわち
κ(t)=4×I/(Q max ×α 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を介して、前のエポックについてキュー・レベルおよび提供速度を判定する。キュー・レベルは、エポックの終りに、最小キュー・レベルQminおよび最大キュー・レベル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にトラフィックを送るホストの同期化を防ぐことができる。臨界減衰がもたらされるので、方法90または100は、方法REDよりよいシステムの安定性を提供することができる。また、臨界減衰がもたらされるので、方法90および100は、方法BLUEよりすばやく平衡に達する。その結果、方法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のキュー・レベルの判定に、エンキュー機構19に対応するキュー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に示されたスイッチ10と共に使用することができる。明瞭にするために、方法140を、図3に示されたキュー20およびエンキュー機構19に関して説明する。しかし、方法140は、他のキューおよび他のエンキュー機構と共に使用することができる。好ましい実施形態では、方法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が、スイッチ10の機能を維持するためにパケットを事前に破棄する。ステップ158を介して、エポックが終わったかどうかを判定する。そうでない場合には、ステップ156に戻る。終わった場合には、ステップ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内で実行することができる。明瞭にするために、方法160を、図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以下であるが、制御されるパイプの個数に対する実際の上限はない。さらに、各パイプは、キュー20に提供速度Ii(t)でトラフィックを提供し、このiは、i番目のパイプを表す。異なる要因に応じて、トラフィックの一部をドロップすることができる。i番目のパイプの伝送率Ti(t)は、キュー20に伝送されるi番目のパイプからのトラフィックの分数である。したがって、i番目のパイプの瞬間フローは、fi(t)=Ii(t)×Ti(t)である。好ましい実施形態では、方法160は、それを流れるトラフィックを有するパイプが、少なくともその最小フローを有することを保証することもできる。
【0077】
ステップ164を介して、キュー20が使用可能な過剰帯域幅を有するかどうかを判定する。好ましい実施形態では、キュー・レベルが増加中である場合には、過剰帯域幅が存在しないと判定される。また、好ましい実施形態では、キュー20が空である場合、またはキュー20のキュー・レベルが減少中である場合に、ステップ164で過剰帯域幅が存在すると判定される。したがって、ステップ164に、キュー・レベルを判定することと、そのキュー・レベルを前のキュー・レベルと比較することが含まれることが好ましい。また、好ましい実施形態では、キュー・レベルが0でも減少中でもない場合に、過剰帯域幅が存在しないと判定される。しかし、過剰帯域幅が存在するかどうかを判定する他の判断基準の使用を妨げるものはない。
【0078】
ステップ164で、過剰帯域幅が存在すると判定される場合には、ステップ166を介して、パイプのフローを線形に増やす。ステップ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は、パイプに対応する、behaviour 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で、過剰帯域幅が存在すると判定される場合には、ステップ184を介して、瞬間過剰帯域幅信号に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つの実施形態では、パケットがランダムにドロップされる。ステップ192を介して、エポックが完了したかどうかを判定する。そうでない場合には、ステップ190を介して、トラフィックが、同一の伝送率に基づいて転送され続ける。エポックが終了した場合には、この方法は、ステップ176での開始を繰り返す。
【0089】
方法170は、フローを線形に増やし、フローを指数関数的に減らすので、方法160に似た形で機能し、同一の利益の多くを提供する。したがって、方法170では、パイプを介するキュー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を、パイプに関して説明するが、方法20は、パイプに対応する、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)、Ti(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を使用するネットワークなどのさまざまな応用分野で、異なる顧客、クラス、behaviour aggregate flows、または異なる媒体に異なるレベルのサービスを提供することを望むインターネット・サービス・プロバイダが使用することもできる。これは、方法200のパイプに対応する、behaviour aggregate flow、顧客、体、または他のフローについて、単に最小フローおよび最大フローをセットできるようにすることによって達成される。したがって、サービスのDiffServ判断基準であるパイプを介するフローを、望み通りに調整することができる。
【0103】
さらに、方法200は、上で説明した2つの方法の追加の利益を利用する。グローバル伝送率を使用することができるので、方法200では、より高い輻輳を効率的な形で考慮することができる。キュー20が繰り返して閾値を超えるに連れて減少する仮想最大キュー・レベルに対応する乗数の使用によって、スイッチが広範囲の超過に対して安定を保てることが保証される。1実施形態では、800%までの超過を考慮に入れることができる。さらに、グローバル伝送率が、ある意味で臨界減衰されるので、キュー・レベルおよびグローバル伝送率によって記述される系は、素早く安定状態に達する。その結果、方法200は、平衡に関する所望の伝送速度を素早く達成することを可能にする。
【0104】
一般に、方法200のうちで方法160および170に対応する部分をスイッチ10で使用することが想定されている。したがって、パイプは、一般に、安定した極限閉軌道が達成されるように調整される。好ましい実施形態では、パイプを介するフローが、キュー・レベルがもはや減少しなくなるまで増やされ、キュー・レベルが減少中または0になるまで減らされる。これは、通常モードの動作であると思われる。しかし、クリティカルな場合に、たとえば複数のパイプが突然アクティブになり、その最小フローを所望するか、キュー・レベルが閾値を超えたので、別の方法がアクティブになる可能性がある。たとえば、グローバル伝送率を使用して、キュー20が満杯にならないことを保証することを試みることができる。クリティカルであり、通常は一時的な状態を考慮に入れた時には、安定した極限閉軌道をもたらす伝送率が、使用される。したがって、方法200を使用するスイッチは、より広範囲の超過に対して効果的に動作することができる。
【0105】
本発明では、複数のパイプの1パイプのフローの伝送率がグローバル伝送率と差分伝送率の最小値になるようにセットすることを含む方法およびシステムも企図されている。過剰帯域幅が存在し、パイプのフローがそのパイプについてセットされた最大フロー未満である場合に、差分伝送率によって、最小フローまたは最大フローに基づいてフローを線形に増やすことができる。過剰帯域幅が存在せず、フローがパイプについてセットされた最小フローを超える場合に、差分伝送率によって、最小フローまたは最大フローに基づいて、パイプのフローを指数関数的に減らすこともできる。したがって、キューを介するトラフィックが安定する。この方法およびシステムには、伝送率に基づいてキューへのトラフィックの伝送を制御することと、キューからのトラフィックを制御するためにスケジューラを使用することも含まれる。スケジューラは、1つのポリシまたはポリシの組合せをイネーブルすることができる。たとえば、スケジューラは、先入れ先出し、優先順位キューイング、カスタム・キューイング、加重公平キューイング、クラス・ベース加重公平キューイング、多目的インターフェース・プロセッサ加重公平キューイング、ラウンド・ロビン、加重ラウンド・ロビン、または他の既知のキューイング・ポリシの1つまたは組合せを使用することができる。
【0106】
本発明による追加の方法およびシステムをより具体的に示すために、本発明による方法220の1実施形態を示す図15および16を参照されたい。方法220は、図1および3のスイッチ10と共に使用することができる。したがって、方法220を、複数のブレード7、8、および9と各ブレード7、8、および9上の複数のポートを有するスイッチ10内で実行することができる。明瞭にするために、方法220を、図3に示されたキュー34およびエンキュー機構32に関して説明する。好ましい実施形態では、方法220が、スイッチ10の出側で使用され、したがって、ネットワーク・プロセッサ5の出側で使用される。したがって、方法220は、エンキュー機構32、キュー34、およびスケジューラ35と共に使用されることが好ましい。しかし、方法200を、キュー20、24、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によってサービスされるパイプの最大個数が、2248以下であるが、制御されるパイプの数に対する実際の上限はない。さらに、各パイプが、提供速度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で判定される。代替実施形態では、方法20のキュー・レベルの判定に、エンキュー機構32に対応するキュー34のレベルの判定が含まれる。また、好ましい実施形態では、伝送率およびグローバル伝送率が、1エポックにわたって一定であり、したがって前のエポック中にいつでも判定できるが、前のエポックの始めに判定されることが好ましい。
【0109】
ステップ230を介して、グローバル伝送率が使用される場合に、グローバル伝送率を制御し、その結果、グローバル伝送率およびキュー・レベルが、キュー・レベルのある範囲にわたって臨界減衰されるようにする。グローバル伝送率は、キュー・レベルおよび提供される入力に基づいて制御される。好ましい実施形態では、グローバル伝送率が、前のグローバル伝送率にも基づいて制御される。好ましい実施形態では、ステップ230で、臨界減衰のために望ましいグローバル伝送率を提供するために前のエポック以降のグローバル伝送率の変化を計算し、このグローバル伝送率の変化を、前のエポックのグローバル伝送率に加算する。グローバル伝送率がそのように制御されるキュー・レベルの範囲を、すべての可能なキュー・レベルに拡張することができる。しかし、好ましい実施形態では、臨界減衰のためにグローバル伝送率が制御される範囲が、0以上の最小キュー・レベルと、最大の可能なキュー・レベル以下の最大キュー・レベルとの間である。
【0110】
ステップ232(図16)を介して、キュー34が使用可能な過剰帯域幅を有するかどうかを判定する。好ましい実施形態では、キュー・レベルが増加中である場合に、過剰帯域幅が存在しないと判定される。また、好ましい実施形態では、ステップ232で、キュー34が空である場合、またはキュー34のキュー・レベルが0である、低い、または減少中である場合に、過剰帯域幅が存在すると判定される。したがって、ステップ232に、キュー・レベルを判定することと、そのキュー・レベルを前のキュー・レベルと比較することが含まれることが好ましい。また、好ましい実施形態では、キュー・レベルが0でなく、減少中でもない場合に、過剰帯域幅が存在しないと判定される。しかし、過剰帯域幅が存在するかどうかを判定する別の判断基準の使用を妨げるものはない。
【0111】
ステップ232で、過剰帯域幅が存在すると判定される場合には、ステップ234を介して、パイプの差分伝送率をセットして、パイプのフローを線形に増やせるようにする。ステップ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は、そのようなパケットを、はるかに低い優先順位でスケジューリングし、その結果、そのパケットが、スイッチ10にそのパケットを転送するのに十分な帯域幅がある時に限ってそのパケットが先に送られるようにすることができる。
【0117】
ステップ230でセットされたグローバル伝送率およびステップ234または236でセットされた差分伝送率を使用して、ステップ242でスケジューラの使用に関連する伝送率を判定することには、3つの利点がある。第1に、方法220は、伝送率としてのグローバル伝送率の使用を介して、キュー34が満杯にならないことを保証することができる。キュー34が満たされると、キュー34に置かれるそれ以降のパケットのドロップが必要になるが、これは望ましくない。グローバル伝送率は、キュー34のキュー・レベルが、キュー34が満杯になる可能性があるという懸念を引き起こすのに十分に高い時に、伝送率としてステップ238で選択される可能性がある。したがって、グローバル伝送率は、ステップ238で伝送率としてセットされることが希であることが好ましい。
【0118】
グローバル伝送率が、伝送率として使用される時には、伝送率およびキュー・レベルによって記述される系の臨界減衰がもたらされる。これによって、キュー34を介する、したがってスイッチ10を介するトラフィックが、素早く安定状態に達することが可能になる。この安定状態は、最小の所望のキュー・レベルと最大の所望のキュー・レベルの間のキュー・レベルであり、このレベルは、キュー・レベルが、絶対に、キュー34が満杯になる危険性が生じるのに十分に高くならないことを保証するようにセットすることができる。臨界減衰がもたらされるので、キュー・レベルおよび伝送率によって記述される、キュー34を介するトラフィックは、グローバル伝送率が使用される時に最短の時間で安定状態に達しなければならない。
【0119】
方法220を用いると、差異化サービスを安定した形で提供できるようになる。ステップ238を介して、キュー・レベルが最大の所望のキュー・レベルを超える危険がない場合に、差分伝送率が使用される。言い換えると、ステップ234または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のより詳細な実施形態を示す。ステップ230は、前のエポックのグローバル伝送率、キュー・レベル、および提供速度が判定された後に開始される。好ましい実施形態では、前のエポックのグローバル伝送率が、方法220の前の反復で判定される。しかし、伝送率がまだ使用可能でない場合には、伝送率を判定することができる。キュー・レベルは、エポックの終りに、最小キュー・レベルQminおよび最大キュー・レベルQmaxに対して相対的に判定されることが好ましい。
【0122】
ステップ252を介して、キュー・レベルがQminを超えるかどうかを判定する。そうでない場合には、ステップ254を介して、グローバル伝送率に1をセットする。したがって、ステップ254によって、キュー・レベルが十分に低い場合に、すべてのパケットがエンキュー機構32によってキュー34に伝送されることが保証される。ステップ252で、キュー・レベルがQminを超えると判定される場合には、ステップ256を介して、キュー・レベルがQmaxを超えるかどうかを判定する。キュー・レベルがQmaxを超える場合には、ステップ258を介して、グローバル伝送率に0をセットする。したがって、ステップ258によって、キュー・レベルが高すぎる場合に、すべてのパケットが破棄されることが保証される。
【0123】
キュー・レベルが、Qmin未満でなく、Qmaxを超えない場合には、ステップ260を介して、臨界減衰のためにグローバル伝送率を制御する。グローバル伝送率としての設定をより明瞭に説明するために、キュー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になる。同様に、Qmax/4以下のQで、gTが1と等しくならなければならないことが決定された。したがって、この2つの極端な平衡で、
0=β−α×5/8−1 かつ
=β−α−1/4
である。これらの前提から、αおよびβの数値を、それぞれ2および2.25に決定することができる。Q/QmaxおよびI/Oの他の許容範囲を設けて、αおよびβの他の数値を得ることができることに留意されたい。したがって、αおよびβを、平衡条件およびスイッチ10が動作することを望まれる範囲に関するいくつかの仮定に基づいて決定することができる。安定性に関して、下記を示すことができる。
α 2 ×κ(t) 2 =4×κ(t)×I/Q max すなわち
κ(t)=4×I/(Q max ×α 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で、過剰帯域幅が存在すると判定される場合には、ステップ276を介して、瞬間過剰帯域幅信号に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、および296のそれぞれの位置をトラバースすることによって、スケジューラ290は、パケットが、パケットの優先順位との一貫性を有する形でキュー20などの対応するキューから送出されることを保証する。
【0136】
リング298は、最低の優先順位のパケットのスケジューリングに使用されることが好ましい。したがって、リング298に置かれたパケットは、カレンダ292、294、および296の1つに置かれたパケットより低い優先順位を有する。リング298は、作業保存的であることが好ましい。したがって、特定の長さの時間の間に、リング298は、リング298が空でない限り、一定の量の作業を行う。リング298も、特定の数の位置を有する。リング298の各位置は、正確に0個または1個のパケットを保持することができる。しかし、リング298がトラバースされる時に、リング298は、占められていないすべての位置をスキップして、次の占められている位置に直接に進む。その結果、リング298が、作業保存的になる。
【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パイプは、保証された最小速度を有し、これに対して、顧客が通常は特別料金を支払う。しかし、AFパイプは、ネットワーク内で使用可能な過剰なリソースまたは帯域幅のある部分を割り振られる場合がある。したがって、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からパケットを送出する。また、スケジューラ290は、カレンダ296からよりもすばやくカレンダ294からパケットを送出する。また、スケジューラ290は、リング298からよりもすばやくカレンダ296からパケットを送出する。したがって、カレンダ292、294、および296を使用してスケジューリングされるパケットは、リング298内でスケジューリングされるパケットの前に送出されることが好ましい。
【0143】
ステップ322を介して、最高優先順位のカレンダ292内の現在位置が空であるかどうかを判定する。現在位置が空でない場合には、ステップ324を介して、カレンダ292の現在位置のパケットを、キューから除去し、スイッチの次の部分に送出する。カレンダ292の現在位置が空である場合には、ステップ326を介して、2番目に高い優先順位のカレンダ294の現在位置が空であるかどうかを判定する。カレンダ294の現在位置が空でない場合には、ステップ328を介して、その位置のパケットを、キューから除去し、スイッチの次の部分に送出する。カレンダ294の現在位置が空である場合には、ステップ330を介して、3番目に高い優先順位のカレンダ296の現在位置が空であるかどうかを判定する。カレンダ296の現在位置が占められている場合には、ステップ332を介して、カレンダ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、および296およびリング298と方法320を使用して、キューから除去される。
【0145】
したがって、スケジューラ290は、パケットの特性ならびに、パイプからの前のパケットの特性などの、パケットが来たパイプの特性に基づいて、キュー34などのキューからの、異なるパイプからの個々のパケットの除去をスケジューリングする。その結果、スケジューラ290は、スイッチを介するトラフィックを微細に制御することができる。
【0146】
したがって、上で説明した方法を使用して、トラフィックを介してスイッチ10を制御することができる。たとえばグローバル伝送率の使用を介して、スイッチのメモリ・リソースを使い果たさないことを保証することができる。具体的に言うと、特定のメモリ・リソースのキュー・レベルを、ほとんどの情況で低いレベルに駆動することができる。低いキュー・レベルは、キューが使い果たされないことだけではなく、満杯またはほぼ満杯のキューに部分的に起因するジッタおよび他の望ましくない現象を減らせるか回避できることも保証する。さらに、たとえば差分伝送率の使用を介して、差異化サービスを提供することができる。したがって、異なる顧客に、異なるレベルのサービスを提供することができる。さらに、スケジューラは、トラフィックがパケット・レベルで制御されることを保証することができる。さらに、説明したスケジューラおよび方法を使用することによって、達成が可能な量の作業がスケジューラに与えられることを保証することができる。したがって、スケジューラに起因する追加の待ち時間を、減らすかなくすことができる。
【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のスケジューラを作動させるいくつかの方法ステップの流れ図である。
Claims (27)
- (a)コンピュータ・ネットワーク内のキューを介して移動する複数のパケットのフローを制御するステップと、
(b)前記キューのキュー・レベルを判定するステップと、
(c)前記キューへの前記複数のパケットの提供速度を判定するステップと、
(d)前記キュー・レベルが少なくとも第1キュー・レベルと第2キュー・レベルとの間にある場合に、前記キューへの前記複数のパケットの伝送率および前記キュー・レベルについてそれら値の増減の繰り返しである発振が減衰するように、前記伝送率を制御するステップとを含み、
前記伝送率は、時間に関する前記伝送率の変化を第1量に第2量をかけたものに等しくセットされ、前記第2量が、第1定数から、第2定数に前記伝送率をかけたものを引き、更に前記キュー・レベルを最大の可能なキュー・レベルによって割ったものを引いたものであり、前記第1量が、前記提供速度を4倍したものを、前記最大の可能なキュー・レベルに前記第2定数の二乗を掛けたもので割ったものである、
方法。 - 前記キュー・レベルが繰り返し所定の閾値未満である場合は、前記最大の可能なキュー・レベルの値をとり、前記キュー・レベルが繰り返し前記所定の閾値を超える場合は、前記最大の可能なキュー・レベルよりも小さい値をとるものとして仮想的最大キュー・レベルを定義し、
前記伝送率の変化をセットする際に、前記最大の可能なキュー・レベルとして前記仮想最大キュー・レベルを使用する、請求項1に記載の方法。 - 前記キューが、さらに、ハードウェア・メモリ・リソースを含む、請求項1に記載の方法。
- 前記伝送率を制御するステップ(d)が、
(d1)前記複数のパケットの各パケットの前記伝送速度および優先順位に基づいて、前記複数のパケットの一部をドロップするステップ
をさらに含む、請求項1に記載の方法。 - 前記伝送率を制御するステップ(d)が、
(d1)前記キュー・レベルが最小閾値未満の場合に、前記伝送率に1をセットするステップと、
(d2)前記キュー・レベルが最大閾値を超える場合に、前記伝送率に0または0に近い小さい値セットするステップと、
(d3)前記キューレベルが、前記最小閾値と前記最大閾値との間にある場合に、前記伝送率および前記キュー・レベルについて前記発振が減衰されるように、前記伝送率を制御するステップと
をさらに含む、請求項1に記載の方法。 - (a)キューを使用する複数のパイプであって、該複数のパイプの各パイプのフローが、各パイプが前記キューにそのトラフックを提供する速度である提供速度に、前記キューに伝送される前記各パイプの前記トラフィックの伝送率をかけたものである、複数のパイプを定義するステップと、
(b)前記複数のパイプのそれぞれの最小フローおよび最大フローをセットするステップと、
(c)キュー・レベルが減少したか0である場合に過剰帯域幅が存在するとし、そうでない場合に過剰帯域幅が存在しないとすることにより、前記キューについて過剰帯域幅が存在するかどうかを判定するステップと、
(d)前記キュー・レベルが減ったか0である場合に、1になるように瞬間過剰帯域幅信号をセットし、そうでない場合に、0になるように前記瞬間過剰帯域幅信号をセットするステップと、
(e)前記瞬間過剰帯域幅信号の指数関数的加重平均になるように過剰帯域幅信号をセットするステップと、
前記キューを介する前記トラフィックが安定するようにするために
(f)前記過剰帯域幅が存在する場合、第1定数に前記過剰帯域幅信号をかけたものである第1量を前の伝送率に加えたものになるように前記フローの伝送率をセットするステップと、
(g)前記過剰帯域幅が存在しない場合に、前のフローに第2定数をかけたものである第2量を前記前の伝送率から引いたものになるように前記伝送率をセットするステップと、
を含む方法。 - 前記複数のパイプが、複数のbehaviour aggregate flowである、請求項6に記載の方法。
- 前記ステップ(f)または前記ステップ(g)が、前記複数のパイプのそれぞれについて実行される、請求項6に記載の方法。
- 前記第1定数および前記第2定数が、前記パイプの前記最小フローに依存する、請求項6に記載の方法。
- 前記第1定数が、重みに第3量をかけたものであり、前記第3量が、前記キューが当該キューから項目を出力できる、定義された速度であるキュー・サービス速度に前記パイプの前記最小フローを加え、前記複数のパイプのそれぞれの前記最小フローの合計に前記キュー・サービス速度をかけたものを引いたものである、請求項6に記載の方法。
- (a)キューを使用する複数のパイプであって、該複数のパイプの各パイプのフローが、各パイプが前記キューにそのトラフックを提供する速度である提供速度に、前記キューに伝送される前記各パイプの前記トラフィックの伝送率をかけたものである、複数のパイプを定義するステップと、
(b)前記複数のパイプのそれぞれの最小フローおよび最大フローをセットするステップと、
(c)キュー・レベルが減少したか0である場合に過剰帯域幅が存在するとし、そうでない場合に過剰帯域幅が存在しないとすることにより、前記キューについて過剰帯域幅が存在するかどうかを判定するステップと、
(d)前記キュー・レベルが減ったか0である場合に、1になるように瞬間過剰帯域幅信号をセットし、そうでない場合に、0になるように前記瞬間過剰帯域幅信号をセットするステップと、
(e)前記瞬間過剰帯域幅信号の指数関数的加重平均になるように過剰帯域幅信号をセットするステップと、
前記キューを介する前記トラフィックが安定するようにするために
(f1)前記複数のパイプからの複数のフローの合計が、第1キュー・レベルより大きい場合に、前記フローの前記伝送率に1未満の第1定数をセットするステップと、
(f2)前記パイプの前記フローが前記パイプの前記最小フロー以下である場合に、1と、前記パイプの前の伝送率に前記第1定数を加えたものとの最小値になるように前記パイプの前記伝送率をセットするステップと、
(f3)前記パイプの前記フローが前記パイプの前記最大フローを超える場合に、前記パイプの前記前の伝送率に第2定数をかけたものになるように前記伝送率をセットするステップであって、前記第2定数が、1未満である、ステップと、
(f4)それ以外の場合に、グローバル伝送率と第1量との最小値になるように前記パイプの前記伝送率をセットするステップであって、前記第1量が、過剰帯域幅が存在する場合に前記前の伝送率に第2量を加えたものであり、前記第1量が、過剰帯域幅が存在しない場合に前記前の伝送率から第3量を引いたものであり、前記第2量が、第3定数に過剰帯域幅信号をかけたものであり、前記第3定数が、前記最小フローに依存し、前記第3量が、前記最小フローに依存する第4定数に前記前のフローをかけたものであり、前記グローバル伝送率が、1と第1値との最小値であり、前記第1値が、第5定数と第2値との最大値であり、前記第2値が、前のグローバル伝送率に第3値を加えたものであり、前記第3値が、第4値に第5値をかけたものであり、前記第4値が、第6定数に前の乗数をかけ、前記グローバル提供速度をかけ、時間間隔をかけ、最大キュー・レベルによって割ったものであり、前記第5値が、第7定数から、第8定数に前記前の乗数をかけ、前記キュー・レベルをかけ、前記最大キュー・レベルで割ったものを引いたものであり、前記乗数が、前のキュー・レベルが閾値未満の場合に第1レベルに近づき、前記前のキュー・レベルが前記閾値を超える場合に第2レベルに近づく指数関数的加重平均である、ステップと、
を含む、方法。 - コンピュータ・ネットワークを介して移動する複数のパケットのフローの一部を保管するキューと、
前記キュー・レベルが少なくとも第1キュー・レベルと第2キュー・レベルとの間にある場合に前記キューへの前記複数のパケットの伝送率および前記キュー・レベルの各値の増減の繰り返しである発振が減衰するように、前記伝送率を制御し、かつ、前記複数のパケットの提供速度を受け取る前記キューに結合されたエンキュー機構とを含み、
前記伝送率は、時間に関する前記伝送率の変化を第1量に第2量をかけたものに等しくセットされ、前記第2量が、第1定数から、第2定数に前記伝送率をかけたものを引き、更に前記キュー・レベルを最大の可能なキュー・レベルによって割ったものを引いたものであり、前記第1量が、前記提供速度を4倍したものを、前記最大の可能なキュー・レベルに前記第2定数の二乗を掛けたもので割ったものである、
装置。 - 前記エンキュー機構が、前記キュー・レベルが繰り返し所定の閾値未満である場合は、前記最大の可能なキュー・レベルの値をとり、前記キュー・レベルが繰り返し前記所定の閾値を超える場合は、前記最大の可能なキュー・レベルよりも小さい値をとるものとして仮想的最大キュー・レベルを定義し、前記伝送率の変化をセットする際に、前記最大の可能なキュー・レベルとして前記仮想最大キュー・レベルを使用する、請求項12に記載の装置。
- 前記キューが、さらに、ハードウェア・メモリ・リソースを含む、請求項12に記載の装置。
- 前記エンキュー機構が、さらに、前記複数のパケットの各パケットの前記伝送速度および優先順位に基づいて、前記複数のパケットの一部を破棄する、請求項12に記載の装置。
- コンピュータ・ネットワークを介して移動する複数のパケットのフローの一部を保管するキューと、
前記キューを使用する複数のパイプであって、該複数のパイプの各パイプのフローが、各パイプが前記キューにそのトラフックを提供する速度である提供速度に、前記キューに 伝送される前記各パイプの前記トラフィックの伝送率をかけたものである、前記複数のパイプと、
前記伝送率を制御する、前記キューに結合されたエンキュー機構とを含み、
前記エンキュー機構が、(a)ユーザによって前記複数のパイプのそれぞれについてセットされる最大フローおよび最小フローを使用し、(b)キュー・レベルが減少したか0である場合に過剰帯域幅が存在するとし、そうでない場合に過剰帯域幅が存在しないとすることにより、前記キューについて過剰帯域幅が存在するかどうかを判定し、(c)前記キュー・レベルが減ったか0である場合に1になるように瞬間過剰帯域幅信号をセットし、そうでない場合に0になるように前記瞬間過剰帯域幅信号をセットし、(d)前記瞬間過剰帯域幅信号の指数関数的加重平均になるように前記過剰帯域幅信号をセットすることによって、前記過剰帯域幅が存在することを示し、前記キューを介する前記トラフィックが安定するようにするために、(e1)前記過剰帯域幅が存在する場合、第1定数に前記過剰帯域幅信号をかけたものである第1量を前の伝送率に加えたものになるように前記伝送率をセットし、(e2)前記過剰帯域幅が存在しない場合に、前記前の伝送率に第2定数をかけたものである第2量を前記前の伝送率から引いたものになるように前記伝送率をセットする、
装置。 - 前記複数のパイプが、複数のbehaviour aggregate flowである、請求項16に記載の装置。
- 前記第1定数および前記第2定数が、前記パイプの前記最小フローに依存する、請求項16に記載の装置。
- 前記第1定数が.125であり、前記第2定数が.875である、請求項18に記載の装置。
- 前記第1定数が、重みに第3量をかけたものであり、前記第3量が、前記キューが当該キューから項目を出力できる、定義された速度であるキュー・サービス速度に前記パイプの前記最小フローを加え、前記複数のパイプのそれぞれの前記最小フローの合計に前記キュー・サービス速度をかけたものを引いたものである、請求項18に記載の装置。
- コンピュータ・ネットワークを介して移動する複数のパケットのフローの一部を保管するキューと、
前記キューを使用する複数のパイプであって、該複数のパイプの各パイプのフローが、各パイプが前記キューにそのトラフックを提供する速度である提供速度に、前記キューに伝送される前記各パイプの前記トラフィックの伝送率をかけたものである、前記複数のパイプと、
前記伝送率を制御する、前記キューに結合されたエンキュー機構とを含み、
前記エンキュー機構が、(a)ユーザによって前記複数のパイプのそれぞれについてセットされる最大フローおよび最小フローを使用し、(b)キュー・レベルが減少したか0である場合に過剰帯域幅が存在するとし、そうでない場合に過剰帯域幅が存在しないとすることにより、前記キューについて過剰帯域幅が存在するかどうかを判定し、(c)前記キュー・レベルが減ったか0である場合に1になるように瞬間過剰帯域幅信号をセットし、そうでない場合に0になるように前記瞬間過剰帯域幅信号をセットし、(d)前記瞬間過剰帯域幅信号の指数関数的加重平均になるように前記過剰帯域幅信号をセットすることによって、前記過剰帯域幅が存在することを示し、前記キューを介する前記トラフィックが安定するようにするために、(e1)前記複数のパイプからの複数のフローの合計が、第1キュー・レベルより大きい場合に、前記伝送率に1未満の第1定数をセットすることと、前記パイプの前記フローが前記パイプの前記最小フロー以下である場合に、1と、前記パイプの前の伝送率に前記第1定数を加えたものとの最小値になるように前記パイプの前記伝送率をセットすることと、前記パイプの前記フローが前記パイプの前記最大フローを超える場合に、前記パイプの前記前の伝送率に1未満の第2定数をかけたものになるように前記伝送率をセットすることと、それ以外の場合に、グローバル伝送率と第1量との最小値になるように前記パイプの前記伝送率をセットすることとによって前記フローを増やすか減らし、前記第1量が、過剰帯域幅が存在する場合に前記前の伝送率に第2量を加えたものであり、前記第1量が、過剰帯域幅が存在しない場合に前記前の伝送率から第3量を引いたものであり、前記第2量が、前記最小フローに依存する第3定数に前記過剰帯域幅信号をかけたものであり、前記第3量が、前記最小フローに依存する第4定数に前記前の伝送率をかけたものであり、前記グローバル伝送率が、1と第1値との最小値であり、前記第1値が、第5定数と第2値との最大値であり、前記第2値が、前のグローバル伝送率に第3値を加えたものであり、前記第3値が、第4値に第5値をかけたものであり、前記第4値が、第6定数に前の乗数をかけ、グローバル提供速度をかけ、時間間隔をかけ、最大キュー・レベルによって割ったものであり、前記第5値が、第7定数から、第8定数に前記前の乗数をかけ、前記キュー・レベルをかけ、前記最大キュー・レベルで割ったものを引いたものであり、前記乗数が、前のキュー・レベルが閾値未満の場合に第1レベルに近づき、前記前のキュー・レベルが前記閾値を超える場合に第2レベルに近づく指数関数的加重平均である、装置。 - 前記装置が、複数のブレードに対応する複数のプロセッサを含み、前記複数のプロセッサのそれぞれが、複数のポートを有し、前記キューが、前記複数のプロセッサのプロセッサのためのものである、請求項16又は21に記載の装置。
- (a)それを介してコンピュータ・ネットワーク内を流れる複数のパケットが渡されるキューのキュー・レベルを判定する命令と、
(b)前記キューへの前記複数のパケットの提供速度を判定する命令と、
(c)前記キュー・レベルが少なくとも第1キュー・レベルと第2キュー・レベルとの間にある場合に、前記キューへの前記複数のパケットの伝送率および前記キュー・レベルの各値の増減の繰り返しである発振が減衰するように、前記伝送率を制御する命令とを含み、
前記伝送率は、時間に関する前記伝送率の変化を第1量に第2量をかけたものに等しくセットされ、前記第2量が、第1定数から、第2定数に前記伝送率をかけたものを引き、更に前記キュー・レベルを最大の可能なキュー・レベルによって割ったものを引いたものであり、前記第1量が、前記提供速度を4倍したものを、前記最大の可能なキュー・レベルに前記第2定数の二乗を掛けたもので割ったものである、
コンピュータ実行可能プログラムを含むコンピュータ可読媒体。 - 前記キュー・レベルが繰り返し所定の閾値未満である場合は、前記最大の可能なキュー・レベルの値をとり、前記キュー・レベルが繰り返し前記所定の閾値を超える場合は、前記最大の可能なキュー・レベルよりも小さい値をとるものとして仮想的最大キュー・レベルを定義し、
前記伝送率の変化のセットにおいて、前記最大の可能なキュー・レベルとして前記仮想最大キュー・レベルを使用する、請求項23に記載のコンピュータ可読媒体。 - 前記伝送率を制御する命令(c)が、
(c1)前記複数のパケットの各パケットの前記伝送速度および優先順位に基づいて、前記複数のパケットの一部を破棄する命令をさらに含む、請求項23に記載のコンピュータ可読媒体。 - (a)キューを使用する複数のパイプであって、該複数のパイプの各パイプのフローが、各パイプが前記キューにそのトラフックを提供する速度である提供速度に、前記キューに伝送される前記各パイプの前記トラフィックの伝送率をかけたものである、複数のパイプを定義する命令と、
(b)前記複数のパイプのそれぞれの最小フローおよび最大フローをセットするステップと、
(c)キュー・レベルが減少したか0である場合に過剰帯域幅が存在するとし、そうでない場合に過剰帯域幅が存在しないとすることにより、前記キューについて過剰帯域幅が存在するかどうかを判定する命令と、
(d)前記キュー・レベルが減ったか0である場合に、1になるように瞬間過剰帯域幅信号をセットし、そうでない場合に、0になるように前記瞬間過剰帯域幅信号をセットする命令と、
(e)前記瞬間過剰帯域幅信号の指数関数的加重平均になるように過剰帯域幅信号をセットする命令と、
前記キューを介する前記トラフィックが安定するようにするために
(f)前記過剰帯域幅が存在する場合、第1定数に前記過剰帯域幅信号をかけたものである第1量を前の伝送率に加えたものになるように前記フローの伝送率をセットする命令と、
(g)前記過剰帯域幅が存在しない場合に、前のフローに第2定数をかけたものである第2量を前記前の伝送率から引いたものになるように前記伝送率をセットする命令と、
を含むコンピュータ可読媒体。 - (a)キューを使用する複数のパイプであって、該複数のパイプの各パイプのフローが、各パイプが前記キューにそのトラフックを提供する速度である提供速度に、前記キューに伝送される前記各パイプの前記トラフィックの伝送率をかけたものである、複数のパイプを定義する命令と、
(b)前記複数のパイプのそれぞれの最小フローおよび最大フローをセットする命令と、
(c)キュー・レベルが減少したか0である場合に過剰帯域幅が存在するとし、そうでない場合に過剰帯域幅が存在しないとすることにより、前記キューについて過剰帯域幅が存在するかどうかを判定する命令と、
(d)前記キュー・レベルが減ったか0である場合に、1になるように瞬間過剰帯域幅信号をセットし、そうでない場合に、0になるように前記瞬間過剰帯域幅信号をセットする命令と、
(e)前記瞬間過剰帯域幅信号の指数関数的加重平均になるように過剰帯域幅信号をセットする命令と、
前記キューを介する前記トラフィックが安定するようにするために
(f1)前記複数のパイプからの複数のフローの合計が、第1キュー・レベルより大きい場合に、前記フローの前記伝送率に1未満の第1定数をセットする命令と、
(f2)前記パイプの前記フローが前記パイプの前記最小フロー以下である場合に、1と、前記パイプの前の伝送率に前記第1定数を加えたものとの最小値になるように前記パイプの前記伝送率をセットする命令と、
(f3)前記パイプの前記フローが前記パイプの前記最大フローを超える場合に、前記パイプの前記前の伝送率に第2定数をかけたものになるように前記伝送率をセットするステップであって、前記第2定数が、1未満である、命令と、
(f4)それ以外の場合に、グローバル伝送率と第1量との最小値になるように前記パイプの前記伝送率をセットする命令であって、前記第1量が、過剰帯域幅が存在する場合に前記前の伝送率に第2量を加えたものであり、前記第1量が、過剰帯域幅が存在しない場合に前記前の伝送率から第3量を引いたものであり、前記第2量が、第3定数に過剰帯域幅信号をかけたものであり、前記第3定数が、前記最小フローに依存し、前記第3量が、前記最小フローに依存する第4定数に前記前のフローをかけたものであり、前記グローバル伝送率が、1と第1値との最小値であり、前記第1値が、第5定数と第2値との最大値であり、前記第2値が、前のグローバル伝送率に第3値を加えたものであり、前記第3値が、第4値に第5値をかけたものであり、前記第4値が、第6定数に前の乗数をかけ、前記グローバル提供速度をかけ、時間間隔をかけ、最大キュー・レベルによって割ったものであり、前記第5値が、第7定数から、第8定数に前記前の乗数をかけ、前記キュー・レベルをかけ、前記最大キュー・レベルで割ったものを引いたものであり、前記乗数が、前のキュー・レベルが閾値未満の場合に第1レベルに近づき、前記前のキュー・レベルが前記閾値を超える場合に第2レベルに近づく指数関数的加重平均である、命令と、
を含むコンピュータ可読媒体。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/448,197 | 1999-11-23 | ||
US09/448,190 US6724776B1 (en) | 1999-11-23 | 1999-11-23 | Method and system for providing optimal discard fraction |
US09/448,190 | 1999-11-23 | ||
US09/448,380 | 1999-11-23 | ||
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/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 JP2003515978A (ja) | 2003-05-07 |
JP4195221B2 true 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)
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 |
DE60333297D1 (de) | 2002-05-03 | 2010-08-19 | Cedar Point Comm Inc | Kommunikation vermittlungs architektur |
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 |
WO2016081426A1 (en) * | 2014-11-21 | 2016-05-26 | Arris Enterprises, Inc. | 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)
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 |
-
2000
- 2000-11-20 TW TW089124539A patent/TW580813B/zh not_active IP Right Cessation
- 2000-11-21 PL PL00356725A patent/PL356725A1/xx unknown
- 2000-11-21 CZ CZ20021780A patent/CZ20021780A3/cs unknown
- 2000-11-21 EP EP00976194A patent/EP1232627B1/en not_active Expired - Lifetime
- 2000-11-21 KR KR1020027006623A patent/KR100546968B1/ko not_active IP Right Cessation
- 2000-11-21 WO PCT/GB2000/004410 patent/WO2001039467A1/en active IP Right Grant
- 2000-11-21 HU HU0203928A patent/HUP0203928A2/hu unknown
- 2000-11-21 AT AT00976194T patent/ATE435556T1/de not_active IP Right Cessation
- 2000-11-21 CA CA002387101A patent/CA2387101C/en not_active Expired - Fee Related
- 2000-11-21 IL IL14943500A patent/IL149435A0/xx unknown
- 2000-11-21 CN CN00816049XA patent/CN1391756B/zh not_active Expired - Lifetime
- 2000-11-21 DE DE60042493T patent/DE60042493D1/de not_active Expired - Lifetime
- 2000-11-21 JP JP2001540492A patent/JP4195221B2/ja not_active Expired - Lifetime
- 2000-11-21 AU AU14069/01A patent/AU1406901A/en not_active Abandoned
- 2000-11-22 MY MYPI20005467A patent/MY133997A/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2001039467A1 (en) | 2001-05-31 |
CA2387101C (en) | 2006-01-03 |
MY133997A (en) | 2007-11-30 |
KR100546968B1 (ko) | 2006-01-31 |
DE60042493D1 (de) | 2009-08-13 |
ATE435556T1 (de) | 2009-07-15 |
CA2387101A1 (en) | 2001-05-31 |
CN1391756B (zh) | 2010-12-29 |
TW580813B (en) | 2004-03-21 |
PL356725A1 (pl) | 2004-06-28 |
WO2001039467A8 (en) | 2002-10-31 |
HUP0203928A2 (en) | 2003-04-28 |
CN1391756A (zh) | 2003-01-15 |
EP1232627B1 (en) | 2009-07-01 |
KR20020063578A (ko) | 2002-08-03 |
CZ20021780A3 (cs) | 2002-10-16 |
IL149435A0 (en) | 2002-11-10 |
JP2003515978A (ja) | 2003-05-07 |
EP1232627A1 (en) | 2002-08-21 |
AU1406901A (en) | 2001-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6674718B1 (en) | Unified method and system for scheduling and discarding packets in computer networks | |
US10764215B2 (en) | Programmable broadband gateway hierarchical output queueing | |
US8218437B2 (en) | Shared shaping of network traffic | |
US7142513B2 (en) | Method and multi-queue packet scheduling system for managing network packet traffic with minimum performance guarantees and maximum service rate control | |
US7782776B2 (en) | Shared weighted fair queuing (WFQ) shaper | |
US7558278B2 (en) | Apparatus and method for rate-based polling of input interface queues in networking devices | |
EP1345365A2 (en) | Weighted fair queuing (WFQ) shaper | |
US6952424B1 (en) | Method and system for network processor scheduling outputs using queueing | |
US6657960B1 (en) | Method and system for providing differentiated services in computer networks | |
CN103999414A (zh) | 归因拥塞贡献 | |
JP4195221B2 (ja) | コンピュータ・ネットワークでパケットの伝送を制御する方法およびシステム | |
US6724776B1 (en) | Method and system for providing optimal discard fraction | |
KR20120055946A (ko) | 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치 | |
Astuti | Packet handling | |
JP2946462B1 (ja) | パケット・スケジューリング制御方法 | |
EP1269694B1 (en) | Method and system for controlling flows in sub-pipes of computer networks | |
JPH11298523A (ja) | パケット・スケジューリング方法 | |
Menth et al. | Deficit round robin with limited deficit savings (DRR-LDS) for fairness among TCP users | |
Edmonds | On the competitiveness of AIMD-TCP within a general network | |
JP2003087313A (ja) | 多重化装置および帯域制御装置およびプログラムおよび記録媒体 | |
Kiameso et al. | Analysis of prioritized scheduling of assured forwarding in DiffServ Architectures | |
Sabrina et al. | Fair Queuing in Active and Programmable Networks | |
Yahia et al. | Admission control for elastic traffic using RED and/or droptail queues | |
Walrand et al. | QOS | |
JP2003023454A (ja) | レート制御装置 |
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 |