JP3649661B2 - Packet scheduling method and packet scheduling apparatus - Google Patents

Packet scheduling method and packet scheduling apparatus Download PDF

Info

Publication number
JP3649661B2
JP3649661B2 JP2000305247A JP2000305247A JP3649661B2 JP 3649661 B2 JP3649661 B2 JP 3649661B2 JP 2000305247 A JP2000305247 A JP 2000305247A JP 2000305247 A JP2000305247 A JP 2000305247A JP 3649661 B2 JP3649661 B2 JP 3649661B2
Authority
JP
Japan
Prior art keywords
class
priority
bandwidth
packet
packets
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
JP2000305247A
Other languages
Japanese (ja)
Other versions
JP2002118585A (en
Inventor
慎也 能上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2000305247A priority Critical patent/JP3649661B2/en
Publication of JP2002118585A publication Critical patent/JP2002118585A/en
Application granted granted Critical
Publication of JP3649661B2 publication Critical patent/JP3649661B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、パケットスケジューリング方法及びパケットスケジューリング装置に関し、例えばIP(Internet Protocol)網に設けられる自律システム(AS)内の各種ルータにおいて、入力されるパケットの処理順序を決定するために用いられる。
【0002】
【従来の技術】
例えば、IP網などに設けられるルータの入力には、様々な種類のパケットが順次に入力される。様々な種類のパケットを処理するルータの内部には複数のキュー(待ち行列:queue)が設けられ、入力されたパケットはその種類に応じたキューに蓄積されてから処理される。
【0003】
このような複数のキューに蓄積されたパケットを処理する順番を決定する処理はパケットスケジューリングと呼ばれている。パケットスケジューリングの方式としては、従来より次のような技術が知られている。
(1)ラウンドロビン(Round Robin):1番目のキューのパケット,2番目のキューのパケット,3番目のキューのパケット,・・・を順番に処理する。1回に処理するパケットの数は予め決めておく(一般的には1つ)。処理すべきパケットが存在しないキューについては処理がスキップされる。
【0004】
(2)WRR(Weighted Round Robin):パケットのクラス(キュー)毎に「重み」とパケット長が異なる場合に、重みを平均パケット長で割った「正規化された重み」を用いて、その重みに応じたパケット数を前記ラウンドロビンで処理する。
(3)DRR(Deficit Round Robin):前記WRR方式において、事前に平均パケット長の情報を必要としないように工夫されたのもである。詳細には次のような手順で処理される。ある「基準量」が各クラス(キュー)毎に与えられており、あるキューの先頭のパケット長がその基準量より等しいか小さければそのパケットは処理される。そして基準量はそのパケット長分だけ減らされる。このようにして、基準量が次に処理されるパケット長より小さくなるまでそのキューは連続して処理される。それが満たされなくなったとき、ラウンドロビン方式で処理対象は次のキューに移る。全てのキューの先頭パケット長が各キューの基準量より大きくなったら全キューに新たに基準量を加える。
【0005】
(4)GPS(Generalized Processor Sharing):これは、パケットの存在するN個のキューに対して無限の処理容量をもつサーバーが同時に1/Nずつのサービス率で処理を行うスケジューリング方式である。あるキューに処理されるべきパケットが存在しない場合には、その分の処理能力は他のキューに等しく割り当てられる。実際には実現不可能な理想的な方式である。
【0006】
(5)WFQ(Weighted Fair Queueing):これは、前記GPS方式を近似的に実現させるための方式であり、GPSでは同時に並列に無限小単位の処理を施しているのに対して、このWFQではビット単位でパケットの処理終了予定時刻の計算を行い、その時刻の早いパケットから順番に処理を行う。
(6)CB−WFQ(Class-based Weighted Fair Queueing):キュー毎に重み値を固定的に割り付ける。
【0007】
また、例えば特開平9−83547号公報においては、各パケットキューに設定された重みとパケットキューのパケット蓄積量とに基づいてスケジューリングを行うことを開示している。
また、パケットスケジューリングの方式を選択する際には、以下の事項を考慮して選択するのが一般的である。
【0008】
(a)スケジューリングによって何をどのように実現するのか(例えば、優先度の違い、公平性、遅延時間の上限値以内に処理を終了させたい等)。
(b)優先度をどのように定義し、それが実際に実現されるか否か。
(c)クラス間の公平性を考える必要があるか、必要があればそれをどのように考えるか。
【0009】
(d)実際に装置内で実現する際の容易性はどの程度であるか。
上記の事項の組み合わせを考慮して、最も都合の良い方式が選ばれる。
【0010】
【発明が解決しようとする課題】
例えばIP網においては、様々な種類のアプリケーションの情報を運ぶために様々な種類のパケットが混在して伝送される。アプリケーションの種類としては、音声(VoIP),画像(Video on Demandやテレビ会議),Telnet,X−Window,WWW,電子メール,FTPなどがある。
【0011】
音声や画像のアプリケーションの情報を運ぶパケットは「ストリーム型トラヒック」と呼ばれる。また、TelnetやX−Window等のアプリケーションの情報を運ぶパケットは「インタラクティブ型トラヒック」と呼ばれる。更に、WWW,電子メール,FTPなどのアプリケーションの情報を運ぶパケットは「バルク転送型トラヒック」と呼ばれる。
【0012】
「ストリーム型トラヒック」や「インタラクティブ型トラヒック」については、実時間性が重要であり、伝送途中の遅延時間が増大すると伝送品質が著しく低下する。また、「バルク転送型トラヒック」については実時間性はあまり重要ではない。
前記CB−WFQ方式を採用する場合には、「ストリーム型トラヒック」や「インタラクティブ型トラヒック」を処理するキューに予め大きな重みを割り当て、「バルク転送型トラヒック」を処理するキューに予め小さな重みを割り当てておくことにより、実時間性の要求の厳しいアプリケーションに対する品質を確保することができる。
【0013】
しかしながら、CB−WFQ方式のように各キューの重みを固定的に定める場合には、小さい重みが割り当てられたキューを使用する特定のアプリケーションについては品質が大幅に低下する場合がある。すなわち、特定のキューの使用頻度が高くなり、そのキューに割り当てられた帯域に比べて多くのパケットが短い時間内に到着した場合には当該キューにおける遅延時間が著しく増大する。
【0014】
また、特開平9−83547号公報の技術を利用する場合には、パケットキューのパケット蓄積量に応じて動的にスケジューリングを行うので、各々のクラスのパケットの優先度が逐次変化することになる。従って、実時間性の高い特定のクラスのパケットに対して帯域を保証できない。また、特定のクラスに割り当てられる帯域の大きさが小さくなりすぎる可能性もある。
【0015】
本発明は、パケットスケジューリング方法及びパケットスケジューリング装置において、利用可能な全ての帯域を有効に利用し、実時間性に厳しいアプリケーションの品質低下を防止するとともに、実時間性の要求が小さいアプリケーションについても伝送遅延時間が増大するのを防止することを目的とする。
【0016】
【課題を解決するための手段】
請求項1は、入力されるパケットを複数のクラスに区分するとともに、前記複数のクラスを、処理に要する実時間が重要な優先グループと、前記優先グループ以外の非優先グループとに分類し、順次入力されるパケットを前記複数のクラス毎に設けられた待ち行列として保持し、処理のために前記待ち行列から取り出されるパケットの順序を決定するためのパケットスケジューリング方法であって、前記非優先グループに割り当てられた帯域の大きさが過小であり、未処理の非優先クラス(以下、第1非優先クラスと称する)が存在する場合、前記未処理の非優先クラスのパケットを蓄積する待ち行列に対して、最初に全帯域BWtにX(Xは係数)を掛けて得られる帯域BWαを割り当てる第1のステップと、
全帯域BWtから前記第1非優先クラスに割り当てた帯域BWαを差し引いて得られた帯域BWβに、前記優先グループ内の各優先クラスの要求遅延時間を満足するのに十分な帯域BWrを割り当てる第2のステップと、前記非優先グループに属する非優先クラスから前記第1非優先クラスを除いて得られる第2非優先クラスに対して、帯域BWβから帯域BWを差し引いて得られた帯域BWzを割り当てる第3のステップとから構成されることを特徴とする。
【0017】
請求項1においては、第1非優先クラスに対して、帯域BWαが割り当てられる。これによって、割り当てられた帯域の大きさが過小であって、処理が滞っていた待ち行列の処理が促進される。
また、優先グループに属する各優先クラスのパケットを保持する待ち行列には、各優先クラスの要求遅延時間を満足するのに十分な帯域BWrが割り当てられる。
また、第2非優先クラスに対して、帯域BWzが割り当てられる。
したがって、処理に要する実時間が重要な優先グループと、前記優先グループ以外の非優先グループとが、効率的に処理される。
【0018】
請求項2は、請求項1に記載のパケットスケジューリング方法において、前記第1非優先クラスが存在するか否かの判断は、特定期間の間に割り当てられた帯域が小さすぎて、パケットを全く処理できなかったクラスが存在するか否かを前記非優先グループに属するクラス毎に識別することにより行い、前記非優先グループに属する各クラスのパケットを保持する待ち行列から、前記パケットを取り出す優先度の決定は、直近の特定期間で検出された使用頻度の違いに応じた重みに基づいて行うことを特徴とする。
【0020】
請求項3は、請求項1記載のパケットスケジューリング方法において、前記第1のステップにおいて、前記非優先グループの各クラスの使用頻度を、前記特定期間に到着したパケットの数及び到着したパケットの平均パケット長に基づいてダイナミックに検出することを特徴とする。
【0021】
求項3においては、前記特定期間に到着したパケットの数及び到着したパケットの平均パケット長に基づいて各クラスの使用頻度を検出するので、到着するパケットの各パケット長が変動する場合であっても各クラスの使用頻度を検出することができる。
【0022】
請求項4は、入力されるパケットを複数のクラスに区分するとともに、前記複数のクラスを、処理に要する実時間が重要な優先グループと、前記優先グループ以外の非優先グループとに分類し、順次に入力されるパケットを前記複数のクラス毎に設けられた待ち行列として蓄積し、処理のために前記待ち行列から取り出されるパケットの順序を決定するためのパケットスケジューリング装置であって、前記非優先グループに割り当てられた帯域の大きさが過小であり、未処理の非優先クラス(以下、第1非優先クラスと称する)が存在する場合、前記未処理の非優先クラスのパケットを蓄積する待ち行列に対して、最初に全帯域BWtにX(Xは係数)を掛けて得られる帯域BWαを割り当てる第1の帯域割り当て手段と、全帯域BWtから前記第1非優先クラスに割り当てた帯域BWαを差し引いて得られた帯域BWβに、前記優先グループ内の各優先クラスの要求遅延時間を満足するのに十分な帯域BWrを割り当てる第2の帯域割り当て手段と、前記非優先グループに属する非優先クラスから前記第1非優先クラスを除いて得られる第2非優先クラスに対して、帯域BWβから帯域BWを差し引いて得られた帯域BWzを割り当てる第3の帯域割り当て手段とから構成されることを特徴とする。
【0023】
請求項4のパケットスケジューリング装置においては、請求項1と同様にパケットスケジューリングを行うことができる。
【0024】
【発明の実施の形態】
本発明のパケットスケジューリング方法及びパケットスケジューリング装置の1つの実施の形態について、図1〜図3を参照して説明する。この形態は全ての請求項に対応する。
【0025】
図1は、この形態のパケットスケジューリング処理を示すフローチャートである。図2は本発明を実施するルータの構成を示すブロック図である。図3はこの形態の処理のタイミングを示すタイムチャートである。
この形態では、請求項4の第1の帯域割り当て手段,第2の帯域割り当て手段、第3の帯域割り当て手段は、トラヒック特性量計算部16(S15、S19、S22、S25)及び処理クラス指示部18に対応する。
【0026】
この形態では、IP網に接続された図2のルータに、本発明のパケットスケジューリング方法及びパケットスケジューリング装置を適用する場合を想定している。
図2を参照すると、このルータにはパケット情報収集部10,クラス決定部11,ヘッダ読み取り測定部12,パケットヘッダ解析/計算部13,ルーチングテーブル14,ヘッダ書き込み制御部15,トラヒック特性量計算部16,割り当て帯域計算部17,処理クラス指示部18,データベース(DB)19,スケジューリング部20,時計31及びタイマ32が備わっている。
【0027】
また、スケジューリング部20には、N個のキューバッファ21(1)〜21(N)及びパケット処理部22が備わっている。キューバッファ21は、例えばFIFO(ファーストインファーストアウト)メモリで構成することができる。
外部からこのルータに到来するパケットは、パケット情報収集部10に入力され、スケジューリング部20でいずれか1つのキューバッファ21に蓄積された後、パケット処理部22で処理されて外部に出力される。
【0028】
パケット情報収集部10は、各パケットからその行き先,クラス及びパケット長を含むヘッダ情報を抽出してクラス決定部11に通知する。クラス決定部11は、ヘッダ情報のクラスに基づいて、パケットの種類をN以下のクラスに分類する。また、優先グループのクラスと非優先グループのクラスとを区別する。
パケット情報収集部10は、入力されたパケットをクラス決定部11の分類したクラスに対応する1つのキューバッファ21に書き込む。
【0029】
また、各パケットの行き先及びクラスを含むヘッダ情報は、クラス決定部11からヘッダ読み取り測定部12を通ってパケットヘッダ解析/計算部13に入力される。
パケットヘッダ解析/計算部13は、ヘッダ情報に基づき、ルーチングテーブル14を参照して行き先情報を取得する。この行き先情報は、ヘッダ書き込み制御部15を通り、次ルータ情報としてキューバッファ21上のパケットに書き込まれる。
【0030】
トラヒック特性量計算部16は、パケットのクラス毎に特定区間毎のトラヒック特性量を計算する。割り当て帯域計算部17は、トラヒック特性量計算部16の求めた特性量に従って、各クラスの帯域を割り当てる。
割り当て帯域計算部17が割り当てた帯域の値は、各クラスの重みとして処理クラス指示部18に入力される。また、処理クラス指示部18には特定区間毎の処理パケット数がトラヒック特性量計算部16から入力される。
【0031】
処理クラス指示部18は、パケット処理部22が処理すべきパケットのクラスをパケット処理部22に指示する。パケット処理部22は、処理クラス指示部18から指示されたクラスのパケットを対応するキューバッファ21の先頭から取り出して処理する。
図2のパケット処理部22がキューバッファ21(1)〜21(N)から取り出すパケットの順番を決定するためのパケットスケジューリング処理の詳細について、以下に説明する。
【0032】
なお、パケットのクラスについては、アプリケーションの種類によって定められる場合もあるし、ユーザの契約時に定められる場合もあるし、通信の開始時に定められる場合もある。
アプリケーションの種類としては、音声(VoIP),画像(Video on Demandやテレビ会議),Telnet,X−Window,WWW,電子メール,FTPなどがある。
【0033】
音声や画像のアプリケーションの情報を運ぶパケットは「ストリーム型トラヒック」と呼ばれる。また、TelnetやX−Window等のアプリケーションの情報を運ぶパケットは「インタラクティブ型トラヒック」と呼ばれる。更に、WWW,電子メール,FTPなどのアプリケーションの情報を運ぶパケットは「バルク転送型トラヒック」と呼ばれる。
【0034】
「ストリーム型トラヒック」や「インタラクティブ型トラヒック」については、実時間性が重要であり、伝送途中の遅延時間が増大すると伝送品質が著しく低下する。また、「バルク転送型トラヒック」については実時間性はあまり重要ではない。
そこで、このパケットスケジューリング処理においては、パケットのクラスを優先グループと非優先グループとに分類する。「ストリーム型トラヒック」及び「インタラクティブ型トラヒック」に相当するパケットのクラスについては、実時間性が重要なので優先グループに分類する。また、「バルク転送型トラヒック」に相当するパケットのクラスについては実時間性が重要でないので非優先グループに分類する。なお、優先グループに属する各クラスを優先クラスと呼び、非優先グループに属する各クラスを非優先クラスと呼ぶ。
【0035】
図1に示すパケットスケジューリング処理は、各クラスのパケットを処理する待ち行列(各キューバッファ21の内容)に対する帯域の割り当て手順を表している。各待ち行列に割り当てられた帯域の大きさに従って、各待ち行列に蓄積されたパケットの処理の優先度が決定される。
また、図1に示すパケットスケジューリング処理は、図3に示すようなタイミングで実行される。すなわち、現時点がtである場合に、それ以前の情報収集区間A1について情報の収集を行い、計算区間A2で計算を行い、制御対象区間A3に対する帯域の割り当てを行う。
【0036】
さて、図2のルータの入力にパケットが到着した場合には、パケットスケジューリング処理は図1のステップS12からS13に進む。ステップS13では、到着したパケットのクラスを識別する。また、次のステップS14では到着したパケットをそのクラスに対応付けられた1つのキューバッファ21に転送する。更に、ステップS15ではクラス毎に到着したパケットのパケット数及び平均パケット長の計算を行う。
【0037】
各クラスに帯域を割り当てるための所定のタイミングになると、ステップS11からS16に進む。ステップS16〜S19は、非優先クラスのパケットに対して最小限の帯域を保証するための処理である。
ステップS16では、ある監視区間(t−KT,tの間)に、割り当てられた帯域が小さすぎて全くパケットを処理できなかった非優先クラスが存在するか否かを識別する。存在する場合にはステップS18に進み、存在しない場合にはステップS17に進む。
【0038】
ステップS17では、帯域BWα(bps)の値を0にする。
ステップS18では、ルータの全帯域BWt(bps)に係数X(例えば0.1)を掛けた結果を帯域BWαの値にする。なお、係数X及びKは各クラスの遅延時間がある値以上にならないように計算により求められる。
ステップS19では、パケットを処理できなかった非優先クラスに対して、帯域BWαを割り当てる。
【0039】
なお、パケットを処理できなかった非優先クラスが複数存在する場合には、各クラスの遅延時間がある値以上にならないように、帯域BWαの一部分をそれぞれの非優先クラスに割り当てる。
ステップS20では、全帯域BWtから帯域BWαを差し引いた結果を帯域BWβの値に定める。
【0040】
ステップS21では、優先クラスのパケットについて、情報収集区間A1で観測されたパケットのノード(ルータ)内滞在時間Tisys(A1)を次式によりクラス毎に(優先クラスのみ)計算する。
Tisys(A1)=xi(A1)+ρi(A1)xi(A1)/(2(1−ρi(A1)))・・・(1)
但し、
xi(A1)=8pi(A1)/BW(Ci,A1):平均処理時間(sec)
pi(A1):平均パケット長(byte)
BW(Ci,A1):i番目のクラスに割り当てた帯域の大きさ
ρi(A1)=λi(A1)xi(A1):使用率
λi(A1)=qi(A1)/nT:到着率
qi(A1):情報収集区間A1に到着したi番目のクラスのパケット数
ステップS22では、優先クラスについてクラス毎に帯域の割り当てを更新する。具体的には、ステップS21で求めたパケットの滞在時間Tisys(A1)が各クラスの要求する遅延時間diよりも小さくなるように、帯域BW(Ci,A3)の大きさを割り当てる。すなわち、優先クラスについては直近のn周期の区間(A1)で収集して得られた情報に基づいて、遅延時間diの条件を満足するような帯域を制御対象区間A3に与える。
【0041】
従って、全ての優先クラスについては、それが要求する遅延時間diをほぼ満足するように帯域が割り当てられる。また、遅延時間diを満足できないような優先クラスのパケットについては、予めそのような呼の受付を拒否するように呼受付で制御している。
ステップS23では、まずステップS22で優先グループに属する全てのクラスに割り当てた帯域BW(Ci,A3)の総和BWrを求める。
ステップS24では、帯域BWβから帯域BWrを差し引いた結果を残余の帯域BWzとして求める。
【0042】
ステップS2では、非優先クラスについて、残余の帯域BWzをクラス毎に割り当てる。具体的には、情報収集区間A1で収集して得られた到着パケット数N(Ck,A1)及び平均パケット長PL(Ck,A1)(非優先クラスのみ)に基づいて、k番目の各クラスCkの帯域BW(Ck,A3)を次式を用いて求める。
BW(Ck,A3)=BWz・uk・vk/(非優先クラスのuk・vkの総和)・・・(2)
但し
uk=N(Ck,A1)(非優先クラスのみ)
vk=PL(Ck,A1)(非優先クラスのみ)
すなわち、非優先クラスのパケットについては、情報収集区間A1で到着したパケット情報量(パケット数×平均パケット長)に比例した割合で、帯域BWzを各クラスに配分する。このため、非優先クラスについては使用頻度が高くなるとますます多くの帯域が割り当てられる。また、使用頻度が低くなると割り当てられる帯域は小さくなる。
【0043】
図1の処理によって各クラスに割り当てられる帯域BW(Cj)(j=1〜N)の大きさは、ルータのスケジューリングの際の「重み」に相当し、制御対象区間A3における優先度に直結する。
すなわち、制御対象区間A3におけるクラスCjの優先度の重みW(Cj,A3)は次式で与えられる。
【0044】
W(Cj,A3)=BW(Cj,A3)/BWt ・・・(3)
但し、非優先グループの各クラスについては、優先グループの各クラスの待ち行列にパケットが存在しない場合のみ、上記の重みに従って待ち行列が選択されパケットが処理される。
次に、帯域割り当ての具体例について説明する。
【0045】
(具体例1)
この例では、次のような状態を想定する。
BWt:12Mbps
BWα:0
T:5秒
n:1
m:1
クラス数N:3
クラス1:優先クラス
クラス2,クラス3:非優先クラス
現時点t:0
また、情報収集区間A1(−5,0)における各クラスの使用状態として次の状態を想定する。
【0046】
クラス1の到着パケット数:2
クラス2の到着パケット数:2
クラス3の到着パケット数:6
クラス1の平均パケット長:100
クラス2の平均パケット長:200
クラス3の平均パケット長:300
ここで、帯域BWrが8Mbpsである場合を想定すると、制御対象区間A3(5,10)に対する各クラスへの割り当て帯域は次のようになる。
【0047】
クラス1:8Mbps
クラス2:(12-8)×2×200/(2×200+6×300)=0.727Mbps
クラス3:(12-8)×6×300/(2×200+6×300)=3.273Mbps
(具体例2)
この例では、観測周期Tの整数倍(KT)のある区間で、優先クラスのパケットの到着数が多すぎて、非優先グループに対する帯域の割り当てが少なくなり、非優先グループに属するあるクラス(未処理クラス)のパケットが全く処理されなかった場合を想定する。
【0048】
この場合には、(KT)の区間毎に、次の制御対象区間A3における全帯域のX(%)の帯域を前記未処理クラスに割り当てて処理する。係数K,Xは、各クラスの遅延時間がある値以上にならないように計算により求められる。
すなわち、未処理の非優先クラスを検出した場合には、図1のステップS19で帯域BWαを未処理の非優先クラスに割り当てる。
【0049】
また、ここでは次の状態を想定する。
BWt:12Mbps
T:5秒
n:1
m:1
クラス数N:3
クラス1:優先クラス
クラス2:非優先クラス
クラス3:非優先クラス(未処理クラス)
K:2
X:10(%)
現時点t:0
また、情報収集区間A1(−5,0)における各クラスの使用状態として次の状態を想定する。
【0050】
クラス1の到着パケット数:9
クラス2の到着パケット数:1
クラス3の到着パケット数:0
クラス1の平均パケット長:100
クラス2の平均パケット長:200
クラス3の平均パケット長:300
ここで、帯域BWrが11Mbpsであり、区間(−10,0)でクラス3のパケットが1個も処理されなかった場合を想定する。この場合、制御対象区間A3(5,10)に対する各クラスへの割り当て帯域は次のようになる。
【0051】
クラス1:12−1.2=10.8Mbps
クラス2:0Mbps
クラス3:12×10/100=1.2Mbps
すなわち、未処理クラスであるクラス3に対しては、次の制御区間でそのパケットを処理できるように(1.2Mbps)の帯域が優先的に割り当てられる。
【0052】
従って、この形態では実時間性の高いクラスに対しては、前もって要求遅延時間を満たすのに十分な帯域を確保しておくことができる。また、直近のある時間区間において使用量(パケット数で判断)の多いクラスについては、さらに優先させてスループットを上げ、遅延時間を短くするための優先制御をダイナミックに実時間に近い微小時間内で実現することができる。
【0053】
また、使用頻度の少ない通過パケット数の少ないクラスに対しても、各ノード(ルータ)内の遅延時間がある限度値以上にならないように最低限の帯域を割り当てることができる。
【0054】
【発明の効果】
本発明によれば、使用頻度の高いクラスのパケットを優先させるように帯域を割り当てることができる。しかも、実時間性の高いアプリケーションの要求品質を満足するようにそのクラスのパケットの帯域を割り当てることができる。また、実時間性の低いクラスについても、比較的長い時間の平均的なスループットをある値以上にすることが可能である。
【0055】
本発明の装置を採用することにより、IP網などを利用するユーザあるいは使用アプリケーションに対して利用頻度に応じた帯域の割り当てが可能になるため、網内の通信量を益々増加させ、網の利用を活発化させることが可能になる。
【図面の簡単な説明】
【図1】実施の形態のパケットスケジューリング処理を示すフローチャートである。
【図2】本発明を実施するルータの構成を示すブロック図である。
【図3】実施の形態の処理のタイミングを示すタイムチャートである。
【符号の説明】
10 パケット情報収集部
11 クラス決定部
12 ヘッダ読み取り測定部
13 パケットヘッダ解析/計算部
14 ルーチングテーブル
15 ヘッダ書き込み制御部
16 トラヒック特性量計算部
17 割り当て帯域計算部
18 処理クラス指示部
19 データベース
20 スケジューリング部
21 キューバッファ
22 パケット処理部
31 時計
32 タイマ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a packet scheduling method and a packet scheduling apparatus, and is used, for example, in various routers in an autonomous system (AS) provided in an IP (Internet Protocol) network to determine the processing order of input packets.
[0002]
[Prior art]
For example, various types of packets are sequentially input to a router provided in an IP network or the like. A plurality of queues (queues) are provided inside a router that processes various types of packets, and input packets are stored in queues corresponding to the types and then processed.
[0003]
Such a process for determining the order in which packets stored in a plurality of queues are processed is called packet scheduling. The following techniques are conventionally known as packet scheduling methods.
(1) Round Robin: Packets in the first queue, packets in the second queue, packets in the third queue,... The number of packets to be processed at one time is determined in advance (generally one). Processing is skipped for queues where there are no packets to be processed.
[0004]
(2) WRR (Weighted Round Robin): When the packet weight is different from the “weight” for each packet class (queue), use the “normalized weight” obtained by dividing the weight by the average packet length. The number of packets corresponding to is processed by the round robin.
(3) DRR (Deficit Round Robin): In the WRR scheme, it is devised not to require information on the average packet length in advance. The details are processed in the following procedure. A certain “reference amount” is given for each class (queue), and if the packet length at the head of a certain queue is equal to or smaller than the reference amount, the packet is processed. The reference amount is reduced by the packet length. In this way, the queue is processed continuously until the reference amount is less than the packet length to be processed next. When it is not satisfied, the processing target moves to the next queue in the round robin method. When the head packet length of all queues becomes larger than the reference amount of each queue, a reference amount is newly added to all the queues.
[0005]
(4) GPS (Generalized Processor Sharing): This is a scheduling method in which servers having an infinite processing capacity for N queues in which packets exist are simultaneously processed at a service rate of 1 / N. When there is no packet to be processed in a certain queue, the processing capacity for that is equally allocated to the other queues. This is an ideal method that cannot be realized in practice.
[0006]
(5) WFQ (Weighted Fair Queueing): This is a method for approximating the GPS system. In GPS, in parallel, infinitesimal processing is performed in parallel. The packet processing end scheduled time is calculated bit by bit, and processing is performed in order from the packet with the earlier time.
(6) CB-WFQ (Class-based Weighted Fair Queueing): A weight value is fixedly assigned to each queue.
[0007]
For example, Japanese Patent Laid-Open No. 9-83547 discloses that scheduling is performed based on the weight set for each packet queue and the packet accumulation amount of the packet queue.
Further, when selecting a packet scheduling method, the selection is generally made in consideration of the following matters.
[0008]
(A) What and how to realize by scheduling (for example, wanting to finish the processing within the upper limit of the difference in priority, fairness, and delay time).
(B) How to define priority and whether it is actually realized.
(C) Whether there is a need to consider fairness between classes, and how to consider it if necessary.
[0009]
(D) How easy is it to actually realize it in the device?
The most convenient method is selected in consideration of the combination of the above items.
[0010]
[Problems to be solved by the invention]
For example, in an IP network, various types of packets are mixed and transmitted in order to carry information of various types of applications. Application types include voice (VoIP), video (Video on Demand and video conference), Telnet, X-Window, WWW, electronic mail, FTP, and the like.
[0011]
Packets that carry voice and image application information are called "stream traffic". A packet carrying application information such as Telnet or X-Window is called “interactive traffic”. Further, a packet carrying application information such as WWW, electronic mail, and FTP is called “bulk transfer type traffic”.
[0012]
For “stream type traffic” and “interactive type traffic”, the real-time property is important, and if the delay time in the middle of transmission increases, the transmission quality deteriorates remarkably. For “bulk transfer traffic”, the real-time property is not so important.
When the CB-WFQ method is adopted, a large weight is allocated in advance to a queue that processes “stream traffic” and “interactive traffic”, and a small weight is allocated to a queue that processes “bulk transfer traffic”. By doing so, it is possible to ensure the quality for applications where real-time requirements are severe.
[0013]
However, when the weight of each queue is fixedly determined as in the CB-WFQ method, the quality of a specific application using a queue to which a small weight is assigned may be significantly reduced. That is, when a specific queue is used frequently and many packets arrive within a short time compared to the bandwidth allocated to the queue, the delay time in the queue is significantly increased.
[0014]
Further, when using the technique disclosed in Japanese Patent Laid-Open No. 9-83547, scheduling is dynamically performed according to the amount of packets stored in the packet queue, so that the priority of each class of packets changes sequentially. . Therefore, the bandwidth cannot be guaranteed for a specific class of packets having high real-time characteristics. In addition, the size of the bandwidth allocated to a specific class may become too small.
[0015]
In the packet scheduling method and the packet scheduling apparatus, the present invention effectively uses all the available bandwidths to prevent the deterioration of the quality of applications that are severe in real-time characteristics, and transmits even applications with small real-time requirements. The purpose is to prevent the delay time from increasing.
[0016]
[Means for Solving the Problems]
  Claim 1 classifies input packets into a plurality of classes, classifies the plurality of classes into priority groups in which real time required for processing is important and non-priority groups other than the priority groups, and sequentially A packet scheduling method for holding an input packet as a queue provided for each of the plurality of classes, and determining an order of packets to be taken out of the queue for processing, wherein the packet is assigned to the non-priority group When the allocated bandwidth is too small and there is an unprocessed non-priority class (hereinafter referred to as the first non-priority class), the queue for storing the packets of the unprocessed non-priority class First, assigning a bandwidth BWα obtained by first multiplying all bandwidths BWt by X (X is a coefficient);
  A second band BWr that is sufficient to satisfy the required delay time of each priority class in the priority group is obtained by subtracting the band BWα allocated to the first non-priority class from the total band BWt. For the second non-priority class obtained by removing the first non-priority class from the non-priority class belonging to the non-priority group.βTo bandwidth BWrAnd a third step of assigning a band BWz obtained by subtracting.
[0017]
  In claim 1,Band BWα is allocated to the first non-priority class. This facilitates the processing of queues where the allocated bandwidth is too small and processing has been delayed.
  In addition, the queue holding the packets of each priority class belonging to the priority group is allocated a bandwidth BWr sufficient to satisfy the request delay time of each priority class.It is guessed.
  Further, the band BWz is assigned to the second non-priority class.
  Therefore, a priority group whose real time required for processing is important and a non-priority group other than the priority group are efficiently processed.
[0018]
  A second aspect of the present invention provides the packet scheduling method according to the first aspect, wherein whether or not the first non-priority class exists is determined., SpecialPeriodBy identifying for each class belonging to the non-priority group whether or not there is a class in which the bandwidth allocated duringHolds packets of each class belonging to the non-priority groupeachQueuePriority for extracting the packet fromIs performed based on a weight according to a difference in usage frequency detected in the most recent specific period.
[0020]
  3. The packet scheduling method according to claim 1, wherein, in the first step, the usage frequency of each class of the non-priority group is determined by the number of packets arriving in the specific period and an average packet of arriving packets. Based on lengthDynamicallyIt is characterized by detecting.
[0021]
  ContractIn claim 3, since the frequency of use of each class is detected based on the number of packets arriving in the specific period and the average packet length of the arriving packets, each packet length of the arriving packet varies. Can also detect the usage frequency of each class.
[0022]
  According to a fourth aspect of the present invention, the input packets are classified into a plurality of classes, and the plurality of classes are classified into a priority group in which real time required for processing is important and a non-priority group other than the priority group, and sequentially A packet scheduling apparatus for storing packets input to the plurality of classes as a queue provided for each of the plurality of classes and determining an order of packets taken out from the queue for processing, the non-priority group When the size of the bandwidth allocated to is too small and there is an unprocessed non-priority class (hereinafter referred to as the first non-priority class), the queue for storing the packets of the unprocessed non-priority class is stored in the queue. On the other hand, first band allocating means for allocating a band BWα obtained by first multiplying all bands BWt by X (X is a coefficient), and from all bands BWt Second band allocating means for allocating a band BWr sufficient to satisfy the required delay time of each priority class in the priority group to the band BWβ obtained by subtracting the band BWα allocated to the first non-priority class For the second non-priority class obtained by removing the first non-priority class from the non-priority class belonging to the non-priority group, the bandwidth BWβTo bandwidth BWrAnd a third band allocating unit that allocates a band BWz obtained by subtracting.
[0023]
In the packet scheduling apparatus according to the fourth aspect, the packet scheduling can be performed similarly to the first aspect.
[0024]
DETAILED DESCRIPTION OF THE INVENTION
An embodiment of a packet scheduling method and a packet scheduling apparatus according to the present invention will be described with reference to FIGS. This form corresponds to all the claims.
[0025]
  FIG. 1 is a flowchart showing packet scheduling processing in this form. FIG. 2 is a block diagram showing a configuration of a router that implements the present invention. FIG. 3 is a time chart showing the timing of processing in this form.
  In this form,The first bandwidth allocation means, the second bandwidth allocation means, and the third bandwidth allocation means are:Traffic characteristic amount calculation unit 16 (S15, S19, S22, S25)And the processing class instruction unit 18.
[0026]
In this embodiment, it is assumed that the packet scheduling method and the packet scheduling apparatus of the present invention are applied to the router of FIG. 2 connected to the IP network.
Referring to FIG. 2, this router includes a packet information collection unit 10, a class determination unit 11, a header reading measurement unit 12, a packet header analysis / calculation unit 13, a routing table 14, a header write control unit 15, and a traffic characteristic amount calculation unit. 16, an allocated bandwidth calculation unit 17, a processing class instruction unit 18, a database (DB) 19, a scheduling unit 20, a clock 31 and a timer 32.
[0027]
The scheduling unit 20 includes N queue buffers 21 (1) to 21 (N) and a packet processing unit 22. The queue buffer 21 can be composed of, for example, a FIFO (first in first out) memory.
Packets arriving at this router from the outside are input to the packet information collecting unit 10, accumulated in any one queue buffer 21 by the scheduling unit 20, processed by the packet processing unit 22, and output to the outside.
[0028]
The packet information collection unit 10 extracts header information including the destination, class, and packet length from each packet and notifies the class determination unit 11 of the header information. The class determination unit 11 classifies the packet type into N or less classes based on the header information class. Also, the class of the priority group is distinguished from the class of the non-priority group.
The packet information collection unit 10 writes the input packet into one queue buffer 21 corresponding to the class classified by the class determination unit 11.
[0029]
The header information including the destination and class of each packet is input from the class determination unit 11 to the packet header analysis / calculation unit 13 through the header reading measurement unit 12.
The packet header analysis / calculation unit 13 refers to the routing table 14 based on the header information and acquires destination information. This destination information passes through the header write control unit 15 and is written in a packet on the queue buffer 21 as next router information.
[0030]
The traffic characteristic amount calculation unit 16 calculates the traffic characteristic amount for each specific section for each class of packet. The allocated bandwidth calculation unit 17 allocates the bandwidth of each class according to the characteristic amount obtained by the traffic characteristic amount calculation unit 16.
The bandwidth value allocated by the allocated bandwidth calculation unit 17 is input to the processing class instruction unit 18 as the weight of each class. Further, the processing class instruction unit 18 receives the number of processing packets for each specific section from the traffic characteristic amount calculation unit 16.
[0031]
The processing class instruction unit 18 instructs the packet processing unit 22 on the class of the packet to be processed by the packet processing unit 22. The packet processing unit 22 takes out the packet of the class instructed from the processing class instruction unit 18 from the head of the corresponding queue buffer 21 and processes it.
Details of the packet scheduling process for determining the order of packets taken out from the queue buffers 21 (1) to 21 (N) by the packet processing unit 22 of FIG. 2 will be described below.
[0032]
The packet class may be determined depending on the type of application, may be determined at the time of user contract, or may be determined at the start of communication.
Application types include voice (VoIP), video (Video on Demand and video conference), Telnet, X-Window, WWW, electronic mail, FTP, and the like.
[0033]
Packets that carry voice and image application information are called "stream traffic". A packet carrying application information such as Telnet or X-Window is called “interactive traffic”. Further, a packet carrying application information such as WWW, electronic mail, and FTP is called “bulk transfer type traffic”.
[0034]
For “stream type traffic” and “interactive type traffic”, the real-time property is important, and if the delay time in the middle of transmission increases, the transmission quality deteriorates remarkably. For “bulk transfer traffic”, the real-time property is not so important.
Therefore, in this packet scheduling process, the packet class is classified into a priority group and a non-priority group. Packet classes corresponding to “stream traffic” and “interactive traffic” are classified into priority groups because real-time characteristics are important. Further, the packet class corresponding to “bulk transfer type traffic” is classified into a non-priority group because the real-time property is not important. Each class belonging to the priority group is called a priority class, and each class belonging to the non-priority group is called a non-priority class.
[0035]
The packet scheduling process shown in FIG. 1 represents a bandwidth allocation procedure for queues (the contents of each queue buffer 21) that process packets of each class. The processing priority of the packets accumulated in each queue is determined according to the size of the bandwidth allocated to each queue.
Further, the packet scheduling process shown in FIG. 1 is executed at the timing shown in FIG. That is, when the current time is t, information is collected for the previous information collection section A1, calculation is performed in the calculation section A2, and bandwidth is allocated to the control target section A3.
[0036]
If the packet arrives at the input of the router in FIG. 2, the packet scheduling process proceeds from step S12 to step S13 in FIG. In step S13, the class of the arrived packet is identified. In the next step S14, the arrived packet is transferred to one queue buffer 21 associated with the class. In step S15, the number of packets arriving for each class and the average packet length are calculated.
[0037]
When the predetermined timing for allocating the bandwidth to each class is reached, the process proceeds from step S11 to S16. Steps S16 to S19 are processes for guaranteeing a minimum bandwidth for a non-priority class packet.
In step S16, it is identified whether or not there is a non-priority class in a certain monitoring section (between t-KT and t) where the allocated bandwidth is too small to process the packet at all. When it exists, it progresses to step S18, and when it does not exist, it progresses to step S17.
[0038]
In step S17, the value of the band BWα (bps) is set to zero.
In step S18, the result of multiplying the entire bandwidth BWt (bps) of the router by a coefficient X (for example, 0.1) is set to the value of the bandwidth BWα. The coefficients X and K are obtained by calculation so that the delay time of each class does not exceed a certain value.
In step S19, the bandwidth BWα is assigned to the non-priority class that could not process the packet.
[0039]
When there are a plurality of non-priority classes that could not process a packet, a part of the bandwidth BWα is assigned to each non-priority class so that the delay time of each class does not exceed a certain value.
In step S20, the result of subtracting the band BWα from the entire band BWt is determined as the value of the band BWβ.
[0040]
In step S21, for the priority class packet, the stay time Tisys (A1) in the node (router) of the packet observed in the information collection section A1 is calculated for each class (only the priority class) by the following equation.
Tisys (A1) = xi (A1) + ρi (A1) xi (A1) / (2 (1-ρi (A1))) (1)
However,
xi (A1) = 8 pi (A1) / BW (Ci, A1): Average processing time (sec)
pi (A1): Average packet length (bytes)
BW (Ci, A1): Band size allocated to the i-th class
ρi (A1) = λi (A1) xi (A1): Usage rate
λi (A1) = qi (A1) / nT: arrival rate
qi (A1): Number of packets of the i-th class that arrived in the information collection section A1
In step S22, bandwidth allocation is updated for each class for the priority class. Specifically, the size of the band BW (Ci, A3) is assigned so that the stay time Tisys (A1) of the packet obtained in step S21 is smaller than the delay time di requested by each class. That is, for the priority class, a band that satisfies the condition of the delay time di is given to the control target section A3 based on information obtained by collecting the last n periods (A1).
[0041]
  Accordingly, the bandwidth is allocated to all the priority classes so as to substantially satisfy the delay time di required by the priority class. In addition, for a priority class packet that cannot satisfy the delay time di, the call reception is controlled so as to reject the reception of such a call in advance.
  In step S23, first, a sum BWr of the bandwidth BW (Ci, A3) assigned to all classes belonging to the priority group in step S22 is obtained.
  In step S24,The result of subtracting the band BWr from the band BWβ is obtained as the remaining band BWz.
[0042]
  Step S25In the non-priority class, the remaining bandwidth BWz is assigned for each class. Specifically, each kth class is determined based on the number of arrival packets N (Ck, A1) and average packet length PL (Ck, A1) (non-priority class only) collected in the information collection section A1. The Ck band BW (Ck, A3) is obtained using the following equation.
BW (Ck, A3) = BWz · uk · vk / (sum of uk and vk of non-priority class) (2)
However,
uk = N (Ck, A1) (non-priority class only)
vk = PL (Ck, A1) (non-priority class only)
  That is, for the non-priority class packets, the bandwidth BWz is allocated to each class at a rate proportional to the amount of packet information (number of packets × average packet length) arriving in the information collection section A1. For this reason, more and more bandwidth is allocated to the non-priority class as the frequency of use increases. In addition, as the usage frequency decreases, the allocated bandwidth decreases.
[0043]
The size of the bandwidth BW (Cj) (j = 1 to N) allocated to each class by the processing of FIG. 1 corresponds to the “weight” at the time of router scheduling, and is directly linked to the priority in the control target section A3. .
That is, the priority weight W (Cj, A3) of the class Cj in the control target section A3 is given by the following equation.
[0044]
W (Cj, A3) = BW (Cj, A3) / BWt (3)
However, for each class of the non-priority group, the queue is selected according to the above weight and the packet is processed only when there is no packet in the queue of each class of the priority group.
Next, a specific example of bandwidth allocation will be described.
[0045]
(Specific example 1)
In this example, the following state is assumed.
BWt: 12Mbps
BWα: 0
T: 5 seconds
n: 1
m: 1
Number of classes N: 3
Class 1: Priority class
Class 2, Class 3: Non-priority class
Current time: 0
Further, the following state is assumed as the usage state of each class in the information collection section A1 (−5, 0).
[0046]
Number of class 1 arrival packets: 2
Number of class 2 arrival packets: 2
Number of class 3 arrival packets: 6
Class 1 average packet length: 100
Class 2 average packet length: 200
Class 3 average packet length: 300
Here, assuming that the bandwidth BWr is 8 Mbps, the bandwidth assigned to each class for the control target section A3 (5, 10) is as follows.
[0047]
Class 1: 8 Mbps
Class 2: (12-8) x 2 x 200 / (2 x 200 + 6 x 300) = 0.727 Mbps
Class 3: (12-8) x 6 x 300 / (2 x 200 + 6 x 300) = 3.273 Mbps
(Specific example 2)
In this example, in a section with an integer multiple (KT) of the observation period T, the number of arrivals of packets in the priority class is too large, and the allocation of bandwidth to the non-priority group is reduced, and a certain class belonging to the non-priority group (not yet) Assume that no processing class packet is processed.
[0048]
In this case, for each section (KT), the X (%) band of the entire band in the next control target section A3 is assigned to the unprocessed class for processing. The coefficients K and X are obtained by calculation so that the delay time of each class does not exceed a certain value.
That is, when an unprocessed non-priority class is detected, the bandwidth BWα is assigned to an unprocessed non-priority class in step S19 in FIG.
[0049]
Here, the following state is assumed.
BWt: 12Mbps
T: 5 seconds
n: 1
m: 1
Number of classes N: 3
Class 1: Priority class
Class 2: Non-priority class
Class 3: Non-priority class (unprocessed class)
K: 2
X: 10 (%)
Current time: 0
Further, the following state is assumed as the usage state of each class in the information collection section A1 (−5, 0).
[0050]
Number of class 1 arrival packets: 9
Number of class 2 arrival packets: 1
Number of class 3 arrival packets: 0
Class 1 average packet length: 100
Class 2 average packet length: 200
Class 3 average packet length: 300
Here, it is assumed that the bandwidth BWr is 11 Mbps and no class 3 packet is processed in the section (−10, 0). In this case, the bandwidth allocated to each class for the control target section A3 (5, 10) is as follows.
[0051]
Class 1: 12-1.2 = 10.8Mbps
Class 2: 0 Mbps
Class 3: 12 × 10/100 = 1.2 Mbps
That is, a bandwidth of (1.2 Mbps) is preferentially assigned to class 3, which is an unprocessed class, so that the packet can be processed in the next control section.
[0052]
Therefore, in this form, a sufficient bandwidth can be secured in advance for the class having high real-time characteristics to satisfy the required delay time. In addition, for classes with a large amount of usage (determined by the number of packets) in the most recent time interval, priority control for increasing throughput and shortening delay time is dynamically performed within a very short time close to real time. Can be realized.
[0053]
Also, a minimum bandwidth can be allocated to a class with a small number of passing packets that is not frequently used so that the delay time in each node (router) does not exceed a certain limit value.
[0054]
【The invention's effect】
According to the present invention, it is possible to allocate a bandwidth so that a packet of a frequently used class is prioritized. In addition, the bandwidth of the packet of the class can be allocated so as to satisfy the required quality of the application with high real-time property. Further, even for a class having low real-time characteristics, the average throughput for a relatively long time can be set to a certain value or more.
[0055]
By adopting the apparatus of the present invention, it becomes possible to allocate a bandwidth according to the frequency of use to a user who uses an IP network or an application to be used. Can be activated.
[Brief description of the drawings]
FIG. 1 is a flowchart illustrating packet scheduling processing according to an embodiment.
FIG. 2 is a block diagram showing a configuration of a router for implementing the present invention.
FIG. 3 is a time chart illustrating processing timings according to the embodiment.
[Explanation of symbols]
10 Packet information collection unit
11 Class decision part
12 Header reading measurement unit
13 Packet header analysis / calculation section
14 Routing table
15 Header write controller
16 Traffic characteristic calculation section
17 Allocated bandwidth calculator
18 Processing class indicator
19 Database
20 Scheduling Department
21 Queue buffer
22 Packet processing part
31 clock
32 timer

Claims (4)

入力されるパケットを複数のクラスに区分するとともに、前記複数のクラスを、処理に要する実時間が重要な優先グループと、前記優先グループ以外の非優先グループとに分類し、順次入力されるパケットを前記複数のクラス毎に設けられた待ち行列として保持し、処理のために前記待ち行列から取り出されるパケットの順序を決定するためのパケットスケジューリング方法であって、
前記非優先グループに割り当てられた帯域の大きさが過小であり、未処理の非優先クラス(以下、第1非優先クラスと称する)が存在する場合、前記未処理の非優先クラスのパケットを蓄積する待ち行列に対して、最初に全帯域BWtにX(Xは係数)を掛けて得られる帯域BWαを割り当てる第1のステップと、
全帯域BWtから前記第1非優先クラスに割り当てた帯域BWαを差し引いて得られた帯域BWβに、前記優先グループ内の各優先クラスの要求遅延時間を満足するのに十分な帯域BWrを割り当てる第2のステップと、
前記非優先グループに属する非優先クラスから前記第1非優先クラスを除いて得られる第2非優先クラスに対して、帯域BWβから帯域BWを差し引いて得られた帯域BWzを割り当てる第3のステップと
から構成されることを特徴とするパケットスケジューリング方法。
The input packets are classified into a plurality of classes, and the plurality of classes are classified into a priority group in which real time required for processing is important and a non-priority group other than the priority group. A packet scheduling method for determining a sequence of packets held as a queue provided for each of the plurality of classes and taken out of the queue for processing,
If the bandwidth allocated to the non-priority group is too small and there is an unprocessed non-priority class (hereinafter referred to as the first non-priority class), the packets of the unprocessed non-priority class are stored. A first step of assigning a bandwidth BWα obtained by first multiplying all bandwidths BWt by X (X is a coefficient) to the queue to be
A second bandwidth BWr that is sufficient to satisfy the required delay time of each priority class in the priority group is obtained by subtracting the bandwidth BWα allocated to the first non-priority class from the total bandwidth BWt. And the steps
A third non-priority class obtained by subtracting the first non-priority class from the non-priority class belonging to the non-priority group is assigned a band BWz obtained by subtracting the band BW r from the band BW β . A packet scheduling method comprising the steps of:
請求項1に記載のパケットスケジューリング方法において、
前記第1非優先クラスが存在するか否かの判断は、特定期間の間に割り当てられた帯域が小さすぎて、パケットを全く処理できなかったクラスが存在するか否かを前記非優先グループに属するクラス毎に識別することにより行い、
前記非優先グループに属する各クラスのパケットを保持する待ち行列から、前記パケットを取り出す優先度の決定は、直近の特定期間で検出された使用頻度の違いに応じた重みに基づいて行う
ことを特徴とするパケットスケジューリング方法。
The packet scheduling method according to claim 1, wherein
Said first whether the non-preferential class exists judgment, too small bandwidth allocated between between Japanese periodical, whether the non-priority group or class that could not be processed at all the packet exists By identifying each class belonging to
The priority for extracting the packet from each queue that holds packets of each class belonging to the non-priority group is determined based on the weight according to the difference in use frequency detected in the most recent specific period. A characteristic packet scheduling method.
請求項1記載のパケットスケジューリング方法において、
前記第1のステップにおいて、
前記非優先グループの各クラスの使用頻度を、前記特定期間に到着したパケットの数及び到着したパケットの平均パケット長に基づいてダイナミックに検出することを特徴とするパケットスケジューリング方法。
The packet scheduling method according to claim 1, wherein
In the first step,
A packet scheduling method, wherein the usage frequency of each class of the non-priority group is dynamically detected based on the number of packets arriving in the specific period and the average packet length of the arriving packets.
入力されるパケットを複数のクラスに区分するとともに、前記複数のクラスを、処理に要する実時間が重要な優先グループと、前記優先グループ以外の非優先グループとに分類し、順次に入力されるパケットを前記複数のクラス毎に設けられた待ち行列として蓄積し、処理のために前記待ち行列から取り出されるパケットの順序を決定するためのパケットスケジューリング装置であって、
前記非優先グループに割り当てられた帯域の大きさが過小であり、未処理の非優先クラス(以下、第1非優先クラスと称する)が存在する場合、前記未処理の非優先クラスのパケットを蓄積する待ち行列に対して、最初に全帯域BWtにX(Xは係数)を掛けて得られる帯域BWαを割り当てる第1の帯域割り当て手段と、
全帯域BWtから前記第1非優先クラスに割り当てた帯域BWαを差し引いて得られた帯域BWβに、前記優先グループ内の各優先クラスの要求遅延時間を満足するのに十分な帯域BWrを割り当てる第2の帯域割り当て手段と、
前記非優先グループに属する非優先クラスから前記第1非優先クラスを除いて得られる第2非優先クラスに対して、帯域BWβから帯域BWを差し引いて得られた帯域BWzを割り当てる第3の帯域割り当て手段と、
から構成されることを特徴とするパケットスケジューリング装置。
Packets that are input sequentially by classifying the input packets into a plurality of classes, and classifying the plurality of classes into priority groups in which real time required for processing is important and non-priority groups other than the priority groups A packet scheduling device for determining the order of packets taken out of the queue for processing,
If the bandwidth allocated to the non-priority group is too small and there is an unprocessed non-priority class (hereinafter referred to as the first non-priority class), the packets of the unprocessed non-priority class are stored. First bandwidth allocating means for allocating a bandwidth BWα obtained by first multiplying the entire bandwidth BWt by X (X is a coefficient) to the queue to be
A second bandwidth BWr that is sufficient to satisfy the required delay time of each priority class in the priority group is obtained by subtracting the bandwidth BWα allocated to the first non-priority class from the total bandwidth BWt. Bandwidth allocation means,
A third non-priority class obtained by subtracting the first non-priority class from the non-priority class belonging to the non-priority group is assigned a band BWz obtained by subtracting the band BW r from the band BW β . Bandwidth allocation means;
A packet scheduling apparatus comprising:
JP2000305247A 2000-10-04 2000-10-04 Packet scheduling method and packet scheduling apparatus Expired - Fee Related JP3649661B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000305247A JP3649661B2 (en) 2000-10-04 2000-10-04 Packet scheduling method and packet scheduling apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000305247A JP3649661B2 (en) 2000-10-04 2000-10-04 Packet scheduling method and packet scheduling apparatus

Publications (2)

Publication Number Publication Date
JP2002118585A JP2002118585A (en) 2002-04-19
JP3649661B2 true JP3649661B2 (en) 2005-05-18

Family

ID=18786145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000305247A Expired - Fee Related JP3649661B2 (en) 2000-10-04 2000-10-04 Packet scheduling method and packet scheduling apparatus

Country Status (1)

Country Link
JP (1) JP3649661B2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040052012A (en) 2002-12-13 2004-06-19 한국전자통신연구원 Packet scheduling system and method for high-speed packet networks
JP4335619B2 (en) 2003-09-04 2009-09-30 株式会社エヌ・ティ・ティ・ドコモ Packet priority control apparatus and method
USRE43385E1 (en) 2003-09-30 2012-05-15 Research In Motion Limited Communication method
US8289972B2 (en) * 2004-11-10 2012-10-16 Alcatel Lucent Gigabit passive optical network strict priority weighted round robin scheduling mechanism
JP2006287385A (en) * 2005-03-31 2006-10-19 Nec Corp Packet scheduling method and apparatus utilizing hsdpa
JP2006352420A (en) * 2005-06-15 2006-12-28 Kddi Corp Terminal sending and receiving quality packet including communication quality information, quality report server, and program
AU2005336604B2 (en) 2005-09-22 2010-06-17 Blackberry Limited Mobile station, fixed station, communication system and communication method
JP5372988B2 (en) * 2011-03-22 2013-12-18 株式会社日立製作所 Data synchronization server, system, and data transfer bandwidth control method
JP2016127531A (en) * 2015-01-07 2016-07-11 日本電信電話株式会社 Communication network system, network device therefor, communication band allocation control method and program
KR102020978B1 (en) * 2019-04-03 2019-09-11 한화시스템(주) Tactical data link modem based on TDMA

Also Published As

Publication number Publication date
JP2002118585A (en) 2002-04-19

Similar Documents

Publication Publication Date Title
US7969882B2 (en) Packet transfer rate monitoring control apparatus, method, and program
JP5365415B2 (en) Packet relay apparatus and congestion control method
US7958260B2 (en) Method and apparatus for queuing data flows
EP1646192B1 (en) Packet switch, scheduling device, drop control circuit, multicast control circuit and QOS control device
KR100323258B1 (en) Rate guarantees through buffer management
JP3526269B2 (en) Inter-network relay device and transfer scheduling method in the relay device
US7411971B2 (en) Systems and methods for the schedule alignment of packet flow
JP4454338B2 (en) Packet shaping device and packet shaping method
JPH0690255A (en) Method for control of congestion of data network
JP2002208937A (en) Flow controller and node device
JP3878603B2 (en) Packet scheduling method and apparatus
WO2010014208A1 (en) Dynamic setting of optimal buffer sizes in ip networks
CA2462793C (en) Distributed transmission of traffic streams in communication networks
JP3649661B2 (en) Packet scheduling method and packet scheduling apparatus
US20130044755A1 (en) Scalable Packet Scheduling Policy for Vast Number of Sessions
KR101737516B1 (en) Method and apparatus for packet scheduling based on allocating fair bandwidth
US7142514B2 (en) Bandwidth sharing using emulated weighted fair queuing
CN101212417B (en) Time granularity based internet QoS assurance method
JP4087279B2 (en) BAND CONTROL METHOD AND BAND CONTROL DEVICE THEREOF
JP2001186170A (en) Packet-scheduling system and method and recording medium for recording program to execute method
JP3601592B2 (en) Packet scheduling method
JP3581056B2 (en) Traffic observing device, traffic monitoring device, datagram transfer device, and datagram transfer system
JP4302014B2 (en) Ethernet frame transfer apparatus and method
JP4391346B2 (en) COMMUNICATION CONTROL METHOD, COMMUNICATION CONTROL DEVICE, CONTROL PROGRAM, AND RECORDING MEDIUM
KR101626564B1 (en) Flow processing method for packet switching network

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040914

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041112

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050215

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090225

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090225

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100225

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110225

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110225

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120225

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees