JP3813698B2 - Traffic shaping apparatus and routine - Google Patents

Traffic shaping apparatus and routine Download PDF

Info

Publication number
JP3813698B2
JP3813698B2 JP17261797A JP17261797A JP3813698B2 JP 3813698 B2 JP3813698 B2 JP 3813698B2 JP 17261797 A JP17261797 A JP 17261797A JP 17261797 A JP17261797 A JP 17261797A JP 3813698 B2 JP3813698 B2 JP 3813698B2
Authority
JP
Japan
Prior art keywords
flow
queue
rate
packets
packet
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 - Fee Related
Application number
JP17261797A
Other languages
Japanese (ja)
Other versions
JPH10190691A (en
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.)
Xerox Corp
Original Assignee
Xerox 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 US08/872,753 external-priority patent/US5926459A/en
Application filed by Xerox Corp filed Critical Xerox Corp
Publication of JPH10190691A publication Critical patent/JPH10190691A/en
Application granted granted Critical
Publication of JP3813698B2 publication Critical patent/JP3813698B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、パケット交換式通信ネットワーク、特に指定されたトラフィック記述子に適合するために、そのようなネットワークまたはネットワーク要素内のキューイングポイントにおいて時間多重パケットのフローを生じさせるトラフィック成形に関する。
【0002】
【従来の技術】
A.トラフィックコントラクト/定義
パケット交換式通信ネットワーク上で現在動いている殆どのアプリケーションは、ネットワークから偶然得る帯域幅が如何なるものであっても満足して動作できる。何故なら、それらのアプリケーションでは「弾性」帯域幅が条件となっているからである。これらのアプリケーションをサポートするこの種のサービスは、インターネットの世界では「ベストイフォート」サービスとして、または広帯域ISDN/ATMの世界では「アベイラブルビットレート」(ABR)として知られている。
【0003】
しかし、拘束(bounded)ジッター、即ち拘束パケット遅延変動(一般にATMの関連ではセル遅延変動と呼ばれる)を提供するネットワークサービスに対しての要求が増している。例えば、この種のサービスは、回路エミュレーションおよび映像などのリアルタイムなアプリケーションにおいて必要となる。インターネットがこのような要求に答えるか否かまたどの様にして応えるかは明確ではないが、広帯域ISDN/ATMの分野では、ユーザー−ネットワーク折衝型トラフィックコントラクトの概念を導入することで応えている。
【0004】
知られているように、ユーザー−ネットワークATMコントラクトは、トラフィックのパラメータ、トレランス、およびサービス要求の質などを含むトラフィック記述子によって定義される。関連するトラフィックパラメータの各々について適合定義(conformance definition)が特定される。したがって、ATMサービスは、サービスの質(QoS)の目標値と多重方式の異なる組み合わせをサポートするために、これらのトラフィックパラメータとそれらに対応する適合仕様を用いることができる。
【0005】
部分的にオーバーラップするATMトラフィッククラスは、インターナショナル・テレコミュニケーション・ユニオン(ITU−T)の通信標準化部門と、ATMフォーラムによって定義されている。幾つかの例では、本質的に同一の属性(attribute) を有するトラフィッククラスに対してこれらの2つのグループは異なる名称を付けており、下記の名称変換テーブルは現在使われている等価の対応名称を示す。
【0006】

Figure 0003813698
【0007】
仮想回線(VC)コネクションまたは仮想パス(VP)コネクションのためのATMサービスコントラクトは、コネクションのサービスレートを記述するパラメータを複数含むことができる。これには、ピークセルレート(PCR)、維持可能(sustainable)セルレート(SCR)、固有(intrinsic)バーストトレランス(IBT)、最少セルレート(MCR)が含まれる。これらのパラメータの全てが個々のコネクションまたは個々のサービスのクラスに関連があるわけではないが、それらがサービスコントラクトの黙示的または明示的に指定された要素である場合、それらは重視しなければならない。VCコネクションが、下記の議論の中心となっているが、VPコネクションもそのように特定できることが分かるであろう。ATMコネクションのためのデータ転送単位は、通常「セル」と呼ばれる。しかし、本明細書では、データ転送単位を表すのに時として「パケット」という語が使用されている。これは、「パケット」という語は、本革新技術のより広い概念の幾つかにふさわしいより一般的な用語であるからである。
【0008】
ITU−T勧告1.371で指定されたジェネリックセルレートアルゴリズム(GCRA)は、トラフィック記述子との適合についてパケットまたはセルのフローをテストするのに非常に適している。このようなテストを行うために、GCRAは、出力(emission)間隔(即ち、フローレートの逆数)とトレランスτについての仕様を必要とする。実際には、このトレランスは、コネクション、コネクションセットアップパラメータ、またはサービスの種類などの種々の要因に依存するであろう。後で分かるように、GCRAはブール関数として採用でき、コネクション上の固定サイズのパケットまたはセルのフローの場合、GCRA(出力間隔、トレランス)は、もしフローがピークレートに従っていれば偽(false)であり、フローが最少レートに従っていれば真(true)である。例えば、もしGCRA(1/PCR,τPCR )が偽であれば、セルのソースはPCRに従う。同様に、もしGCRA(1/MCR,τMCR )が偽であれば、コネクションまたはフローはMCRに従う。後で分かるように、「出力間隔」は「セルレート」の逆数である。
【0009】
DBRトラフィックコントラクトは、コネクションが行われている間、一定量の帯域幅をコネクションに対して継続的に利用できることを予測してコネクションを確立するソースには適切である。従って、ネットワークがDBRコネクションに委ねる帯域幅は、PCR値によって特徴づけられる。さらに、そのようなコネクションでのセルまたはパケットのフローは、もしそれがGCRA(1/PCR,τPCR )に適合していれば、トラフィックコントラクトを遵守している。一方、SBRトラフィックコントラクトは、SCRとτIBT およびPCRとτpcT の通知された選択を考慮に入れた既知のトラフィック特性を有するアプリケーションに適している。SBRまたはrt−SBRフローは、もしそのフローがGCRA(1/PCR,τPCR )だけでなく、GCRA(1/SCR,τIBT )にも適合する場合、そのトラフィックコントラクトを遵守している。
【0010】
前述したように、ABRトラフィックコントラクトは、予約されていない帯域幅を使用した結果として生じる情報転送レートにおける動的な変化を許容できるアプリケーションに適している。PCRとMCRは、そのようなコネクションを確立するソースによって指定され、これらのパラメータはネットワークとの折衝の対象となる。したがって、ABRコネクションについて利用できる帯域幅はMCR(零でもよい)と、定義された割り当てポリシーにより、予約されていない帯域幅をABRコネクションの間で共用することによって生じる可変セルレートとの和である(即ち、ソースがその指定されたMCRを上回って受信する帯域幅は、折衝されたPCRだけでなく、ネットワークポリシーにも依存する)。ネットワークからのフィードバックにより、ソースアプリケーションは、ABRコネクションに対してセルまたはパケットを送るレートを動的に調整することができる。ABRフローは、GCRA(1/MCR,τMCR )に適合していれば、常にトラフィックコントラクトを遵守しており、GCRA(1/PCR,τPCR )に適合していなければ、常に非遵守である。MCRとPCRの間の領域における適合性は、ABRフードバックに依存し、従って動的に決定される。
【0011】
UBRトラフィックコントラクトは、ABRコントラクトに類似しているが、UBRコントラクトは、MCRの仕様に順応できず、また動的な適合定義を有しない。したがって、UBRフローは、もしそれがGCRA(1/PCR,τPCR )に適合していれば、トラフィックコントラクトを遵守している。
【0012】
B.トラフィック成形
ITU−T勧告1.371は、トラフィックを下記の点に関し、トラフィック記述子に適合させるためにネットワーク要素でのトラフィックの再成形の可能性について言及している:
【0013】
「トラフィック成形は、QoSの目標値を満たしながらネットワーク効率を改善するため、または後続のインターフェースでの適合を確保するために、VCCまたはVPC上のセルストリームのトラフィック特性を変更して、これらのトラフィック特性の要求される変更を達成するメカニズムである。トラフィック成形は、ATMコネクション上のセルシーケンスの完全さを維持しなければならない。成形はセルフローの特性を変更し、その結果、セルの平均転送遅れを増加させるものである。
【0014】
トラフィック成形の例は、ピークセルレートの低減、バースト長さの制限、セルの時間間隔を適切にすることによるCDVの低減、およびキューサービス方式である。
【0015】
トラフィック成形を行うか否か、またそれをどこで行うかはネットワークオペレータの選択による。例えば、ネットワークオペレータは好適なUPC/NPC機能とともにトラフィック成形を行うことを選択できる。
【0016】
分離したセルフローまたは集合的セルフローに関してトラフィック成形を行うことはオペレータが選べるオプションである。
【0017】
したがって、如何なるATMコネクションに対してもトラフィック成形を行うことができる。
【0018】
ネットワークオペレータ/サービスプロバイダが利用できるオプションには以下のものがある:
【0019】
a.成形なし
・如何なる成形機能も用いることなく、ネットワーク出口における適合性を確保しながらネットワーク入口における適合セルの任意のフローを許容できるようにネットワークの寸法又は次元(dimension) を決める。
【0020】
b.成形あり
・入口における適合セルの任意のフローが、QoS目標値を満たしながらネットワークまたはネットワークセグメントによって運ばれるようにネットワークの寸法を決めるとともに動作させ、出口における適合テストを満たすようにトラフィックの出力成形を行う。
【0021】
・ネットワークまたはネットワークセグメントの入口におけるトラフィックを成形し、QoS目標値およびネットワークまたはネットワークセグメントの出口におけるその後の適合テストを満たすとともに、成形によって得られたトラフィック特性にしたがってリソースを割り当てる。
【0022】
また、ソースによってまたはUNIにおいて発生されるセルが、使用されるATCに関する折衝トラフィックコントラクトに適合していることを確実にするために、顧客の装置内、またはソースにおいてトラフィック成形を使用してもよい(5.5章参照)。」ITU−T勧告1.371、6.2.5章。
【0023】
C.リアルタイムおよび非リアルタイムコネクションのためのスケジューリング/現存のツールおよび技術
知られているように、もし「ベストイフォート」のインターネットサービスまたはABR ATMサービスを採用するアプリケーションの間で帯域幅が「フェア」に分割されない場合、種々の好ましくない現象が生じるであろう。
【0024】
現在、殆どのATMスイッチではFIFOキューイングが実施されている。しかし、FIFOキューイングは、ABRトラフィックに使用した場合、異常な挙動を示す。また、FIFOは、正しく行動しているユーザーを誤って行動しているユーザから保護できない(アイソレーションを提供しない)。このような欠点のため、重み付けフェアキューイングなどの非FIFOキューイングメカニズム、またはラウンドロビンのようなフェアキューイングに近似した方式がしばしば提案される。
【0025】
非弾性的帯域幅を要求する種類のサービスは、時として、データが拘束ジッター(即ち、セルまたはパケットの遅延変動が制限されていること)を伴ってネットワークを介して伝送されることを要求する。知られているように、リアルタイムストリームに対して拘束ジッターを提供するために重み付けフェアキューイングを使用することができる。さらに、仮想クロックおよび自己計時型フェアキューイングの密接に関連したメカニズムを使用するシステムのために試験済の遅延制限を提供できる。
【0026】
したがって、弾性(ベストイフォート/ABR)サービスと非弾性(またはリアルタイム)サービスの何れもがフェアキューイングおよび関連するアルゴリズムを使用することによって利益を受けることが知られている。
【0027】
1.重み付けフェアキューイングおよび仮想クロック
フェアキューイングおよび関連のアルゴリズム(例えば、フレームベースのフェアキューイング、欠陥ラウンドロビンなど)はパケットまたは他のデータ転送単位(例えば、ATMセルはここでの議論においてはパケットである)のシーケンスに対して作用する。ATMの場合、これらのシーケンスはVCIまたはVPIの何れかによって認識され、この認識に適したインターネットのプロトコルは<IPアドレス、プロトコル、ポート>トリプル(IPv4)またはフロー識別子(IPv6)に基づくものである。自己計時型重み付けフェアキューイングおよび仮想クロックの何れにおいても、パケットはタイムスタンプによって順序づけられる(ソートされる)(ラウンドロビンなどの方式はタイムスタンプによってパケットの順序づけに対して近似を行う)。このタイムスタンプは仮想終了時刻を表し(またはパケットの仮想開始時刻を同様に表す)、開始時刻を得るとともに、パケット長に、特定のパケットシーケンスに対しての帯域幅の割り当てを表す重みを掛けることによって得られるオフセットを加えて計算される。
【0028】
より詳細には、仮想クロックの場合、仮想終了時刻は下記のように計算される。
【0029】
VT(f,0) = 0
VT(f,j+1) = max{到着(f,j+1), VT(f,j)}+ 長さ(f,j+1)/レート(f) (1)
但し、VT(f,j) はフロー(仮想回線)f のパケット j に関連する仮想終了時刻であり、
到着(f,j) はフロー f のパケット j の到着時刻であり、
長さ(f,j) はフロー f のパケット j の長さである。
【0030】
自己計時型重み付けフェアキューイングは、下記式に従って仮想終了時刻を指定する。
【0031】
Figure 0003813698
但し、システム仮想時刻は、パケット(f,j+1) が到着する時刻において提供される(出力される)パケットに関する仮想時刻である。
【0032】
ATMの場合、セルが固定サイズ(例えば、53バイト長)であるため、パケット長は一定である。したがって、式(1)および式(2)の最右項は、フロー毎の定数になる。仮想クロックの場合、式を下記のように単純化できる。
【0033】
VT(f,j+1) = max{到着(f,j+1), VT(f,j)}+ 定数(f) (3)
【0034】
自己計時型重み付けフェアキューイングの場合、式を下記のように単純化できる。
【0035】
VT(f,j+1) = max{システム仮想時刻, VT(f,j) }+ 定数(f) (4)
【0036】
即ち、仮想クロックまたは自己計時型重み付け型フェアキューイングを実施するATMキューイングポイントは下記のステップを行う。
【0037】
1)VCについての現在の仮想時刻(a)と、セルの到着時刻i)とシステム仮想時刻ii)の何れか(b)との間の最大値を計算し、
2)上記ステップ1の結果に、帯域幅のVCの占有率を表すVC毎の定数を加え、
3)ステップ1と2によって指定した仮想タイムスタンプの値が増加する順序でセルを提供(それらを送信)する。
【0038】
2.優先権
一つのトラフィッククラスに他のものより高い優先権を与えるということは、もし高い優先順位を有するトラフィッククラスが転送の準備のできたセル群を有していれば、これらのセル群は、常に優先順位の低いトラフィッククラスのセルに優先して伝送される。
【0039】
優先権のメカニズムは先制的(preemptive)であることも非先制的であることもできる。この用語はオペレーティングシステムの文献から由来している。非先制的優先権メカニズムは、スケジューリング時刻において対象物(オペレーティングシステムの世界ではプロセスであり、ATMの世界ではVC)に対して優先順位を与え、対象物はそれが提供されるまでこの優先順位を維持する。他方、先制的優先権メカニズムは、対象物が提供されるのを待っている間に対象物の優先順位を変えることができる。例えば、先制システムでは、「このVCを優先順位3でスケジュールする」と言うことはできるが、もしそれが200マイクロ秒の間に提供されない場合には、その優先順位が2に上げられる。
【0040】
3.作業維持および非作業維持キューイング
「作業維持(work conserving)」という用語は、作業が作られることもないし破壊されることもない任意のキューイングシステムを示すために時々使用される。この用語と一致して、待機セルが与えられた時、常にセルを出力リンクに伝送するスイッチは、「作業維持スイッチ」である。純粋なFIFOを採用するスイッチ、重み付けフェアキューイングまたは仮想クロックスケジューリングアルゴリズムは全て作業維持型である。これに対し、非作業維持型スイッチは、セルが転送のために待機していても、セルを送信しないことを選択できる。後で分かるように、これを行う方法は、特定のセルを伝送する前に現時刻がそのセルに関連したタイムスタンプに等しいか大きくなるまで待つようにスイッチをプログラムすることである。
【0041】
作業維持スイッチは、伝送リンクを完全に利用しようと試みるが、必ずしもバーストを除いたり、阻止したりしない。これに対し、非作業維持スイッチは、より厳しい適合テスト(即ち、より小さいτを有するGCRA)を満たすようにトラフィックを再成形するためにセルを戦略的に遅延させることができる。さらに、所定のコネクションに指定された量のバッファリングが割り当てられるだけの非作業維持スイッチは、割り当てられたバッファ空間をオーバーフローするセルを捨てるかもしくはそれにタグを付けることによってポリーシング(policing)機能(ITUではUPC/NPCと呼ぶ)を行う。非作業維持キューイングシステムの例は、仮想時間は実時間よりも速く過ぎる(立ち往生するか、非作業維持状態になる)ことが許されない仮想クロックアルゴリズムを改造したストールド(stalled) 仮想クロックである。
【0042】
4.カレンダキュー
カレンダキューは、アクションを時間順に並べたリストで、各アクションは、実時刻がそのアクションに関連する時刻と等しいかそれを越えた時にキューから取り出されて実行される。時間間隔が制限されたカレンダキューは、「タイムホイール(time-wheel)」または「タイムライン(time-line) 」として知られている線型アレーとして表すことができる。タイムホイールはバケットに対する事象をポインタに対して相対的に割り当てるもので、ホイールサイズを算術モジュロとして使用してバケットインデックスが計算される。これらのデータ構造は、キューイングメカニズムとして文献で良く知られている。タイムホイールでは、絶対時刻は、現時刻(実時刻)に対するオフセットとして表され、アレー中の各要素は、それらが属するバケットに対して指定された時刻に実行すべき一つ以上のアクションを(典型的には、リンクされたリストの形態で)含むバケットである。そのようなタイムホイールのバケットの何れのものも空であることができる、即ちそれに関連する事象を有しなくてもよい。
【0043】
各タイムホイールについて、二つの重要な時間tearliestとtlatestがあり、これらはアレー中のアクティブエントリーについてのヘッドポインタおよびテイルポインタに対応し、tearliestは、提供すべき次のエントリー(例えば、パケットまたはセル)の時刻であり、tlatestは、スケジュールされた事象を含む最新の(時間的に最も遠い)バケットに関連する時刻である。tearliestとtlatestの間の差はタイムホイールの長さbから1を引いた長さを越えることはできない。これは、時間がモジュロbを維持していると見ることにより、そして、b−1を越えるオフセット(仮想クロックまたは重み付けフェアキューイングにおいてそれぞれレートまたは重みの何れかを掛けたパケット長)が無いことを確実にすることによって確実にされる。OC−3の速度(149.76mbps−SONETペイロードレート)で動作するATMリンクの場合、リンク上に秒当たり約353208セルが存在する。したがって、もし64Kbps(音声電話の速度)のフロー(AALタイプ1が使用される場合には、毎秒約174セル)が、サポートすべき最も遅い速度のコネクションで、最も遅い速度に対する最も早いサポートされた速度の割合は2029、切上げると211となる。この割合は、実時刻を計算する間に加算される最大オフセットである。したがって、長さが2030(2の冪乗への切上げを考慮にいれると2048)のタイムホイールは、64Kbpsから完全なOC−3リンクの速度までの間の速度の回線に関連する実時刻をコード化するのに充分である。
【0044】
タイムホイールアレーの長さは、アレー要素が2以上のタイムオフセットを含むことができるようにすることによって減少できる。例えば、もし上記のタイムホイールが2048要素から256要素に減少された場合、各バケットはその中にマップ化した8個のタイムオフセットを有するであろう。複数オフセットに及ぶ単一のバケット内のアクションは、狂った順番で行われるかも知れないが、バケットの間ではアクションは順番どおりになるであろう。これにより、カレンダキュー内のアクションの順序付けの精度が低下するという犠牲を払って、そのようなタイムホイールに割り当てる必要があるメモリの量を減少できる。
【0045】
D.複数出力チャネル上での時間多重フローのためのトラフィック成形
時間多重化されたパケットまたはセルのフローをそれらのトラフィックコントラクトに適合させるのに必要な何れのトラフィック成形は、異なった出力チャネルのためのフローを相互に分離するのに必要な切り替えまたはルーチング動作が完了した後で実施するのが好ましい。これにより、マルチプレクサのスループット効率を最適化できる。
【0046】
しかし、以前の出力待機ATMスイッチは一般に、FIFO(先入れ、先だし)出力バッファを採用していた。これらのバッファはそれらを通過するフローの何れのものの再成形の制御に関与できない。その代わり、これらのバッファから出力されるVC毎の時間多重フロー(per-VC time mutiplexed flows)は、本質的にそれらの中ににロードされる入力フローの時間多重複合物である。勿論、これらの出力フローは、バッファの固有待ち時間のために入力フローに対して時間的に遅延される。また、もし異なるフローのデータ転送制限の間でスケジューリングの衝突が発生した場合にはこれらの出力フローの一つ以上のもののセル遅延変動(CDV)が増加するであろう。何故なら、これらの干渉は、所謂「伝送衝突」を引き起こすからである。
【0047】
後で分かるように、CVDの増加は、比較的トレランスが厳しいDBRトラフィックのようなトラフィックの場合、特にやっかいなものである。したがって、もしソースとデスティネーションの間の各ホップが、上記の形式の単純なFIFO出力キューを含む場合、その指定されたトレランス内での適合性を確保するために、このCDVに敏感なトラフィックが作ることができるホップの数を制限することが必要になるであろう。
【0048】
したがって、時間多重出力の送出のために複数入力から複数出力へトラフィックを送る、ATMスイッチまたはその他のルーターのためのより効率的でより効果的なトラフィック成形メカニズムとプロセスに対するニーズがあることは明らかである。
【0049】
【発明が解決しようとする課題】
本発明は、アベイラブルビットレートサービスのためのフロー毎待機ルーチングメカニズムにおけるレート成形を提供するものである。
【0050】
【課題を解決するための手段】
本発明の請求項1の態様は、パケット交換通信システムにおいて、コントラクトを含み、それぞれのフローの個々のネットワークトラフィックコントラクトに実質的に適合するように時間多重フローのパケットを連続的に送出するトラフィック成形装置であって、前記コントラクトは、それぞれのピークパケット送出レート及び前記フローのうちいくつかの関連ピークレートトレランスを指定するとともに、相互排他的カテゴリー、即ち、それぞれがコントラクト指定の関連最小レートトレランスを有する非ゼロ最小パケット送出レートを有するカテゴリーAフローと、ゼロパケット送出レートを許容するトラフィックコントラクトを有するカテゴリーBフローのうちの1つに前記フローの各々を分類し、前記トラフィック成形装置は、待ち行列の順番の先頭にある最も古い未決のパケットに従ってそれぞれの待ち行列中の前記いくつかのフローを含むアクティブフローの未決パケットを編成するキューイングメカニズムを含み、前記キューイングメカニズムに結合され、送出のために前記アクティブフローのパケットをスケジュールするスケジューリングメカニズムを含み、前記スケジューリングメカニズムは、相対的に優先順位が高い非作業維持カレンダキューと、少なくとも1つの相対的に優先順位が低い作業維持キューと、前記優先順位が高いキュー及び優先順位が低いキューに相対して優先順位が未決定の他の非作業維持キューとを含み、前記スケジューリングメカニズムは、(i)前記優先順位の高い非作業維持カレンダキューにおいて、第1の所与のフローのための指定された最小送出レートに対してトレランスを越えるレートで前記第1フローのパケットが送出されている際に、前記第1フローのためのコントラクト指定の最小送出レートを越えるレートで送出するように、(ii)前記他の非作業維持カレンダキューにおいて、前記第1フローのパケットが前記第1フローの指定されたピーク送出レートに対してトレランスを越えるレートで送出されている際に、前記第1フローのための指定されたピーク送出レートとほぼ同一のレートで送出するように、(iii) 前記作業維持キューにおいて、前記第1フローのパケットが前記第1フローのトラフィックコントラクトに従って送出されている際に、選択した連続的サービス戦略に従って送出するようにあらゆる所与のカテゴリーAのパケットをスケジュールし、前記スケジューリングメカニズムは、(iv)前記他の非作業維持カレンダキューにおいて、第2の所与のフローのパケットが前記第2フローのための指定されたピーク送出レートに対してトレランスを越えるレートで送出されている際に、前記第2フローのための指定されたピーク送出レートとほぼ同一のレートで送出するように、(v) 前記作業維持キューにおいて、前記第2フローのパケットが前記第2フローのトラフィックコントラクトに従って送出されている際に、前記選択した戦略に従って送出するように、あらゆる所与のカテゴリーBのパケットをスケジュールする。
【0051】
本発明の請求項2の態様は、パケット交換通信システムにおいて、コントラクトを含み、それぞれのフローの個々のネットワークトラフィックコントラクトに実質的に適合するように時間多重フローのパケットを連続的に送出するトラフィック成形装置であって、前記コントラクトは、前記フローのうちいくつかにそれぞれの許容ピークパケット送出レートを委ねるとともに、相互排他的カテゴリー、即ち、それぞれの非ゼロ許容最小パケット送出レートが委ねられるカテゴリーAフローと、ゼロパケット送出レートを許容するトラフィックコントラクトを受けるカテゴリーBフローのうちの1つに前記フローの各々を分類し、前記トラフィック成形装置は、待ち行列の順番の先頭にある最も古い未決のパケットに従ってそれぞれの待ち行列中の前記いくつかのフローを含むアクティブフローのパケットを編成するキューイングメカニズムを含み、前記キューイングメカニズムに結合され、送出のために前記アクティブフローのパケットをスケジュールするスケジューリングメカニズムを含み、前記スケジューリングメカニズムは、相対的に優先順位が高い非作業維持カレンダキューと、少なくとも1つの相対的に優先順位が低い作業維持キューと、前記優先順位が高いキュー及び優先順位が低いキューに相対して優先順位が未決定の他の非作業維持キューと、前記優先順位が高いキュー及び優先順位が低いキューからの監視送出に結合して前記優先順位が高いキュー及び優先順位が低いキューにおいてスケジュールされたパケットを選択的にスケジュールしない制御メカニズムを含み、前記スケジューリングメカニズムは、(i) それぞれのフローのための最小レート委託を越えるレートで送出するように前記優先順位の高いカレンダキューの各フローのパケットをスケジュールし、かつ(ii) 所定の作業維持キューから出す戦略に従って送出するように前記パケットを前記作業維持キューに入れることによってあらゆるカテゴリーAフローのパケットを準備し、従ってこれらのカテゴリーAフローのパケットの競合状態を作り出し、前記制御メカニズムは、各パケットが前記優先順位の高いキュー及び前記作業維持キューのうちの1つによって送出に達する際に、このパケットを前記キューの他のパケットの中から取り出すことによって前記遅れているカテゴリーAフローのパケットの前記競合状態を解決し、前記スケジューリングメカニズムは、それぞれのフローに委ねられる許容ピーク送出レートを越えるレートで送出されているあらゆるカテゴリーAフロー及びカテゴリーBフローのパケットを、それぞれのフローに委ねられるピーク送出レートとほぼ同一のレートで送出するように前記他の非作業維持カレンダキューにおいてスケジュールし、前記スケジューリングメカニズムは、それぞれのフローのためのコントラクトによる委託に適合するレートで送出されているあらゆるカテゴリーBフローのパケットを、前記作業維持キューから出す戦略に従って送出するように前記作業維持キューに入れる。
【0052】
本発明の請求項3の態様は、それぞれのフローのための個々のトラフィックコントラクトに実質的に適合するように、複数の時間多重フローの固定ビット長パケットを既知の帯域幅のリンクに連続的に送出するトラフィック成形プロセスにおいて、前記フローの少なくともいくつかを、前記いくつかのフローのためにゼロよりも大きいそれぞれのピークレート及び最小パケット送出レートを指定するそれぞれのアベイラブルビットレートトラフィックコントラクトに成形するルーチンであって、前記ルーチンは、待ち行列の順番の先頭にある最も古い未決のパケットに従ってそれぞれの待ち行列中の前記いくつかのフローを含むアクティブフローのパケットを編成するステップを含み、アベイラブルビットレートトラフィックコントラクトを有するフローのために前記リンクで利用可能な帯域幅を前記既知の帯域幅のパーセントとして動的に決定するステップを含み、アベイラブルビットレートトラフィックコントラクトを有するアクティブフローの数を動的に決定するステップを含み、アベイラブルビットレートトラフィックコントラクトを受ける各フローのキューパケットの各先頭に対して、前記フローのためのコントラクト指定の最小送出レートに基づいた第1の理論的送出時刻と、アベイラブルビットレートフローのために前記リンクで利用可能な帯域幅のアクティブアベイラブルビットレートフロー毎の割り当てに基づいた第2の理論的送出時刻と、前記フローのためのコントラクト指定のピーク送出レートに基づいた第3の理論的送出時刻とを決定するステップを含み、前記第2及び第3の理論的送出時刻のうち最も早いものを放棄するステップを含み、残りの前記理論的送出時刻のうち最も早い時刻で送出するように非作業維持キューにおいて前記パケットをスケジュールすることを含む。
【0053】
【発明の実施の形態】
A.代表的な環境
図面、特に図1を参照すると、ATMスイッチ21の入力および出力ポートは、典型的には、Utopia2インターフェースを介して1個以上の物理層に結合され、第2の好適なインターフェースを介してスイッチ制御プロセッサモジュール22に接続されている。これにより、スイッチ21は、接続された任意の物理層とデータおよびコントロールセルを交換し、また制御プロセッサモジュール22と制御セルを交換する。この標準的なプラクティスと調和して、通信チャネルは一方向性であり、したがって、双方向通信には一組のチャネルが必要である。
【0054】
スイッチ21は、入力キューからVC毎出力キューへデータおよび制御セルをスイッチングするために、スイッチングファブリック24、ファブリック制御モジュール25およびリザベーションリング26を含んでいる。これらのキュー中のセルはデータメモリ27中のデータパスに記憶され、これらの入力および出力キューはキュー制御モジュール28によって管理される。典型的には、データメモリ27は、最大で約12000セルを記憶できる容量である。データおよび制御セルフローのコネクションレコードは、制御プロセッサモジュール22へのルーチングのための、レート基準エンジン/トラフィックマルチプレクサ31によって捕らえられる所定の形式の制御セルと共に制御メモリ29内の制御パス中に記憶される。制御RAM29は、最大で約8200のコネクションレコードと64Kのセルレコードを記憶できることが好ましい。制御プロセッサモジュール22とスイッチ21との間の相互作用は本発明の範囲を越えているので、本明細書では記載しない。しかし、ATMスイッチの設計に詳しい人であれば、制御プロセッサは主にコネクションの確立および終了、並びOAM(Operation and Maintenance)機能を実施する責任がある。
【0055】
スイッチ21のデータパスは所定のレート、例えば40MHzで同期的にクロック動作される。しかし、従来の同期パイプライン設計のプラクティスに合わせ、このクロック信号の位相は、一つのパイプラインのステージから次のステージへと転送される前に落ちつくために適切な時間をデータに与えるために、データ経路に沿った異なった点で異なった量だけ(図示しない手段により)遅延される。
【0056】
標準的なプラクティスに従い、デスティネーションと通信することを望むソースは、スイッチ21が存在するATMネットワークとの折衝を、ネットワークに対してSETUPメッセージを送ることによって開始する。このメッセージは、デスティネーションを識別し、要求されたコネクションのための関連トラフィックパラメータの全てを明示的または黙示的に指定する。もしネットワークが、これらのトラフィックパラメータ(または、ソースが受け入れることを希望しているパラメータの変形版)によって定義されるトラフィックコントラクトに委ねるための準備ができている場合には、ネットワークはSETUPメッセージをデスティネーションへ送る。そして、デスティネーションが、トラフィックコントラクトの条件に従ってソースからメッセージトラフィックを受信する準備ができていれば、デスティネーションはCONNECTメッセージをソースに返す。このCONNECTメッセージは、トラフィックコントラクトに適合するセルフローのための指定された仮想パス(VP)内の指定された仮想回線(VC)上にコネクションが確立されたことを確認するものである。ITU−T勧告0.2391およびATMフォーラムUNI4.0仕様を参照のこと。これらの信号伝達プロトコルを発生させることなく、供給することにより「永久」仮想コネクションを確立できる。
【0057】
コネクションが確立された後データセルが流れ始める。図2に示すように、セルの形は、スイッチ21が行う動作のためにスイッチ21を通過するにつれ変化する。マルチキャスティングのためにセルを複写してもよいが、下記の議論は、不必要に複雑になることを避けるためにユニキャストの動作に限定する。
【0058】
図2に示すように、スイッチ21が受信する各上りのセル41は、VPインデックスとVCインデックスを含むヘッダを有している。これらのインデックスは、コネクションの一つのホップについての固有アドレスを定義するために組合わさる。コネクションは複数のホップから構成することができ、したがって次のフープのためのVPおよびVCインデックスは、図2において42で示されているように、スイッチ21を通過する時にセルのヘッダーに書き込まれる。
【0059】
スイッチ21は、関連するフローのためのコネクションレコードが存在する制御RAM29内のアドレスを計算するために上りのセル(図2の41)のVPおよびVCインデックスを採用する。典型的には、このコネクションレコードは、フローがスイッチ21から出ていく出力ポート(即ち、スイッチレベルでのデスティネーション)を認識するためのビットベクトル、粒状の優先権スケール(granular priority scale)上でのフローの相対的な優先順位を識別するための優先権インデックス、およびスイッチ21内のフローを唯一的に識別する回線インデックス(「Circuit Index」)を含んでいる。図2において43で示されているように、これらのコネクションパラメータはセルヘッダ内に書き込まれる。そして、セルがデータRAMメモリー29へ書き込まれ、セルに対してのポインタが複数のFIFO入力キューの適切な一つとリンクされる。なお、キューの選択は関連するフローの優先順位に基づいて行われる。
【0060】
入力キュー内のキューセルのヘッドの相対的な優先順位が、各セルタイムの間に調べられ、最も高い優先順位を有するキューセルのヘッドが、次のアービトレーション(arbitration)セッションの間のアービトレーションのために選択される。さらに、キューセルの優先順位のより低いヘッド(即ち、キューセルの任意の選択されていないヘッド)の優先順位は(図略の手段により)一定量ずつ増加され、これによって、次のアービトレーションセッションにおけるアービトレーションのためにセルが選択される可能性を増加させる。したがって、優先権が高い入力キューは、優先権が低いキューよりも単位時間当たりのスループットが大きいが、優先権が低いキューは、キューセルのヘッドの優先順位が時間とともに増加するため、遅れが制限される。
【0061】
各アービトレーションサイクルは、スイッチ21の1セル時間を必要とし、したがってアービトレーションのために選択されるセルのルーテング情報は、アービトレーションに勝ったセルまたはセル群のペイロードがスイッチングファブリック24へ放出されるより1セル時間だけ前にリザベーションリング26に供給される。即ち、図2において44で示すように、リザベーションリング26とスイッチファブリック24によって受信されるセルは、次のアービトレーションサイクルのためのセル(即ち「現在セル」)のヘッダから構成されており、これに前のアービトレーションサイクルでアービトレーションに成功したセル(即ち「前のセル」)のボディーまたはペイロードが続いている。したがって、セルボディーがファブリック24に到着すると、これらのセルをそれらの出力ポートデスティネーションにそれぞれ送るためにファブリックがファブリック制御装置25によって既に構成されている。
【0062】
図示の実施の形態では、アービトレーションおよびルーチングのためにセルが4ビット幅のニブルに分解される。この後(スイッチングプロセスのテストを行うために提供されるであろう「アイドルセル」を除き)、セルが再び組み立てられ、(a)スイッチ21の適切な出力ポートへの時間的にスケジュールされた転送のため、および/または(b)制御プロセッサモジュール22への転送のために、データパス、制御パス、またはその両方においてキューに入れられる。スイッチ21の出力ポートへのセルの時間的にスケジュールされた転送が本発明の中心であり、以下これについて更に述べる。一方、セルの分解と再組立、テストプロセス、および制御プロセッサ22のRM(Resource Management)およびOAM(Operation and Maintenance)セルとの相互作用は深く考える必要のない付随的なトピックである。
【0063】
図3を参照すると、スイッチ21はスイッチングファブリック24の出力側、即ち送信側でファンアウトしていることが分かるであろう。したがって、スイッチ21の一つの出力チャネルのみが示されているが、このチャネルは他のチャネルを代表するものであることが分かるであろう。
【0064】
図示のように、スイッチングファブリック24からのセルボディーおよびそれらの関連する回線インデックスを受け入れるためにフィルセルモジュール51を設けることが好ましい。スイッチングファブリック24の出力側の「有効セル時間」は、通常のセルタイムの「k」増速ファクターに対する割合によって決定される。したがって、例えば、もし通常のセル時間が113クロックサイクル/セルである場合、スイッチングファブリック24の出力側での有効セル時間は、k=2であれば、56.5サイクル/セルである。
【0065】
有効なセルが受信された時、フィルセルモジュール51は、典型的に、セルをデータメモリ27へ書き込むためのデータ構造についてのリンクされ番号の付けられたフリーリスト52から出力されるセル構成を用いる。このため、フィルセルモジュール51は、要求に応じて、フリーリスト52の一番上からセル構造を読み出すためのフッチステートマシーン53を含んでいることが好ましい。これにより、フィルセルモジュール51は、セルフロー制御ユニット55にセルの到着を知らせるために送る「到着」メッセージへ、セルについての回線インデックスと、データメモリ27内のセルの位置についてのポインタを挿入することができる。回線インデックスにより、フロー制御ユニット55は、制御メモリ29内のコネクションレコードからセルが属するVCまたはフローを突き止めることができる。そして、セルフロー制御ユニット55はフローのトラフィック成形状態をチェックできる。フロー制御ユニット55がこれらの制御セルを認識し、またそれらがデータパス、制御パス、またはその両方においてキューに入れられているか否かを決定できるようにするためにOAM/RMリコグナイザ57を設けるのが有利である。
【0066】
トラフィックコントラクトコンプライアントフローのセルのためのメモリポインタは、セルフロー制御ユニット55がキュー制御ユニット58へ送る「addCell」メッセージに応答してVC毎のキュー内に入れられる。各addCellメッセージは、それが属するセルおよび関連するフローまたはVCのための回線インデックスを識別する。また、addCellメッセージは、セルがデータパス、制御パス、またはその両方においてキューに入れられるべきか否かを示す。セルが適切にキューに入れられると、新たにキューに入れられたセルを、それが属するVCについて将来行われるレート成形演算の間に考慮すべきことをフロー制御ユニット55に通知するために、キュー制御ユニット58がフロー制御ユニット55に「added」メッセージを返す。
【0067】
キュー制御ユニット58が、それぞれのキューにセットされている深さ制御の制限に関するVC毎キューの長さをモニターするのが有利である。これにより、制御ユニット58は、VC毎のキューが過剰に長くなった時、ABRフローに対してのコンゲッション制御動作を開始することができる。また、制御ユニット58は、トラフィックコントラクトを越えているフローを特定し、そのような適合しないフローのセルを削除するかまたは記録するための適切なポリーシング機能(図示略)を動作させることができる。
【0068】
アドミッションコントローラ61は、キュー制御ユニット58から返される「added」メッセージを監視し、スケジューラ62に、空でないVC毎キューのためのキューセルのヘッドがスケジュールされた時刻に転送されるようにカレンダキュー63上に組み入れる。スケジューラ62は、カレンダキュー63上へのキューセルのヘッドの組入れを、それらのためにスケジューラ62が計算するそれぞれの仮想終了時刻VT(f,j+1)(または「仮想開始時刻」)に従って行うために、VC毎の仮想クロックを採用している。上記C.1を参照。
【0069】
カレンダキュー63は、スケジュールされたセルがスケジュールされた時刻よりも前に伝送のために放出されることを阻止するため、システムの「実時刻」と「現在時刻」を追跡する。即ち、スケジューラ62とカレンダキュー63は、ストールド仮想クロックを提供し、このため伝送することがスケジュールされたセルは、システムの実時刻が各々の伝送時刻に達した時のみに、伝送のために放出される。図示のように、カレンダキュー63によって伝送のために放出されたセルを有するコネクションは、伝送リスト65上の伝送の準備ができているセルを有するコネクションのリンクリストにリンクされる。
【0070】
カレンダキュー63はフロー制御ユニット55に対して、任意の所定のコネクション上での伝送のためにセルを放出するか否かを知らせる。すると、フロー制御ユニット55は、もし所定のコネクションのためのVC毎のキュー上の次のセル(もしあれば)についてのリファレンス(即ち、キューセルの新しいヘッド)を要求し、アドミッションコントロール61に、このリファレンスをスケジューリングのためにスケジューラ62に対して認めるべきことを通知する。これにより、アドミッションコントロール61はカレンダキュー63との閉ループ通信に効果的に関与し、スケジューリングを認めたキューセルのヘッドが、VC毎のキュー内の他の全てのセルの除外に対して認められることを確実にする。したがって、カレンダキュー63は、一つ以上の時間制限されたタイムホイール、または「タイムライン」66を採用することによって実施できる。これらのタイムホイールのタイムスパンは、少なくともシステムがサポートするように設計された最低周波数のフローの周期と同じ程度にして時間ラップ(time wrap)によって引き起こされる曖昧さを阻止しなければならず、好ましくは2倍とし、これにより相対時刻を2の補数演算を使用して比較できる。
【0071】
B.固定ビット長データ転送リミットのフローの成形による指定されたピークフローレート
図4を参照すると、ストールド仮想クロック伝送制御は、出力待機ルーチングメカニズムからのATMセルなどの固定ビット長データ転送単位の時間多重フローを、DBR/CBR ATMサービスのためのPCRなどの指定されたピークのデータ単位のフローレートに成形するのに非常に適していることが分かる。前述したように、所定の出力ポートに送られるフローのデータ転送単位は、送りだされた後、フロー毎キューに入れられる。これらのキューの先頭にあるデータ転送単位は、スケジューラ62によってタイムラインカレンダキュー63に組み込むことがアドミッションコントローラ61によって認められる(他の全ての転送単位は除いて)。そして、スケジューラ62は、これらのキュー転送単位のヘッドに関してフロー毎仮想クロック演算を行い、それらの各々の理論的終了時刻VT(f,j+1)または各々の理論的開始時刻に従ってカレンダキュー63から放出するようにスケジュールする。
【0072】
実時刻は、成形された時間多重出力トラフィックが出力リンク71の帯域幅を本質的に満たすことができる速度でタイムライン63上で増加させるのが有利である。思い出されるように、スケジューラ62が各フローのキューメンバーのヘッドをマップ化することができる分解可能なタイムスロットの最大数は、これらのフローの最低許容周波数に対する最高許容周波数の比に基づく。したがって、実時刻がバケット毎にセルレートの論理的倍数で増加される。
【0073】
タイムライン63についてのリファレンスである現在の実時刻より前であるか等しい時刻を表すタイムスロットに存在するデータ転送単位は、伝送のために選ばれる資格が有り、したがって、前述のようにして転送リスト65にリンクされる。しかし、タイムライン63の遅いタイムスロットに関連するタイムスロットに存在するデータ転送単位は、システムの実時刻がこれらのタイムスロットに到達するのに充分なだけ進むまで待ちの状態になる。ロールオーバによる曖昧さを避けるために、タイムライン63は、以前にスケジュールされたデータ転送リミットに対する全てのリファレンスを、次のスキャンを見越して後からスケジュールされた転送単位に対しての任意のリファレンスが挿入される前に各タイムスロットから除去される。
【0074】
上記の構成は、適合するDBR/CBR ATMフローをそれらのトラフィックコントラクトによって指定されるPCRに効果的に成形するが、これらのフローのセル遅延変動(CDV)をそれらのトラフィックコントラクトのτPCR パラメータに適合させる上での助けにはならない。
【0075】
C.相対CDVを最少化するための複数優先レベル
本発明によれば、異なった周波数のフローによってATMスイッチの出力ポートなどの多重化ポイントへ供給されるデータ転送単位に優先権を与え、周波数が高いフローのデータ転送単位に、これと衝突する可能性がある周波数の低いフローのデータ転送単位よりも高い伝送優先順位が与えられる。図3に示すように、この伝送優先権は、ストールド仮想クロックスケジューリングメカニズム63などによるスケジュールが許可されたデータ転送単位を、これらのデータ転送単位が属するフローの周波数に基づき、優先順位で並べられた複数のタイムライン66a−66eまたは出力FIFOキューの一つまたは他のものへと導くことによって実施される。例えば、ATMスイッチの場合、5つの異なった周波数依存/サービス種類依存の出力優先順位で実施することが推奨される。この優先順位には、(1)出力リンクの最大レートの少なくとも1/16の折衝された出力レートを有するフローからのセルに対しての最も高い優先順位、(2)出力リンクレートの1/16〜1/256の範囲の折衝された出力レートを有するフローからのセルに対しての2番目の優先順位、および(3)出力リンクレートの1/256〜1/4096の範囲の折衝された出力レートを有するフローからのセルに対しての3番目の優先順位が含まれる。低い2つの優先権は、ゼロでない折衝されたMCRレートを有するABRコネクションに対して、およびMCRレートが零のURBコネクションとABRコネクションに対してそれぞれ設定するのが好ましい。
【0076】
後から分かるように、本発明は、周波数の低いフローのCDVを実質的に増加させることなく、周波数の高いフローのCDVを効果的に減少させる。一般論として、許容できるCDVは、フローの折衝されたレートに依存して変化する。例えば、100個のセルタイムのCVDは、予期されるセル10個あたり1個の出力間隔に関しては非常に大きいが、もし折衝された出力間隔がセル2029個に対して1個にすぎない場合には一般的に問題にならない。
【0077】
周波数が異なるフローのデータ転送単位またはセルの伝送をスケジュールするためにカレンダキューメカニズムを採用する場合、高周波数で優先順位の高いフローは、許容可能な低いCDVを達成するようスケジュールされ、かつ単一のセルタイムの精度に分解される必要があるが、低周波数/低優先順位のフローは、例えば、16セルタイムの精度により粗く分解できる。これは、カレンダキュー63上のタイムスロットの数を減少できることを意味する。これにより、周波数の低いフローのキューセルのヘッドのスケジューリングには一般に必要でない精度を多少犠牲にして、カレンダキュー63を実現するのに必要なメモリの量を減少できる。
【0078】
名目上相違する一定周波数のフロー間での多重化ポイントにおける伝送の衝突の問題を解消するために提供される本発明による周波数に基づく優先順序付与の技術は、そのような多重化ポイントへセルまたはその他のデータ転送単位を供給するためのフロー毎出力キューを維持する作業を有するアプリケーションなど、フローの相対ジッターを減少させるための多くの異なったアプリケシーョンにおいて採用できる。
【0079】
D.ソース・ツー・デスティネーションABR制御ループを有するネットワークにおけるABRサービスについてのMCRおよびPCRパラメータのトラフィック成形
思い出されるように、標準ABRトラフィックコントラクトは明示的または黙示的に指定されたPCRおよびMCRパラメータを予期しており、MCRは零でもよい。GCRA(1/MCR,τMCR )に適合するABRフローは有効であり提供される資格があるが、ネットワークはそのフローに対して、それに許可された帯域幅を与えていない。これに対し、GCRA(1/PCR,τPCR )に違反するフローは適合しないものである。したがって、ATMスイッチ21などによってネットワークまたはネットワーク要素の出力に送られるABRコネクションまたはフローは、(1)MCRが零でない保証(non-zero MCR guarantee)を有するABRフローは、これらの保証を効果的に満足させるための適切な出力帯域幅を受け入れること、および(2)ABRの何れもそのような出力においてそれらのPCRコミットメントに違反しないことを確実にするよう成形することが有利である。複数の多重化ポイントを有するネットワークでは、この成形を多重化ポイントの各々で行うことが有用である。
【0080】
図4は、ABRフローまたはVCコネクションをネットワークまたはネットワーク要素の出力においてそれらのトラフィックコントラクトに適合させるために成形する一つの技術を示している。図示のように、それぞれのフローが出力サービスを要求するレートを監視し、最初に85においてフローがGCRA(1/MCR,τMCR )に適合しているか否かを判断し、86においてGCRA(1/MCR,τMCR )に適合していないフローがGCRA(1/PCR,τPCR )に適合しているか否かを判断する。これらの一連のテスト85と86の結果を反映する制御信号がスケジューラ62およびそれに関連するステアリングロジック87にフィードバックされ、各フローのデータ転送単位(例えば、セル)が出力に供給される速度に対して適切なレート成形調整が行えるようにする。後で分かるように、この要求される状態は、全てのABRVフローが、GCRA(1/MCR,τMCR )に適合しておらず(またはかろうじて適合している)、かつGCRA(1/PCR,τPCR )に偽/適合であることである。なぜなら、これらのアルゴリズムは、それぞれ最低および最大の許容フローレートについてテストするからである。
【0081】
より詳しく述べると、GCRA(1/MCR,τMCR )に適合するフローは、そらのMCR保証を満たすのに必要な出力帯域幅を受け取っていないであろう。したがって、そのようなフローが85において識別されたとき、スケジューラ62とそのステアリングロジック87は、その保証されたMCRを幾分上回った速度での出力のために比較的優先順位が高いストールド仮想クロックカレンダキュー88上にそのフローのデータ転送単位(例えば、セル)に対しての引き続いて受信されるリファレンスをスケジュールするためにセットアップされる。例えば、これらの引き続いて受信されるセルまたはパケットのリファレンスは、所定の加速ファクタによってフローについてのMCRを乗算して決定される速度での出力のためにカレンダキュー88上に組み込まれる。これにより、ネットワークは、これらの追加の多分「遅れている」フローに、それらのMCR保証を満足するのに必要な追加の出力帯域幅を与える。
【0082】
GCRA(1/MCR,τMCR )非適合ABRフローは、それぞれ許容できる程度に低いかまたは許容できない程高いGCRA(1/PCR,τPCR )適合または非適合レートでの出力サービスを要求しているか否かを判断するために86において更にテストされる。このテストの結果が他の制御信号によって捕らえられ、スケジューラ62とそのステアリングロジック87にフィードバックされ、これらのGCRA(1/MCR,τMCR )非適合フローに対するその後に受信されるリファレンスを優先順位が低いキュー89上に速度に感応してキューに入れるためにスケジューラ62とそのステアリングロジック87をセットアップする。即ち、86においてGCRA(1/PCR,τPCR )適合であることが分かったフローについてのその後に受信されるリファレンスは、MCR保証を有するABRフローについての伝送リストの最後に付けられる。何故なら、それはラウンドロビンの順番で提供されるからである。これに対し、86においてフローがGCRA(1/PCR,τPCR )非適合であることが分かった場合には、そのフローについてのその後に受信されるリファレンスは、そのフローについてのPCRに従い、非作業維持型ストールド仮想クロックカレンダキュー89上にスケジューラ62によって組み込まれ、これによりPCRリミットをフローに対して課す。
【0083】
より一般的には、図4の実施の形態は下記のABRトラフィック成形アルゴリズムを実施することは明らかであろう:
もしGCRA(1/MCR,τMCR )適合であれば、MCR*加速係数の速度で優先順位の高いキューに入れ、
そうでなく、もしGCRA(1/PCR,τPCR )適合であれば、優先順位の低い作業維持型のキューに入れ、
そうでなければ、PCR出力間隔に基づき、優先順位の低い非作業維持型のキューに入れる。
【0084】
しかし、類似または異なる原理に基づく代替手段を使用できることは明らかである。
【0085】
例えば、図5に示すように、一つの魅力のある代替手段は、85と86(図4)においてGCRA(1/MCR,τMCR )適合でかつGCRA(1/PCR,τPCR )適合であることが見出されたフローのデータ転送単位、即ちセルに対するリファレンスを、(1)MCRスケジューリング間隔で優先順位の高いカレンダキュー88と、(2)優先順位の低いキューの作業維持領域との両方に入れることである。これは「競合」状態を作りだす。何故なら、そのような二重にキューに入れられたリファレンスの一つのインスタンスがキューの何れかにおいてサービスのために取り出される度に、デリンカー91は他のキューからそのリファレンスの他のインスタンスを除去するからである。これは、トレランスτに関してのより厳しい限界が維持されるであろうことを意味する。この変形例でのトラフィック成形アルゴリズムは:
キューへ入れるとき、
速度MCRで優先順位の高いキューに入れ、
もしGCRA(1/PCR,τPCR )適合であれば、優先順位の低い作業維持型のキューに入れ、
そうでなければ、PCR出力間隔に基づき、優先順位の低い非作業維持型のキューに入れ、
キューから出すとき、
もし優先順位の高いキューから出すのであれば、優先順位の低いキューからリンクを外し、そうでなければ、優先順位の低いキューからリンクを外す。
【0086】
図6は、ABRコネクションまたはフローを成形するための更に他の実施の形態を示す。この実施の形態では、MCRが零でないことの保証を有するMCR非適合ABRフローの各々に対して提供される出力帯域幅が、出力リンク(即ち、ラインインターフェースの転送側)のABRセル間の平均間隔とABR「レディーキュー」の現在の長さとに基づいて動的に調整される。このABR「レディーキュー」の現在長Lenは、93においてABR伝送リスト65eおよび65f上の作業維持キューの長さを測定することで判断される。一方、カレンダキュー上のABRセル間の平均間隔Sは、任意の非ABRフローに対して許可が与えられた後でABRフローが利用できる帯域幅を分割することによってリンクの割合として決定できる。これらの非ABRフローによって要求される帯域幅は、94において、非ABRフローのためのエントリーを伝送リスト65に提供するのに必要な全体的な帯域幅を計算することによって決定される。
【0087】
例えば、もし94において、出力リンクの帯域幅の50%がABRフローのために利用できると判断された場合、当然その時の出力リンク上のABRセルまたはデータ転送単位の間の平均間隔Sが2セルタイムとなる。この情報とABR「レディーキュー」の計算長Lenとにより、スケジューラ62に、非作業維持型カレンダキュー89上にこれらのフローについての到着するリファレンスを下記の各出力間隔Tt でスケジュールさせることによりMCR非適合ABRフローのサービスを最適化できる。
【0088】
t =Min(St ,Max(Pt ,R)) (3)
但し、R=予測ラウンドロビンABR
サービスタイム(R=現時刻+S*Len)、
t =フローtの次のセルのための最も早いサービスコントラクトコンプライアントデパーチャー(Pt =現時刻+1/PCR)、
t =フローtの次のセルのための最も遅いサービスコントラクトコンプライアントデパーチャー(St =現時刻+1/MCR)
である。
【図面の簡単な説明】
【図1】本発明を使用することが有利なATMスイッチの単純化したブロック図である。
【図2】図1に示すスイッチを横切る間にATMセルがとることが好ましい種々の形を追跡した図である。
【図3】図1に示すチップの出力側、即ち送信側における代表的なチャネルのより詳細なブロック図である。
【図4】本発明のストールド仮想クロックカレンダキューの実施を示す概略図である。
【図5】本発明の他のストールド仮想クロックカレンダキューの実施を示す概略図である。
【図6】本発明の更に他のストールド仮想クロックカレンダキューの実施を示す概略図である。
【符号の説明】
58 キュー制御ユニット
62 スケジューラ
63 カレンダキュー
66 タイムライン
87 ステアリングロジック
88 優先順位の高いカレンダキュー
89 優先順位の低いカレンダキュー[0001]
BACKGROUND OF THE INVENTION
The present invention relates to packet-switched communication networks, and more particularly to traffic shaping that causes a flow of time multiplexed packets at a queuing point in such a network or network element to conform to a specified traffic descriptor.
[0002]
[Prior art]
A. Traffic contract / definition
Most applications currently running on packet-switched communication networks can operate satisfactorily whatever the bandwidth that is accidentally obtained from the network. This is because “elastic” bandwidth is a requirement in these applications. This type of service that supports these applications is known as the “best effort” service in the Internet world, or the “Available Bit Rate” (ABR) in the broadband ISDN / ATM world.
[0003]
However, there is an increasing demand for network services that provide bounded jitter, or bounded packet delay variation (commonly referred to as cell delay variation in the context of ATM). For example, this type of service is required in real-time applications such as circuit emulation and video. It is not clear whether or not the Internet will respond to such a request, but in the field of broadband ISDN / ATM, it is responded by introducing the concept of a user-network negotiation type traffic contract.
[0004]
As is known, user-network ATM contracts are defined by traffic descriptors including traffic parameters, tolerances, quality of service requirements, and the like. A conformance definition is identified for each relevant traffic parameter. Thus, ATM services can use these traffic parameters and their corresponding conformance specifications to support different combinations of quality of service (QoS) target values and multiplexing schemes.
[0005]
Partially overlapping ATM traffic classes are defined by the International Telecommunications Union (ITU-T) communications standardization department and the ATM Forum. In some cases, these two groups have different names for traffic classes that have essentially the same attributes, and the name translation table below is the equivalent equivalent name currently in use. Indicates.
[0006]
Figure 0003813698
[0007]
An ATM service contract for a virtual circuit (VC) connection or a virtual path (VP) connection can include a plurality of parameters that describe the service rate of the connection. This includes peak cell rate (PCR), sustainable cell rate (SCR), intrinsic burst tolerance (IBT), and minimum cell rate (MCR). Not all of these parameters are relevant to individual connections or individual service classes, but they must be emphasized if they are implicitly or explicitly specified elements of a service contract. . While VC connections are central to the discussion below, it will be appreciated that VP connections can be identified as such. A data transfer unit for an ATM connection is usually called a “cell”. However, in this specification, the word “packet” is sometimes used to represent a data transfer unit. This is because the term “packet” is a more general term suitable for some of the broader concepts of the innovation.
[0008]
The Generic Cell Rate Algorithm (GCRA) specified in ITU-T Recommendation 1.371 is very suitable for testing packet or cell flows for conformance with traffic descriptors. In order to perform such a test, GCRA requires specifications for the output interval (ie, the reciprocal of the flow rate) and tolerance τ. In practice, this tolerance will depend on various factors such as the connection, connection setup parameters, or type of service. As will be seen later, GCRA can be adopted as a Boolean function, and for a fixed size packet or cell flow on a connection, GCRA (output interval, tolerance) is false if the flow is following the peak rate. Yes, true if the flow follows the minimum rate. For example, if GCRA (1 / PCR, τ PCR ) Is false, the source of the cell follows the PCR. Similarly, if GCRA (1 / MCR, τ MCR ) Is false, the connection or flow follows the MCR. As will be understood later, “output interval” is the reciprocal of “cell rate”.
[0009]
A DBR traffic contract is appropriate for a source that establishes a connection by predicting that a certain amount of bandwidth can be continuously used for the connection while the connection is being made. Thus, the bandwidth that the network entrusts to the DBR connection is characterized by the PCR value. Furthermore, the flow of a cell or packet over such a connection is that if it is GCRA (1 / PCR, τ PCR ) Is in compliance with the traffic contract. On the other hand, the SBR traffic contract is based on SCR and τ IBT And PCR and τ pcT It is suitable for applications with known traffic characteristics that take into account the notified choices. An SBR or rt-SBR flow is defined as GCRA (1 / PCR, τ PCR ) As well as GCRA (1 / SCR, τ IBT ) Is also in compliance with the traffic contract.
[0010]
As described above, ABR traffic contracts are suitable for applications that can tolerate dynamic changes in information transfer rates that result from using unreserved bandwidth. The PCR and MCR are specified by the source that establishes such a connection, and these parameters are subject to negotiation with the network. Thus, the available bandwidth for an ABR connection is the sum of MCR (which may be zero) and the variable cell rate caused by sharing unreserved bandwidth among ABR connections according to a defined allocation policy ( That is, the bandwidth that the source receives above its designated MCR depends not only on the negotiated PCR, but also on the network policy). With feedback from the network, the source application can dynamically adjust the rate at which cells or packets are sent for the ABR connection. The ABR flow is GCRA (1 / MCR, τ MCR ), The traffic contract is always observed, and GCRA (1 / PCR, τ PCR ) Is always non-compliant. The suitability in the region between MCR and PCR depends on the ABR food bag and is therefore determined dynamically.
[0011]
The UBR traffic contract is similar to the ABR contract, but the UBR contract cannot conform to the MCR specification and does not have a dynamic conformance definition. Therefore, the UBR flow is the same as that of GCRA (1 / PCR, τ PCR ) Is in compliance with the traffic contract.
[0012]
B. Traffic molding
ITU-T Recommendation 1.371 refers to the possibility of traffic reshaping at network elements to conform traffic to traffic descriptors in the following respects:
[0013]
“Traffic shaping modifies the traffic characteristics of cell streams on VCC or VPC to improve network efficiency while meeting QoS targets, or to ensure conformance at subsequent interfaces to A mechanism that achieves the required changes in characteristics: traffic shaping must maintain the integrity of the cell sequence over the ATM connection, and shaping changes the characteristics of the cell flow, resulting in an average cell transfer delay Is to increase.
[0014]
Examples of traffic shaping are peak cell rate reduction, burst length limitation, CDV reduction by proper cell time interval, and queue service scheme.
[0015]
Whether or not to perform traffic shaping and where to do so depends on the choice of the network operator. For example, the network operator can choose to perform traffic shaping with a suitable UPC / NPC function.
[0016]
Performing traffic shaping on separate or collective cell flows is an option for the operator.
[0017]
Therefore, traffic shaping can be performed for any ATM connection.
[0018]
Options available to network operators / service providers include:
[0019]
a. Without molding
Determine the dimensions or dimensions of the network so that any flow of conforming cells at the network entrance can be tolerated while ensuring compatibility at the network exit without using any shaping function.
[0020]
b. With molding
Sizing and operating the network so that any flow of conforming cells at the entrance is carried by the network or network segment while meeting the QoS target, and power shaping the traffic to meet the conformance test at the exit.
[0021]
Shape the traffic at the entrance of the network or network segment, meet QoS target values and subsequent conformance tests at the exit of the network or network segment, and allocate resources according to the traffic characteristics obtained by shaping.
[0022]
Traffic shaping may also be used in the customer's equipment or at the source to ensure that cells generated by the source or at the UNI are compatible with the negotiated traffic contract for the ATC used. (See Chapter 5.5). ITU-T recommendation 1.371, chapter 6.2.5.
[0023]
C. Scheduling / existing tools and techniques for real-time and non-real-time connections
As is known, various undesirable phenomena will occur if the bandwidth is not divided “fair” between applications that employ “best effort” Internet services or ABR ATM services.
[0024]
Currently, FIFO queuing is implemented in most ATM switches. However, FIFO queuing behaves abnormally when used for ABR traffic. Also, the FIFO cannot protect a user who is behaving correctly from a user who is behaving incorrectly (does not provide isolation). Because of these drawbacks, non-FIFO queuing mechanisms such as weighted fair queuing, or schemes that approximate fair queuing such as round robin are often proposed.
[0025]
Some types of services that require inelastic bandwidth sometimes require data to be transmitted over the network with constrained jitter (ie, limited cell or packet delay variation). . As is known, weighted fair queuing can be used to provide constrained jitter for real-time streams. Furthermore, tested delay limits can be provided for systems that use the closely related mechanisms of virtual clocks and self-timed fair queuing.
[0026]
Thus, it is known that both elastic (best effort / ABR) and inelastic (or real-time) services benefit from using fair queuing and related algorithms.
[0027]
1. Weighted fair queuing and virtual clock
Fair queuing and related algorithms (eg, frame-based fair queuing, defective round robin, etc.) for packets or sequences of other data transfer units (eg, ATM cells are packets in this discussion) Act. In the case of ATM, these sequences are recognized by either VCI or VPI, and suitable Internet protocols for this recognition are based on <IP address, protocol, port> triple (IPv4) or flow identifier (IPv6). . In both self-timed weighted fair queuing and virtual clocks, packets are ordered (sorted) by time stamps (such as round robin schemes approximate packet ordering by time stamps). This time stamp represents the virtual end time (or the virtual start time of the packet as well), gets the start time, and multiplies the packet length by a weight that represents the bandwidth allocation for a particular packet sequence Is calculated by adding the offset obtained by.
[0028]
More specifically, in the case of a virtual clock, the virtual end time is calculated as follows.
[0029]
VT (f, 0) = 0
VT (f, j + 1) = max {arrival (f, j + 1), VT (f, j)} + length (f, j + 1) / rate (f) (1)
Where VT (f, j) is the virtual end time associated with packet j of flow (virtual circuit) f,
Arrival (f, j) is the arrival time of packet j in flow f,
Length (f, j) is the length of packet j of flow f.
[0030]
Self-timed weighted fair queuing specifies a virtual end time according to the following formula.
[0031]
Figure 0003813698
However, the system virtual time is a virtual time relating to a packet provided (output) at the time when the packet (f, j + 1) arrives.
[0032]
In the case of ATM, since the cell has a fixed size (for example, 53 bytes long), the packet length is constant. Therefore, the rightmost term in the equations (1) and (2) is a constant for each flow. For a virtual clock, the equation can be simplified as follows:
[0033]
VT (f, j + 1) = max {arrival (f, j + 1), VT (f, j)} + constant (f) (3)
[0034]
For self-timed weighted fair queuing, the equation can be simplified as follows:
[0035]
VT (f, j + 1) = max {system virtual time, VT (f, j)} + constant (f) (4)
[0036]
That is, an ATM queuing point that implements a virtual clock or self-timed weighted fair queuing performs the following steps.
[0037]
1) Calculate the maximum value between the current virtual time (a) for the VC and the cell arrival time i) and any one of the system virtual times ii) (b)
2) Add a constant for each VC representing the bandwidth VC occupancy to the result of Step 1 above,
3) Provide cells (send them) in the order of increasing virtual timestamp values specified in steps 1 and 2.
[0038]
2. priority
Giving one traffic class a higher priority than others means that if a traffic class with higher priority has cell groups ready for transfer, these cell groups will always have priority. It is transmitted in preference to cells of low traffic class.
[0039]
The priority mechanism can be preemptive or non-preemptive. The term comes from operating system literature. The non-preemptive priority mechanism gives priority to an object (process in the operating system world and VC in the ATM world) at scheduling time, and the object gives this priority until it is served. maintain. On the other hand, the preemptive priority mechanism can change the priority of an object while waiting for the object to be served. For example, in a preemptive system, you can say "Schedule this VC with priority 3", but if it is not provided in 200 microseconds, its priority is raised to 2.
[0040]
3. Work-keeping and non-work-keeping queuing
The term “work conserving” is sometimes used to denote any queuing system in which work is neither created nor destroyed. Consistent with this terminology, a switch that always transmits a cell to the output link when a standby cell is given is a “work keeping switch”. Switches that employ pure FIFO, weighted fair queuing or virtual clock scheduling algorithms are all work-maintaining. In contrast, a non-work-keeping switch can choose not to transmit a cell even if the cell is waiting for transfer. As will be seen later, the way to do this is to program the switch to wait until the current time is equal to or greater than the time stamp associated with that cell before transmitting that particular cell.
[0041]
The work maintenance switch attempts to fully utilize the transmission link, but does not necessarily remove or block the burst. In contrast, a non-work keeping switch can strategically delay cells to reshape traffic to meet a more stringent conformance test (ie, a GCRA with a smaller τ). In addition, a non-working maintenance switch that only allocates a specified amount of buffering to a given connection can perform a policing function by discarding or tagging cells that overflow the allocated buffer space ( ITU calls it UPC / NPC). An example of a non-work-keeping queuing system is a stalled virtual clock that is a modification of a virtual clock algorithm that does not allow virtual time to be too fast (being stuck or going into a non-work-keeping state).
[0042]
4). Calendar queue
A calendar queue is a list of actions in chronological order, and each action is removed from the queue and executed when the actual time is equal to or exceeds the time associated with the action. Calendar queues with limited time intervals can be represented as a linear array known as a “time-wheel” or “time-line”. The time wheel assigns events for the bucket relative to the pointer, and the bucket index is calculated using the wheel size as an arithmetic modulo. These data structures are well known in the literature as queuing mechanisms. In the time wheel, absolute time is expressed as an offset to the current time (actual time), and each element in the array performs one or more actions (typically) that should be performed at the time specified for the bucket to which they belong. (In the form of a linked list). Any of such time wheel buckets can be empty, i.e. have no events associated with it.
[0043]
For each time wheel, two important times t earliest And t latest Which correspond to the head and tail pointers for the active entries in the array, t earliest Is the time of the next entry to be provided (eg, packet or cell) and t latest Is the time associated with the latest (farthest in time) bucket containing the scheduled event. t earliest And t latest The difference between cannot exceed the time wheel length b minus one. This is due to seeing the time keeping modulo b, and no offset (packet length multiplied by either rate or weight respectively in virtual clock or weighted fair queuing) over b-1. It is ensured by ensuring. For ATM links operating at OC-3 speeds (149.76 Mbps-SONET payload rate), there are approximately 353208 cells per second on the link. Therefore, if 64Kbps (voice phone speed) flow (about 174 cells per second if AAL type 1 is used), the slowest connection to support, the fastest supported for the slowest speed Speed ratio is 2029, rounding up is 2 11 It becomes. This percentage is the maximum offset that is added while calculating the real time. Thus, a time wheel of length 2030 (2048 when considering rounding up to a power of 2) encodes the actual time associated with a speed line between 64 Kbps and the speed of the full OC-3 link. It is enough to make it.
[0044]
The length of the time wheel array can be reduced by allowing the array elements to contain more than one time offset. For example, if the above time wheel is reduced from 2048 elements to 256 elements, each bucket will have 8 time offsets mapped into it. Actions within a single bucket spanning multiple offsets may be performed out of order, but actions between buckets will be in order. This can reduce the amount of memory that needs to be allocated to such a time wheel at the expense of reducing the accuracy of the ordering of actions in the calendar queue.
[0045]
D. Traffic shaping for time multiplexed flows over multiple output channels
Any traffic shaping necessary to adapt the time multiplexed packet or cell flows to their traffic contracts is the switching or routing action required to separate the flows for different output channels from each other. Preferably it is done after completion. Thereby, the throughput efficiency of the multiplexer can be optimized.
[0046]
However, previous output standby ATM switches typically employ FIFO (first-in, first-out) output buffers. These buffers cannot participate in controlling the reshaping of any of the flows that pass through them. Instead, the per-VC time mutiplexed flows output from these buffers are essentially time multiplexed composites of the input flows loaded into them. Of course, these output flows are delayed in time with respect to the input flows due to the inherent latency of the buffer. Also, if a scheduling conflict occurs between the data transfer limits of different flows, the cell delay variation (CDV) of one or more of these output flows will increase. This is because these interferences cause so-called “transmission collisions”.
[0047]
As will be seen later, the increase in CVD is particularly troublesome for traffic such as relatively tolerant DBR traffic. Therefore, if each hop between the source and destination contains a simple FIFO output queue of the type described above, this CDV sensitive traffic will be in order to ensure conformance within its specified tolerance. It will be necessary to limit the number of hops that can be made.
[0048]
Thus, there is clearly a need for a more efficient and more effective traffic shaping mechanism and process for ATM switches or other routers that send traffic from multiple inputs to multiple outputs for time multiplexed output delivery. is there.
[0049]
[Problems to be solved by the invention]
The present invention provides rate shaping in a per-flow waiting routing mechanism for an available bit rate service.
[0050]
[Means for Solving the Problems]
According to a first aspect of the present invention, in a packet-switched communication system, traffic shaping includes a contract and continuously sends out packets of time-multiplexed flows so as to substantially match individual network traffic contracts of the respective flows. An apparatus, wherein the contract specifies a respective peak packet transmission rate and a number of associated peak rate tolerances of the flow and has a mutually exclusive category, i.e. each has an associated minimum rate tolerance specified by the contract. Each of the flows is classified into one of a category A flow having a non-zero minimum packet transmission rate and a category B flow having a traffic contract allowing a zero packet transmission rate, and the traffic shaping device A queuing mechanism for organizing active flow pending packets including the number of flows in each queue according to the oldest pending packet at the head of the queue sequence, coupled to the queuing mechanism for sending A scheduling mechanism for scheduling the packets of the active flow for the scheduling mechanism, the scheduling mechanism comprising: a non-work keeping calendar queue having a relatively high priority; and at least one work keeping queue having a relatively low priority; And other non-workkeeping queues whose priority is undecided relative to the high priority queue and the low priority queue, wherein the scheduling mechanism includes: (i) in the high priority non-work keeping calendar queue , Designation for the first given flow When the packet of the first flow is transmitted at a rate exceeding the tolerance with respect to the minimum transmission rate, the packet is transmitted at a rate exceeding the minimum transmission rate specified by the contract for the first flow. ii) In the other non-work keeping calendar queue, when the packets of the first flow are sent at a rate exceeding the tolerance for the specified peak sending rate of the first flow, (Iii) when the packet of the first flow is being sent according to the traffic contract of the first flow in the work maintenance queue, so that it is sent at a rate substantially the same as the specified peak delivery rate for Schedule any given Category A packet to be delivered according to the selected continuous service strategy (Iv) in the other non-work-keeping calendar queue, the scheduling mechanism sends packets of a second given flow at a rate that exceeds a tolerance for a specified peak delivery rate for the second flow. (V) in the work maintenance queue, the packet of the second flow is sent to the second flow so that it is sent at a rate that is substantially the same as the specified peak delivery rate for the second flow. Schedule any given category B packet to be sent according to the selected strategy.
[0051]
According to a second aspect of the present invention, in a packet-switched communication system, traffic shaping that includes a contract and continuously sends packets of time-multiplexed flows so as to substantially match individual network traffic contracts of the respective flows. An apparatus, wherein the contract entrusts each of the flows with an allowable peak packet transmission rate and a mutually exclusive category, i.e., a category A flow with each non-zero allowable minimum packet transmission rate. Categorizing each of the flows into one of the category B flows that receive a traffic contract that allows a zero packet transmission rate, and the traffic shaping device is configured according to the oldest pending packet at the head of the queue order respectively. Queue Including a queuing mechanism for organizing active flow packets including the number of flows, and including a scheduling mechanism coupled to the queuing mechanism to schedule the active flow packets for transmission, the scheduling mechanism comprising: A non-work-maintenance calendar queue having a relatively high priority, a work maintenance queue having at least one relatively low priority, and a queue having a high priority and a queue having a low priority, Select packets scheduled in the higher priority queue and the lower priority queue in combination with other non-work-keeping queues for determination and supervised transmission from the higher priority queue and the lower priority queue Control mechanism not scheduled The scheduling mechanism (i) schedules packets for each flow in the high priority calendar queue to be sent at a rate that exceeds the minimum rate commitment for each flow, and (ii) predetermined work Prepare packets for any Category A flow by placing them in the work maintenance queue to be sent out according to a strategy to leave the maintenance queue, thus creating a race condition for these Category A flow packets, the control mechanism comprising: When each packet arrives to be sent by one of the high priority queue and the work maintenance queue, the packet of the delayed category A flow is taken by taking this packet out of the other packets of the queue. Resolve the race condition of the The ring mechanism sends out all Category A and Category B flow packets that are sent at a rate that exceeds the allowable peak sending rate entrusted to each flow at a rate almost the same as the peak sending rate entrusted to each flow. Scheduling in the other non-work-keeping calendar queue, and the scheduling mechanism sends packets of any Category B flow that is being sent at a rate that is compatible with the contract delegated for each flow. Put in the work maintenance queue to send according to the strategy to get out.
[0052]
An aspect of claim 3 of the present invention is to continuously combine a fixed bit length packet of multiple time multiplexed flows onto a link of known bandwidth so as to substantially match the individual traffic contract for each flow. A routine for shaping at least some of the flows into respective available bit rate traffic contracts that specify respective peak rates and minimum packet delivery rates greater than zero for the some flows in the outgoing traffic shaping process. The routine includes the steps of organizing active flow packets including the number of flows in each queue according to the oldest outstanding packets at the head of the queue order, and the available bit rate traffic Contract Dynamically determining the available bandwidth on the link as a percentage of the known bandwidth for a flow to perform, and dynamically determining the number of active flows with an available bit rate traffic contract Including, for each head of queue packet of each flow that receives an available bit rate traffic contract, for a first theoretical transmission time based on a contract specified minimum transmission rate for the flow, and for an available bit rate flow A second theoretical transmission time based on the allocation of bandwidth available on the link per active available bit rate flow and a third theoretical transmission based on a contract-specified peak transmission rate for the flow Including the step of determining the time Abandoning the earliest of the second and third theoretical transmission times, and scheduling the packet in a non-work-keeping queue to be transmitted at the earliest of the remaining theoretical transmission times Including that.
[0053]
DETAILED DESCRIPTION OF THE INVENTION
A. Typical environment
Referring to the drawings, and in particular to FIG. 1, the input and output ports of ATM switch 21 are typically coupled to one or more physical layers via a Utopia2 interface and switch controlled via a second preferred interface. The processor module 22 is connected. As a result, the switch 21 exchanges data and control cells with an arbitrary connected physical layer, and exchanges control cells with the control processor module 22. Consistent with this standard practice, communication channels are unidirectional and therefore a set of channels is required for bidirectional communication.
[0054]
The switch 21 includes a switching fabric 24, a fabric control module 25, and a reservation ring 26 for switching data and control cells from the input queue to the per-VC output queue. The cells in these queues are stored in a data path in the data memory 27, and these input and output queues are managed by the queue control module 28. Typically, the data memory 27 has a capacity capable of storing a maximum of about 12000 cells. Data and control cell flow connection records are stored in a control path in the control memory 29 along with a predetermined type of control cells captured by the rate reference engine / traffic multiplexer 31 for routing to the control processor module 22. The control RAM 29 is preferably capable of storing a maximum of about 8200 connection records and 64K cell records. The interaction between the control processor module 22 and the switch 21 is beyond the scope of the present invention and will not be described here. However, if the person is familiar with the design of ATM switches, the control processor is mainly responsible for establishing and terminating connections and performing OAM (Operation and Maintenance) functions.
[0055]
The data path of the switch 21 is clocked synchronously at a predetermined rate, for example 40 MHz. However, in keeping with traditional synchronous pipeline design practices, the phase of this clock signal gives the data the appropriate time to settle before being transferred from one pipeline stage to the next. Delayed by different amounts (by means not shown) at different points along the data path.
[0056]
In accordance with standard practice, a source wishing to communicate with a destination initiates negotiations with the ATM network in which switch 21 resides by sending a SETUP message to the network. This message identifies the destination and explicitly or implicitly specifies all relevant traffic parameters for the requested connection. If the network is ready to delegate to a traffic contract defined by these traffic parameters (or a variant of the parameters that the source wants to accept), the network will send a SETUP message to the destination. Send to Nation. Then, if the destination is ready to receive message traffic from the source according to the conditions of the traffic contract, the destination returns a CONNECT message to the source. This CONNECT message confirms that a connection has been established on the designated virtual circuit (VC) in the designated virtual path (VP) for the cell flow that conforms to the traffic contract. See ITU-T Recommendation 0.2391 and ATM Forum UNI4.0 specification. A “permanent” virtual connection can be established by supplying these signaling protocols without generating them.
[0057]
After the connection is established, data cells begin to flow. As shown in FIG. 2, the shape of the cell changes as it passes through the switch 21 due to the action that the switch 21 performs. Although cells may be duplicated for multicasting, the discussion below is limited to unicast operations to avoid unnecessary complexity.
[0058]
As shown in FIG. 2, each upstream cell 41 received by the switch 21 has a header including a VP index and a VC index. These indexes are combined to define a unique address for one hop of the connection. A connection can consist of multiple hops, so the VP and VC index for the next hoop is written to the cell header as it passes through switch 21, as shown at 42 in FIG.
[0059]
The switch 21 adopts the VP and VC indexes of the upstream cell (41 in FIG. 2) in order to calculate the address in the control RAM 29 where the connection record for the associated flow exists. Typically, this connection record is a bit vector for recognizing the output port from which the flow exits the switch 21 (ie, the destination at the switch level), on a granular priority scale. A priority index for identifying the relative priority of the flows in the network, and a circuit index (“Circuit Index”) for uniquely identifying the flow in the switch 21. These connection parameters are written in the cell header as indicated at 43 in FIG. The cell is then written to the data RAM memory 29 and a pointer to the cell is linked to the appropriate one of the multiple FIFO input queues. Note that the queue selection is performed based on the priority order of the related flows.
[0060]
The relative priority of the head of the queue cell in the input queue is examined during each cell time, and the head of the queue cell with the highest priority is selected for arbitration during the next arbitration session. Is done. In addition, the priority of the lower priority of the queue cell (ie any unselected head of the queue cell) is incremented by a fixed amount (by means not shown), thereby allowing arbitration in the next arbitration session. Thus increasing the likelihood that a cell will be selected. Therefore, an input queue with a higher priority has a higher throughput per unit time than a queue with a lower priority, but a queue with a lower priority has a limited delay because the priority of the queue cell head increases with time. The
[0061]
Each arbitration cycle requires one cell time of the switch 21, so the routing information of the cell selected for arbitration is one cell than the cell or cell group payload that won the arbitration is released to the switching fabric 24. It is supplied to the reservation ring 26 just before time. That is, as shown at 44 in FIG. 2, the cell received by the reservation ring 26 and the switch fabric 24 consists of the header of the cell for the next arbitration cycle (ie, the “current cell”), and Following the body or payload of the cell that was successfully arbitrated in the previous arbitration cycle (ie, the “previous cell”). Thus, when cell bodies arrive at the fabric 24, the fabric is already configured by the fabric controller 25 to send these cells to their output port destinations, respectively.
[0062]
In the illustrated embodiment, the cells are broken down into 4-bit wide nibbles for arbitration and routing. After this (except for the “idle cell” that would be provided to test the switching process), the cell is reassembled and (a) a time-scheduled transfer to the appropriate output port of switch 21 And / or (b) queued in the data path, the control path, or both for transfer to the control processor module 22. The time-scheduled transfer of cells to the output port of the switch 21 is central to the present invention and will be further described below. On the other hand, cell disassembly and reassembly, test processes, and interaction of the control processor 22 with RM (Resource Management) and OAM (Operation and Maintenance) cells are additional topics that need not be considered deeply.
[0063]
Referring to FIG. 3, it can be seen that the switch 21 is fanning out on the output side of the switching fabric 24, ie, the transmit side. Thus, although only one output channel of switch 21 is shown, it will be appreciated that this channel is representative of the other channels.
[0064]
As shown, a fill cell module 51 is preferably provided to accept cell bodies from the switching fabric 24 and their associated line indexes. The “effective cell time” on the output side of the switching fabric 24 is determined by the ratio of the normal cell time to the “k” acceleration factor. Thus, for example, if the normal cell time is 113 clock cycles / cell, the effective cell time on the output side of the switching fabric 24 is 56.5 cycles / cell if k = 2.
[0065]
When a valid cell is received, the fill cell module 51 typically uses the cell configuration output from the linked numbered free list 52 for the data structure for writing the cell to the data memory 27. . For this reason, the fill cell module 51 preferably includes a foot state machine 53 for reading the cell structure from the top of the free list 52 upon request. This causes the fill cell module 51 to insert a line index for the cell and a pointer to the location of the cell in the data memory 27 in an “arrival” message sent to inform the cell flow control unit 55 of the arrival of the cell. Can do. Based on the line index, the flow control unit 55 can locate the VC or flow to which the cell belongs from the connection record in the control memory 29. Then, the cell flow control unit 55 can check the traffic shaping state of the flow. An OAM / RM recognizer 57 is provided to allow the flow control unit 55 to recognize these control cells and determine whether they are queued in the data path, the control path, or both. Is advantageous.
[0066]
Memory pointers for traffic contract compliant flow cells are placed in a per-VC queue in response to an “addCell” message sent by cell flow control unit 55 to queue control unit 58. Each addCell message identifies the cell to which it belongs and the circuit index for the associated flow or VC. The addCell message also indicates whether the cell should be queued in the data path, the control path, or both. When a cell is properly queued, the queue is notified to notify the flow control unit 55 that the newly queued cell should be considered during future rate shaping operations for the VC to which it belongs. The control unit 58 returns an “added” message to the flow control unit 55.
[0067]
Advantageously, the queue control unit 58 monitors the per-VC queue length with respect to the depth control limits set for each queue. Thereby, the control unit 58 can start the congestion control operation for the ABR flow when the queue for each VC becomes excessively long. The control unit 58 can also activate appropriate policing functions (not shown) to identify flows that exceed the traffic contract and delete or record cells of such non-conforming flows. .
[0068]
The admission controller 61 monitors the “added” message returned from the queue control unit 58 and causes the scheduler 62 to forward the queue cell heads for non-empty per-VC queues at the scheduled time. Incorporate above. In order for the scheduler 62 to incorporate the heads of the queue cells onto the calendar queue 63 according to the respective virtual end times VT (f, j + 1) (or “virtual start times”) calculated by the scheduler 62 for them, A virtual clock for each VC is adopted. C. above. See 1.
[0069]
The calendar queue 63 keeps track of the “real time” and “current time” of the system in order to prevent the scheduled cell from being released for transmission before the scheduled time. That is, the scheduler 62 and calendar queue 63 provide a stalled virtual clock so that a cell scheduled to be transmitted is released for transmission only when the real time of the system reaches each transmission time. Is done. As shown, a connection having cells released for transmission by the calendar queue 63 is linked to a linked list of connections having cells ready for transmission on the transmission list 65.
[0070]
The calendar queue 63 informs the flow control unit 55 whether or not to release the cell for transmission on any given connection. The flow control unit 55 then requests a reference (ie, the new head of the queue cell) for the next cell (if any) on the per-VC queue for a given connection and Inform the scheduler 62 of this reference for scheduling. As a result, the admission control 61 is effectively involved in the closed loop communication with the calendar queue 63, and the head of the queue cell that has accepted the scheduling is allowed for the exclusion of all other cells in the queue for each VC. Make sure. Thus, the calendar queue 63 can be implemented by employing one or more time-limited time wheels, or “timelines” 66. The time span of these time wheels must be at least as long as the period of the lowest frequency flow that the system is designed to support to avoid ambiguity caused by time wrap, and preferably Is doubled so that relative times can be compared using two's complement arithmetic.
[0071]
B. Specified peak flow rate by shaping flow with fixed bit length data transfer limit
Referring to FIG. 4, the stalled virtual clock transmission control uses a time-multiplexed flow of fixed bit length data transfer units such as ATM cells from the output waiting routing mechanism to a designated peak such as PCR for DBR / CBR ATM service. It turns out that it is very suitable for shaping | molding into the flow rate of this data unit. As described above, a data transfer unit of a flow sent to a predetermined output port is sent to a queue for each flow after being sent out. The admission controller 61 allows the data transfer unit at the head of these queues to be incorporated into the timeline calendar queue 63 by the scheduler 62 (except for all other transfer units). Then, the scheduler 62 performs a virtual clock calculation for each flow with respect to the heads of these queue transfer units, and releases them from the calendar queue 63 according to their respective theoretical end times VT (f, j + 1) or their respective theoretical start times. To schedule.
[0072]
The real time is advantageously increased on the timeline 63 at a rate at which the shaped time multiplexed output traffic can essentially fill the bandwidth of the output link 71. As recalled, the maximum number of resolvable time slots that the scheduler 62 can map the queue member head of each flow is based on the ratio of the highest allowable frequency to the lowest allowable frequency of these flows. Therefore, the actual time is increased by a logical multiple of the cell rate for each bucket.
[0073]
Data transfer units that exist in a time slot that represents a time that is prior to or equal to the current real time that is the reference for the timeline 63 are eligible to be selected for transmission, and thus transfer lists as described above. Linked to 65. However, the data transfer units present in the time slots associated with the later time slots of the time line 63 will wait until the actual time of the system has advanced enough to reach these time slots. In order to avoid ambiguity due to rollover, the timeline 63 shows all references to previously scheduled data transfer limits, and any references to later scheduled transfer units in anticipation of the next scan. Removed from each time slot before being inserted.
[0074]
The above configuration effectively shapes the matching DBR / CBR ATM flows into the PCR specified by their traffic contract, but the cell delay variation (CDV) of these flows is τ of their traffic contract. PCR It does not help in adapting the parameters.
[0075]
C. Multiple priority levels to minimize relative CDV
According to the present invention, priority is given to a data transfer unit supplied to a multiplexing point such as an output port of an ATM switch by a flow of different frequency, and a data transfer unit of a flow having a high frequency can collide with this A higher transmission priority is given than a data transfer unit of a low-frequency flow having a certain frequency. As shown in FIG. 3, the transmission priorities are arranged in the order of priority based on the frequency of the flow to which the data transfer units belong. Implemented by directing to one or more of multiple timelines 66a-66e or output FIFO queues. For example, in the case of an ATM switch, it is recommended to implement with five different frequency dependent / service type dependent output priorities. This priority includes (1) the highest priority for cells from flows that have a negotiated output rate of at least 1/16 of the maximum rate of the output link, and (2) 1/16 of the output link rate. Second priority for cells from flows with negotiated output rates in the range of ~ 1/256, and (3) negotiated output in the range of 1/256 to 1/44096 of the output link rate A third priority for cells from flows with rates is included. The two lower priorities are preferably set for ABR connections with non-zero negotiated MCR rates and for URB and ABR connections with zero MCR rates, respectively.
[0076]
As will be seen later, the present invention effectively reduces the CDV of the high frequency flow without substantially increasing the CDV of the low frequency flow. In general terms, the acceptable CDV varies depending on the negotiated rate of the flow. For example, a 100 cell time CVD is very large for one output interval per 10 expected cells, but if the negotiated output interval is only one for 2029 cells. Is generally not a problem.
[0077]
When a calendar queuing mechanism is employed to schedule transmission of data transfer units or cells of flows with different frequencies, high frequency, high priority flows are scheduled to achieve an acceptable low CDV and single However, the low frequency / low priority flow can be roughly decomposed with the accuracy of 16 cell times. This means that the number of time slots on the calendar queue 63 can be reduced. This can reduce the amount of memory required to implement the calendar queue 63 at the expense of some accuracy that is not generally required for the scheduling of the heads of low frequency flow queue cells.
[0078]
The frequency-based prioritization technique according to the present invention, provided to eliminate the problem of transmission collisions at multiplexing points between nominally different constant frequency flows, allows cells or cells to be sent to such multiplexing points. It can be employed in many different applications to reduce the relative jitter of a flow, such as an application that has the task of maintaining a per-flow output queue to supply other data transfer units.
[0079]
D. Traffic shaping of MCR and PCR parameters for ABR services in networks with source-to-destination ABR control loops
As recalled, standard ABR traffic contracts expect PCR and MCR parameters specified explicitly or implicitly, and the MCR may be zero. GCRA (1 / MCR, τ MCR ABR flow that conforms to) is valid and eligible to be provided, but the network does not give it any bandwidth allowed. In contrast, GCRA (1 / PCR, τ PCR ) Is incompatible. Thus, an ABR connection or flow sent to the output of a network or network element, such as by an ATM switch 21, (1) An ABR flow with a non-zero MCR guarantee is effective for these guarantees. It is advantageous to accept an appropriate output bandwidth to satisfy and (2) shape to ensure that none of the ABRs violate their PCR commitment at such output. In networks with multiple multiplexing points, it is useful to perform this shaping at each of the multiplexing points.
[0080]
FIG. 4 illustrates one technique for shaping ABR flows or VC connections to adapt to their traffic contracts at the output of the network or network element. As shown, each flow monitors the rate at which it requests output service, and initially at 85 the flow is defined as GCRA (1 / MCR, τ MCR ), And at 86, GCRA (1 / MCR, τ MCR ) Is not compatible with GCRA (1 / PCR, τ PCR ) Is determined. A control signal reflecting the results of these series of tests 85 and 86 is fed back to the scheduler 62 and its associated steering logic 87 for the rate at which each flow's data transfer unit (eg, cell) is fed to the output. Make appropriate rate shaping adjustments. As will be seen later, this required state is that all ABRV flows are GCRA (1 / MCR, τ MCR ) (Or barely compatible) and GCRA (1 / PCR, τ PCR ) Is false / conforming. This is because these algorithms test for the minimum and maximum allowable flow rates, respectively.
[0081]
More specifically, GCRA (1 / MCR, τ MCR ) Will not receive the output bandwidth necessary to meet their MCR guarantee. Thus, when such a flow is identified at 85, scheduler 62 and its steering logic 87 will have a relatively high priority stalled virtual clock calendar for output at a rate somewhat above its guaranteed MCR. Set up to schedule subsequently received references on the queue 88 for the data transfer unit (eg, cell) of that flow. For example, these subsequently received cell or packet references are incorporated on calendar queue 88 for output at a rate determined by multiplying the MCR for the flow by a predetermined acceleration factor. This allows the network to provide these additional possibly “lagging” flows with the additional output bandwidth necessary to satisfy their MCR guarantee.
[0082]
GCRA (1 / MCR, τ MCR ) Non-conforming ABR flows are either acceptable low or unacceptably high GCRA (1 / PCR, τ PCR It is further tested at 86 to determine if it is requesting output service at a conforming or non-conforming rate. The result of this test is captured by other control signals and fed back to the scheduler 62 and its steering logic 87, and these GCRA (1 / MCR, τ MCR Set up scheduler 62 and its steering logic 87 to queue subsequently received references for non-conforming flows on low priority queue 89 in a speed sensitive manner. That is, at 86, GCRA (1 / PCR, τ PCR ) Subsequent received references for flows found to be compatible are appended to the end of the transmission list for ABR flows with MCR guarantees. Because it is provided in round robin order. In contrast, at 86 the flow is GCRA (1 / PCR, τ PCR If it is found to be non-conforming, subsequently received references for that flow are incorporated by the scheduler 62 on the non-working stalled virtual clock calendar queue 89 according to the PCR for that flow; This imposes a PCR limit on the flow.
[0083]
More generally, it will be apparent that the embodiment of FIG. 4 implements the following ABR traffic shaping algorithm:
If GCRA (1 / MCR, τ MCR ) If it fits, put it in a high priority queue at the speed of the MCR * acceleration factor,
Otherwise, if GCRA (1 / PCR, τ PCR ) If it fits, put it in a low priority work maintenance queue,
Otherwise, based on the PCR output interval, the queue is placed in a non-work keeping type queue with a low priority.
[0084]
However, it is clear that alternative means based on similar or different principles can be used.
[0085]
For example, as shown in FIG. 5, one attractive alternative is GCRA (1 / MCR, τ in 85 and 86 (FIG. 4). MCR ) Compatible and GCRA (1 / PCR, τ PCR ) A reference to the data transfer unit or cell of the flow found to be compatible: (1) a calendar queue 88 with a high priority at the MCR scheduling interval; and (2) a work maintenance area for a queue with a low priority. And both. This creates a “conflict” state. Because every time an instance of such a doubly queued reference is retrieved for service in any of the queues, delinker 91 removes the other instance of that reference from the other queue. Because. This means that tighter limits on the tolerance τ will be maintained. The traffic shaping algorithm in this variant is:
When entering the queue
Put a queue with high priority at speed MCR,
If GCRA (1 / PCR, τ PCR ) If it fits, put it in a low priority work maintenance queue,
Otherwise, based on the PCR output interval, put in a low priority non-work-keeping queue,
When you get out of the queue
If the queue is from the higher priority queue, the link is removed from the lower priority queue; otherwise, the link is removed from the lower priority queue.
[0086]
FIG. 6 shows yet another embodiment for shaping an ABR connection or flow. In this embodiment, the output bandwidth provided for each non-compliant MCR ABR flow with a guarantee that the MCR is non-zero is the average between the ABR cells of the output link (ie, the transfer side of the line interface). It is dynamically adjusted based on the interval and the current length of the ABR “ready queue”. The current length Len of this ABR “ready queue” is determined at 93 by measuring the length of the work maintenance queues on the ABR transmission lists 65e and 65f. On the other hand, the average interval S between ABR cells on the calendar queue can be determined as a percentage of the link by dividing the bandwidth available to the ABR flow after granting for any non-ABR flow. The bandwidth required by these non-ABR flows is determined at 94 by calculating the overall bandwidth required to provide an entry for the non-ABR flow in transmission list 65.
[0087]
For example, if it is determined in 94 that 50% of the bandwidth of the output link is available for ABR flow, then the average interval S between the ABR cells or data transfer units on the output link at that time is of course 2 cells. It will be time. Based on this information and the calculation length Len of the ABR “ready queue”, the arrival reference for these flows on the non-work-keeping calendar queue 89 is sent to the scheduler 62 by each output interval T below. t The service of the non-conforming ABR flow can be optimized by scheduling with.
[0088]
T t = Min (S t , Max (P t , R)) (3)
Where R = predicted round robin ABR
Service time (R = current time + S * Len),
P t = Earliest service contract compliant departure for the next cell in flow t (P t = Current time + 1 / PCR),
S t = Slowest service contract compliant departure for the next cell in flow t (S t = Current time + 1 / MCR)
It is.
[Brief description of the drawings]
FIG. 1 is a simplified block diagram of an ATM switch that may advantageously use the present invention.
FIG. 2 tracks various forms that an ATM cell preferably takes while traversing the switch shown in FIG.
FIG. 3 is a more detailed block diagram of a representative channel on the output side, or transmission side, of the chip shown in FIG. 1;
FIG. 4 is a schematic diagram illustrating an implementation of the stalled virtual clock calendar queue of the present invention.
FIG. 5 is a schematic diagram illustrating an implementation of another stalled virtual clock calendar queue of the present invention.
FIG. 6 is a schematic diagram illustrating yet another stalled virtual clock calendar queue implementation of the present invention.
[Explanation of symbols]
58 Queue control unit
62 Scheduler
63 Calendar Queue
66 Timeline
87 Steering logic
88 High-priority calendar queue
89 Low-priority calendar queue

Claims (3)

パケット交換通信システムにおいて、コントラクトを含み、それぞれのフローの個々のネットワークトラフィックコントラクトに実質的に適合するように時間多重フローのパケットを連続的に送出するトラフィック成形装置であって、前記コントラクトは、それぞれのピークパケット送出レート及び前記フローのうちいくつかの関連ピークレートトレランスを指定するとともに、相互排他的カテゴリー、即ち、それぞれがコントラクト指定の関連最小レートトレランスを有する非ゼロ最小パケット送出レートを有するカテゴリーAフローと、ゼロパケット送出レートを許容するトラフィックコントラクトを有するカテゴリーBフローのうちの1つに前記フローの各々を分類し、前記トラフィック成形装置は、
待ち行列の順番の先頭にある最も古い未決のパケットに従ってそれぞれの待ち行列中の前記いくつかのフローを含むアクティブフローの未決パケットを編成するキューイングメカニズムを含み、
前記キューイングメカニズムに結合され、送出のために前記アクティブフローのパケットをスケジュールするスケジューリングメカニズムを含み、前記スケジューリングメカニズムは、相対的に優先順位が高い非作業維持カレンダキューと、少なくとも1つの相対的に優先順位が低い作業維持キューと、前記優先順位が高いキュー及び優先順位が低いキューに相対して優先順位が未決定の他の非作業維持キューとを含み、
前記スケジューリングメカニズムは、(i)前記優先順位の高い非作業維持カレンダキューにおいて、第1の所与のフローのための指定された最小送出レートに対してトレランスを越えるレートで前記第1フローのパケットが送出されている際に、前記第1フローのためのコントラクト指定の最小送出レートを越えるレートで送出するように、(ii)前記他の非作業維持カレンダキューにおいて、前記第1フローのパケットが前記第1フローの指定されたピーク送出レートに対してトレランスを越えるレートで送出されている際に、前記第1フローのための指定されたピーク送出レートとほぼ同一のレートで送出するように、(iii) 前記作業維持キューにおいて、前記第1フローのパケットが前記第1フローのトラフィックコントラクトに従って送出されている際に、選択した連続的サービス戦略に従って送出するようにあらゆる所与のカテゴリーAのパケットをスケジュールし、
前記スケジューリングメカニズムは、(iv)前記他の非作業維持カレンダキューにおいて、第2の所与のフローのパケットが前記第2フローのための指定されたピーク送出レートに対してトレランスを越えるレートで送出されている際に、前記第2フローのための指定されたピーク送出レートとほぼ同一のレートで送出するように、(v) 前記作業維持キューにおいて、前記第2フローのパケットが前記第2フローのトラフィックコントラクトに従って送出されている際に、前記選択した戦略に従って送出するように、あらゆる所与のカテゴリーBのパケットをスケジュールする、
トラフィック成形装置。
In a packet-switched communication system, a traffic shaping device that includes a contract and that continuously sends out packets of time-multiplexed flows so as to substantially match individual network traffic contracts of each flow, wherein the contract is Category A with a non-zero minimum packet transmission rate that specifies a mutually exclusive category, i.e., a contract specified relative minimum rate tolerance Classifying each of the flows into one of a flow and a category B flow having a traffic contract allowing a zero packet transmission rate, the traffic shaping device comprising:
Including a queuing mechanism for organizing active flow pending packets, including the number of flows in each queue according to the oldest pending packet at the head of the queue order;
A scheduling mechanism coupled to the queuing mechanism and scheduling packets of the active flow for delivery, the scheduling mechanism including a relatively high priority non-work keeping calendar queue and at least one relatively A low-priority work maintenance queue, and other non-work-keeping queues that have an undecided priority relative to the high priority queue and the low priority queue,
The scheduling mechanism may: (i) in the high priority non-work keeping calendar queue, packets of the first flow at a rate that exceeds a tolerance for a specified minimum delivery rate for the first given flow. (Ii) In the other non-work keeping calendar queue, the packet of the first flow is transmitted at a rate exceeding the minimum transmission rate specified by the contract for the first flow. When transmitting at a rate exceeding the tolerance for the designated peak delivery rate of the first flow, so as to deliver at a rate substantially the same as the designated peak delivery rate for the first flow, (iii) In the work maintenance queue, the packet of the first flow is transmitted according to the traffic contract of the first flow. When it is to schedule packets of any given category A to deliver according to continuous service strategy selected,
The scheduling mechanism may: (iv) in the other non-work-keeping calendar queue, packets for a second given flow are sent at a rate that exceeds a tolerance for a specified peak delivery rate for the second flow. (V) in the work maintenance queue, the packet of the second flow is sent to the second flow so that it is sent at a rate that is substantially the same as the specified peak delivery rate for the second flow. Schedule any given Category B packet to be sent according to the selected strategy when being sent according to the traffic contract
Traffic shaping device.
パケット交換通信システムにおいて、コントラクトを含み、それぞれのフローの個々のネットワークトラフィックコントラクトに実質的に適合するように時間多重フローのパケットを連続的に送出するトラフィック成形装置であって、前記コントラクトは、前記フローのうちいくつかにそれぞれの許容ピークパケット送出レートを委ねるとともに、相互排他的カテゴリー、即ち、それぞれの非ゼロ許容最小パケット送出レートが委ねられるカテゴリーAフローと、ゼロパケット送出レートを許容するトラフィックコントラクトを受けるカテゴリーBフローのうちの1つに前記フローの各々を分類し、前記トラフィック成形装置は、
待ち行列の順番の先頭にある最も古い未決のパケットに従ってそれぞれの待ち行列中の前記いくつかのフローを含むアクティブフローのパケットを編成するキューイングメカニズムを含み、
前記キューイングメカニズムに結合され、送出のために前記アクティブフローのパケットをスケジュールするスケジューリングメカニズムを含み、前記スケジューリングメカニズムは、相対的に優先順位が高い非作業維持カレンダキューと、少なくとも1つの相対的に優先順位が低い作業維持キューと、前記優先順位が高いキュー及び優先順位が低いキューに相対して優先順位が未決定の他の非作業維持キューと、前記優先順位が高いキュー及び優先順位が低いキューからの監視送出に結合して前記優先順位が高いキュー及び優先順位が低いキューにおいてスケジュールされたパケットを選択的にスケジュールしない制御メカニズムを含み、
前記スケジューリングメカニズムは、(i) それぞれのフローのための最小レート委託を越えるレートで送出するように前記優先順位の高いカレンダキューの各フローのパケットをスケジュールし、かつ(ii) 所定の作業維持キューから出す戦略に従って送出するように前記パケットを前記作業維持キューに入れることによってあらゆるカテゴリーAフローのパケットを準備し、従ってこれらのカテゴリーAフローのパケットの競合状態を作り出し、前記制御メカニズムは、各パケットが前記優先順位の高いキュー及び前記作業維持キューのうちの1つによって送出に達する際に、このパケットを前記キューの他のパケットの中から取り出すことによって前記遅れているカテゴリーAフローのパケットの前記競合状態を解決し、
前記スケジューリングメカニズムは、それぞれのフローに委ねられる許容ピーク送出レートを越えるレートで送出されているあらゆるカテゴリーAフロー及びカテゴリーBフローのパケットを、それぞれのフローに委ねられるピーク送出レートとほぼ同一のレートで送出するように前記他の非作業維持カレンダキューにおいてスケジュールし、
前記スケジューリングメカニズムは、それぞれのフローのためのコントラクトによる委託に適合するレートで送出されているあらゆるカテゴリーBフローのパケットを、前記作業維持キューから出す戦略に従って送出するように前記作業維持キューに入れる、
トラフィック成形装置。
In a packet-switched communication system, a traffic shaping device that includes a contract and that continuously transmits packets of time-multiplexed flows so as to substantially match individual network traffic contracts of each flow, wherein the contract includes the contract A traffic contract that allows some of the flows to have their respective allowable peak packet transmission rates and a mutually exclusive category, i.e., a category A flow in which each non-zero allowable minimum packet transmission rate is delegated, and a zero packet transmission rate. Classifying each of the flows into one of the category B flows that receive the traffic shaping device,
Including a queuing mechanism for organizing active flow packets including the number of flows in each queue according to the oldest outstanding packets at the head of the queue order;
A scheduling mechanism coupled to the queuing mechanism and scheduling packets of the active flow for delivery, the scheduling mechanism including a relatively high priority non-work keeping calendar queue and at least one relatively Low-priority work maintenance queue, other non-work-keeping queues whose priority is undecided relative to high priority queue and low priority queue, high priority queue and low priority Including a control mechanism that does not selectively schedule packets scheduled in the high priority queue and the low priority queue in combination with monitoring delivery from a queue;
The scheduling mechanism (i) schedules packets for each flow in the high priority calendar queue to be sent at a rate exceeding a minimum rate commitment for each flow; and (ii) a predetermined work maintenance queue. Prepare packets for any Category A flow by placing them in the work queue to be sent out according to the strategy to leave, thus creating a race condition for these Category A flow packets, the control mechanism When the packet reaches delivery by one of the high priority queue and the work maintenance queue, the packet of the delayed category A flow is taken by taking this packet out of the other packets of the queue. Resolve race conditions,
The scheduling mechanism allows all Category A and Category B flow packets being sent at a rate that exceeds the allowable peak sending rate entrusted to each flow at a rate substantially the same as the peak sending rate entrusted to each flow. Schedule in the other non-work-keeping calendar queue to send,
The scheduling mechanism places the packets of any Category B flow that is being sent at a rate compatible with the contract delegation for each flow into the work maintenance queue to be sent according to a strategy to leave the work maintenance queue;
Traffic shaping device.
それぞれのフローのための個々のトラフィックコントラクトに実質的に適合するように、複数の時間多重フローの固定ビット長パケットを既知の帯域幅のリンクに連続的に送出するトラフィック成形プロセスにおいて、前記フローの少なくともいくつかを、前記いくつかのフローのためにゼロよりも大きいそれぞれのピークレート及び最小パケット送出レートを指定するそれぞれのアベイラブルビットレートトラフィックコントラクトに成形するルーチンであって、前記ルーチンは、
待ち行列の順番の先頭にある最も古い未決のパケットに従ってそれぞれの待ち行列中の前記いくつかのフローを含むアクティブフローのパケットを編成するステップを含み、
アベイラブルビットレートトラフィックコントラクトを有するフローのために前記リンクで利用可能な帯域幅を前記既知の帯域幅のパーセントとして動的に決定するステップを含み、
アベイラブルビットレートトラフィックコントラクトを有するアクティブフローの数を動的に決定するステップを含み、
アベイラブルビットレートトラフィックコントラクトを受ける各フローのキューパケットの各先頭に対して、前記フローのためのコントラクト指定の最小送出レートに基づいた第1の理論的送出時刻と、アベイラブルビットレートフローのために前記リンクで利用可能な帯域幅のアクティブアベイラブルビットレートフロー毎の割り当てに基づいた第2の理論的送出時刻と、前記フローのためのコントラクト指定のピーク送出レートに基づいた第3の理論的送出時刻とを決定するステップを含み、
前記第2及び第3の理論的送出時刻のうち最も早いものを放棄するステップを含み、
残りの前記理論的送出時刻のうち最も早い時刻で送出するように非作業維持キューにおいて前記パケットをスケジュールすることを含む、
ルーチン。
In a traffic shaping process that continuously sends fixed bit length packets of multiple time multiplexed flows over a link of known bandwidth so as to substantially match the individual traffic contract for each flow, A routine that shapes at least some into respective available bit rate traffic contracts that specify a respective peak rate and minimum packet delivery rate greater than zero for the some flows, the routine comprising:
Organizing packets of active flows including said several flows in each queue according to the oldest outstanding packets at the head of the queue sequence;
Dynamically determining the available bandwidth on the link as a percentage of the known bandwidth for flows having available bit rate traffic contracts;
Dynamically determining the number of active flows with available bit rate traffic contracts;
For each head of queue packet of each flow that receives an available bit rate traffic contract, a first theoretical transmission time based on a contract-specified minimum transmission rate for the flow, and for the available bit rate flow A second theoretical transmission time based on the allocation of bandwidth available on the link per active available bit rate flow; and a third theoretical transmission time based on a contract-specified peak transmission rate for the flow; Including the step of determining
Abandoning the earliest one of the second and third theoretical delivery times;
Scheduling the packet in a non-work keeping queue to be sent at the earliest of the remaining theoretical send times;
routine.
JP17261797A 1996-06-27 1997-06-27 Traffic shaping apparatus and routine Expired - Fee Related JP3813698B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US2064496P 1996-06-27 1996-06-27
US020644 1997-06-10
US08/872,753 US5926459A (en) 1996-06-27 1997-06-11 Rate shaping in per-flow queued routing mechanisms for available bit rate service

Publications (2)

Publication Number Publication Date
JPH10190691A JPH10190691A (en) 1998-07-21
JP3813698B2 true JP3813698B2 (en) 2006-08-23

Family

ID=37051932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17261797A Expired - Fee Related JP3813698B2 (en) 1996-06-27 1997-06-27 Traffic shaping apparatus and routine

Country Status (1)

Country Link
JP (1) JP3813698B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5297337B2 (en) * 2009-10-27 2013-09-25 本田技研工業株式会社 Service processing system and service processing method

Also Published As

Publication number Publication date
JPH10190691A (en) 1998-07-21

Similar Documents

Publication Publication Date Title
JP3813696B2 (en) Packet switched communication system
JP3813695B2 (en) Packet switched communication system
JP3813697B2 (en) Traffic molding equipment
US5926459A (en) Rate shaping in per-flow queued routing mechanisms for available bit rate service
US6038217A (en) Rate shaping in per-flow output queued routing mechanisms for available bit rate (ABR) service in networks having segmented ABR control loops
US6064651A (en) Rate shaping in per-flow output queued routing mechanisms for statistical bit rate service
US6519595B1 (en) Admission control, queue management, and shaping/scheduling for flows
EP1111858B1 (en) A weighted round robin scheduling engine
US6442164B1 (en) Method and system for allocating bandwidth and buffer resources to constant bit rate (CBR) traffic
US6717912B1 (en) Fair discard system
EP0810809A2 (en) A scheduling method and apparatus for supporting ATM connections having a guaranteed minimum bandwidth
EP0817433B1 (en) Packet switched communication system and traffic shaping process
EP1111851B1 (en) A scheduler system for scheduling the distribution of ATM cells
EP0817431B1 (en) A packet switched communication system
JP3813698B2 (en) Traffic shaping apparatus and routine
EP0817435B1 (en) A switch for a packet communication system
JP3813700B2 (en) Packet time-multiplexed continuous flow shaping method
EP0817434B1 (en) A packet switched communication system and traffic shaping process
JP3813699B2 (en) Switch for packet communication system
EP0817432B1 (en) A packet switched communication system
US6529474B1 (en) Shaping algorithm
JP3177188B2 (en) Packet transmitting / receiving method and apparatus
EP1111854A2 (en) Minium and maximum modes for the transmission of ATM data cells through network channel banks in a communications system
EP1111853A2 (en) A method of providing a guaranteed frame rate in a hierarchical scheduler
EP1111852A2 (en) Stackplane backpressure mechanism for regulating flows of ATM data cells

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040611

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: 20060502

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060601

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100609

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110609

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110609

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120609

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees