JP4327948B2 - オーバーブッキングの能力がある場合、ない場合の階層的な転送速度制限を保証しながらサービスの提供をスケジュールするポートスケジューラとその手法 - Google Patents
オーバーブッキングの能力がある場合、ない場合の階層的な転送速度制限を保証しながらサービスの提供をスケジュールするポートスケジューラとその手法 Download PDFInfo
- Publication number
- JP4327948B2 JP4327948B2 JP20739399A JP20739399A JP4327948B2 JP 4327948 B2 JP4327948 B2 JP 4327948B2 JP 20739399 A JP20739399 A JP 20739399A JP 20739399 A JP20739399 A JP 20739399A JP 4327948 B2 JP4327948 B2 JP 4327948B2
- Authority
- JP
- Japan
- Prior art keywords
- entity
- service
- time
- controller
- entities
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L12/5602—Bandwidth control in ATM Networks, e.g. leaky bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
この発明はサーバが実体に対してサービスを提供する際のスケジューリングを行うためのスケジューラに関するものである。より具体的には、この発明はオーバーブッキングされた状態でのATMスケジューラの階層的な転送レート制限の実行方法に関するものである。
【0002】
【従来の技術】
発明の背景
これまでにはパケットの公平な順序付けに基づく様々なスケジューリング法が提案されてきた。これらの方法は、典型的にはそれぞれのセッションに対して時計と時刻情報とを管理することを必要とした。セッションはそれらの時刻情報に基づいてソートされ、その順序に従い送出される。 この方法における提案された変形は、時計とセッションの時刻情報とを更新する方法において本質的な違いがある。同様にそれらは、サービスにおいて生成されるジッターにおいても異なる。J.C.R. Bennettと H.Zhang. Wf2q: Worst-case fair weighted weighted fair queuing. In INFOCOM'96, pages 120-128, Mar. 1996. を参照。
【0003】
セッション間における調整に関連する2つの主なコストがある。仮想時間関数の計算、それはそれぞれのセッションが受け付けるべきサービスの標準化された公正な量を動的に測定するコスト、そして、log N のオーダーの複雑さとなる、異なるセッションからの転送要求の優先順序を管理するコストである。但しNはセッションの数。
【0004】
J.C.R. Bennettと、D.C. Stephensと、H. Zhang. High Speed, Scalable, Accurate Implementation of Fair Queuing Algorithms in ATM Networks. ICNP'97 Mar. 1997,には、上記のコストを緩和する構造の一例が開示されている。J.C.R. BennettとD.C.StephensとH.Zhang. High Speed, Scalable and AccurateImplementation of Fair Queuing Algorithms in ATM Networksを参照。ICNP'97,Mar.1997, において、サーバは固定した数の転送レートをサポートするよう制約されている。そして同一のレートをもつセッションが互いにまとめられる。関連順序付けをすることなく、同一の転送レートを持つグループに属するセッションの間で優先度の関係が管理されていることが示されている。その問題は、すべてのセッションの間でスケジュールするといった問題から、グループのヘッドにて、すべてのセッションをスケジュールする問題へと簡単にされる。そのような実行においては、順序付けを管理し仮想時間を計算する複雑さは、セッションの数よりも、むしろ、サポートする離散したレートの数により増大する。
【0005】
これまでの研究や特許において、パケットの公平な順序付けの実行(PFQ)が示されてきた。[J.C.R. Bennett と H. Zhang. Wf2q: Worst-case fair weighted weighted fair queuing. INFOCOM'96 pages 120-128, Mar. 1996; J.C.R. Bennettと H. Zhang. Hierarchical Packet Fair Queuing Algorithms.In ACM SIGCOMM'96 pages 143-156, Aug. 1996; J.L. Rexford と A.G. Greenberg と F.G. Bonomi. Hardware-efficient Fair Queuing Architectures for High Speed Networks. INFOCOM'96 Mar. 1996; J.C.R. Bennett と D.C. Stephensと and H. Zhang. High Speed, Scalable, and Accurate Implementation of Fair Queuing Algorithms in ATM Networks. ICNP'97 Mar.1997]これらはバンド幅を保証されたものにしようとしている。これまでの従来例として、そのようなパケットの公平な順序付けの実施例が示される。以下に示す手法は、いくつものセッションのそれぞれの転送レート要求の間でバンド幅を割り当てる。1つのセッションは、要求したレート以上のバンド幅を割り当てられることはない。
【0006】
それぞれのセッションCiは要求するサービスの転送レートri をもち、それは図1においてラインレートの一部分として示されている。基本的な考え方はそれぞれのセッションは、セルスロット時間の 1/ri 毎に1度割り当てられる。この間隔はセッション時間間隔(TIi)として引用される。最後のTIiのセル時間内に割り当てを受けていないセッションは、出来る限りはやい機会に割り当てを受けるべきである。各セッションについて開始時間(Si)はそれが適格としてスケジュールされるべき最も早い時間を示すために管理される。各セッションの終了時間 Fiもまた管理され、それは計算式 Fi=Si+TIiによって導出される。セッションはそれぞれの終了時間に基づき割り当てられる。そのアルゴリズムの詳細は以下に示されている:
・仮想時間は所定のポートに対し,ポートサイクルごとに以下のように更新される。
V(t+1)=V(t)+1
【0007】
これ以外にもより複雑な仮想時間関数が論文において提案されているが、その多くは上の式にあるものと同じような、単調に増加する関数を仮定する。
・セッションi は時間 tによってスケジュールされているものとする。もしセッションが残っているのなら、セルは送出され、残っていないのであればそのサイクルは何もしない。新たな開始時間と終了時間Si(t+)と Fi(t+) とは以下に従い更新される:
Si(t+)=Fi(t), and Fi(t+)=Si(t+)+L/ri
ただしLはセルの長さであり、riはセッションの転送速度である。新たなセッション iが時刻 tに追加された時、それに割り当てられる開始時間はSi(t)=V(t) and Fi(t)=Si(t)+L/rとなる。ポートスロット時刻 tにおいて、すべての活動している(セルが溜まっている)セッションのうちで、適格なものは次のように決定される。
Si(t)≦V(t)
すべての適格なセッションのうちで、もっとも小さい終了時間 Fi(t)をもつものが、次の送出の為に選択される。
【0008】
上の手法において、セッションはセッション初期化の間にスケジュールに組み込まれることに注意したい。それはセッションが壊されるまでの間存続する。すべてのセッションの転送レートの合計が、回線速度(line rate)(LR)と同じかそれ以下であることが期待される。オーバーブッキングを実行するこの手法に関する問題のひとつは次のようなものである。活動していない(溜まっていない)セッションは、スケジュールされる可能性があるが、セルを持たないものは、サイクルを無駄にしてしまう。このことはハードウェアーが、アルゴリズムを繰り返し、空ではない接続を見つけ出すための時間がないという実際的な制約を仮定している。オーバーブッキングの状況において, 無駄になるサイクルは他の(セルが)溜まっているセッションに対して使われるべきであった。この問題は、たとえばスケジューラはセルを持っているセッションの間でのみスケジュールされるといった方法により、活動していないセッションをスケジューラから取り除くことにより解決できる。上記の手法には次のような修正が必要となる。
・(セルを)送出したあと、もしセッションに溜まっているものがなくなったのであれば、それはポートのバンド幅を調整するために活動しているセッションのリストからはずされる。
・活動していないセッション iは、時刻 tに活動を始め(セルが溜まり)、スケジューラ調整プロセスに書き戻される。それの新たな開始時間はつぎのように割り当てられる。
Si(t)=max(Si(t-),V(t)) and Fi(t)=Si(t)+L/r
【0009】
上記の式におけるmaximum関数(最大値関数)は、セッションがSi(t-)よりも前には開始されないことを保証する。もし最後のサービスのあとセッションが空となり、そしてスケジュールされた次の開始時間よりも前に再び(セルが)溜まったら、その開始時間を仮想時間に対して再設定することにより、それは要求された転送レートよりも大きくなることが出来る。
【0010】
しかしながら、修正された手法に従ったとしても, それをオーバーブッキングな状況で用いるには以下で議論するような更なる問題がある。PFQの実行可能性に関する一般的なコメントがここでは必要となる。セッションの間で、最短の終了時間を決定するために、すべての活動しているセッションの間で最小の計算を行う必要がある。もしセッションの数が大きくなった時、これはセルスロット時間の間に行うことはできない。これまでの手法では、この問題を解決するために時刻情報にもとづくセッションの順序付けされたヒープを管理することを提案してきた。同様に転送速度でまとめる手法は、[J.C.R. Bennett と H.Zhang. Wf2q: Worst-case fair weighted weighted fair queuing. INFOCOM'97,pages 120-128, Mar. 1996]で提案されている。この発明はすべてのセッションの間での最短の終了時間を決定するためにこれらの手法のいずれかを用いることもある。
【0011】
これまで提案されてきたPFQ手法に関する実行では、目的とする転送レートにレート制限するようプログラムすることで、転送レート制限を実行することが可能である(上の箇条書きにおける最初の項目)。しかしながら、オーバーブッキングな状況においては,これらの実行において予想される振る舞いは、求められている振る舞いから大きく外れたものとなる。これまでに提案されてきたPFQ手法によるオーバーブッキングに対する能力により転送レート制限が可能なスケジューラを実行する際の問題について分析をする前に、理想的な実行による予想される振る舞いについて考慮するべきである。
・混雑していないポート(即ちポートに入力されるトラフィックの合計が回線転送レートに等しいか少ない状況)にとっては、溜まっているセッションはその転送速度の制限により受け取りを制限される。
・混雑している状況(溜まっているセッションに要求される転送レート制限の合計が回線転送レートよりも大きい状況)においては、この方法は、溜まったセッションの各々が、要求されたレートを、ラインレートがオーバーブッキングされてラインレートの時間が割算したものと等しいレートを確実に受けるようにする。
【0012】
実施例
図2はこの動作を図示した例である。2つのセッションC0とC1とは同じポートをあて先としている。到着したセルはそれぞれの別個のキューに溜め込まれる。スケジューラはそれらを送出する。セッションC0とC1は、それぞれ転送レートが2/4と3/4とに制限されている。これはキューにC0だけがセルを持っていたとしたら、そのレートは2/4に制限されていることを意味する。同様にキューにC1だけがセルを持っているとしたら,それは3/4の転送レートに制限される。しかしながら、両方のセッションがセルを持っているとしたら、回線転送レートの5/4倍にオーバーブッキングしてしまう。セッションにより受け取られるサービスは、そのオーバーブッキング率により縮小される。この状況においては、C0とC1はそれぞれ回線転送レートの2/5と3/5を受け取る。
【0013】
前の手法にもとづくオーバーブッキングレート制限による実行は考慮される。その手法はセッションの間でサービスの欠乏を発生させる。図は特定の実行にもとづくものであるが、オーバーブッキングされたシナリオのときに焦点が当てられる問題は、実行する際に単調に仮想時間関数が増加する様な、公平な順序付けアルゴリズムのすべての変形中に存在する。
【0014】
図3は、それぞれが回線転送レートの1/2,1,1といった要求をする3つのセッションC0,C1,C2がオーバーブッキングしている状況を図示している。セッションC0とC1は時刻 t=0に活動的になり(セルを溜め)、セッションC2はそれより遅れてt=10000 において活動的になる。この表は、V(t+1) = V(t) + 1に従い増加する仮想時間の実行に基づいたよる仮想時間の値をあらわしている。それは継続する列が、それぞれセッションC0,C1,C2の開始時間と終了時間を表してもいる。それぞれのスロット時間 tに対して、下線が引かれた開始時間と終了時間の対は、与えられたサイクルに送出されるセッションを表している。送出されるべきセッションは、適格なセッションの中から最短終了時間に基づいて選択される。適格セッションの中で最小終了時間について同じ適格性である場合は、最も早い開始時間のセッションが選ばれる。以下の観測が例から作成される:
・スケジューラーは、セッションC0とC1の要求レートによりオーバーブッキングしている。
・時刻が進むにつれ、これらのセッションの開始/終了時間は徐々にV(t)からの遅れを溜めていく。例えばt=10000の時、V(t)=10000はF0= 6670と F1 6669に対してかなり進んでしまっている。t=10000においてセッションC2が開始され、S2=V(t)=10000として開始時間が記載されている。
・最短終了時間によるセッション送出の基準によると、セッションC2とC1の終了時間がC2の終了時間に追いつくまでは、セッションC2は信号送出しない。セッションC2が信号送出を始めるのは、この時間が経過してからである。これは例においては t=15000で発生する。それゆえC2は5000スロット時間の間、送出がされないことになる。一般的に、セッションは活動的になってからも、他のセッションが仮想時間に対しての遅れがどの程度あるかに従い、任意の時間待たされることになる。
【0015】
それゆえに活動しているセッションの時間記録のために使われている仮想時計が単調に増加することは、不公平と窮乏とにつながることになる。この問題は、セッションの終了時間を任意に進め変更できるような仮想時計関数によるいかなるPHQ手法によっても、オーバーブッキングな状況で発生する。
【0016】
発明の概要
この発明は、実体がサーバーによって操作される時のスケジューラの制御に関するものである。スケジューラはN個の実体からなる。但しNは2に等しいかそれより大きい整数である。個々の実体はサーバーから受けるサービスの転送レートを有している。スケジューラは、 N個の実体の終了時間 fiを保持するメモリを含む。fiは i番目の実体がサーバーによって操作されるべき時間に対応する。スケジューラは、終了時間fiが判別できるように仮想時間のトラック(経過)を保持する仮想時計を含む。スケジューラは、終了時間の関数としてサーバーが作用するべき実体を選択する、コントローラを含む。コントローラは実体にサービスを提供するために仮想時間を遅らせる。コントローラは仮想時計とメモリーに接続されている。
【0017】
この発明は、実体(entities)がサーバーに対して操作される、制御のためのスケジューラに関係する。スケジューラはN個の実体から構成される。但しNは2に等しいかそれよりも大きい整数である。個々の実体は、サーバーからサービスを受ける転送速度(rate)を持っている。N個の実体のうちの少なくとも最初の1つには、2つ以上の接続(connections)があり、2つの接続のうちの少なくとも1つがサービスを待っており、複数の接続の中、少なくとも1つがサービスを受けることを待っており、かつ終了時間がサービスを待っている実態の中で、もっとも早い終了時間を有している時に、コントローラは最初の実体を選択し、サービスを提供する。スケジューラは、N個の実体の終了時間fiを保持しているメモリーを持ちっている。但しfiはサーバーによって操作を行われるべきi 番目の実体の時間に対応する。スケジューラは仮想時計を持ち、その時計は終了時間 fiが判別できるように仮想時間のトラックを保持する。スケジューラは、終了時間の関数としてサーバによって操作されるべき実体を選択するコントローラを具えている。コントローラは実体に対してサービスを提供する仮想時計を遅らせる。コントローラは、仮想時計とメモリーとに接続されている。
【0018】
この発明はサービスを提供するサーバーのスケジュールを行う方法に関係する。この手法は、サーバーからの第1の転送レートを持つ第1の実体から第1の要求を受け取るステップを含む。次に第1の実体が第1の実体からのサービスを受け取ろうとする時に、その終了時間をメモリーに蓄えるステップがある。次に、サーバーからサービスを受け取る2番目の転送レートを持つ第2の実体から第2の要求を受け取るステップがある。次に、第2の実体がメモリー中のサーバーからサービスを受け取る時に、その終了時間を蓄えるステップがある。第2の実体の終了時間は、第1の実体の終了時間と同じである。そして第1の実体に対してサービスを提供するステップがある。次に仮想時間を止めるステップがある。そして、第1の実体がサーバーからサービスを受け取るのと同じ仮想時間に、第2の実体に対してサーバーからサービスを提供するステップがある。
【0019】
本発明のATMスケジューラに望まれる特徴は次のようなものである。
1.セッションに対して、保証されたバンド幅に見合うように供給出来ること。
VC毎のキューイングが出来ることが仮定される。
2.ジッターを最小に出来ること。
VCに対してセルを送出する際の大きなジッター(大きなセル配送の変化)が、下流の装置に対してセルの脱落を発生させるような破滅(burstiness)につながることは、よく知られている。このような問題を最小化するために、スケジューラはセルを円滑に送出する必要がある。
3.転送レート制限
異種のネットワーク機器の環境では、ATMスイッチは限られたバッファーとバンド幅を制御する能力を用いて末端やエンドユーザーの装置にまでトラフィックを供給する必要がある。それゆえ、そのような装置に向けた断続的なトラフィックによる激しいバーストは取りこぼされることとなる。このようなロスを最小化することは、本質的に興味のある問題である。この目標はネットワーク(もしくはATMスイッチ)がトラフィックを装置に対してそれが取り扱うことが可能な転送レートで供給することにより達成される。バーストは、目的に対して排出されるまでの間、ネットワークの内部に蓄積される。上のような目的を達成するために、ATMポートスケジューラはトラフィックを予め制限された転送レートに制限する能力を持つ必要がある。
4.階層的な転送レート制限
上記のような転送レート制限は、単一のセッション(外形を付ける形成法と同様)のレベルにおいては実現可能であるし、同じ目的地に向けたセッションの組み合わせのようなレベル、例えばT1やxDSLのパイプのようなスピードの遅いより下流へのポートにおいても実現可能である。この文書において、このようなセッションのグループは仮想回線として引用される。階層的な転送レート制限は、転送レートを仮想回線が寄せ集められたレベルにおいても制限される必要があるし、また個々のセッションの仮想回線のレベルにおいても制限される必要がある。
5.オーバーブッキング
ほとんどの場合において、転送レートの制限された仮想回線上の入力トラフィックは、その転送レートの制限と比較して非常に小さい。それゆえ仮想回線のためのバンド幅を、それらの転送レートの制限によって予約するすることは、ポートのバンド幅の非常な無駄遣いにつながる。この問題を解決するには、ポートにおいて転送レート制限をオーバーブッキングする機構が必要となる。それゆえ、あるポートに属するすべての仮想回線の転送レート制限の合計が、ポートのバンド幅(回線転送レート)より大きくなることがありうる。
これはバーストを起こしやすかったり、断続的なトラフィックにおいては特に有益である。もっとも良い場合においては、入力ソースのトラフィックは、個々のセッションが要求したレートで受信できるように分散して到着する。それゆえオーバーブッキングは、統計的な意味合いにおける多重化を利用することを可能にする。最も悪い場合においては、複数のセッションが同時に到着した際に、そのため集約されたトラフィックが回線転送レートを超えてしまったとき、このメカニズムはセッションに対するサービスの質を支障のない程度で低下させる。そのような機構は、本発明の一部を構成する。
6.セッション保証を満足しているオーバーブッキング
オーバーブッキングにおけるサービスの転送レート低下は、CBRやrt-VBRのような時間に影響を受けやすいセッションにとっては許容できないものがある。このようなセッションはサービスを受け取る上で、例えば彼らが要求する転送レートは常に維持されるといったように、より高い優先度を与えられるべきである。この問題は、このようなセッションが仮想回線の一部分であるような場合に、より興味深いものとなる。例えば仮想回線が10Mbpsといった転送レートを要求しているとする。仮想回線は二つのセッションC0とC1からなるとする。セッションC0は7Mbpsの転送レートを要求し、C1は8Mbpsの転送レートの保証を要求しているとする。両方のセッションが活動的になったとき、C1にとって期待される振る舞いは8Mbpsが保証されながら受信でき、C0は2Mbpsもしくはそれに等しくなり、このような集約により回線の転送レートである10Mbps以下になる。このような品質保証を確実としながら、オーバーブッキングにおける階層的な転送レート制限を達成するためのメカニズムは、この書類において提案される装置の一部を構成する。
ここで、仮想回線により受信される集約されたバンド幅が特定の転送レートに制限されることが必要であるが、仮想回線に属する個々のセッションのレベルにおける品質保証が要求を満たすことも重要である。上記のことを保証するために、スケジューラにおける転送レートの間で、二つの関係が含まれることが必須である。
・仮想リンクにおけるセッションの保証の合計は、仮想回線の転送レートの制限よりも少ない。
・すべてのセッションのすべての保証の合計が、回線の(ポートの)転送レートよりも小さい。
【0020】
添付の図面に於いて、本発明の好ましい実施例及び本発明を実行する好ましい方法は、以下に記述される。
【0021】
【詳細な記述】
図面中で同様な参照番号はいくつかの図を通じて同様な又は同一の部分に言及する。特に図9を参照する。該図には、サーバ(14)により実体(12)が作動しているときに、制御するスケジューラー(10)が示されている。スケジューラー(10)はN個の実体(12)を有し、ここでNは1以上又は1に等しい整数である。各実体はレートを有し、該レートでサーバ(14)からサービスを受信する。スケジューラー(10)はN個の実体(12)の終了時間fiを有するメモリー(16)を具え、fiはi番目の実体がサーバ(14)により作動される仮想時間に対応している。スケジューラー(10)は、終了時間fiが識別されるように仮想時間のトラックを保つ仮想クロック(18)を有する。スケジューラー(10)は、終了時間の関数として、サーバ(14)により作動される実体(12)を選択するコントローラ(20)を有する。オーバーブッキングを容易にすべく、コントローラ(20)は仮想時間を遅らせて、実体(12)にサービスを供給する。コントローラ(20)は仮想クロック(18)及びメモリー(16)にコネクションされている。
【0022】
各実体はサーバ(14)からサービスを要求するレートを有している。実体(12)は1よりも大きなレートの総和を有する。コントローラ(20)は好ましくは、各実体のレートの関数として各実体にサービスを供給し、レートの総和量は1より大きい。
【0023】
好ましくは、オーバーブッキングを容易にする為に、コントローラ(20)は、仮想時間に等しい終了時間を有する全ての実体(12)がサーバ(14)からサービスを受信完了するまで仮想時間を停止させる。コントローラ(20)は好ましくは以下に対応した仮想時間を作動する。
V(t+1)=min(V(t)+1、minF)、
但し、minFは終了時間を有する全ての実体の中で最も早い終了時間を示す。
【0024】
好ましくは、メモリー(16)はN個の実体(12)の開始時間siを有し、但しiは1≦i<Nで、整数である。siはi番目の実体がサーバ(14)から次のサービスを要求でき、メモリがN個の実体(12)のレート限界時間TIiを有しているときの最も早い時間に対応している。コントローラ(20)は好ましくは、最も早い終了時間で実体にサービスを供給する。図10に示すように、コントローラ(20)には階層があり、それによってN個の実体の少なくとも最初の実体が、第2層にてコントローラ(20)の複数の実体を表し、第2層の第2番目の実体が第3層にてコントローラ(20)の実体を表す。
サービスを要求しているコネクションは、スケジューラー中でコネクションが最初に接続するコントローラに繋がったメモリ中にて、時間間隔と開始時間を格納する。より低いレベルのコントローラに繋がったコントローラは、時間間隔、開始時間をより低い層のコントローラに繋がったメモリに格納する。第1層のコントローラは第1の実体を選択し、実体が適格で、サービスを待っている実体の中で最も早い終了時間を有しているときにサービスを供給し、またローカルメモリ内の実体の開始及び終了時間の更新もする。第1の実体は次段の中にもう1つのコントローラを含む。該もう1つのコントローラは更に第2の実体を選択し、第2の実体が適格で第2のコントローラでサービスを待っている実体の中で最も早い終了時間を有しているときにサービスを供給し、またローカルメモリ内の実体の開始及び終了時間の更新もする。
各コントローラは仮想クロックを維持し、該仮想クロックは異なる段又は同じ段の他のコントローラの他の全ての仮想クロックから独立し、全ての仮想クロックは、該クロックにコネクションされた適格な実体の終了時間に基づいて更新される。全ての仮想クロックは、各々のサイクル時間が増される。最小の動作が仮想クロックに実行され、コントローラがサービスを受信したときに、クロックの正確な値を得て、次のレベルでコントローラがクロックの正確な値を用いることを許容する。
コントローラに於ける実体のレートの総和は1より大きいことが可能であり、このようにしてスケジューラーがオーバーブックされることを許し、セッション密集中(congestion)にコントローラはオーバーブッキング動作を反映して、仮想時間の減速を確実にする。実体によりオーバーブッキングなしに受信されたレートは、実体のレートに等しい。しかし、オーバーブッキングとともに実体によって受信されたレートは、実体のレートの最小値か、又はコントローラにて適格な実体のレートの総和により縮小された実体のレートの最小値である。
【0025】
好ましくは、少なくとも1つの実体(12)は、サービスを待っている実体(12)の中で最も早い終了時間である終了時間を有するときに、サーバ(14)からのサービスが保証される。サービスが保証された実体がサービスを待っている実体(12)の中で最も早い終了時間を有することを特定するため、コントローラ(20)がどの実体が次にサービスを受けるべきかを決めているときに、サービスが保証された実体がコントローラ(20)によって最先に吟味されることが望ましい。
【0026】
本発明は、実体(12)がサーバ(14)上にて操作を受けているときに制御するためのスケジューラー(10)に関するものである。スケジューラー(10)はN個の実体(12)を有し、Nは1より大きい又は1に等しい整数である。各実体はサーバ(14)からのサービスを受けるべきレートを有する。N個の実体(12)中の少なくとも最初の実体(121)は複数のコネクションを有し、複数のコネクションの少なくとも1つがサービスを待っており、サービスを待っている実体(12)の中で最初の実体(121)が最も早い終了時間を有しているとき、コントローラ(20)は最初の実体(121)を選択して、サービスを供給する。
スケジューラー(10)は、N個の実体(12)の終了時間fiを有するメモリー(16)を有し、fiはi番目の実体がサーバ(14)により操作されるべき時間に対応する。スケジューラー(10)は終了時間fiが特定されるように仮想時間のトラックを保つ仮想クロック(18)を有する。スケジューラー(10)はコントローラ(20)を有し、該コントローラは、終了時間の関数としてサーバ(14)により操作されるべき実体(12)を選択する。コントローラ(20)は、仮想時間を遅らせて実体(12)にサービスを供給する。コントローラ(20)は、仮想クロック(18)とメモリー(16)にコネクションされる。
【0027】
本発明は、図12に示すように、サーバ(14)からサービスをスケデューリングする方法に関する。該方法は、サーバ(14)から受けるサービスへの最初のレートを有する最初の実体(121)からの最初の要求を受信する工程を有する。次に、最初の実体(121)がサーバ(14)からサービスを受けるべき時までに、終了時間をメモリー(16)に格納する工程がある。然る後、サーバ(14)から受けるサービスについて2番目のレートを有する2番目の実体から2番目の要求を受信する工程がある。次に、2番目の実体がサーバ(14)からサービスを受けるべき時に、終了時間をメモリー(16)に格納する工程がある。然る後、サービスを最初の実体(121)に供給する工程がある。次に、仮想時間を停止する工程がある。このとき、サーバ(14)から2番目の実体にサービスを供給する工程がある。
【0028】
本発明は、実体(12)の1より大きなレートの総和を許すことにより、オーバーブッキングを許容する。最初の実体(121)にサービスを供給する工程は、好ましくは最初の実体(121)の最初のコネクションへサービスを供給し、最初の実体(121)の2番目のコネクションへサービスを供給する工程を含む。
好ましくは、最初の実体(121)にサービスを供給する工程の前に、終了時間を具える実体(12)の中で最初の実体(121)が有する終了時間が最も早い終了時間であるか否かを決定する工程があるのがよい。
【0029】
好ましい実施例の動作にて、従来のスケジューラーのレート限定及びオーバーブッキングに関する主要な問題は、セッションの開始・終了時間の範囲を越えて仮想クロックが進む可能性があることである。新たな仮想クロック(18)関数がここに記載されており、それは実体(12)のコネクション又はセッションが、オーバーブッキングに関して適切に扱われることを確実にする。新たな仮想クロック(18)関数は、仮想クロックを遅らせ、オーバーブックされたセッションへの遅いサービスに歩調を合わせるとの概念に基づいている。このようにして、新たに到達したセッションは、クロックを用いて開始時間を時刻記録(timestamp)し、もはや不公平に有利にはならない。
【0030】
最小限の関数と、他の動作しているセッションの中での最小の終了時間とを適用するように仮想クロック(18)の計算は増やされる。こうして、仮想クロック(18)関数は以下のようになる。
V(t+1)=min(V(t)+1、minF)、
ここで、minFは全ての溜った(backlogged)セッションの中で最小の終了時間を示す。最小の終了時間に基づく仮想クロック(18)のスローダウンには、仮想クロックをセッションの終了時間の範囲内に保つことである。このようにして、動的になりつつあるセッションは、既に動的になったセッションの開始・終了時間よりも遙かに先の開始・終了時間は刻まれない。このことは、そのようなセッションの飢餓状態を回避する。動的セッションにより見られるサービスレートは、即時的なオーバーブッキング要素により分割され要求されたレートとして決定される。
【0031】
上記の例は新たな仮想クロック(18)実行とともに図4に示される。
・V(t)は動的セッションの中で最小終了時間を決して越えない。従ってt=10、000にあってはV(t)の値はセッションC1の6669という最小終了時間により限定される。
・t=10、000というそのようなより遅い時間のときに、動的になりつつあるセッションC2は、V(t)=6669に等しい開始時間が刻まれる。
・この実行に於いて、C2は15、000の代わりに時間10、002にてサービスされる。従って、セッションによっては、任意の飢餓状態は見られない。
【0032】
前述したとおり、転送速度制限は単一セッションのレベル及び同一着信地に向けられた一組のセッションレベル、例えばT1又はxDSLパイプなどの、より低速の下流ポートのレベルでも実行されることが必要であるだろう。その様な1群のセッションは、仮想リンクと称する。階層的なレートリミティングでは、集合的仮想リンク(VL)のレベルにおいて及び、VL中の個々のセッションに於いてもレートリミティングを必要とする。RLでは、VLs間のオーバーブッキングが許される。オーバーブッキングした場合、RLが利用できる帯域は、各帯域のレート配分に比例したVLsに分けられる。同様にVL中のセッション間でのオーバーブッキングも又許されている。オーバーブッキングがある場合、VLが利用できる帯域は、各レート配分に比例してセッション間で分けられる。
【0033】
実施例
図5は、レート制限されたVLをオーバーブッキングする様子を図面で示した1例である。2つのセッションC0とC1が、1つのポートの同一VLに属している。到着したセルは別々の待ち列(queue)でバッファーされる。VLは4/10ラインレートにレートリミットされることになっている。セッションC0とC1は、ラインレートの2/10と4/10のレートに夫々リミットされる。これはC0だけがその待ち列にセルを有するときには、2/10のレートにリミットされることを意味する。同じく、C1だけがその待ち列にセルを有するときは、それは4/10のレートにリミットとされる。しかしながら両方のセッションがセルを有するときは、VLレートは(2/10+4/10)/(4/10)=1.5の率でオーバーブックされる。セッションによって受け取られるサービスは、オーバーブック要素で縮小される。この場合、C0とC1は、1.33/10と2.66/10のラインレートを夫々受取る。これらレートの合計は4/10であることに注目すると、VLのレートの限界は常に一定に維持されている。
【0034】
仮想リンク(VL)レベルでのレートリミッター(RL)の実行は、前述した方式のセッションを仮想リンクに置き換えることによって得られる。VLは、セッションがかつてそうであったように、正確にサービスされる。適格な仮想リンク間で、最小の終了時間の仮想リンクが選択されサービスされる。以前V(t)として示したポートレベルでの基準仮想クロック(18)は、VP(t)として示され、以下の議論に於いて仮想リンククロックとは区別できるようにする。以前説明したとおり、RL中ではVLs間のオーバーブッキングは許されている。オーバーブッキングの場合、RLに利用可能な帯域幅は、夫々に配分されたVL率に比例してVLsの間で分けられる。
【0035】
一旦VLが決定されると、どのセッションがVLの下でサービスするかを決めるため、第2レベルの決定がなされる。望ましい実施例ではVLの下でセッション間で調整するために、同様な方式が複製される。各仮想リンクは夫々自身の基準仮想リンク(18)を有している。VLiの場合、これはVL i(t)と表示される。VLi中のセッションはVL i(t)に基づいた時間スタンプがなされる。前述したとおり、VL中でセッション間のオーバーブッキングは許されている。オーバーブッキングの場合、VLに利用できる帯域幅は、セッションに割り当てられた夫々のレートに比例してセッション間で分けられる。各仮想リンクのための個別の基準クロックは、セッションが異なったリンクの下で、個別に処理されることを許容する。このことは、異なった仮想リンクの下で、異なったレベルのオーバーブッキングを許す。全体の方式は図6に示す。望ましい実施例のための対応する疑似コードを附属書類に示した。
【0036】
以下は最も重要な特徴である。
・活動しているセッションだけを維持し、スケジュールすることと同様にして、第1レベルに於いて調整しながら活動している仮想リンクは検討されるだけである。あるセッションが存在し、その下で仮想リンクが働らき、適正であるとき、仮想リンクは働らく。この定義の背景にあるモチベーションは、この仮想リンクがスケジュールされた時、その下でのセッションは第2レベルの調整によってそれも又スケジュールされることが出来、サイクルは無駄にはされないということである。VLiが活動的であるかを決める工程は、次のようにして決めることが出来る。
−仮想リンクの下で、全セッションの中で最小開始時間のトラックを保持する。これをmimSvとして表す。(Sv≦VL i(t))の比較が真であることは、VLの下での少なくともあるセッションは適切であることを示している。
−リンクが空でない時、EMPTY(i)=FALSE、すなわちその下で活動的セッションが存在するときトラックを維持する。パラメータminSvは、EMPTY(i)=FALSEの場合にだけ真である。
−したがってVLは次の場合には活動的である。
ACTIVE(i)=((EMPTY(i)=FALSE)&&(minSv≧VL i(t)))
・ポートシステムのクロックは、仮想リンクの適格さを計ることに屡々使用され、セル時間ごとに更新される。
VP(t+1)=min(VP(t)+1,minFT)
ただしminFTは、働いている仮想リンクのすべての中で最小の終了時間(finish time)を示す。
・前述したとおり、オーバーブッキングを許すために、各VLのための個別の独立した仮想クロック(18)が維持される。全てのVLクロックは次式に基づいた知識のサイクルごとに更新される。
Vi L(t+1)=min(Vi L(t)+1,minFV)
ただし、minFvはVLiの下で働いている全てのセッションの中で、最小終了時間である。多数の仮想リンクがあるので、ハードウェア中の制約された数の最少の比較器では上記操作は困難となる。賢い方式を用いることによってハードウェアの必要事項は減らすことが出来る。仮想クロック(18)は、全VLsについてサイクルごとに盲目的に増分している。ある仮想リンクがサービスのために選ばれた時だけMinFVの最小の操作が実行され、Vi L(t+1)の正しい値を得る。この操作は該正しい値をセッション間で第2レベルの調整に用いる以前に行われる。VLの下でセッションがオーバーブックされた時、この方式はVLクロックが減速に対応できるようにし、所望するオーバーブック操作を確実に行わせる。
・VLsが一緒になってポートのオーバーブックをしない時。個別の各VLは、その中のセッションに依っては依然としてオーバーブックされることが出来る。しかしながら、オーバーブックされたVL中のセッションは、他のVLsのセッションには影響を与えない。
【0037】
オーバーブッキングによってサービスレートの品質が低下することは、例えばCBR,rt−VBRのごとき高感度のセッションには、時によっては許容できないことがある。その様なセッションは、サービスの受取りについてより高い優先順位が与えられ、それらのサービスレートが満足出来るようにせねばならない。その様なセッションが仮想リンクの一部であるときは、問題は一層難しくなる。図7は、レートが制限されているVLと、補償されたサービスを要求しているセッションをオーバーブッキングしたときの様子を描いている。
【0038】
実施例
2つのセッションC0とC1は、1ポート上の同じVLに属している。到着するセルは、別々の待ち行列(queues)中でバッファリングされている。VLのレートは、4/10のラインレート以内に制限されている。セッションC0が2/10のレート保証を要求し、セッションC1は、4/10のラインレートのレート制限を要求する。これは、C0だけがその待ち行列中にセルを有するときに、C0は2/10のレート以内に制限されることを意味している。同様に、C1だけが待ち行列中にセルを有するときに、C1は4/10のレート以内に制限される。しかしながら、両方のセッションがセルを有しているときには、セッションC0は、2/10のラインレートを受信し続ける。VLレートの残りは、4/10−2/10=2/10であり、これをC1が受信する。これらレートの合計は4/10であることに注目すると、VLのレートの制限は、常に維持される。保証が確保されているときに、オーバーブッキングにより、そのような階層的レートの制限を達成させる機構は、以下のように説明される。
【0039】
スケジューラー(10)におけるレート間に、2つの関係が必然的に含まれていることにも注意すべきである。
・仮想リンク中のセッション保証の総計は、仮想リンク上のレート制限よりも小さい。従って、上述の例では、セッションC0は、それのVLのレートである4/10のラインレートより多くを要求することはできない。
・すべてのセッションについての全保証の総計は、ラインレートよりも小さい。
【0040】
先の実施例は、RLブロック(26)としてここで言及しているが、RGブロック(24)は、個々のセッションの保証に応ずるための目的で加えられている。RGブロック(24)は、オーバーブッキングされるべきではない。RGブロック(24)は、前述の単調なスキーム(flat scheme)のように実行する。RGブロックは、自己基準用の仮想クロック(18)を具える。全体のスキームは図8に示している。RGブロック(24)についての次いで生ずる付加的な制約と、RLブロック(26)との相互作用は、次のとおりである。
・所与のセルスロット中では、RLを越えたRGを提供するために、より高い優先順位が与えられる。RGに適正なセッションがない場合にのみ、RLの下でセッションが検討される。
・RGから提供されるセッションについて、VLの対応する開始時間は、RL中で更新される。これが、VLによってそのセッションを介し、RG中で受信されたバンド幅を決める。VLがRLを介して獲得できる付加的なバンド幅は、バンド幅の合計が、そのレート制限よりも下方に保たれるように制限される。
【0041】
図10に示すように、スケジューラには、階層が存在する。この構成では、1つのポートについて、主コントローラ(20)は、コネクション(19)に代えて、1又は2以上の付加コントローラ(20)に接続でき、要望がある場合には、1又は2以上のこれら付加コントローラを、順にコントローラに接続することもできる。サービスを要求する各コネクションは、夫々、時間間隔、開始時間、終了時間を、メモリー(16)に格納しており、該メモリー(16)は、コネクションがスケジューラ(10)中で最初に接続されたコントローラ(20)に関連づけられる。コントローラ(20)は、コネクションの代わりに、下位レベルのコントローラ(20)に接続され、同様に、下位のコントローラ(20)に関連づけられたメモリー(16)の中に、時間間隔、開始時間及び終了時間を記憶している。
【0042】
任意のコネクション(19)又は次の上位層(ポートから離れる側)にて、そこへ接続されたコントローラ(20)がサービスを受けるのに適しているときは、ある層のコントローラ(20)は、サービスを受けることに適しているか否かを決定する。サービス受信の適格を定めるコントローラ(20)は、次の下位層(ポートに近い側)で接続されているコントローラ(20)に、サービスを伝達する。
【0043】
如何なる所与のスロットタイムにおいても、サービスを提供するための決定は、主コントローラ(20)から、中間コントローラを通って、コネクションで終わるところまで伝達する。主コントローラは、そのメモリー(16)中の適正な情報と最も早い終了時間に基づいており、次の上位層でコントローラに直接接続された実体のどれが、サービスを受信することを決定する。次に、そのローカルメモリ中の実体の開始と終了時間が更新される。選択された実体が、次の層中の他のコントローラ(20)である場合には、該コントローラは、そのメモリー(16)中の適格についての情報と最も早い終了時間に基づいて、次の上位層でコントローラ(20)に直接接続されたどの実体がサービスを受信することに関して、同様の決定を順に行なう。このように、決定プロセスは、階層を通じて伝達する。それは、コネクションをサービス対象に選択したときに終了する。従って、階層的な構造は、階層的手法によって、順応性(flexibility)が帯域幅を代表することを許容している。所与のコントローラ(20)の下でのコネクションの組は、あるレート以内に累積的に制限されており、これは、次の下位層における接続されたコントローラ(20)中でそのようなレートに対応する時間間隔をプログラミングすることによって行なわれる。
【0044】
関連づけられたコントローラに対する仮想クロックは夫々、異なる層又は同じ層の他のコントローラの他のすべての仮想クロックとは独立して、仮想時間を維持することに注意すべきである。各々のスロット時間、すべての仮想クロックは、仮想ブロックに接続された適正な実体の終了時間に基づく等式(1)で記載したように更新される。等式(1)は、スケジューラ中で、各仮想クロック(18)に対して行なわれる増分(increment)と最小の操作を要求する。多数の仮想リンクを用いて、上述の操作をハードウェア中で実行するには非常に費用がかかる。ハードウェアの要件は、次のスキームを用いることによって減じることができる。すべての仮想クロック(18)は、各スロット時間で盲目的に増大する。コントローラ(20)がサービスを受信したときに、クロックの正確な値を得るために、最小の操作を仮想クロック(18)上で行なう。このことによって、コントローラは、次のレベルでの調整(next level of arbitration)によりクロックの正確な値を用いることができる。コントローラの下で実体がオーバーブッキングされているとき、スキームは、所望のオーバーブッキング操作を保証するために、仮想クロックがスローダウンを反映する(reflect)ことを保証する。
【0045】
図8及び図11を参照すると、保証されたサービスは、上述した階層的な構造で確立することができる。本実施例では、サービスの保証レートを要求するコネクションは、レート制限されたコントローラの主コントローラと下位層のコントローラから分離したレート保証コントローラ(20)に接続される。各スロット時間において、階層づけられた主レート制限コントローラ(10)が、コントローラの下で、如何なるコネクションとの手続を進める前に、レート保証コントローラ(20)は、まず、サービスを受信するレート保証コネクションが存在するかどうかを調べるための確認を行なう。もし存在するのであれば、他のレート制限されたコントローラのコネクションがサーバ(14)からサービスを受信する前に、これらコネクションは、まず、サーバ(14)からサービスを受信する。レート保証コネクションが、また、特殊なレート以内に制限されたレートであるコネクションの組に属するのであれば、そのようなコネクションによって受信されたレートを制御する階層に沿ってレートリミッター中のコントローラ(20)は、受信したサービスをアカウントするために、開始と終了時間を更新する。
【0046】
本発明は、例示を目的とした上述の実施例で詳細に説明されているが、これら説明は、単にその目的のためのものであり、次の請求の範囲の記載された事項を除いて、本発明の精神と範囲から離れることなく、当業者が変形を加え得ることは理解されるべきである。
【0047】
なお、図13及び図14に、オーバーブッキングをサポートするフラットレートリミッターの実施についての擬似コードを示す。
また、両レベルでのオーバーブッキングをサポートする階層レートリミッター手法についての擬似コードを、図15及び図16に示す。
【図面の簡単な説明】
【図1】典型的なPFQスキーム内にて維持される従来の仮想クロック及びセッションの開始/終了時間を示す。
【図2】オーバーブッキングが存在するときの望ましい動作を示す例である。セッションC0及びC1は夫々2/4及び3/4のレート限界を要求する。このように、C0、C1が同時に動作しているときは、ラインはオーバーブックされる。そのような期間中、夫々2/5及び3/5のラインレートを受信する。それ以外の場合は、要求したレート限界のサービスを受信する。
【図3】オーバーブッキングが単純に増加する仮想クロック時間関数が与えられて、レート限界の実行に伴う飢餓状態(starvation)の問題を示す例である。行1は実時間(t)の進行を示す。行2はこの例のtのように、対応するV(t)の値を示す。行3、4及び5は、セッションC0、C1及びC2の開始/終了時間を夫々示す。
【図4】オーバーブッキングを有するときのレートリミッターを新たに実行する際に伴うセッションの動作を示す例である。この実行に於ける仮想時間機能は、動的セッションの最小終了時間を越える(move ahead)ことは許されない。行1は、実時間(t)の進行を示す。行2はこの例のtのように、対応するV(t)の値を示す。行3、4及び5は、セッションC0、C1及びC2の開始/終了時間を夫々示す。
【図5】限定されたレートVLの内部にてオーバーブッキングが存在するときの望ましい動作を示す例である。セッションC0及びC1はラインレート4/10に限定されたレートVLの内部で、夫々ラインレートが2/10及び4/10のレート限界を夫々要求する。従って、C0、C1が同時に動作しているときは、VLはオーバーブックされる。その期間中、夫々1.33/10及び2.66/10のラインレートを受信する。それ以外の場合は、要求したレート限界のサービスを受信する。
【図6】階層的レートリミッター(RL)の実行であり、VL間で、更にはVL下にあるセッション間でのオーバーブッキングを支持する。ポート基準クロックはVP(t)である。各仮想リンクVLiは自身の基準クロックVL i(t)を有する。
【図7】限定されたレートVLの内部で、あるオーバーブッキングの存在下に於ける望ましい動作を示す例である。ラインレートが4/10に限定されたレートVLの内部でセッションC0は2/10のレートを保証することを要求し、セッションC1はラインレートが4/10のレート限界を要求する。従って、C1とC0が同時に動的であるときは、VLはオーバーブックされる。その期間中、C0は2/10のラインレート保証を受信し続け、一方C1はラインレートの2/10を受信するのみである。
【図8】階層的なレート限界及びオーバーブッキング、更に保証されたセッションのレート支持を許す例である。RGブロック内のセッションは、RLブロックよりもより上位の優先順位を得る。RGから出力して供されるセッションがあって、それもまたVLに属するならば、VLの対応する開始時間は、RL内で更新される。そのような演算は、VLがRLを介して得ることができる更なる帯域幅を制限し、それによってそのレート限界内にて残るようにする。
【図9】本発明のスケジューラーの概略図である。
【図10】階層的な構造を有するスケジューラーの概略図である。
【図11】レート保証部とともに階層的な構造を有するスケジューラーの概略図である。
【図12】本発明の方法のフローチャートである。
【図13】オーバーブッキングをサポートするフラットレートリミッターの実施についての擬似コードを示す図である。
【図14】図13の続きを示す図である。
【図15】両レベルでのオーバーブッキングをサポートする階層レートリミッター手法についての擬似コードを示す図である。
【図16】図15の続きを示す図である。
【符号の説明】
(10) スケジューラー
(14) サーバ
(16) メモリー
(18) 仮想クロック
(20) コントローラ
Claims (19)
- サーバによって実体を操作する際の制御を行なうスケジューラにおいて、
N個の実体であって、Nは1又は1よりも大きい整数であり、各実体は、サーバからサービスを受信するレートを有するN個の実体と、
N個の実体の終了時間fiを有するメモリーであって、fiは、i番目の実体が、サーバによって操作される時間に対応するメモリーと、
仮想時間の経過を保持して、終了時間fiを確認する仮想クロックと、
仮想クロックとメモリーに接続されており、終了時間の関数としてサーバによって操作される実体を選択するコントローラと、
を具えており、
コントローラは、次式、
V(t+1)=min(V(t)+1,minF)
に応じて仮想時間を操作し、但し、minFは、終了時間を有するすべての実体中の最も早い終了時間を示しているスケジューラ。 - 各実体は、サーバからサービスを要求するレートを有しており、実体のレートの合計は、1よりも大きくできる、請求項1に記載のスケジューラ。
- コントローラは、仮想時間に等しい終了時間を有するすべての実体が、サーバからサービスを受信するまで、仮想時間を停止させる、請求項2に記載のスケジューラ。
- コントローラは、各実体のレートの関数として各実体にサービスを提供するものであり、レートの総計は、1よりも大きいものである、請求項3に記載のスケジューラ。
- メモリーは、N個の実体の開始時間siを有しており、iは1≦i<Nである整数であり、siは、i番目の実体がサーバから次のサービスを要求できる最も早い時間に対応しており、メモリーは、N個の実体のレート制限時間TIiを有する、請求項4に記載のスケジューラ。
- コントローラは、最も早い終了時間を有する実体にサービスを提供する、 請求項5に記載のスケジューラ。
- コントローラの階層を有しており、N個の実体のうちの少なくとも第1の実体は、第2層のコントローラ中の複数の実体を表しており、第2層の第2の実体は、第3層のコントローラ中の実体を表しており、
サービスを必要とするコネクションは、スケジューラ中にてコネクションが最初に接続するコントローラに関連づけられたメモリー中に、レート制限時間と開始時間を格納し、
下位層のコントローラに接続されたコントローラは、レート制限時間と開始時間を、下位層のコントローラに関連づけられたメモリー中に格納している、請求項6に記載のスケジューラ。 - 第1層のコントローラは、第1の実体がスケジュールされるのに適正であり、サービスを待っている実体の最も早い終了時間を有しているとき、サービスを提供するために第1の実体を選択し、そのローカルメモリー中の実体の開始時間と終了時間を更新し、
第2のコントローラは、さらに、第2の実体がスケジュールされるのに適正であり、第2のコントローラでサービスを待っている実体の最も早い終了時間を有しているとき、サービスを提供するために第2の実体を選択し、そのローカルメモリ中で実体の開始時間と終了時間を更新する、請求項7に記載のスケジューラ。 - 各コントローラは、異なる層又は同じ層の他のコントローラのすべての他のクロックから独立した仮想クロックを維持しており、すべての仮想クロックは、コントローラに接続されると共にスケジュールされるのに適正な実体の終了時間に基づいて更新される、請求項8に記載のスケジューラ。
- すべての仮想クロックは、各サイクルタイムで増分され、クロックの正しい値を獲得するために、終了時間を有するすべての実体中の最も早い終了時間に関する上記の操作を仮想クロック上で行なって、コントローラがサービスを受信したときに、コントローラが次の層のクロックの正しい値を用いることを許容する、請求項9に記載のスケジューラ。
- コントローラにおける実体のレートの合計は、1よりも大きくすることができ、従って、スケジューラにオーバーブッキングを許容する、請求項8に記載のスケジューラ。
- オーバーブッキングのない場合に実体により受信されたレートは、その実体のレートに等しく、オーバーブッキングのある場合に実体により受信されたレートは、レートの最小値又はスケジュールされるのに適正な実体のレートの合計によってコントローラにて減じられたレートである、請求項11に記載のスケジューラ。
- 少なくとも1の実体は、サービスを待っている実体の最も早い終了時間である終了時間を有しているとき、サーバからサービスを保証される、請求項12に記載のスケジューラ。
- コントローラがどの実体が次にサービスを受信するかを決定する場合、サービスを保証された実体がコントローラによって最初に調査されて、コントローラは、サービスを保証された実体が、サービスを待っている実体の最も早い終了時間を有しているかどうかを確認する、請求項13に記載のスケジューラ。
- サーバによって実体を操作する際の制御を行なうスケジューラにおいて、
N個の実体であって、Nは1又は1よりも大きい整数であり、各実体は、サーバからサービスを受信するレートを有しており、N個の実体の第1の実体は複数のコネクションを有しており、複数のコネクションのうち少なくとも1つが、サービスを待っており、サービスを待っている実体の中で最も早い終了時間である終了時間を有している場合、コントローラは、サービスを提供する第1の実体を選択するものであるN個の実体と、
N個の実体の終了時間fiを有するメモリーであって、fiは、i番目の実体がサーバによって操作される時間に対応したメモリーと、
仮想時間の経過を保持して、終了時間fiを確認する仮想クロックと、
仮想クロックとメモリーに接続されており、終了時間の関数としてサーバによって操作される実体を選択するコントローラと、
を具えており、
コントローラは、次式、
V(t+1)=min(V(t)+1,minF)
に応じて仮想時間を操作し、但し、minFは、終了時間を有するすべての実体中の最も早い終了時間を示しているスケジューラ。 - サーバからのサービスをスケジュールするための方法において、
サービスについての第1のレートを有する第1の実体から第1の要求を、サーバから受信するステップと、
第1の実体がサーバからサービスを受信するときに、メモリーに終了時間を格納するステップと、
サービスについての第2のレートを有する第2の実体から第2の要求を、サーバから受信するステップと、
第1の実体にサービスを提供するステップと、
第2の実体の終了時間が、仮想時間と等しければ、仮想時間を停止するステップと、
第2の実体へ、サービスを提供するステップとを含んでいる方法。 - 実体のレートの合計は、1よりも大きい、請求項16に記載の方法。
- 第1の実体にサービスを提供するステップは、第1の実体の第1のコネクションへサービスを提供し、次に、第1の実体の第2のコネクションへサービスを提供するステップである、請求項17に記載の方法。
- 第1の実体にサービスを提供するステップの前に、第1の実体が、終了時間を有する実体の最も早い終了時間である終了時間を有しているかどうか決定するステップを含んでいる、請求項18に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/120697 | 1998-07-22 | ||
US09/120,697 US6122673A (en) | 1998-07-22 | 1998-07-22 | Port scheduler and method for scheduling service providing guarantees, hierarchical rate limiting with/without overbooking capability |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000059365A JP2000059365A (ja) | 2000-02-25 |
JP4327948B2 true JP4327948B2 (ja) | 2009-09-09 |
Family
ID=22391998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20739399A Expired - Fee Related JP4327948B2 (ja) | 1998-07-22 | 1999-07-22 | オーバーブッキングの能力がある場合、ない場合の階層的な転送速度制限を保証しながらサービスの提供をスケジュールするポートスケジューラとその手法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6122673A (ja) |
EP (1) | EP0986221B1 (ja) |
JP (1) | JP4327948B2 (ja) |
AT (1) | ATE375046T1 (ja) |
DE (1) | DE69937219T2 (ja) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE268484T1 (de) | 1998-10-28 | 2004-06-15 | Verticalone Corp | System und verfahren für den automatischen zugriff auf persönliche daten |
US7672879B1 (en) | 1998-12-08 | 2010-03-02 | Yodlee.Com, Inc. | Interactive activity interface for managing personal data and performing transactions over a data packet network |
US6517587B2 (en) * | 1998-12-08 | 2003-02-11 | Yodlee.Com, Inc. | Networked architecture for enabling automated gathering of information from Web servers |
US7085997B1 (en) | 1998-12-08 | 2006-08-01 | Yodlee.Com | Network-based bookmark management and web-summary system |
US8069407B1 (en) | 1998-12-08 | 2011-11-29 | Yodlee.Com, Inc. | Method and apparatus for detecting changes in websites and reporting results to web developers for navigation template repair purposes |
US7065762B1 (en) * | 1999-03-22 | 2006-06-20 | Cisco Technology, Inc. | Method, apparatus and computer program product for borrowed-virtual-time scheduling |
US7752535B2 (en) | 1999-06-01 | 2010-07-06 | Yodlec.com, Inc. | Categorization of summarized information |
US6976258B1 (en) | 1999-11-30 | 2005-12-13 | Ensim Corporation | Providing quality of service guarantees to virtual hosts |
US6754716B1 (en) | 2000-02-11 | 2004-06-22 | Ensim Corporation | Restricting communication between network devices on a common network |
US7343421B1 (en) | 2000-02-14 | 2008-03-11 | Digital Asset Enterprises Llc | Restricting communication of selected processes to a set of specific network addresses |
US6948003B1 (en) | 2000-03-15 | 2005-09-20 | Ensim Corporation | Enabling a service provider to provide intranet services |
US6985937B1 (en) | 2000-05-11 | 2006-01-10 | Ensim Corporation | Dynamically modifying the resources of a virtual server |
US6907421B1 (en) | 2000-05-16 | 2005-06-14 | Ensim Corporation | Regulating file access rates according to file type |
US6904045B1 (en) * | 2000-06-02 | 2005-06-07 | Agere Systems Inc. | Method and apparatus for guaranteeing data transfer rates and delays in asynchronous transfer mode networks using pivot sessions |
US7143024B1 (en) | 2000-07-07 | 2006-11-28 | Ensim Corporation | Associating identifiers with virtual processes |
US6909691B1 (en) * | 2000-08-07 | 2005-06-21 | Ensim Corporation | Fairly partitioning resources while limiting the maximum fair share |
DE10051147B4 (de) * | 2000-10-16 | 2005-04-14 | Siemens Ag | Verfahren zum Zugriff auf ein IP-Netz und zur Arbeit in diesem |
JP3526269B2 (ja) * | 2000-12-11 | 2004-05-10 | 株式会社東芝 | ネットワーク間中継装置及び該中継装置における転送スケジューリング方法 |
US7219354B1 (en) | 2000-12-22 | 2007-05-15 | Ensim Corporation | Virtualizing super-user privileges for multiple virtual processes |
US7317683B2 (en) * | 2001-11-01 | 2008-01-08 | International Business Machines Corporation | Weighted fair queue serving plural output ports |
US7046676B2 (en) | 2001-11-01 | 2006-05-16 | International Business Machines Corporation | QoS scheduler and method for implementing quality of service with cached status array |
US6982986B2 (en) * | 2001-11-01 | 2006-01-03 | International Business Machines Corporation | QoS scheduler and method for implementing quality of service anticipating the end of a chain of flows |
US7280474B2 (en) | 2001-11-01 | 2007-10-09 | International Business Machines Corporation | Weighted fair queue having adjustable scaling factor |
US7103051B2 (en) * | 2001-11-01 | 2006-09-05 | International Business Machines Corporation | QoS scheduler and method for implementing quality of service with aging time stamps |
US7310345B2 (en) | 2001-11-01 | 2007-12-18 | International Business Machines Corporation | Empty indicators for weighted fair queues |
US6973036B2 (en) | 2001-11-01 | 2005-12-06 | International Business Machines Corporation | QoS scheduler and method for implementing peak service distance using next peak service time violated indication |
US7187684B2 (en) * | 2001-11-01 | 2007-03-06 | International Business Machines Corporation | Weighted fair queue having extended effective range |
US7680043B2 (en) * | 2002-03-20 | 2010-03-16 | International Business Machines Corporation | Network processor having fast flow queue disable process |
US7257124B2 (en) * | 2002-03-20 | 2007-08-14 | International Business Machines Corporation | Method and apparatus for improving the fairness of new attaches to a weighted fair queue in a quality of service (QoS) scheduler |
US20050120128A1 (en) * | 2003-12-02 | 2005-06-02 | Wilife, Inc. | Method and system of bandwidth management for streaming data |
US7599002B2 (en) * | 2003-12-02 | 2009-10-06 | Logitech Europe S.A. | Network camera mounting system |
WO2005094012A1 (en) * | 2004-03-27 | 2005-10-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for overload handling at a processing device |
US20060171453A1 (en) * | 2005-01-04 | 2006-08-03 | Rohlfing Thomas R | Video surveillance system |
US20060255931A1 (en) * | 2005-05-12 | 2006-11-16 | Hartsfield Andrew J | Modular design for a security system |
US7606752B2 (en) | 2006-09-07 | 2009-10-20 | Yodlee Inc. | Host exchange in bill paying services |
US7801045B2 (en) | 2007-06-19 | 2010-09-21 | Alcatel Lucent | Hierarchical rate limiting with proportional limiting |
US8261334B2 (en) | 2008-04-25 | 2012-09-04 | Yodlee Inc. | System for performing web authentication of a user by proxy |
US20090323529A1 (en) * | 2008-06-27 | 2009-12-31 | Ericsson Inc. | Apparatus with network traffic scheduler and method |
US8555359B2 (en) | 2009-02-26 | 2013-10-08 | Yodlee, Inc. | System and methods for automatically accessing a web site on behalf of a client |
US8705486B2 (en) * | 2011-01-19 | 2014-04-22 | Qualcomm Incorporated | Methods and apparatus for scheduling peer to peer traffic in cellular networks |
JP2015095220A (ja) * | 2013-11-14 | 2015-05-18 | ソニー株式会社 | 情報処理装置、情報処理方法および記録媒体 |
EP3140741A1 (de) * | 2014-06-25 | 2017-03-15 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zur umsetzung eines transaktionskonzepts bei opc ua mittels time-out mechanismus |
DE102014011185A1 (de) | 2014-07-31 | 2016-02-04 | Daimler Ag | Betrieb eines Systems, mit dem Mietfahrzeuge in einem Gebiet zur Anmietung durch Nutzer bereitgestellt werden |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2150967C (en) * | 1994-12-22 | 2001-04-03 | Jon C. R. Bennett | Method and a scheduler for controlling when a server provides service with rate control to an entity |
EP0748086A1 (en) * | 1995-06-09 | 1996-12-11 | Siemens Aktiengesellschaft | Method for scheduling message cells leaving an ATM node |
US6038217A (en) * | 1996-06-27 | 2000-03-14 | Xerox Corporation | Rate shaping in per-flow output queued routing mechanisms for available bit rate (ABR) service in networks having segmented ABR control loops |
DE69737249T2 (de) * | 1996-06-27 | 2007-08-09 | Xerox Corp. | Paketvermitteltes Kommunikationssystem |
US5991812A (en) * | 1997-01-24 | 1999-11-23 | Controlnet, Inc. | Methods and apparatus for fair queuing over a network |
AU6873198A (en) * | 1997-04-04 | 1998-10-30 | Ascend Communications, Inc. | High speed packet scheduling method and apparatus |
-
1998
- 1998-07-22 US US09/120,697 patent/US6122673A/en not_active Expired - Lifetime
-
1999
- 1999-07-22 DE DE69937219T patent/DE69937219T2/de not_active Expired - Lifetime
- 1999-07-22 EP EP99305817A patent/EP0986221B1/en not_active Expired - Lifetime
- 1999-07-22 AT AT99305817T patent/ATE375046T1/de not_active IP Right Cessation
- 1999-07-22 JP JP20739399A patent/JP4327948B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69937219T2 (de) | 2008-07-03 |
EP0986221A3 (en) | 2003-12-03 |
JP2000059365A (ja) | 2000-02-25 |
US6122673A (en) | 2000-09-19 |
DE69937219D1 (de) | 2007-11-15 |
EP0986221A2 (en) | 2000-03-15 |
EP0986221B1 (en) | 2007-10-03 |
ATE375046T1 (de) | 2007-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4327948B2 (ja) | オーバーブッキングの能力がある場合、ない場合の階層的な転送速度制限を保証しながらサービスの提供をスケジュールするポートスケジューラとその手法 | |
EP0901301B1 (en) | Dynamic rate control scheduler for ATM networks | |
JP3814393B2 (ja) | セルスケジューリング方法及びその装置 | |
US6389019B1 (en) | Time-based scheduler architecture and method for ATM networks | |
US6067301A (en) | Method and apparatus for forwarding packets from a plurality of contending queues to an output | |
JP3614132B2 (ja) | データをトランスポートするシステムおよび方法 | |
JP3715098B2 (ja) | 通信ネットワークにおけるパケットの配送装置とその方法 | |
US7142513B2 (en) | Method and multi-queue packet scheduling system for managing network packet traffic with minimum performance guarantees and maximum service rate control | |
US6349089B1 (en) | Flexible scheduler in an asynchronous transfer mode (ATM) switch | |
USRE44119E1 (en) | Method and apparatus for packet transmission with configurable adaptive output scheduling | |
JP3618390B2 (ja) | Atmスイッチにおける帯域幅要求を処理する装置および方法 | |
US7616567B2 (en) | Shaping apparatus, communication node and flow control method for controlling bandwidth of variable length frames | |
US7206858B2 (en) | DSL transmit traffic shaper structure and procedure | |
JP2959540B2 (ja) | ノード装置 | |
JPH10215257A (ja) | パケット交換通信システム | |
WO2002098080A1 (en) | System and method for scheduling traffic for different classes of service | |
JPH10215258A (ja) | パケット交換通信システム | |
JPH0846590A (ja) | データ伝送システム | |
JPH11501476A (ja) | 広帯域交換網 | |
CA2462793C (en) | Distributed transmission of traffic streams in communication networks | |
US7130270B2 (en) | Method and apparatus for varying bandwidth provided to virtual channels in a virtual path | |
EP2063580B1 (en) | Low complexity scheduler with generalized processor sharing GPS like scheduling performance | |
KR0151911B1 (ko) | 에이티엠 망에서 출력대역제어를 위한 셀 간격 제어 장치 및 그 방법 | |
JPH10190691A (ja) | トラフィック成形装置及びルーチン | |
Adas et al. | Providing guaranteed quality of service for variable-bit-rate video at a multiplexor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040901 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040906 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040906 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060705 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080514 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081024 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081125 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090217 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090220 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090324 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090327 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090414 |
|
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: 20090526 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090612 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120619 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4327948 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130619 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |