JP4017867B2 - スケジューリング装置 - Google Patents

スケジューリング装置 Download PDF

Info

Publication number
JP4017867B2
JP4017867B2 JP2002000603A JP2002000603A JP4017867B2 JP 4017867 B2 JP4017867 B2 JP 4017867B2 JP 2002000603 A JP2002000603 A JP 2002000603A JP 2002000603 A JP2002000603 A JP 2002000603A JP 4017867 B2 JP4017867 B2 JP 4017867B2
Authority
JP
Japan
Prior art keywords
service
flow
data packet
scheduler
frame
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
JP2002000603A
Other languages
English (en)
Other versions
JP2002232470A (ja
Inventor
エム チウスイ ファビオ
ディー ドラッカー ケヴィン
フランシーン アンドレーエ
Original Assignee
ルーセント テクノロジーズ インコーポレーテッド
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
Application filed by ルーセント テクノロジーズ インコーポレーテッド filed Critical ルーセント テクノロジーズ インコーポレーテッド
Publication of JP2002232470A publication Critical patent/JP2002232470A/ja
Application granted granted Critical
Publication of JP4017867B2 publication Critical patent/JP4017867B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/521Static queue service slot or fixed bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/525Queue scheduling by attributing bandwidth to queues by redistribution of residual bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5649Cell delay or jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、パケットスケジューラに関し、特に、帯域要求のあるデータソースへのデータ転送レートと、帯域要求のないデータソースへのフェアネス(公平性)とを同時に保証するパケットスケジューリング装置および方法に関する。
【0002】
【従来の技術】
Integrated Service (Intserv)やDifferentiated Service (Diffserv)のような精緻なサービス品質(QoS)フレームワークがますます広まるとともに、フレキシブルな帯域管理の可能なパケットスケジューラが重要視されている。最適遅延性能を実現するパケットスケジューラの実装コストが高いため、また、最悪の場合の遅延性能はIPネットワークにおける頑強(ロバスト)な帯域性能にとっては実際にはあまり重要でないため、産業界は、重み付けラウンドロビン(WRR:Weighted Round Robin)スケジューラ[後記の[付録]に列挙した文献1,2,3参照]に強い関心を示している。WRRスケジューラは、複雑さが非常に低く、ロバストな帯域保証およびフェアネスを提供することができるが、ぎりぎりまでの(タイトな)遅延限界を必ずしも達成するものではない。
【0003】
【発明が解決しようとする課題】
WRRスケジューラでは、厳格な帯域保証を帯域保証型(GB:guaranteed-bandwidth)フロー(すなわち、指定された帯域要求のあるフロー)に提供することと、サービスフェアネスをベストエフォート型(BE:best-effort)フロー(すなわち、指定された帯域要求のないフロー)を提供することが、いずれかの型のフローを単独で処理するとき(すなわち、他方の型のフローがない場合)には可能である。一般に、GBフローとBEフローを単一のWRRスケジューラでまとめると、帯域資源を割り当てる際のサーバの効率が低下する。
【0004】
従来のWRRスケジューラでは、BEフローは、サービスシェアが割り当てられた場合にのみサービスされる。サービスシェアの選択は常に任意であり、本質的に、BEフローへの帯域の分配を特徴づけるべきフレキシビリティをその代わりに低下させる。さらに、BEフローに割り当てられるサービスシェアは、GBフローと共有される帯域プールから差し引かれるが、このことは、スケジューラがサポート可能なGBフローの量の低下を意味する。
【0005】
GBおよびBEフローを効率的に統合することが可能な改良されたWRRスケジューラが必要とされている。
【0006】
【課題を解決するための手段】
本発明によれば、帯域保証型(GB)およびベストエフォート型(BE)のフローをフレキシブルに統合するスケジューリング方法および装置が実現される。本発明のパケットスケジューリング装置は、一次WRRスケジューラ(PWS:primary WRR scheduler)と二次WRRスケジューラ(SWS:secondary WRR scheduler)の組合せを有する。PWSは、サーバのアクティビティをサービスフレームに分割する。各サービスフレーム内で、PWSは、サービスを個々のGBフローに分配し、すべてのバックログ(積滞)BEフローの集合(aggregate)が受けるべきサービスの量を決定する。SWSは、BE集合のサービスシェアを個々のBEフローにわたり公平(フェア)に分配することを担当する。
【0007】
パケットスケジューリング装置の動作によりサービスフレームは2個のサブフレームに分割される。第1サブフレームで、PWSはGBフローの帯域要求を充足する。第2サブフレームで、SWSはフェアサービスをBEフローに分配する。各フレームについて、2個のサブフレームの期間は、GBフローに割り当てられる帯域の量と、そのフレームの最初に積滞している(溜まっている)GBフローの数とに依存する。第2サブフレームの期間は、1サービスフレーム内でBEフローに利用可能な帯域の量を反映する。それは、GBフローのバックログ状態とともに変化する。すなわち、GBフローのアクティビティが低いときに増大し、GBフローのアクティビティが高くなると減少する。こうして、本発明のスケジューラでは、BEフローのサービスシェアは、GBフローの帯域保証をも支持する同一の有限なプール(これはサーバの容量によって制約される)から差し引かれるのではなく、GBフローにより未使用のまま残されているサーバ容量の部分に動的に適応する別個の無制約のプールから差し引かれる。
【0008】
具体的には、本発明によれば、サービスフレームに分けてデータパケットフローをサービスするスケジューリング装置が実現される。スケジューリング装置は、(1)サービスフレームの第1サブフレームの期間中に、帯域保証を第1のGBフローのセットに提供する第1スケジューラと、(2)サービスフレームの第2サブフレームの期間中に、サービスを第2のBEフローのセットに提供する第2スケジューラとを有する。第1サブフレームの期間は、GBフローの帯域要求を満たすように調整される。BEフローは、保証帯域要求で表現されないサービス要求を有し、第2サブフレームの期間は、サービスフレームの期間から、同じサービスフレーム内の第1サブフレームの期間を差し引いたものである。なお、本発明のもう1つの特徴によれば、第2スケジューラは、必ずしも、サービスをそれぞれのBEフローに等分配するように設定される必要はない。
【0009】
また、本発明によれば、サービスフレームに分けてGBフローおよびBEフローのデータパケットをサービスするためにスケジューラを動作させる方法が実現される。この方法は、(1)サービスフレームの第1サブフレームの期間中に、サービスを第1のGBフローのセットに提供するステップと、(2)サービスフレームの第2サブフレームの期間中に、サービスを第2のBEフローのセットに提供するステップとを有する。前記GBデータパケットフローは、帯域要求で表現されるサービス要求を有し、第1サブフレームの期間は、前記GBデータパケットフローの帯域要求を満たすように調整される。前記BEデータパケットフローは、保証帯域要求で表現されないサービス要求を有し、第2サブフレームの期間は、サービスフレームの期間から、同じサービスフレーム内の第1サブフレームの期間を差し引いたものである。
【0010】
【発明の実施の形態】
図1に、複数の通信スイッチ101−1〜101−pが通信リンクにより相互に接続された例示的なパケットネットワークを示す。いくつかのデータソース102−1〜102−qが通信スイッチに接続される。ネットワークコネクションが、それぞれのデータソースから、対応する宛先103−1〜103−gへと確立され、データパケットは、各データソースから対応する宛先へ送信される。
【0011】
図2は、パケットネットワークの通信スイッチ101−1の例示的なブロック図である。図示のように、通信スイッチは、スイッチファブリック250と、複数の通信リンクインタフェース200−1〜200−sを有する。各通信リンクインタフェースは、複数の入力リンクを1つの出力リンクに接続し、データパケットを入力リンクから出力リンクへ転送する。通信スイッチ101−1は、このような通信リンクインタフェース200を1個だけ含むことも、複数含むことも可能である。例えば、入力通信リンクインタフェース200−1はスイッチファブリック250の前に配置され、その場合、入力通信リンクインタフェース200−1の入力リンク201−1〜201−rは通信スイッチ101−1の入力リンクであり、入力通信リンクインタフェース200−1の出力リンク203はスイッチファブリック250に接続される。
【0012】
第2の例として、出力通信リンクインタフェース200−jはスイッチファブリック250の出力に配置され、出力通信リンクインタフェース200−jの入力リンクはスイッチファブリック250の複数の出力リンク204であることが可能であり、出力通信リンクインタフェース200−jの出力リンクは通信スイッチ101−1の出力リンク202−jである。注意すべき点であるが、1つの特定のリンクを通じて、または、複数の相異なるリンクを通じて受信されるパケットは、同じ長さであることもそうでないこともある。例えば、スイッチファブリック250が非同期転送モード(ATM)スイッチであり、図1のネットワークがATMネットワークである場合、すべてのパケットは同じ長さを有する。本発明の以下の説明では、1つの特定のリンクを通じて、または、複数の相異なるリンクを通じて受信されるパケットは、長さが必ずしも同じでないと仮定する。
【0013】
図6に関連して後の段落で説明するように、図2の通信リンクインタフェース200のそれぞれは一般に、少なくともパケット受信器、スケジューラ、およびパケット送信器を有する。前述のように、スケジューラは、重み付けラウンドロビン(WRR)スケジューラ[1,2,3]であることが可能であり、さらにこれは、不足ラウンドロビン(DRR:Deficit Round Robin)[2]または余剰ラウンドロビン(SRR:Surplus Round Robin)[3]のアルゴリズムに従って実装されることが可能である。
【0014】
不足ラウンドロビン(DRR)アルゴリズムは、その最小限の実装複雑さと、割り当てられるサービスシェアに比例してフローをサービスする際のその効率とにより、可変サイズのパケットに対するWRRスケジューラの最も普及している実例の1つである。DRRアルゴリズムはまた、サーバのアクティビティをサービスフレームに分割する。WRRパラダイムに従って、DRRアルゴリズムは、サービスシェアρを各設定フローiに関連づける。サービスシェアは、すべての設定フローにわたるそれらの和がサーバの容量rを超えないときに、最小の保証サービスレートとなる。
【数1】
Figure 0004017867
式(1)の限界(ただし、Vは設定フローの総数である)は、ρより低くない長期レートでフローiがサービスを受けることを保証する。
【0015】
DRRアルゴリズムは、サーバのアクティビティをサービスフレームに分割する。本発明は、基準タイムスタンプ増分Tを用いて仮想時間領域でフレーム期間を表現するアルゴリズムの定式化を参照する。この定式化は、最初に[2]で提示されたDRRの定義と機能的に等価であるが、本発明の記述にはより適している。
【0016】
1フレーム内で、各設定フローiには、次式のような量Qの情報ユニットの送信の権利が与えられる。
=ρ・T (2)
【0017】
スケジューラは、フレームあたり1回だけバックログフローを処理するため、一発でそのフレームに対するそれらのフローのサービス期待値を充足する。各フローiは、パケットのキュー(フローキュー)と、長さl の新たなパケットp がフローキューの先頭に到着するごとに更新される次式のタイムスタンプFとを管理する。
=F k−1+l /ρ (3)
【0018】
スケジューラは、フローへのサービスを、そのタイムスタンプがTより小さくとどまる限り続ける。タイムスタンプFが基準タイムスタンプ増分Tを超えると、スケジューラは、フローiの処理の終了を宣言し、Tをフローiのタイムスタンプから減算し、サービスすべき別のバックログフローを探す。その結果、Tの減算後、Fの値は、フローiに対するサービスクレジット(貸し)を表現する。一般に、タイムスタンプは、バックログフローのサービスクレジットを後のフレームに持ち越すため、スケジューラは、長期間では(すなわち、複数のフレームにわたって)、割り当てられたサービスシェアに比例してサービスを分配することができる。
【0019】
フローiがアイドルになると、スケジューラは直ちに別のフローに移り、それへのサービスの提供を開始する。フローiが短時間で再びバックログになると、フローiは、サーバからの次の処理を受けるためには、次のフレームの開始を待たなければならない。フローがアイドルになると、同じフローが将来のフレームで再びバックログになった場合のサービスの損失を避けるために、そのフローのタイムスタンプはゼロにリセットされる。構成により、アイドルのフローのタイムスタンプは常にTより小さいため、タイムスタンプのリセットは、他のフローに不利になるような余分のサービスクレジットを生じることはない。
【0020】
構成により、サービスフレームの始めには、フローiのタイムスタンプFの値は0とL/ρの間にある。ただし、Lはフローiのパケットの最大サイズである。タイムスタンプの初期値のゆらぎは、フローiが1フレームで送信する情報ユニットの量のゆらぎを引き起こし、これは区間(Q−L,Q+L)内にある。このため、すべての設定フローが永続的に積滞しているときでさえ、サーバが1フレームで送信する情報ユニットの総量は一定でない。
【0021】
DRRスケジューラは、[2]では、FIFO順に巡回されるバックログフローの単一の連結リストにより実装された。次式のように、基準タイムスタンプ増分Tが、最小サービスシェアのフローに対する最大サイズのパケットにより定まるタイムスタンプ増分より小さくない場合には、バックログフローを単一FIFOキューに配置すると、O(1)の実装複雑さとなる。
≧Lma/ρmi (4)
【0022】
式(4)の条件が満たされない場合、スケジューラのアルゴリズム複雑さは、連続するパケット送信間に実行されるべき基本オペレーションの最悪の場合の数とともに爆発的に増大する(基本オペレーションには、連結リストにおけるフローの取り出しおよび挿入、タイムスタンプ更新、タイムスタンプと基準タイムスタンプ増分の比較、が含まれる)。実際、スケジューラは、基準タイムスタンプ増分の反復減算によりタイムスタンプが[0,T)区間内に入るまで、いくつかの連続するフレームの間、フローへのサービスを拒否しなければならない可能性がある。図3Aに、DRRにおいて、新たなパケットがフローiのキューの先頭に到着したときに、そのフローiを処理しそのタイムスタンプを更新するための規則を指定する例示的な擬似コードのリストを示す。
【0023】
余剰ラウンドロビン(SRR)の記述は[3]に与えられている。このアルゴリズムは、DRRと同じパラメータおよび変数を有するが、異なるイベントがタイムスタンプの更新を引き起こす。すなわち、フローiは、パケットp の送信が完了すると、その結果のフローのバックログ状態とは独立に、新たなタイムスタンプF を受け取る。フレームの終わりは、1パケットの送信後に常に検出され、その前には検出されない。タイムスタンプは、(DRRの場合のクレジット(貸し)の代わりに)現フレームの期間中にフローによって累積されたデビット(借り)を次フレームに持ち越す。
【0024】
DRRに比べてSRRの利点は、SRRは、フローのフレームの終わりを決定するためにキュー先頭パケットの長さを前もって知る必要がないことである。逆に、悪意のあるフローが競争相手から帯域を盗むことを防ぐために、このアルゴリズムは、アイドルになったフローのタイムスタンプをリセットすることができない。アイドルフローのヌルでないタイムスタンプは、そのフローがアイドルになったのと同じフレームの終了によって結局は不用(obsolete)となる。理想的には、タイムスタンプは、不用になったらすぐにリセットされるべきである。しかし、数十万、さらには数百万のフローを処理するスケジューラでは、同時に不用になる可能性のあるすべてのタイムスタンプを即座にリセットすることは現実には不可能である。
【0025】
本発明についてのこの記述は、アイドルフローのタイムスタンプの不用性を何らチェックしないSRRアルゴリズムの実装に焦点をしぼる。この実装では、新たに積滞したフローは常に、そのタイムスタンプの値がいかに古くとも、そのタイムスタンプの最近の値からアクティビティを再開する。この仮定の効果は、新たに積滞したフローが、前に長時間の間に累積したデビットの結果として、サーバが最初にやってくるときにその受けるべきサービスの一部をあきらめなければならないことがあることである。図3Bに、SRRにおいて、サーバがパケットp の送信を完了したときにフローiを処理しそのタイムスタンプを更新するための規則を指定する例示的な擬似コードのリストを示す。
【0026】
説明を簡単にするため、本明細書の残りの部分では、重み付けラウンドロビン(WRR)の名称は一般に、DRRまたはSRRを総称的に(それらを区別する特徴への明示的な言及がなければ)指すために用いるものとする。
【0027】
エンドツーエンドのフローまたはそれらのフローの集合に帯域保証を提供するための低コストのトラフィック管理技術の利用可能性と、ネットワーク全体でサービス保証をサポートするためのロバストなフレームワークの存在[4,5,6,7]とは、IPネットワークからベストエフォート型トラフィックを除去することの十分な理由とはならず、代わりに、相異なる型のトラフィックを効率的に統合するためにネットワークノードで解決されるべき追加のトラフィック管理問題を導入する。ベストエフォート型フローは、明示的に指定されたQoS要求を有しない。そのため、出リンクへのアクセスを規制するスケジューラにおいて、これらのフローに対する帯域資源は予約されない。しかし、同じリンクを要求する相異なるBEフローの相対的扱いにおけるフェアネス(公平性)が強く望まれることがある。
【0028】
ベストエフォート型フローのセットだけを考える場合、すべてのフローに対して同一のサービスシェア割当てを行うWRRスケジューラは、フェアネス目標を満たすために考え得る最も単純な方式である。帯域保証型フローも同じ出リンクで競合する場合には、単一のWRRスケジューラではもはや不十分である。BEフローに割り当てられるシェアは、GBフローに割り当て可能なプールから帯域を差し引き、帯域の分配における固定された割合を強制して、BEフローの性質とは矛盾することになる。
【0029】
この問題点について簡単な例で説明する。ある単一のWRRスケジューラが、GBおよびBEの両方のフローを処理する。サーバは、その容量rの1%を各設定BEフローに割り当てる(もちろん、1%を選ぶのは全く任意であり、他のどのような値でも同様である)。スケジューラのアクティビティは、20個の設定BEフローから開始される。この時点で、各BEフローは、すべてのBEフローが永続的に積滞している場合には、サーバ容量の5%を取得する。次に、サーバは、それぞれ0.4rを要求する2個のGBフローを受け付ける。これで、サーバの容量は完全に割り当てられ、これ以上いずれの型のフローも設定することはできない。
【0030】
ベストエフォート型フローに明示的シェアを割り当てる結果、このようなフローの存在は、サーバがGBフローに予約可能な公称帯域の量を縮小する。さらに、公称帯域の利用可能性は、設定可能なBEフローの数を制約する。理想的には、GBフローは、サーバの容量全体にアクセスできるべきであり、BEフローの設定は、(単に、BEフローは明示的な帯域要求を有しないという理由だけで)公称帯域の利用可能性によって制約されるべきではない。
【0031】
この例では、2個の設定GBフローのうちの一方がアイドルになると、この単一WRRスケジューラは、積滞しているGBフローに0.66rを与える一方、各BEフローは、サーバの容量の1.66%を得る(スケジューラは、バックログフローの明示的なシェアに従って、固定割合でバックログフローへのサービスを継続する)。理想的には、積滞しているGBフローは、代わりに、サーバの容量の40%以下を受けるべきであり、一方、各BEフローは、0.03rでサービスされるべきである。
【0032】
Fair Airportスケジューラ[8]では、BEフローは、保証サービスキュー(GSQ:Guaranteed Service Queue)において予約帯域を有さず、補助サービスキュー(ASQ:Auxiliary Service Queue)においてGBフローより高い優先度を有する。これは、GBフローとBEフローの統合に関するすべての機能的な問題に対するエレガントな解決法を提供するであろうが、スケジューラの実装コストは、WRRスケジューラの代表的なコストよりはるかに高くなる。ずっと安価な選択肢は、[9,10]に見られる。この場合、サーバは、2個のWRRスケジューラでGBおよびBEフローを処理し、割り当てられるGBフローの保証サービスシェアの総和をGB集合に与えた後にのみ、BE集合をサービスする。
【0033】
残念ながら、このアプローチは、アイドルGBフローによって使用されていない帯域をBEフローに移す際のフレキシビリティに欠ける。その理由は、少なくとも1つのGBフローが積滞している限り、GB集合からBE集合へ帯域が移されないからである。このように、従来のWRRスケジューラは、GBフローとBEフローの効率的な統合を提供していない。
【0034】
従来技術の問題点は、本発明によれば、帯域保証型(GB)フローとベストエフォート型(BE)フローを効率的に統合する単一のWRRスケジューリングエンジンを用いて解決される。図4に、この改良されたWRRスケジューラの2層論理編成を示す。
【0035】
本発明のWRRスケジューラは、2個のWRRスケジューラの組合せからなる。一次WRRスケジューラ(PWS)401は、サービスを個々のGBフロー402に分配し、BEフロー集合403が各フレームの期間中に受けるべきサービスの量を決定する。二次WRRスケジューラ(SWS)404は、BEフロー集合のサービスシェアを個々のBEフロー405にわたり公平に分配することを担当する。
【0036】
本発明のWRRスケジューラは、基本のWRRスケジューラのキューイング構造を複製すること、および、BE集合のいくつかの状態情報を管理すること(図5)のコストだけで、GBフローからBEフローへの未使用帯域の移動における最も精細なグラニュラリティを達成する。WRRスケジューラは、サービスフレーム406を2個のサブフレームに分割することによって、基本WRRスケジューラの動作を修正する。第1サブフレーム407で、PWS401はGBフロー402の帯域要求を充足する。第2サブフレーム408で、SWS402はフェアサービスを複数のBEフロー405に分配する。各フレーム406の期待される(予想)期間409は固定され、形式的にはPWS基準タイムスタンプ増分T PWSによって表現される。実際のフレーム期間410は、おおむね、そのフレーム全体でのバックログBEフローの利用可能性(アベイラビリティ)に依存する。
【0037】
従来技術のWRRスケジューラとは異なり、本発明の改良されたWRRスケジューラでは、BEフローのサービスシェアは、GBフローの帯域保証をも支持する同一の有限なプール(これはサーバの容量によって制約される)から差し引かれるのではなく、GBフローにより未使用のまま残されているサーバ容量の部分に動的に適応する別個の無制約のプールから差し引かれる。本発明のスケジューリング装置は、個々のGBフロー402と、BEフロー集合403(単一のエンティティとして扱われる)とをPWS401で処理する。PWS401では、BEフロー集合402のサービスシェアは固定されず、その代わりに、毎回のサービスフレームで、GBフローのバックログダイナミクスに適応する。
【0038】
SWS404は、機能的にはPWS401と同一であるが、すべてのフローに同じ値のサービスシェアを割り当てることによって、個々のBEフロー405へのサービスのフェアな(等しい)分配を保証する。このようにして、WRRスケジューラは、帯域保証型フローとベストエフォート型フローをフレキシブルに統合する。なお、本発明のもう1つの特徴によれば、第2スケジューラは、必ずしも、サービスをBEフローに等分配するように設定される必要はない。
【0039】
スケジューラの詳細な動作について説明する前に、その機能的要素に焦点を当てる。図5に、GBフローとBEフローをフレキシブルに統合するために改良されたWRRスケジューラによって利用されるキュー、状態テーブル、およびパラメータを図示する。GBフロー402は、gb1〜gbVとして示されている。それぞれのGBフロー402ごとに、受信されるパケットはそれぞれのフローキュー502に格納される。フローごとのGB状態テーブル503は、GBフローのさまざまなデータ要素を格納し、それぞれのGBフロー402ごとに1つずつある。例えば、フローgb1を考えると、GB状態テーブル503は、タイムスタンプFgb1、最小保証サービスシェアρgb1、およびフレームフラグFFgb1を含む。
【0040】
個々のBEフロー405は、be1〜beUとして示されている。それぞれのBEフロー405ごとに、受信されるパケットはそれぞれのフローキュー505に格納される。フローごとのBE状態テーブル506は、BEフローのさまざまなデータ要素を格納し、それぞれのBEフロー405ごとに1つずつある。例えば、フローbe1を考えると、データテーブル506は、タイムスタンプFbe1およびサービスシェアρbe1を含む。前に言及したように、サービスシェアρbe1〜ρbeUは、すべてのBEフローbe1〜beUについて同一である必要はない。
【0041】
グローバル状態テーブル507は、グローバルフレームカウンタGFC、PWSの基準タイムスタンプ増分T PWS、およびSWSの基準タイムスタンプ増分T SWSのようなデータを格納する。BEフロー集合状態テーブル508は、タイムスタンプFBE、BE現在シェアφBE、およびBE累積シェアΦBEのような、BEフロー集合に関係するデータを格納する。PWS先入れ先出し(FIFO)キュー509は、GBフロー402へのポインタを格納する。
【0042】
PWS FIFOキュー509は、それぞれのGBフローキュー502からのパケットの送信を決定するためにPWSがGBフローを巡回すべき順序を示す。レジスタ510は、PWS FIFOキュー509における先頭および末尾の位置へのポインタを格納する。SWS FIFOキュー511は、BEフロー405へのポインタを格納する。SWS FIFOキュー511は、それぞれのBEフローキュー505からのパケットの送信を決定するためにSWSがBEフローを巡回すべき順序を示す。レジスタ512は、SWS FIFOキュー511における先頭および末尾の位置へのポインタを格納する。
【0043】
図6は、スケジューラが利用される入力通信リンクインタフェース200の例示的なブロック図である。通信リンクインタフェース200は、データパケット受信器600、スケジューラ602、およびパケット送信器601を有する。例として、スケジューラは、コントローラ603、グローバル状態RAM604、およびレジスタ605を、すべて同一のチップ606上に有するように示されている。パケットRAM607およびフロー別状態RAM608は、別々のチップ上に位置するように示されている。明らかに、動作容量およびその他の特性に依存して、スケジューラ602は、他の構成でも実装可能である。
【0044】
コントローラ603は、本発明の方法を実装したプログラムを格納し実行する。通信リンクインタフェース200の動作を制御するプログラムの実施例を図7〜図8にフローチャート形式で示す。図5および図6をあわせて参照すると、GBおよびBEのフローキュー502および505内のパケットはパケットRAM607に格納される。GBフロー別状態テーブル503およびBEフロー別状態テーブル506はRAM608に格納される。グローバル状態テーブル507およびBE集合状態テーブル508はRAM604に格納される。PWSおよびSWSのFIFOキュー509および511内の要素はRAM608に格納される。PWSおよびSWSのFIFOキューの先頭および末尾ポインタ510および512はレジスタのセット605に格納される。GBおよびBEのフローキュー502および505は、データパケットのFIFOキューとして実装される。
【0045】
スケジューラ602の動作の概略は以下の通りである。パケット受信器600は、入力リンク201−1〜201−rから到着するGBデータパケットフローgb1〜gbVおよびBEデータパケットフローbe1〜beUのパケットを受信する。受信器600は、それぞれの入パケット(図示せず)のヘッダに含まれるフロー識別フィールドの内容を用いて、そのパケットのデータパケットフローを識別する。識別されるフローは、GBフローまたはBEフローのいずれかであることが可能である。したがって、フロー識別は、入パケットがGBフローキュー502のうちの1つまたはBEフローキュー505のうちの1つのいずれに格納されるべきかを決定する。スケジューラは、GBフロー別状態テーブル503、BEフロー別状態テーブル506、グローバル状態テーブル507、およびBE集合状態テーブル508の内容を用いて、各サービスフレーム406内の第1サブフレーム407および第2サブフレーム408の長さを決定する。例えば、現在積滞しているGBフローが、サーバ容量rの80%に等しい累積帯域割当てを有する場合、スケジューラ602は、サービスフレームの約80%を第1サブフレームに割り当て、残りの20%を第2サブフレームに割り当てる。このようにして、スケジューラは、すべてのバックログGBフローの帯域保証を強制するとともに、サーバ容量の未使用部分があれば(われわれの例では20%)、BEフロー集合に分配する。第1サブフレーム407の期間中、スケジューラ602は、PWS FIFOキュー509の先頭からバックログGBフローをサービスし、そのフローキュー502から送信器603へパケットを転送する。第2サブフレーム408の期間中、スケジューラ602は、SWS FIFOキュー511の先頭からバックログBEフローをサービスし、そのフローキュー505から送信器603へパケットを送る。
【0046】
[動作の詳細]
図4〜図6をあわせて参照して、以下の記載では、本発明の方法がどのようにして第2サブフレーム408においてBEフロー集合403に付与されるサービスの量を決定するかについて説明する。第1サブフレーム(あるいは「GBサブフレーム」)407は、フレームの最初に積滞しているGBフロー402の帯域要求を充足することに充てられる。第2サブフレーム(あるいは「BEサブフレーム」)408では、WRRスケジューラ602は、予想フレーム期間409に達するまで、BEフロー集合403をサービスする(予想フレーム期間は、リンクの全容量がGBフローに割り当てられ、すべての割り当てられたGBフローが積滞しているときのWRRサービスフレームの期間である)。第1サブフレーム407および第2サブフレーム408の両方の期間は、GBフロー402のバックログ状態の変化によって引き起こされるゆらぎを受ける一方、実際の全フレーム期間410は、バックログBEフロー405が利用可能である限り、ほぼ一定のままである(前述のように、各バックログフローが1フレーム期間中に受けることのできるサービスの量の可変性のため、サービスフレームの全期間は、「ほぼ一定」なだけであり、「厳密に一定」ではない)。
【0047】
1サービスフレーム406内でBEフロー集合403に付与されるサービスの量を決定するために、スケジューラは、リンク容量rと、バックログGBフローのサービスシェアの総和との間の差を追跡するBE現在シェアφBEを管理する。
【数2】
Figure 0004017867
ただし、BGB(t)は、時刻tにおいて積滞しているGBフローの集合である。(式(5)におけるφBEの定義は、GBフローに割り当てられるサービスシェアの総和がサーバの容量を超えないことを仮定している。)
【0048】
スケジューラ602は、各GBサブフレーム407の最後(これは、どのバックログGBフローも現フレームでさらなるサービスを期待しないときに検出される)にBE現在シェアφBEをサンプリングし、その値を用いて、次のBEサブフレーム408に対するBE累積シェアΦBEをセットする。スケジューラ602はまた、BEサブフレーム408の期間を規制するためにBEタイムスタンプFBEを管理する。SRRアルゴリズムに従って、サイズlBE のBEパケットの送信の終了時に、スケジューラは、BEフロー集合のタイムスタンプを次式のように更新する。
BE =FBE k−1+lBE /ΦBE (6)
【0049】
BEフロー集合へのサービスの分配は、バックログBEフローが利用可能であり、かつ、BEタイムスタンプが基準タイムスタンプ増分T PWSを超えない限り、継続される。この2つの条件のいずれかが満たされないことは、BEサブフレームおよびフレーム全体の両方の終了を引き起こし、新たなフレームでGBフロー402へのサービスの分配が再開される。
【0050】
BEサブフレーム408の期間中、スケジューラは、さらに、どのBEフローをサービスすべきかを決定しなければならない。同時に積滞しているBEフローに対する等量のサービスを要求するフェアネス基準のため、BEフローを処理するメカニズムとして、別のWRRスケジューラ(すなわち、SWS404)を採用する。SWS404では、図4に示したように、すべてのBEフロー405に同じサービスシェアρが割り当てられる。BEフローのサービスシェアρは、サーバの容量に対してはカウントされないため、システムで割当て可能なBEフローの数に対する帯域制約はない。SWSのフレームダイナミクスは、PWSにおける対応するダイナミクスとは完全に独立である。すなわち、SWSにおける1フレームを完了するのに複数のBEサブフレーム408が必要となることもあり、また逆に、SWSにおける数個のフレームを完了するのにPWSにおける単一のBEサブフレーム408で十分なこともある。また、PWSおよびSWSは、それらの基準タイムスタンプ増分(それぞれ、T PWSおよびT SWS)として、相異なる値を採用することができる。
【0051】
BE現在シェアφBEは、1個のGBフローがアイドルになるたびにインクリメントされ、1個のGBフローがバックログになるたびにデクリメントされる。第1(第2)の場合にBE現在シェアφBEに加算(から減算)される量は、GBフローの割り当てられるサービスシェアに等しい。
【0052】
PWSがバックログGBフローの単一のFIFOキューとして実装される場合、GBサブフレームの予想期間の検出は、各フローiに対応するフレームフラグFFと、グローバルフレームカウンタGFCという、2個の1ビットフラグの比較による。フレームフラグとグローバルフレームカウンタは次のように作用する。GBフローiは、バックログになると、バックログGBフローのキュー(すなわち、PWS FIFOキュー509)の末尾に付加され、そのフレームフラグFFがGFCの補数にセットされる。
FF=¬GFC (7)
サーバは、現フレームに対するフローiの処理を完了すると、PWS FIFOキュー509の先頭からそのフローを取り出す。次に、そのGBフローに依然としてバックログがある場合、サーバは、PWS FIFOキュー509の末尾にそのフローを付加し、そのフレームフラグをトグルする。
FF=¬FF (8)
GBサブフレームは、PWS FIFOキュー509の先頭にあるフローのフレームフラグがGFCと異なったときに終了する。サーバは、この条件を検出すると、GFCの値をトグルし、BE現在シェアφBEをBE累積シェアΦBEにコピーする。PWS401は、BE累積シェアΦBEがゼロより大きい限り、BE集合をサービスする。BE集合へのあらゆるPWSサービスは、BEフローへのSWSサービスに転換される。最後のバックログBEフローがアイドルになること、あるいは、BEタイムスタンプFBEがPWS基準タイムスタンプ増分T PWSを超えること、という2つのイベントが、BE累積シェアΦBEのリセットを、したがってBEサブフレームの終了を引き起こす可能性がある。
【0053】
図7および図8に、本発明に従ってパケットの送信をスケジューリングする方法をフローチャート形式で示す。このフローチャートは、SRRが、基礎となるスケジューリングアルゴリズムであるという仮定に基づいている。機能性に関する限り、SRRの代わりにDRRを用いても問題はない。同様に、図4の装置は、PWS401およびSWS402のそれぞれに対してバックログフローの単一のFIFOキュー(それぞれ、PWS FIFOキュー509およびSWS FIFOキュー511)を用いて、PWS401およびSWS402を実装している。フレーム内とフレーム外のフローの明確な分離が可能な他の任意のキューイング構造も同様に使用可能である。最後に、BEフローを処理するためにWRRスケジューラを採用することにより、BEフロー全体にわたるサービスフェアネスを強制することができるが、これはGBフローとBEフローの効率的な統合を達成するためには厳密には要求されない。BEフローをGBフローとは別個に処理するために、他の任意のスケジューリングメカニズムも同様に使用可能である。
【0054】
以下の記述では、図4、図5、図6、および図7〜図8を参照する。図4(図5、図6)で最初に定義される要素の参照符号は4(5、6)から始まるが、図7〜図8のフローチャートのステップは、ステップ番号の前にSを付けることによって(例えば、S310)示される。
【0055】
図7において、S310で、スケジューラ602は、新たに受信したデータパケットがあるかどうかをチェックする。S310で、新たに受信したデータパケットがなく、S315で、バックログフローがある場合、制御はS500に移る。他方、S310で、新たに受信したデータパケットがなく、S315で、バックログフローがない場合、スケジューラ602は、新たなパケットが受信されるまで、ステップS310とS315の間を循環する。S310において、新たに受信したパケットの存在が受信器600で検出されると、S320で、スケジューラ602は、それらのパケットのうちの1つを選択する。その後、S330で、スケジューラ602は、データパケットのフローを識別し、最終的に、パケットを適当なフローキュー(識別されたフローに依存して、GBフローキュー502またはBEフローキュー505)に格納する。S350で、フローキューの長さがゼロでない場合、S355で、そのフローのキュー長をインクリメントし、制御はS500に移る。S350で、フローのキュー長がゼロである場合、S360で、スケジューラ602は、バックログフローの数をインクリメントし、S370で、フローキューの長さをインクリメントする(例として、フローキューの長さは、キュー内のデータパケットの数を表すことが可能であるが、バイト数、ビット数、またはメモリワード数のような他の単位も、フローキューの長さを表現するために使用可能である)。その後、S380で、スケジューラ602は、識別されたフローがGBフローであるかどうかをチェックする。識別されたフローがGBフローgbである場合、S390で、スケジューラ602は、フレームフラグFFgbiを¬GFCに等しいとセットする。その後、スケジューラ602は、S400で、BE現在シェアφBEをデクリメントし、S410で、フローgbをPWS FIFOキュー509の末尾に付加し、最後に制御をS500に移す。
【0056】
S330で識別されたフローがS380でGBフローとして認識されない場合、スケジューラ602は、まず、(S420で)そのフローをSWS FIFOキュー511の末尾に付加した後、(S430で)バックログフローの数が1に等しいかどうかをチェックする。S430でバックログフローの数が1に等しい場合、スケジューラ602は、S440で、BE累積シェアΦBEをBE現在シェアφBEに等しいとセットした後、制御をS500に移す。S430で、バックログフローの数が1に等しくない場合、スケジューラは制御を直接S500に移す。
【0057】
S500で、送信器601が古いパケットの送信で依然としてビジーであり、送信のために新たなパケットを受け付けることができない場合、スケジューラ602はS310に戻る。他方、送信器601が古いパケットの送信でビジーでない場合、S510で、スケジューラ602は、前にサービスしたフローでその状態をさらに更新しなければならないものがあるかどうかをチェックする。このようなフローが存在しない場合、スケジューラ602は最後にサービスしたフローの状態をすでに更新したことを意味しており、S520で、スケジューラ602は、バックログフローがあるかどうかを判定する。バックログフローが存在しない場合、スケジューラ602の制御はS310に戻る。他方、S520でバックログフローの存在が検出された場合、S530で、スケジューラ602は、BEフロー集合状態テーブル508に格納された、BE累積シェアΦBEの現在の値をチェックする。BE累積シェアΦBEの値がゼロである場合、スケジューラ602はS540に進み、サービスのために、PWS FIFOキュー509の先頭のGBフロー402を選択する。その後、S560で、スケジューラ602は、選択したGBフロー402のフローキュー502の先頭のパケットを送信器601に送る。その後、制御はS310に戻る。S530で、BE累積シェアΦBEの値がゼロより大きい場合、スケジューラ602はS550に進み、サービスのために、SWS FIFOキュー511の先頭のBEフロー405を選択する。その後、S560で、スケジューラ602は、選択したBEフロー405のフローキュー505の先頭のパケットを送信器601に送る。その後、制御はS310に戻る。
【0058】
S510で、スケジューラ602は、最後にサービスしたフローの状態をまだ更新しなければならないと判定した場合、S570で、最後にサービスしたフローのキュー長のデクリメントを開始する。その後、S580で、スケジューラ602は、フロータイムスタンプの更新に進む。S590で、スケジューラ602は、最後にサービスしたフローがGBフローであるかどうかをチェックする。最後にサービスしたフローがGBフローgbである場合、S600で、スケジューラ602は、フローのキュー長が今ゼロに等しいかどうかをチェックする。キュー長がゼロに等しくない場合、S610で、スケジューラは、GBフローgbの更新されたタイムスタンプがPWS基準タイムスタンプ増分T PWS以上であるかどうかをチェックする。更新されたタイムスタンプがT PWSより小さい場合、スケジューラ602はS710に進む。他方、更新されたタイムスタンプがT PWSより小さくない場合、スケジューラ602は、まず、最後にサービスしたGBフローgbのフレームフラグFFをトグルした後、S630で、タイムスタンプを正当な範囲[0,T PWS)内にリセットし、S640で、PWS FIFOキュー509の先頭からGBフローgbへのポインタを取り出し、最後に、S650で、同じフローポインタをPWS FIFOキュー509の末尾に付加する。その後、制御はS710に移る。
【0059】
S600で、GBフローgbのキュー長がゼロに等しい場合、S660で、スケジューラ602は、フローのタイムスタンプがT PWS以上であるかどうかをチェックする。タイムスタンプがT PWSより小さい場合、制御はS680に進む。そうでない場合、S670で、スケジューラは、タイムスタンプを正当な範囲内にリセットした後、S680に進む。S680で、スケジューラは、最後にサービスしたフローをPWS FIFOキュー509の先頭から取り出した後、S690で、BE現在シェアφBEをインクリメントする。S700で、スケジューラ602は、バックログフローの数をデクリメントした後、S710に進む。
【0060】
S710で、スケジューラ602は、今PWS FIFOキュー509の先頭にあるGBフローgbのフレームフラグを、グローバルフレームカウンタGFCと比較する。フレームフラグとGFCが同じ値を有する場合、スケジューラ602は、制御をS520に移し、そうでない場合、S720で、GFCの値をトグルし、S730で、SWS FIFOキュー511にバックログフローがあるかどうかをチェックする。少なくとも1つのバックログフローがSWS FIFOキュー511にある場合、S740で、スケジューラ602は、BE累積シェアΦBEをBE現在シェアφBEに等しいとセットした後、制御をS520に移す。S730でバックログフローが検出されない場合、スケジューラ602は制御を直接S520に移す。
【0061】
S590で、最後にサービスしたフローがBEフローbeとして分類された場合、S750で、スケジューラ602は、BEフローbeのキュー長がゼロに等しいかどうかをチェックする。キュー長がゼロに等しくない場合、最後にサービスしたBEフローbeのフローキュー505にパケットが残っていることを意味し、スケジューラは、最後にサービスしたBEフローbeの更新されたばかりのタイムスタンプがSWS FIFOキュー511の基準タイムスタンプ増分T SWS以上であるかどうかをチェックする。更新されたタイムスタンプがT SWSより小さい場合、スケジューラ602はS840に進む。他方、更新されたタイムスタンプがT SWSより小さくない場合、スケジューラ602は、まず、S770で、タイムスタンプを正当な範囲[0,T SWS)内にリセットした後、S780で、SWS FIFOキュー511の先頭からBEフローbeへのポインタを取り出し、最後に、S790で、同じフローポインタをSWS FIFOキュー511の末尾に付加する。その後、スケジューラ602は、制御をS840に移す。
【0062】
S750で、BEフローbeのキュー長がゼロに等しい場合、S800で、スケジューラ602は、フローのタイムスタンプがT SWS以上であるかどうかをチェックする。タイムスタンプがT SWSより小さい場合、制御はS820に移る。そうでない場合、S810で、スケジューラ602は、タイムスタンプを正当な範囲内にリセットした後、S820に進む。S820で、スケジューラ602は、最後にサービスしたフローbeをSWS FIFOキュー511の先頭から取り出す。S830で、スケジューラ602は、バックログフローの数をデクリメントした後、S840に進む。
【0063】
S840で、スケジューラ602は、BEフロー集合のタイムスタンプFBEを更新する。その後、S850で、スケジューラ602は、BEフロー集合の更新されたタイムスタンプを、PWS基準タイムスタンプ増分T PWSと比較する。タイムスタンプFBEが基準タイムスタンプ増分T PWS以上である場合、S860で、スケジューラは、タイムスタンプを正当な範囲[0,T PWS)内にリセットした後、S870に進み、BEフロー集合のBE累積シェアΦBEをゼロにリセットする。その後、スケジューラ602は、制御をS520に移す。S850で、BEフロー集合のタイムスタンプが、PWS基準タイムスタンプ増分より小さいと判定された場合、スケジューラ602は、S880に進み、SWS FIFOキュー511にバックログフローが存在するかどうかをチェックする。バックログフローがSWS FIFOキュー511に残っていない場合、スケジューラ602は制御をS870に移し、そうでない場合、S520に進む。
【0064】
上記の実施例は、本発明に従って、重み付けラウンドロビンスケジューラで帯域保証型およびベストエフォート型のフローを統合するために使用可能な諸原理の単なる例示である。当業者であれば、ここに明示的に記載していなくとも、特許請求の範囲により規定される本発明の技術思想および技術的範囲から離れずに、それらの原理を実現するさまざまな構成を考えることが可能である。
【0065】
[付録]
文献
[1] M. Katevenis, S. Sidiropoulos, and C. Courcoubetis, "Weighted Round Robin Cell Multiplexing in a General-Purpose ATM Switch", IEEE Journal on Selected Areas in Communications, vol.9, pp.1265-79, October 1991.
[2] M. Shreedhar and G. Varghese, "Efficient Fair Queueing Using Deficit Round Robin", IEEE/ACM Transactions on Networking, vol.4, no.3, pp.375-385, June 1996.
[3] H. Adiseshu, G. Parulkar, and G. Varghese, "A Reliable and Scalable Striping Protocol", Proceedings of ACM SIGCOMM '96, August 1996.
[4] K. Nichols, V. Jacobson, and L. Zhang, "A Two-bit Differentiated Services Architecture for the Internet", Request for Comments (RFC) 2638, IETF, July 1999.
[5] R. Braden, D. Clark, and S. Shenker, "Integrated Services in the Internet Architecture: an Overview", Request for Comments (RFC) 1633, IETF, June 1994.
[6] J. Heinanen, F. Baker, W. Weiss, and J. Wroclawski, "Assured Forwarding PHB Group", Request for Comments (RFC) 2597, IETF, June 1999.
[7] V. Jacobson, K. Nichols, and K. Poduri, "An Expedited Forwarding PHB", Request for Comments (RFC) 2598, IETF, June 1999.
[8] P. Goyal and H. M. Vin, "Fair Airport Scheduling Algorithms", Proceedings of NOSSDAV '97, pp.273-282, May 1997.
[9] F. M. Chiussi and A. Francini, "Providing QoS Guarantees in Packet Switches", Proceedings of IEEE GLOBECOM '99, High-Speed Networks Symposium, Rio de Janeiro, Brazil, December 1999.
[10] F. M. Chiussi and A. Francini, "A Distributed Scheduling Architecture for Scalable Packet Switches", IEEE Journal on Selected Areas in Communications, Vol.18, No.12, December 2000.
【0066】
【発明の効果】
以上述べたごとく、本発明によれば、帯域保証型(GB)およびベストエフォート型(BE)のフローをフレキシブルに統合するスケジューリング方法および装置が実現される。
【0067】
特許請求の範囲の発明の要件の後に括弧で記載した番号がある場合は、本発明の一実施例の対応関係を示すものであって、本発明の範囲を限定するものと解釈すべきではない。
【図面の簡単な説明】
【図1】データソース、通信スイッチ、およびデータ宛先を含む例示的なパケットネットワークを示す図である。
【図2】図1のパケットネットワークで用いられる例示的な通信スイッチを示す図である。
【図3】図3Aは、新たなパケットがフローキューの先頭に到着したときにフローiを処理する不足ラウンドロビン(DRR)アルゴリズムで用いられる擬似コードの例を示し、図3Bは、サーバが1パケットの送信を完了したときにタイムスタンプiを更新する余剰ラウンドロビン(SRR)アルゴリズムで用いられる擬似コードの例を示す図である。
【図4】本発明による、スケジューラの2層論理編成を示す図である。
【図5】本発明のスケジューラによって利用されるキュー、状態テーブル、レジスタ、およびパラメータの機能図である。
【図6】図5の装置の具体的実装の例示的ブロック図である。
【図7】本発明に従ってパケットの送信をスケジューリングする方法を記述した例示的な流れ図である。
【図8】本発明に従ってパケットの送信をスケジューリングする方法を記述した例示的な流れ図である。
【符号の説明】
101 通信スイッチ
102 データソース
103 宛先
200 通信リンクインタフェース
201 入力リンク
202 出力リンク
250 スイッチファブリック
401 一次WRRスケジューラ(PWS)
402 GBフロー
403 BEフロー集合
404 二次WRRスケジューラ(SWS)
405 BEフロー
406 サービスフレーム
407 第1サブフレーム(GBサブフレーム)
408 第2サブフレーム(BEサブフレーム)
409 予想フレーム期間
410 実際のフレーム期間
502 GBフローキュー
503 GBフロー別状態テーブル
505 BEフローキュー
506 BEフロー別状態テーブル
507 グローバル状態テーブル
508 BEフロー集合状態テーブル
509 PWS FIFOキュー
510 レジスタ
511 SWS FIFOキュー
512 レジスタ
600 パケット受信器
601 パケット送信器
602 スケジューラ
603 コントローラ
604 グローバル状態RAM
605 レジスタ
606 チップ
607 パケットRAM
608 フロー別状態RAM

Claims (4)

  1. 複数のデータパケットフローをサービスするスケジューリング装置において、
    前記データパケットフローのそれぞれは、指定されたサービス要求を有し、それぞれ複数のキューのうちの1つが対応し、該複数のキューのそれぞれはデータパケットを含み、前記データパケットフローへのサービスの分配はサービスフレームに分けて編成され、各サービスフレームは前記データパケットフローのそれぞれに複数のサービス機会を提供し、前記サービス機会の数が前記データパケットフローのサービス要求に依存し、1つのサービスフレームによって提供されるサービス機会の総数によって該サービスフレームの期間を表すことができ、
    前記スケジューリング装置が、
    サービスフレームの第1サブフレームの期間中にサービスを第1の帯域保証型(GB)データパケットフローのセットに提供する第1スケジューラであって、前記GBデータパケットフローは帯域要求で表現されるサービス要求を有し、該第1サブフレームの期間が前記GBデータパケットフローの帯域要求を満たすように調整されている、第1スケジューラ、及び
    サービスフレームの第2サブフレームの期間中にサービスを第2のベストエフォート型(BE)データパケットフローのセットに提供する第2スケジューラであって、前記BEデータパケットフローが、保証帯域要求で表現されないサービス要求を有し、第2サブフレームの期間はサービスフレームの期間から同じサービスフレーム内の第1サブフレームの期間を差し引いたものである、第2スケジューラ
    からなり、
    第2サブフレームの終了は、(1)サービスフレームの所定期間が満了するか、または、(2)前記第2のBEフローのセットに残っているバックログがなくなるかのいずれかのときに、いずれの条件が最初に生じるかにかかわらず決定され、バックログは、考えているデータパケットフローのセットに対応する1個または複数のキュー内の1個または複数のデータパケットの存在として定義されることを特徴とするスケジューリング装置。
  2. 複数のデータパケットフローをサービスするスケジューリング装置において、
    前記データパケットフローのそれぞれは、指定されたサービス要求を有し、それぞれ複数のキューのうちの1つが対応し、該複数のキューのそれぞれはデータパケットを含み、前記データパケットフローへのサービスの分配はサービスフレームに分けて編成され、各サービスフレームは前記データパケットフローのそれぞれに複数のサービス機会を提供し、前記サービス機会の数が前記データパケットフローのサービス要求に依存し、1つのサービスフレームによって提供されるサービス機会の総数によって該サービスフレームの期間を表すことができ、
    前記スケジューリング装置が、
    サービスフレームの第1サブフレームの期間中にサービスを第1の帯域保証型(GB)データパケットフローのセットに提供する第1スケジューラであって、前記GBデータパケットフローは帯域要求で表現されるサービス要求を有し、該第1サブフレームの期間が前記GBデータパケットフローの帯域要求を満たすように調整されている、第1スケジューラ、及び
    サービスフレームの第2サブフレームの期間中にサービスを第2のベストエフォート型(BE)データパケットフローのセットに提供する第2スケジューラであって、前記BEデータパケットフローが、保証帯域要求で表現されないサービス要求を有し、第2サブフレームの期間はサービスフレームの期間から同じサービスフレーム内の第1サブフレームの期間を差し引いたものである、第2スケジューラ
    からなり、
    前記第1スケジューラは、前記第2サブフレームの期間を規制するために、BEデータパケットフローの集合に対するタイムスタンプFBEを管理することを特徴とするスケジューリング装置。
  3. 複数のデータパケットフローをサービスするスケジューリング装置において、
    前記データパケットフローのそれぞれは、指定されたサービス要求を有し、それぞれ複数のキューのうちの1つが対応し、該複数のキューのそれぞれはデータパケットを含み、前記データパケットフローへのサービスの分配はサービスフレームに分けて編成され、各サービスフレームは前記データパケットフローのそれぞれに複数のサービス機会を提供し、前記サービス機会の数が前記データパケットフローのサービス要求に依存し、1つのサービスフレームによって提供されるサービス機会の総数によって該サービスフレームの期間を表すことができ、
    前記スケジューリング装置が、
    サービスフレームの第1サブフレームの期間中にサービスを第1の帯域保証型(GB)データパケットフローのセットに提供する第1スケジューラであって、前記GBデータパケットフローは帯域要求で表現されるサービス要求を有し、該第1サブフレームの期間が前記GBデータパケットフローの帯域要求を満たすように調整されている、第1スケジューラ、及び
    サービスフレームの第2サブフレームの期間中にサービスを第2のベストエフォート型(BE)データパケットフローのセットに提供する第2スケジューラであって、前記BEデータパケットフローが、保証帯域要求で表現されないサービス要求を有し、第2サブフレームの期間はサービスフレームの期間から同じサービスフレーム内の第1サブフレームの期間を差し引いたものである、第2スケジューラ
    からなり、
    前記第1のGBフローのセット内でバックログとなっているデータパケットフローは、サービスのために、一次WRRスケジューラ(PWS)先入れ先出し(FIFO)キューに格納され、
    前記第1のGBフローのセットの各データパケットフローは対応するフレームフラグを有し、
    前記第1サブフレームは、前記PWS FIFOキューの先頭にあるGBフローのフレームフラグがグローバルフレームカウンタGFCとは異なる値を有するときに終了し、
    前記フレームフラグ及びGFCがそれぞれ1ビットフラグであり、
    前記GFCの値と前記PWS FIFOキューの先頭にある前記GBフローの前記フレームフラグの値との間の差が検出された後に、前記GFCの値が前記PWS FIFOキューの先頭にある前記GBフローの前記フレームフラグの値に等しくセットされることを特徴とするスケジューリング装置。
  4. 前記BEデータパケットフローの集合のタイムスタンプF BE がPWS基準タイムスタンプ増分T PWS を超えるたびに、前記第2サブフレームの終了が宣言されることを特徴とする請求項記載の装置。
JP2002000603A 2001-01-10 2002-01-07 スケジューリング装置 Expired - Fee Related JP4017867B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US26080801P 2001-01-10 2001-01-10
US60/260808 2001-11-13
US10/010582 2001-11-13
US10/010,582 US7099330B2 (en) 2001-01-10 2001-11-13 Method and apparatus for integrating guaranteed-bandwidth and best-effort traffic in a packet network

Publications (2)

Publication Number Publication Date
JP2002232470A JP2002232470A (ja) 2002-08-16
JP4017867B2 true JP4017867B2 (ja) 2007-12-05

Family

ID=22990700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002000603A Expired - Fee Related JP4017867B2 (ja) 2001-01-10 2002-01-07 スケジューリング装置

Country Status (3)

Country Link
US (1) US7099330B2 (ja)
JP (1) JP4017867B2 (ja)
CA (1) CA2366269C (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111163B1 (en) 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
JP2003124956A (ja) * 2001-10-10 2003-04-25 Sony Corp 通信制御方法及びネットワークシステム
JP3857105B2 (ja) * 2001-10-30 2006-12-13 富士通株式会社 データ転送装置
US7092401B2 (en) * 2001-11-15 2006-08-15 International Business Machines Corporation Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram
US8780770B2 (en) 2002-05-13 2014-07-15 Misonimo Chi Acquisition L.L.C. Systems and methods for voice and video communication over a wireless network
US7941149B2 (en) * 2002-05-13 2011-05-10 Misonimo Chi Acquistion L.L.C. Multi-hop ultra wide band wireless network communication
US7957356B2 (en) 2002-05-13 2011-06-07 Misomino Chi Acquisitions L.L.C. Scalable media access control for multi-hop high bandwidth communications
US7852796B2 (en) * 2002-05-13 2010-12-14 Xudong Wang Distributed multichannel wireless communication
US7406083B2 (en) * 2002-08-27 2008-07-29 International Business Machines Corporation Method for preserving the order of data packets processed along different processing paths
JP2004180302A (ja) * 2002-11-27 2004-06-24 Alcatel Canada Inc 通信装置のためにデータトラフィックフローをスケジュールするシステムおよび方法
US20040160971A1 (en) * 2002-11-27 2004-08-19 Edward Krause Apparatus and method for dynamic channel mapping and optimized scheduling of data packets
AU2003280115A1 (en) * 2002-12-19 2004-07-14 Koninklijke Philips Electronics N.V. Combined best effort and contention free guaranteed throughput data scheduling
US7373420B1 (en) * 2003-08-01 2008-05-13 Nortel Networks Limited Method and apparatus for weighted fair queuing
US20050149615A1 (en) * 2003-12-17 2005-07-07 Nedimyer Joseph P. System and method for processing resource registry updates without regard to chronological order
US8665719B2 (en) * 2004-05-03 2014-03-04 Alcatel Lucent Variable packet-size backplanes for switching and routing systems
CN100490421C (zh) * 2004-10-20 2009-05-20 华为技术有限公司 Mpls环网中实现流量公平传送的方法
US7529224B2 (en) 2005-04-18 2009-05-05 International Business Machines Corporation Scheduler, network processor, and methods for weighted best effort scheduling
US20070165647A1 (en) * 2006-01-19 2007-07-19 Tellabs Operations, Inc. Apparatus, method, and computer program for data packet scheduling
KR100969768B1 (ko) * 2006-06-27 2010-07-13 삼성전자주식회사 통신 시스템에서 데이터 스케쥴링 장치 및 방법
US8175613B2 (en) * 2006-08-04 2012-05-08 Misonimo Chi Acquisitions L.L.C. Systems and methods for determining location of devices within a wireless network
KR101102719B1 (ko) * 2006-12-07 2012-01-05 미소니모 카이 액퀴지션 엘엘씨 타임슬롯 및 채널 할당을 위한 시스템 및 방법
US8295304B1 (en) * 2007-12-27 2012-10-23 Exalt Communications Incorporated Adaptive multi-service data framing
US8948189B2 (en) * 2008-04-03 2015-02-03 Entropie Communications, Inc. System and method for scheduling reservation requests for a communication network
US8144584B1 (en) 2009-07-20 2012-03-27 Juniper Networks, Inc. WRR scheduler configuration for optimized latency, buffer utilization
JP5416168B2 (ja) * 2011-05-19 2014-02-12 富士通テレコムネットワークス株式会社 通信装置
CA2750345C (en) 2011-08-24 2013-06-18 Guest Tek Interactive Entertainment Ltd. Method of allocating bandwidth between zones according to user load and bandwidth management system thereof
US9641424B1 (en) 2014-10-10 2017-05-02 Nomadix, Inc. Shaping outgoing traffic of network packets in a network management system
EP3241111B1 (en) * 2014-12-30 2019-07-24 British Telecommunications public limited company Provisioning of telecommunications resources
US20160203528A1 (en) * 2015-01-09 2016-07-14 Vmware, Inc. Method and system that allocates virtual network cost in a software-defined data center
US9866427B2 (en) 2015-02-16 2018-01-09 Juniper Networks, Inc. Multi-stage switch fabric fault detection and handling
US10951527B2 (en) * 2018-12-28 2021-03-16 Juniper Networks, Inc. Switch fabric packet flow reordering
US11689944B2 (en) 2019-12-31 2023-06-27 Hughes Network Systems, Llc Traffic flow classification using machine learning
US11503615B2 (en) 2019-12-31 2022-11-15 Hughes Network Systems, Llc Bandwidth allocation using machine learning

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0690596B1 (en) * 1994-06-28 2002-05-15 Hewlett-Packard Company, A Delaware Corporation Method and apparatus for scheduling the transmission of cells of guaranteed-bandwidth virtual channels
EP0700186B1 (en) * 1994-08-31 2005-04-13 Hewlett-Packard Company, A Delaware Corporation Method and apparatus for regulating virtual-channel cell transmission
US6041059A (en) * 1997-04-25 2000-03-21 Mmc Networks, Inc. Time-wheel ATM cell scheduling
US6014367A (en) * 1997-04-25 2000-01-11 Mmc Networks, Inc Method for weighted fair queuing for ATM cell scheduling
CA2242219A1 (en) * 1997-10-03 1999-04-03 Newbridge Networks Corporation Classes of service in an mpoa network
US6493317B1 (en) * 1998-12-18 2002-12-10 Cisco Technology, Inc. Traffic engineering technique for routing inter-class traffic in a computer network
CA2358525C (en) * 1999-01-08 2008-04-01 Nortel Networks Limited Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
AU753949B2 (en) * 1999-09-01 2002-10-31 Motorola, Inc. Method and device for bandwidth allocation in multiple access protocols with contention-based reservation
US6680933B1 (en) * 1999-09-23 2004-01-20 Nortel Networks Limited Telecommunications switches and methods for their operation
JP4439100B2 (ja) * 2000-09-22 2010-03-24 株式会社東芝 ネットワーク間中継装置
US7158528B2 (en) * 2000-12-15 2007-01-02 Agere Systems Inc. Scheduler for a packet routing and switching system

Also Published As

Publication number Publication date
US20030142624A1 (en) 2003-07-31
JP2002232470A (ja) 2002-08-16
US7099330B2 (en) 2006-08-29
CA2366269A1 (en) 2002-07-10
CA2366269C (en) 2007-08-07

Similar Documents

Publication Publication Date Title
JP4017867B2 (ja) スケジューリング装置
JP3953819B2 (ja) スケジューリング装置およびスケジューリング方法
JP4115703B2 (ja) 通信ネットワークにおける多重パケットをマルチレベルスケジューリングする方法
Semeria Supporting differentiated service classes: queue scheduling disciplines
US7123622B2 (en) Method and system for network processor scheduling based on service levels
KR100431191B1 (ko) 크레딧 기반 라운드 로빈을 이용한 패킷 스케쥴링장치 및방법
US6594234B1 (en) System and method for scheduling traffic for different classes of service
JP4619584B2 (ja) パケット交換網のルータにおいてパケットをスケジュール設定するための方法
US6795870B1 (en) Method and system for network processor scheduler
KR100463697B1 (ko) 네트워크 프로세서가 흐름 큐의 연결 해제/재연결을 통해출력을 스케줄링하는 방법 및 시스템
JPH08274793A (ja) リアルタイムトラヒックに対する保証された帯域幅配達を備える遅延最小化システム
EP1464145A1 (en) Packet flow control method and device
WO2002098047A2 (en) System and method for providing optimum bandwidth utilization
US7522624B2 (en) Scalable and QoS aware flow control
Mowbray et al. Capacity reservation for multimedia traffic
EP2063580B1 (en) Low complexity scheduler with generalized processor sharing GPS like scheduling performance
Khamse-Ashari et al. Max-min fair scheduling of variable-length packet-flows to multiple servers by deficit round-robin
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치
US7346068B1 (en) Traffic management scheme for crossbar switch
US7315901B1 (en) Method and system for network processor scheduling outputs using disconnect/reconnect flow queues
Zhu et al. A new scheduling scheme for resilient packet ring networks with single transit buffer
Hwang et al. A New Scheduler for AF and EF in a DS Node
Chakravarthy et al. WBA NETWORKS
Dastangoo Performance consideration for building the next generation multi-service optical communications platforms
Jiang et al. Designing quality of service in EPON system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070410

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070413

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070710

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070919

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120928

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120928

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130928

Year of fee payment: 6

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