JP4447521B2 - パケットスケジューラおよびパケットスケジューリング方法 - Google Patents

パケットスケジューラおよびパケットスケジューリング方法 Download PDF

Info

Publication number
JP4447521B2
JP4447521B2 JP2005190437A JP2005190437A JP4447521B2 JP 4447521 B2 JP4447521 B2 JP 4447521B2 JP 2005190437 A JP2005190437 A JP 2005190437A JP 2005190437 A JP2005190437 A JP 2005190437A JP 4447521 B2 JP4447521 B2 JP 4447521B2
Authority
JP
Japan
Prior art keywords
packet
priority class
output
queue
user
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
JP2005190437A
Other languages
English (en)
Other versions
JP2007013462A (ja
Inventor
幸子 谷口
竜介 川手
慎一 ▲吉▼原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Nippon Telegraph and Telephone Corp
Original Assignee
Mitsubishi Electric Corp
Nippon Telegraph and Telephone 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
Application filed by Mitsubishi Electric Corp, Nippon Telegraph and Telephone Corp filed Critical Mitsubishi Electric Corp
Priority to JP2005190437A priority Critical patent/JP4447521B2/ja
Publication of JP2007013462A publication Critical patent/JP2007013462A/ja
Application granted granted Critical
Publication of JP4447521B2 publication Critical patent/JP4447521B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、パケットスケジューラに関するものであり、特に、パケット転送の際の帯域保証を効果的に行うパケットスケジューラおよびパケットスケジューリング方法に関するものである。
パケットスケジューラにおいて、複数のユーザからのトラヒックが1つの回線に多重される場合、出力する回線速度以上の入力があると、輻輳が生じ、バッファ溢れによるパケット廃棄等が発生する。このとき、あるユーザの帯域が他のユーザの帯域に影響を及ぼすことを避けるためには、ユーザごとに使用可能な保証帯域を設定し、設定された保証帯域を必ず使用できるような公平な帯域制御が必要となる。
一方、ネットワーク経由で音声や映像等のリアルタイム性を要するアプリケーションを快適に使用するためには、パケットスケジューラに帯域保証や遅延時間保証といったQoS(Quality of Service)制御が必要とされる。
かかる状況下において、QoS制御のためのキュースケジューリング手法を開示した公知文献として、下記に示す特許文献1および非特許文献1が存在する。これらの文献では、到着したパケット長とユーザの保証帯域に比例した重み付けに従って出力完了予定時刻を計算し、この出力完了予定時刻が最小のパケットから順に出力するようなWFQ(Weighted Fair Queuing)方式に基づくパケットスケジューリング方法が開示されている。
例えば、特許文献1に示される技術では、(ユーザ数)×(優先クラス数)のキューが設けられ、到着したパケットをユーザおよび優先クラスに応じて各キューに振り分け、同一ユーザ内では複数の優先クラスのキューに対してPQ(Priority Queuing)方式を用いる一方で、ユーザ間ではユーザごとに全優先クラスの合計保証帯域に比例した重み付けを行ったWFQ方式を用いることにより、ユーザごとに全優先クラスを合計した帯域で帯域保証するようにしている。
また、非特許文献1に示される技術では、短い遅延時間でパケットを転送したい優先度の高いクラスのキューと、(ユーザ数)×(高優先以外の優先クラス数)のキューとがそれぞれ設けられ、到着したパケットの中で最も優先度の高いパケットは全ユーザを合わせて到着順に高優先クラスキューへ格納してPQ方式で最優先に出力することにより、遅延時間が少ない構成としている。一方、それ以外の優先クラスのパケットは、ユーザおよび優先クラスに応じたキューに振り分け、同一ユーザ内では複数の優先クラスのキューに対してPQ方式を用い、ユーザ間ではユーザごとに高優先クラス以外のクラスにおける保証帯域に比例した重み付けを行ったWFQ方式を用いることにより、低優先クラスにかかるユーザごとの帯域を保証している。
特開2001−197110号公報 許炎、天羽健策、宮本和代、中後明 「WFQをベースとした高速パケットスケジューリング手法」 電子情報通信学会技術研究報告 SSE98−78、IN98−59、CS98−75、1998年9月、P37〜44
しかしながら、上記特許文献1に示されるようなWFQ方式を用いたパケットスケジューリング方法では、ユーザごとの帯域は保証されるが、高優先クラスキューに格納されているパケットの読み出し遅延がユーザ数や出力するパケット長に比例して大きくなり、最悪では(ユーザ数−1)×(最大パケット長)の遅延時間が生じる。従って、数千〜数万といった多数のユーザが使用する場合に音声や映像等のリアルタイム性を要するアプリケーションを利用しようとすると、高優先クラスを設定しても遅延時間が大きいため快適に使用できなくなる可能性があるといった問題点があった。
また、上記非特許文献1に示されるようなWFQ方式を用いたパケットスケジューリング方法では、高優先クラスのパケットはPQ方式により優先して出力されているので、ユーザ数が増えた場合でも特許文献1のように遅延が大きくなることはない。しかしながら、WFQ方式によりユーザごとに高優先クラス以外の保証帯域に比例した重み付けを行うようにしているので、高優先クラスとそれ以外のクラスを合わせたユーザごとの帯域は保証できないといった問題点があった。
本発明は、上記に鑑みてなされたものであって、高優先クラスのパケットの遅延時間を少なくし、帯域保証と遅延時間保証との公平性や、高優先クラスと低優先クラスとを合わせた帯域保証をユーザごとに実現可能とするパケットスケジューラおよびパケットスケジューリング方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明にかかるパケットスケジューラは、高優先クラスキューおよびユーザごとに区分された低優先クラスキューのそれぞれに格納されたパケットの出力順序を決定するパケットスケジューラであって、入力されたパケットの優先クラスおよびユーザを識別して前記高優先クラスキューまたは前記低優先クラスキューのいずれかのキューに振り分けるパケット振り分け制御部と、前記高優先クラスキューから出力されるパケットのユーザおよびパケット長を通知するパケット長通知部と、前記パケット長通知部から通知されたユーザおよびパケット長の各情報と、前記低優先クラスキューに格納されたパケットのパケット長と、ユーザごとに割り当てられた前記高優先クラスと前記低優先クラスとの合計帯域に応じて該ユーザごとに決定されたウェイト値と、に基づいて前記低優先クラスキューに格納されたパケットの出力完了予定時刻を該ユーザごとに所定のタイミングで算出するWFQ制御部と、前記低優先クラスキューに格納されて前記WFQ制御部を介して出力されるパケットおよび前記高優先クラスキューに格納されたパケットの中で、該高優先クラスキューに格納されたパケットを優先して出力するPQ制御部と、を備え、前記WFQ制御部は、先頭パケットが出力された低優先クラスキューに次に出力されるパケットが存在する場合、または、空であった低優先クラスキューに新たなパケットが到着した場合のいずれかのタイミングで前記出力完了予定時刻を算出することを特徴とする。
本発明にかかるパケットスケジューラによれば、高優先クラスキューから出力されるパケットのユーザおよびパケット長が通知され、通知されたユーザおよびパケット長の各情報と、低優先クラスキューに格納されたパケットのパケット長の情報と、ユーザごとに割り当てられた高優先クラスと低優先クラスとの合計帯域に応じてユーザごとに決定されたウェイト値とに基づいて低優先クラスキューに格納されたパケットの出力完了予定時刻を所定のタイミングでユーザごとに算出するようにしているので、優先クラスのパケットの遅延時間を少なくし、帯域保証と遅延時間保証との公平性や、高優先クラスと低優先クラスとを合わせた帯域保証をユーザごとに実現することができるという効果を奏する。
以下に、本発明にかかるパケットスケジューラおよびパケットスケジューリング方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態1にかかるパケットスケジューラの機能構成およびキュー構成を示すブロック図である。同図に示すパケットスケジューラは、パケット振り分け制御部10、高優先クラスキュー11、低優先クラスキュー12(121,122,・・・,12n)、パケット長通知部13、WFQ制御部14およびPQ制御部15を備えている。
つぎに、図1に示す各構成部の機能について説明する。同図において、パケット振り分け制御部10は、入力されたパケットの優先クラスとユーザ(#1〜#n)を認識するとともに、入力されたパケットを各キュー(高優先クラスキュー11または低優先クラスキュー12のいずれかのキュー)に振り分ける。高優先クラスキュー11は、パケット振り分け制御部10で振り分けられた高優先クラスのパケットを入力順に格納する。一方、低優先クラスキュー12は、パケット振り分け制御部10でユーザごとに振り分けられた低優先クラスのパケットを格納する。パケット長通知部13は、高優先クラスキュー11から出力されたパケットのユーザおよびパケット長(バイト数)を認識してWFQ制御部14に通知する。なお、図1では1つのクラスのn個のユーザに対するn個分の低優先クラスキュー121〜12nが例示されているが、低優先クラスが複数ある場合には、(ユーザ数)×(低優先クラス数)個分のキューが設けられる。
また、WFQ制御部14は、以下の処理を行う。
(1) パケット長通知部13から通知された高優先クラスのパケット長(バイト数)をユーザごとに加算して保持する。
(2) 空であるキューにパケットが到着した場合あるいは低優先クラスのパケットが出力された場合に新たにキューの先頭になるパケットのパケット長と保持していた高優先クラスのパケット長とを加算する。
(3) (2)の処理にて算出された加算出力に対してユーザごとに高優先クラスと低優先クラスとの合計帯域に比例した重み付けを行い、加算されたパケット長とユーザの重み付け値(ウェイト値)に基づいて各低優先クラスキュー12の出力完了予定時刻を算出する。
(4) 各低優先クラスキュー12の先頭パケットの中で出力完了予定時刻が最小のパケットを読み出す。
また、PQ制御部15は、高優先クラスキュー11に格納されているパケットを優先して出力し、高優先クラスキュー11が空のときにWFQ制御部14によって選択される低優先クラスキュー12の先頭パケットを出力する。
ところで、この実施の形態のパケットスケジューラは、高優先クラスと低優先クラスとが連携したWFQ制御の動作を行う点に特徴がある。より、詳細に説明すれば、高優先クラスに配分されている帯域のうち、未使用帯域(余剰分帯域)をユーザごとの低優先クラスの帯域に振り替える連携処理を行うことで高優先クラスを含めたユーザ単位の設定帯域を保証する点にある。そこで、このような特徴を有する本発明の理解を容易にするため、上述の非特許文献1などに示されたパケットスケジューラについて説明し、その後、本実施の形態にかかるパケットスケジューラの動作について説明する。なお、図2は、非特許文献1などに示されたパケットスケジューラの構成を示す図であり、図3は、図2に示したWFQ制御部133の制御動作を説明するための図である。
まず、図2において、同図に示されるパケットスケジューラは、パケット振り分け制御部130、高優先クラスキュー131、低優先クラスキュー132(1321,1322,・・・,132n)、WFQ制御部133およびPQ制御部134を備えている。
パケット振り分け制御部130は、入力されたパケットをユーザ(#1〜#n)および優先クラスに応じたキューに振り分ける。高優先クラスキュー131は、全ユーザの高優先クラスのパケットを入力順に格納する。一方、低優先クラスキュー132は、低優先クラスのパケットをユーザごとに格納する。WFQ制御部133は、ユーザごとに設定された低優先クラスの保証帯域に比例した重み付け(ウェイト)と先頭パケット長(バイト数)に従ってWFQ制御を行って各キューからのパケットを出力する。PQ制御部134は、WFQ制御部133で選択された低優先クラスキュー132より高優先クラスキュー131のパケットを優先して出力する。
なお、図2では、短い遅延時間でパケットを転送したい優先度の高いクラスのキューと、(ユーザ数)×(高優先以外の優先クラスの数(図2では1クラスのみ))のキューとが設けられており、到着したパケットの中で最も優先度の高いパケットは、到着順にPQ方式にて最優先に出力することにより遅延時間の少ないパケット伝送が行われるような構成が採用されている。一方、高優先クラス以外の優先クラスのパケットは、ユーザおよび優先クラスに応じたキューに振り分けられ、同一ユーザ内では複数の優先クラスのキューがPQ方式で出力され(ただし、図2では1クラスのみのクラス分けなのでPQ制御部は図示されていない)、一方、ユーザ間ではユーザごとに高優先クラス以外のクラスにおける保証帯域に比例した重み付けを行ったWFQ方式にて出力される。このような処理が行われる結果、ユーザごとの帯域が保証されるのは低優先クラスのみにとどまっている。
つぎに、図2に示したWFQ制御部133の出力動作について図3を用いて説明する。なお、図2と同一の構成部については、同一符号を付して示している。
図3において、WFQ制御部133は、低優先クラスのパケットを格納する低優先クラスキュー1321〜132nのそれぞれに割り当てられた最低保証帯域比φ1〜φnと、各キューに到着したそれぞれのパケット長とに基づいてパケットの出力完了予定時刻を算出し、帯域Rという制限の下、低優先クラスキュー1321〜132nに格納された先頭パケットのうち、出力完了予定時刻の最も小さいパケットから順にパケットを出力させる。ここで、同図に示すFi(k)(F1(1),F1(2),F2(1),・・・,Fi(1),・・・,Fn(1))は、キュー#iに溜まっている先頭からk番目のパケットの出力完了予定時刻を表している。
つぎに、Fi(k)の算出手法について説明する。例えば、ある時刻tのときに、キュー#iに先頭からk番目のパケットが新たに到着すると、パケットが到着したキューも含め、パケットが溜まっているキューの重み係数の合計φsumは、次式で表される。
φsum=Σ{φi|i∈パケットが存在するキュー} ・・・(1)
また、読み出し帯域をRとすると、キュー#iの出力帯域Riは、次式で表される。
Ri=R×φi/φsum ・・・(2)
なお、式(1)で表されるφsumはパケット到着順kにより変動する要素であり、その結果、式(2)で表されるRiもkの関数となるので、Ri(k)と表現する。
また、到着したパケットの長さをLi(k)とすると、当該到着パケットの出力完了予定時刻Fi(k)は、次式で決定される。
Fi(k)=Fi(k−1)+Li(k)/Ri(k) (k>1のとき)
Fi(k)=Fi(1)=t+Li(1)/Ri(1) (k=1のとき)・・・(3)
また、各キューの先頭パケットの出力完了予定時刻Fi(1)のうち、以下に示すパケットが出力されることになる。
min{Fi(1)|i∈パケットが存在するキュー} ・・・(4)
なお、パケットが出力されるキューに2個以上のパケットが溜まっていた場合には、先頭パケットが出力される度に、溜まっているパケットの出力完了予定時刻が次式のように更新される。
Fi(j+1)→Fi(j) (1≦j≦k−1) ・・・(5)
もし、出力キューに1パケットしか溜まっていなかった場合には、読み出された後はキューが空になるため、新たなパケットが到着したときには、式(3)に基づいて新たなFi(1)が決定される。
以上の処理により、キューごとの帯域の公平性は保たれる。また、各キューのパケットの出力順序についても出力完了予定時刻の小さい順に出力するため、公平性が保たれる。しかしながら、WFQ方式により高優先クラス以外の保証帯域に比例した重み付けをユーザごとに行うようにしているので、上記課題の項でも述べたように、高優先クラスとそれ以外のクラスを合わせたユーザごとの帯域を保証することができない。
このことは、例えば、あるユーザが高優先クラスで契約した帯域より少ない帯域で高優先クラスを利用していた場合に、余った帯域は該当ユーザが高優先クラス以外のクラスで利用することができないということであり、全ユーザ間で、ユーザごとに高優先クラス以外に割り当てられた帯域比をシェアするということを意味する。したがって、図2に示す構成では、ユーザごとに高優先クラスとそれ以外のクラスの合計帯域による帯域保証を行うことはできない。
ところで、上記に示す考え方では、WFQ制御部133からパケットが出力される度に当該到着パケットの出力完了予定時刻を式(1)〜(4)に基づいて算出するとともに、先頭パケットが出力されたキューに溜まっているパケットの出力完了予定時刻を式(5)に基づいて更新する必要があり、キュー数nが大きい場合に処理負荷が増大するといった不利点があった。そこで、以下に示すような簡易的な算出手法を採用して、処理負荷を軽減する手法が知られている。
この手法では、まず、出力完了予定時刻を算出するタイミングが以下の2点に限定される。
(1) 時刻tのときに先頭パケットが出力されたキューにおいて、つぎに出力するパケットが存在する場合
(2) 時刻tのときに空であったキューにおいて、新たにパケットが到着した場合
また、ハードウェアによる割り算をなくすため、予め全てのキューの重み係数の合計φallが、次式を満足するように各キューの重みが決定される。
φall=1=Σφi(1≦i≦n,0≦φi≦1) ・・・(6)
また、設定する重み値(逆数)Wiを次式のように定義する。
Wi=1/(R×φi) ・・・(7)
式(7)を用いれば、キュー#iの先頭パケットの出力完了予定時刻Fi(1)は次式のように表される。
Fi(1)=t+Li(1)×Wi ・・・(8)
また、各キューの先頭パケットの出力完了予定時刻Fi(1)のうち、以下に示す条件のパケットを出力させる(式(4)の再掲)。
min{Fi(1)|i∈パケットが存在するキュー} ・・・(9)
このような簡易的な算出手法であれば、パケットが出力される度あるいは空のキューにパケットが到着する度に式(8)および式(9)に基づく処理を行えばよく、前述の式(1)〜式(5)と比較して計算量が減少し、処理時間を短縮化することができる。
なお、式(1)〜式(5)による通常手法を用いるか、式(8)および式(9)による簡易手法を用いるかは自由であり、キューの個数や、単位時間あたりに到着するパケット数などに基づいて決定すればよい。
つぎに、図1に示したパケットスケジューラの動作について図4を用いて説明する。なお、図4は、図1に示した実施の形態1のパケットスケジューラにおける高優先クラスと連携した低優先クラスのWFQ制御動作を説明するための図である。
図4において、ユーザ#iの高優先クラスのパケットが高優先クラスキュー11に到着した場合、当該パケットはPQ方式により、先に出力される。この場合、ユーザごとに高優先クラスと低優先クラスの合計帯域で帯域保証を行うには、同一ユーザ#iの低優先クラスキュー12iのパケットに対して、高優先クラスのパケットを読み出した帯域分、出力完了予定時刻を遅らせて優先度を下げることが必要となる。そこで、低優先クラスキューが空であるキューにパケットが到着した場合か、あるいは低優先クラスキューの先頭のパケットが出力された新たに先頭になるパケットが存在する場合には、高優先クラスキュー11から出力されたユーザ#iのパケットのパケット長Lhi(1)を用いて、式(8)で示される低優先クラスキューの先頭パケットの出力完了予定時刻Fi(1)を次式のように修正する。
Fi(1)=t+{Li(1)+Lhi(1)}×Wi ・・・(10)
このようなWFQ制御を行うためには、ユーザごとに高優先クラスと低優先クラスの合計帯域に比例したウェイトの逆数Wiを設定し、常に高優先クラスキューから出力されたユーザとパケット長とを認識する必要がある。また、高優先クラスキューから同一ユーザ#iのパケットが複数出力された場合には、それらのパケット長を加算していき、低優先クラスのパケット長Li(k)に加算する必要がある。
なお、図1および図4は1つの高優先クラスに対応した1個の高優先クラスキューが具備される場合を例示しているが、高優先クラスが複数あり、高優先クラスキューが高優先クラスごとに複数存在する場合であっても、各高優先クラスキューからユーザ#iのパケットが出力される度にそれらのパケット長を加算し、ユーザ#iの低優先クラスキューが空であるキューにパケットが到着した場合か、あるいは低優先クラスキューの先頭のパケットが出力されて新たに先頭になるパケットが存在する場合には、そのときまでにユーザ#iの各高優先クラスキューから出力されたパケット長の全加算値を用いて出力完了予定時刻を算出すればよい。
このような場合、ユーザ#iの各高優先クラスキューから出力されたパケット長の全加算値をLhisum(1)とすれば、式(8)は次式のように修正される。
Fi(1)=t+{Li(1)+Lhisum(1)}×Wi ・・・(11)
式(11)は、ユーザごとに高優先クラスキューから出力した帯域(パケット長)分だけ出力完了予定時刻を遅らせることを意味しており、このように処理することで、高優先クラスと低優先クラスを合計した帯域でユーザ単位に設定された帯域の保証が可能になる。また、高優先クラスのパケットはPQ方式で読み出しているため、ユーザ数に関係なく、低遅延での出力が可能である。
以上説明したように、この実施の形態のパケットスケジューラおよびパケットスケジューリング方法によれば、ネットワークでリアルタイム性を要するアプリケーション等には、低遅延且つ最優先に出力する高優先クラスのキューを利用することができ、更にユーザごとにネットワーク内の全クラスを合わせた帯域(最低帯域)に比例したウェイトの逆数Wiを設定して、低優先クラスのキューに対して高優先クラスで出力した帯域分を考慮したWFQ制御をユーザごとに行うことによって、ネットワーク内のパワーユーザが同じネットワークを利用している他のユーザの帯域を圧迫することなくユーザごとの公平な帯域保証が可能である。また、WFQ方式に基づく帯域制御が行われるので、低優先クラスのパケットの出力順序に対しても公平性を保証することができる。
実施の形態2.
実施の形態1では、高優先クラスキューからパケットが出力された場合に該当ユーザに対して高優先クラスキューから出力されたパケット長を、空である低優先クラスキューにパケットが到着した場合、あるいは低優先クラスキューの先頭のパケットが出力されて新たに先頭になるパケットがある場合に、その低優先クラスのパケットのパケット長に加算することにより、ユーザごとの帯域を保証するようにしていた。
しかしながら、前者の場合のように高優先クラスキューからパケットが出力された時刻に、該当ユーザの低優先クラスキューにパケットが存在せず、長時間経過してから低優先パケットが到着した場合のように、該当ユーザがある時点で最低帯域保証分のパケットを出力していなかった場合には、高優先クラスで出力したパケット長を低優先クラスキューの先頭パケット到着時に加算すると、そのユーザの優先度を過剰に下げることとなり、公平性が満たされなくなるという問題点がある。
すなわち、実施の形態1は、
(1) ユーザの低優先クラスキューに常にパケットが存在する場合
(2) ユーザの高優先パケットと低優先パケットとの合計帯域が最低保証帯域以上で入力されている場合
(3) 高優先クラスキューに高優先パケットが入力されていない場合
などの条件下においては、正確にユーザごとの帯域保証と公平性を保証可能であるが、その他の条件下ではユーザごとの帯域を保証できない場合がある。
一方、この実施の形態では、高優先クラスキューからパケットが出力された時刻において、該当ユーザの低優先クラスキューにパケットが存在しない場合であっても、ユーザごとの帯域保証を可能とするWFQ制御について示すものである。なお、キュー構成および機能構成については、図1と同一あるいは同等である。
つぎに、この実施の形態にかかるパケットスケジューラの動作について図5、図6−1および図6−2を用いて説明する。なお、図5は、実施の形態2のパケットスケジューラにおける高優先クラスと連携した低優先クラスのWFQ制御動作を説明するための図である。また、図6−1および図6−2は、高優先クラスキューからm個のパケットが出力された際に、当該m番目のパケットの帯域分だけ低優先クラスにおける優先度を下げる際の基準時刻が異なる場合の一例をそれぞれ示す図である。
図5において、ユーザ#iの低優先クラスキューにパケットが存在しない状態で、高優先クラスキューからユーザ#iのパケットがm個出力され、m番目のパケットが出力された時刻がth(m)、パケットの長さがLhi(m)であるとする。いま、高優先クラスキューから出力されたm番目のパケットの帯域分だけユーザ#iの低優先クラスの優先度を下げるために、仮想的にユーザ#iの低優先クラスキューにパケット長Lhi(m)のパケットが溜まったと仮定する。この考え方は実施の形態1と同じである。このとき、1つ前の(m−1)番目までに高優先クラスキューから出力されたパケットによる低優先クラスにおける仮想出力完了予定時刻をVFi(m−1)として、VFi(m−1)とm番目のパケット出力時刻であるth(m)とを比較する。
図6−1に示すように、VFi(m−1)≧th(m)の場合には、(m−1)番目までの高優先クラスにおいてVFi(m−1)の時刻まで低優先クラスの優先度を仮想的に下げる必要があり、この時刻を基準として、さらにm番目に出力したパケット長Lhi(m)分の時刻を加味した分だけ、低優先クラスの優先度を下げる必要がある。一方、図6−2に示すように、VFi(m−1)<th(m)の場合には、(m−1)番目までのパケットが最低保証帯域未満の帯域で入力されていることを意味しているので、VFi(m−1)の時刻を基準とせず、m番目のパケットが出力された時刻th(m)を基準として、m番目に出力したパケット長Lhi(m)分の時刻分だけ低優先クラスの優先度を下げればよい。
結局のところ、m番目の仮想パケットの仮想出力完了予定時刻VFi(m)は、VFi(m−1)とth(m)を比較して大きい方の時刻にm番目のパケットの帯域分を加算すればよく、このVFi(m)は次式で表すことができる。
VFi(m)=max[VFi(m−1),th(m)]+Lhi(m)×Wi
(m>1のとき)
VFi(m)=th(1)+Lhi(1)×Wi
(m=1のとき) ・・・(12)
また、ユーザ#iの低優先クラスキューにパケットが存在せず、高優先クラスキューからユーザ#iのパケットがm個出力された後に、低優先クラスキューのWFQ制御部における時刻tのときに、ユーザ#iの低優先クラスキューに新たに先頭となるパケット長Li(1)のパケットが到着した場合、この先頭パケットの出力完了予定時刻Fi(1)を次式で表すことができる。
Fi(1)=max[VFi(m),t]+Li(1)×Wi ・・・(13)
以上説明したように、この実施の形態のパケットスケジューラおよびパケットスケジューリング方法によれば、ユーザごとに高優先クラスと低優先クラスの合計帯域に比例したウェイトを設定し、高優先クラスキューからパケットが出力されたときに、高優先クラスのユーザ情報とパケット長に基づいて高優先クラスキューから出力された帯域(パケット長)分だけ仮想的に優先度を下げるとともに、該当ユーザがある時点で最低帯域保証分のパケットを出力していたか否かの情報に基づいて、優先度を仮想的に下げる基準時刻を可変するようにしているので、実施の形態1の効果に加え、例えば、低優先クラスキューに長時間パケットが存在しない場合や、高優先クラスのパケットが送出された時点で低優先クラスキューにパケットが存在しない場合などであっても、ユーザ単位に設定された帯域の保証が可能となる。
実施の形態3.
図7は、本発明の実施の形態3にかかるWFQ制御部の機能構成を示す図であり、図1に示したパケットスケジューラに具備されるWFQ制御部14を具現する機能構成を示すものである。
同図に示すWFQ制御部は、低優先クラス優先度演算部81、端数用メモリ82、時刻レジスタ83、加算器84、パケット情報格納用出力完了予定時刻FIFO(First In First Out)メモリ85、出力制御部86、高優先クラス優先度演算部87および高優先帯域用メモリ88の各構成部を備えている。
図7において、低優先クラス優先度演算部81は、
(1)空の低優先クラスキューに新たにパケットが到着した場合
(2)ある低優先クラスキューの先頭パケットが出力されて次のパケットがある場合
の2つの条件下において、そのパケットのキュー番号i、パケット長Li(1)、当該キューの重み係数Wiに基づいて「Li(1)×Wi」の演算を行い、低優先クラスの当該パケットの優先度を出力する。
端数用メモリ82は、加算器84で加算されて決定した低優先クラスの該当パケットの出力完了予定時刻のうち、回路規模を小さくするためにパケット情報格納用出力完了予定時刻FIFOメモリ85の刻みによって切り捨てられる出力完了予定時刻の端数分をキュー単位で保持する。なお、端数用メモリ82に記憶された端数情報は、つぎに出力するパケットに持ち越される。例えば、上記(1)の場合には該当キューの端数を0とし、上記(2)の場合には端数用メモリ82に格納されている該当キューの端数値が加算器84に出力されるとともに、加算器84で加算された際に発生する新たな端数値によって上書きされる。
高優先クラス優先度演算部87は、高優先クラスキューからパケットが出力されたとき(ただし、高優先クラスがPQ方式の高優先キューとして入力される場合には、パケットが到着したときでもよい)に、当該パケットのキュー番号i、パケット長Lhi、該当キューの重み係数Wiより(Lhi×Wi)の演算を行う。高優先帯域用メモリ88は、低優先クラスキュー単位に高優先クラス優先度演算部87から通知される(Lhi×Wi)の値を順に加算して高優先クラスの合計優先度(Lhisum×Wi)として保持し、上記(1)および(2)の場合に低優先クラスキュー単位で該当キューの(Lhisum×Wi)の値を加算器84に出力するとともに、該当キューの出力後は該当キューの値をクリアする。時刻レジスタ83は、パケット情報格納用出力完了予定時刻FIFO85からパケットが出力されたときの時刻tを保持する。
加算器84は、上記(1)および(2)の場合に、低優先クラス優先度演算部81からの低優先クラスの優先度と、端数用メモリ82からの端数値と、高優先帯域用メモリ88からの合計優先度値と、時刻レジスタ83の時刻tとを加算して出力完了予定時刻を決定するとともに、該当キュー番号i、パケット長Li(1)および加算された出力完了予定時刻のうちパケット情報格納用出力完了予定時刻FIFOメモリ85で対応可能な上位ビットをパケット情報格納用出力完了予定時刻FIFOメモリ85に出力し、残りの端数である下位ビットを端数用メモリ82に出力する。パケット情報格納用出力完了予定時刻FIFOメモリ85は、加算器84から出力された、これらの情報を格納する。出力制御部86は、各FIFOメモリに対してパケット情報の有無を示すレジスタを設け、これをスキャンすることにより出力完了予定時刻が最も小さくパケット情報の格納されているFIFOメモリを検索し、そのFIFOメモリに格納されたキュー番号に基づいてパケット出力順序を決定し、また、パケット長に基づいて出力タイミングを決定する。
ここで、上述した高優先帯域用メモリ88の動作では、同一ユーザの低優先クラスキューにパケットが存在せず、高優先クラスキューから多数のパケットが出力されている(到着している)場合、常に加算処理が行われ、その後、低優先クラスキューが到着したときに、これまで出力された高優先クラスキューの帯域分だけ出力完了予定時刻を遅らせることになり、当該ユーザの帯域が設定値より一時的に少なくなることがある。また、低優先クラスキューの空時間が長ければ長いほどキュー単位の高優先帯域用メモリ88の容量が大きいものが必要となる。
このため、高優先帯域用メモリ88では、上記(1)の場合には、端数用メモリ82と同様に加算器84に対して0を出力し、上記(2)の場合にのみ高優先クラスキューの帯域を加算した値を出力することが好ましい。このような処理を行った場合、上記(1)の場合に瞬間的に該当ユーザの帯域が多めに出力される可能性があるが、それまで低優先クラスキューが空であったことを考慮すれば、低優先キューにおいて輻輳が起こることは考えられない。また、上記(1)の場合には高優先帯域用メモリ88に蓄積されている値をクリアすることができるので、高優先帯域用メモリ88の容量も小さいものでよい。
以上説明したように、この実施の形態のパケットスケジューラにおけるWFQ制御部によれば、端数用メモリ、高優先帯域用メモリ、時刻レジスタなどの各種記憶部や、高優先クラス優先度演算部、低優先クラス優先度演算部、加算器などの各種演算部が具備され、これらの構成部に蓄積される情報の管理を適正に行うようにしているので、回路規模が削減され、処理時間が短縮されるとともに、高優先クラスの帯域も考慮した多数のユーザにおける帯域制御の公平性を確保することが可能なWFQ制御が実現される。
なお、この実施の形態では、パケット情報格納用出力完了予定時刻FIFOメモリ85のビット刻みを考慮して端数用メモリ82を有する構成を具備するように構成しているが、当該FIFOメモリのビット刻みが十分であれば、端数用メモリ82を省略してもよい。
以上のように、本発明は、高優先クラスの帯域も考慮した多数のユーザにおける帯域制御の公平性を確保することが可能なWFQ制御機能を有するパケットスケジューラとして有用である。
本発明の実施の形態1にかかるパケットスケジューラの機能構成およびキュー構成を示すブロック図である。 非特許文献1などに示されたパケットスケジューラの構成を示す図である。 図2に示したWFQ制御部133の制御動作を説明するための図である。 実施の形態1のパケットスケジューラにおける高優先クラスと連携した低優先クラスのWFQ制御動作を説明するための図である。 実施の形態2のパケットスケジューラにおける高優先クラスと連携した低優先クラスのWFQ制御動作を説明するための図である。 高優先クラスキューからm個のパケットが出力された際に、当該m番目のパケットの帯域分だけ低優先クラスにおける優先度を下げる際の基準時刻が異なる場合の一例を示す図である(VFi(m−1)≧th(m)の場合,th(m):m番目のパケットが出力された時刻、VFi(m−1):(m−1)番目までに高優先クラスキューから出力されたパケットによる低優先クラスにおける仮想出力完了予定時刻)。 高優先クラスキューからm個のパケットが出力された際に、当該m番目のパケットの帯域分だけ低優先クラスにおける優先度を下げる際の基準時刻が異なる場合の一例を示す図である(VFi(m−1)<th(m)の場合,th(m):m番目のパケットが出力された時刻、VFi(m−1):(m−1)番目までに高優先クラスキューから出力されたパケットによる低優先クラスにおける仮想出力完了予定時刻)。 本発明の実施の形態3にかかるWFQ制御部の機能構成を示す図である。
符号の説明
10,130 パケット振り分け制御部
11,131 高優先クラスキュー
12,121,122,12i,12n,132,1321,1322,132n 低優先クラスキュー
13 パケット長通知部
14,133 WFQ制御部
15,134 PQ制御部
81 低優先クラス優先度演算部
82 端数用メモリ
83 時刻レジスタ
84 加算器
85 パケット情報格納用出力完了予定時刻FIFOメモリ
86 出力制御部
87 高優先クラス優先度演算部
88 高優先帯域用メモリ

Claims (5)

  1. 高優先クラスキューおよびユーザごとに区分された低優先クラスキューのそれぞれに格納されたパケットの出力順序を決定するパケットスケジューラであって、
    入力されたパケットの優先クラスおよびユーザを識別して前記高優先クラスキューまたは前記低優先クラスキューのいずれかのキューに振り分けるパケット振り分け制御部と、
    前記高優先クラスキューから出力されるパケットのユーザおよびパケット長を通知するパケット長通知部と、
    前記パケット長通知部から通知されたユーザおよびパケット長の各情報と、前記低優先クラスキューに格納されたパケットのパケット長と、ユーザごとに割り当てられた前記高優先クラスと前記低優先クラスとの合計帯域に応じて該ユーザごとに決定されたウェイト値と、に基づいて前記低優先クラスキューに格納されたパケットの出力完了予定時刻を該ユーザごとに所定のタイミングで算出するWFQ制御部と、
    前記低優先クラスキューに格納されて前記WFQ制御部を介して出力されるパケットおよび前記高優先クラスキューに格納されたパケットの中で、該高優先クラスキューに格納されたパケットを優先して出力するPQ制御部と、
    を備え
    前記WFQ制御部は、先頭パケットが出力された低優先クラスキューに次に出力されるパケットが存在する場合、または、空であった低優先クラスキューに新たなパケットが到着した場合のいずれかのタイミングで前記出力完了予定時刻を算出することを特徴とするパケットスケジューラ。
  2. 前記高優先クラスキューから所定ユーザのパケットがm個出力されるとき、m番目のパケットが出力された時刻をth(m)とし、(m−1)番目までに高優先クラスキューから出力されたパケットによって該所定ユーザの低優先クラスに仮想的に溜まったものとして算出される仮想出力完了予定時刻をVFi(m−1)とするとき、
    前記WFQ制御部は、
    前記高優先クラスキューから出力されたm番目のパケットの帯域分だけ前記所定ユーザの低優先クラスの優先度を下げるための基準時刻を、前記VFi(m−1)と前記th(m)との大小関係に基づいて決定することを特徴とする請求項1に記載のパケットスケジューラ。
  3. 前記WFQ制御部は、
    前記高優先クラスキューに格納されたパケットが該高優先クラスキューから出力された際に、当該出力パケットにかかる優先度を演算する演算手段と、
    前記ユーザごとに高優先クラスのパケットの優先度を加算して保持する記憶手段と、
    前記低優先クラスの各キューの先頭パケットの優先度を演算する手段と、
    現在の時刻を保持するレジスタと、
    前記高優先クラスのパケットの優先度の加算値と、前記低優先クラスの先頭パケットの優先度と、前記レジスタから出力される現在時刻とを加算する加算器と、
    前記加算器の加算値に対応した前記低優先クラスキューに格納されているパケットのキュー情報を記憶するFIFOメモリと、
    前記FIFOメモリに格納されているキュー情報に基づいてパケット出力順序を決定するとともに、該FIFOメモリに格納されているパケット長に基づいて出力タイミングを決定することを特徴とする請求項1に記載のパケットスケジューラ。
  4. 前記WFQ制御部は、
    前記高優先クラスキューに格納されたパケットが該高優先クラスキューから出力された際に、所定ユーザの低優先クラスキューにパケットが存在しない場合、該所定ユーザの高優先クラスの優先度を加算しないことを特徴とする請求項に記載のパケットスケジューラ。
  5. 高優先クラスキューおよびユーザごとに区分された低優先クラスキューのそれぞれに格納されたパケットの出力順序を決定するパケットスケジューリング方法であって、
    入力されたパケットの優先クラスおよびユーザを識別して前記高優先クラスキューまたは前記低優先クラスキューのいずれかのキューに振り分けるパケット振り分けステップと、
    前記高優先クラスキューから出力されるパケットのユーザおよびパケット長を通知するパケット長通知ステップと、
    前記パケット長通知部から通知されたユーザおよびパケット長の各情報と、前記低優先クラスキューに格納されたパケットのパケット長の情報と、ユーザごとに割り当てられた前記高優先クラスと前記低優先クラスとの合計帯域に応じてユーザごとに決定されたウェイト値と、に基づいて前記低優先クラスキューに格納されたパケットの出力完了予定時刻を所定のタイミングで算出する出力完了予定時刻算出ステップと、
    前記低優先クラスキューに格納されているパケットおよび前記高優先クラスキューに格納されたパケットの中で、該高優先クラスキューに格納されたパケットを優先して出力する出力ステップと、
    を含み、
    前記出力完了予定時刻を算出する所定のタイミングが、先頭パケットが出力された低優先クラスキューに次に出力されるパケットが存在する場合、または、空であった低優先クラスキューに新たなパケットが到着した場合のいずれかであることを特徴とするパケットスケジューリング方法。
JP2005190437A 2005-06-29 2005-06-29 パケットスケジューラおよびパケットスケジューリング方法 Expired - Fee Related JP4447521B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005190437A JP4447521B2 (ja) 2005-06-29 2005-06-29 パケットスケジューラおよびパケットスケジューリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005190437A JP4447521B2 (ja) 2005-06-29 2005-06-29 パケットスケジューラおよびパケットスケジューリング方法

Publications (2)

Publication Number Publication Date
JP2007013462A JP2007013462A (ja) 2007-01-18
JP4447521B2 true JP4447521B2 (ja) 2010-04-07

Family

ID=37751385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005190437A Expired - Fee Related JP4447521B2 (ja) 2005-06-29 2005-06-29 パケットスケジューラおよびパケットスケジューリング方法

Country Status (1)

Country Link
JP (1) JP4447521B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4881887B2 (ja) 2008-01-30 2012-02-22 アラクサラネットワークス株式会社 トラフィックシェーピング機能および装置
JP5183460B2 (ja) * 2008-12-26 2013-04-17 三菱電機株式会社 パケットスケジューリング方法および装置
JP2012205159A (ja) * 2011-03-26 2012-10-22 Fujitsu Ltd フロー別流量監視制御方法、通信装置、およびプログラム
WO2013120074A1 (en) * 2012-02-11 2013-08-15 Vid Scale, Inc. Method and apparatus for video aware hybrid automatic repeat request
JP6032044B2 (ja) * 2013-02-14 2016-11-24 沖電気工業株式会社 局側装置及び光通信システム
CN103248965B (zh) * 2013-03-05 2015-12-09 上海交通大学 一种基于近似时延的视频传输队列调度方法
JP5959011B2 (ja) * 2013-08-12 2016-08-02 日本電信電話株式会社 パケットスケジューラ、通信ネットワークおよびパケットスケジューリング方法
JP6178723B2 (ja) * 2013-12-26 2017-08-09 Kddi株式会社 トラヒックフロー割当方法および装置
JP6178740B2 (ja) * 2014-03-13 2017-08-09 Kddi株式会社 トラヒックフロー割当方法および装置
JP6589497B2 (ja) * 2015-09-17 2019-10-16 日本電気株式会社 帯域制御装置、帯域制御方法及びプログラム
JP7247952B2 (ja) * 2020-05-19 2023-03-29 トヨタ自動車株式会社 設定装置、パラメータの設定方法及びプログラム

Also Published As

Publication number Publication date
JP2007013462A (ja) 2007-01-18

Similar Documents

Publication Publication Date Title
JP4447521B2 (ja) パケットスケジューラおよびパケットスケジューリング方法
US6810426B2 (en) Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
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
US6895012B2 (en) Method and apparatus for packet scheduling in network
US6377546B1 (en) Rate guarantees through buffer management
US8000247B2 (en) Bandwidth management apparatus
US6795870B1 (en) Method and system for network processor scheduler
US6940861B2 (en) Data rate limiting
US20070070895A1 (en) Scaleable channel scheduler system and method
US20010051992A1 (en) Unified algorithm for frame scheduling and buffer management in differentiated services networks
US7212535B2 (en) Scheduling items using mini-quantum values
EP3073680B1 (en) Methods, queueing system, network element and network system for queueing and processing of packets
KR20030026240A (ko) 데이터 패킷 폐기
CN111355673A (zh) 一种数据处理方法、装置、设备及存储介质
JP2003531517A (ja) 切断/再接続フロー・キューを使用して出力をスケジューリングするネットワーク・プロセッサのための方法およびシステム
US6804249B1 (en) Method and system for network processor scheduling based on calculation
KR101737516B1 (ko) 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치
US7266612B1 (en) Network having overload control using deterministic early active drops
KR20020079904A (ko) 차등 서비스 네트워크에서 프레임 스케쥴링 및 버퍼관리를 위한 통합 알고리즘
US8467401B1 (en) Scheduling variable length packets
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치
Asaduzzaman et al. The Eight Class of Service Model-An Improvement over the Five Classes of Service
JPH11298523A (ja) パケット・スケジューリング方法
US7315901B1 (en) Method and system for network processor scheduling outputs using disconnect/reconnect flow queues

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071003

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091106

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

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

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4447521

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

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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