JP3435293B2 - パケットスケジューリング装置及びパケット転送方法 - Google Patents
パケットスケジューリング装置及びパケット転送方法Info
- Publication number
- JP3435293B2 JP3435293B2 JP23915996A JP23915996A JP3435293B2 JP 3435293 B2 JP3435293 B2 JP 3435293B2 JP 23915996 A JP23915996 A JP 23915996A JP 23915996 A JP23915996 A JP 23915996A JP 3435293 B2 JP3435293 B2 JP 3435293B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- scheduling
- queue
- output
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L12/5602—Bandwidth control in ATM Networks, e.g. leaky bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/527—Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/621—Individual queue per connection or flow, e.g. per VC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6235—Variable service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5651—Priority, marking, classes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、ソーティング処理
を伴わずにパケット出力のパケットスケジューリングを
行うパケットスケジューリング装置およびパケット転送
方法に関する。
を伴わずにパケット出力のパケットスケジューリングを
行うパケットスケジューリング装置およびパケット転送
方法に関する。
【0002】
【従来の技術】IP(Internet Protoc
ol)プロトコルをベースにした従来のインターネット
は、ベストエフォート、すなわち、ネットワーク遅延な
どの通信品質(QOS;Quality Of Ser
vice)の保証は行なわず、宛先にパケットを誤りな
く届けることを目的としたネットワークであった。しか
しながら、近年のインターネットではQOSの保証まで
考慮したアーキテクチャへ移行しつつある。この場合、
QOSは、IPパケットヘッダ中のソースアドレス、宛
先アドレス、プロトコル番号、TCP/UDPのポート
番号などから定義される「フロー」単位に保証される。
ol)プロトコルをベースにした従来のインターネット
は、ベストエフォート、すなわち、ネットワーク遅延な
どの通信品質(QOS;Quality Of Ser
vice)の保証は行なわず、宛先にパケットを誤りな
く届けることを目的としたネットワークであった。しか
しながら、近年のインターネットではQOSの保証まで
考慮したアーキテクチャへ移行しつつある。この場合、
QOSは、IPパケットヘッダ中のソースアドレス、宛
先アドレス、プロトコル番号、TCP/UDPのポート
番号などから定義される「フロー」単位に保証される。
【0003】パケット転送レベルでは、フロー別にパケ
ットキューを設け、パケットキューのスケジューリング
が行なわれる。パケットキューのスケジューリングは方
式として、フローごとに異なる使用帯域に関する重みを
与え、重みに応じた割合でパケット長を考慮してキュー
のサービスを行なう重み付け公平スケジューリングアル
ゴリズムとして、Self Clocked Fair
Queueing(SCFQ)が、文献「S.Gol
estani,“A Self−Clocked Fa
ir Queueing Scheme for Br
oadbandApplications”,In P
roc. of INFOCOM’94.pp.636
−646,1994.」で提案されている。また、Vi
rtual Clockと呼ばれる同様のアルゴリズム
が、文献「L.Zhang.“Virtual Clo
ck: A New Traffic Control
Algorithm for Packet Swi
tching Networking”,In Pro
c. of SIGCOMM’90.pp.19−2
9,1990.」で提案されている。
ットキューを設け、パケットキューのスケジューリング
が行なわれる。パケットキューのスケジューリングは方
式として、フローごとに異なる使用帯域に関する重みを
与え、重みに応じた割合でパケット長を考慮してキュー
のサービスを行なう重み付け公平スケジューリングアル
ゴリズムとして、Self Clocked Fair
Queueing(SCFQ)が、文献「S.Gol
estani,“A Self−Clocked Fa
ir Queueing Scheme for Br
oadbandApplications”,In P
roc. of INFOCOM’94.pp.636
−646,1994.」で提案されている。また、Vi
rtual Clockと呼ばれる同様のアルゴリズム
が、文献「L.Zhang.“Virtual Clo
ck: A New Traffic Control
Algorithm for Packet Swi
tching Networking”,In Pro
c. of SIGCOMM’90.pp.19−2
9,1990.」で提案されている。
【0004】一般に、重み付け公平スケジューリングに
おいては、パケットまたはパケットキューに対して、重
みや到着パケット長に基づいて計算されるタイムスタン
プが付加され、タイムスタンプの小さいパケットもしく
はパケットキューから順にパケットを出力していくこと
を基本とする。この際、出力候補の中からタイムスタン
プが最小のものを選ぶために、ソーティング処理や半順
序木の管理が必要となるが、これらの計算量は、log
2 Nのオーダーとなる。ここで、Nはフロー数である。
おいては、パケットまたはパケットキューに対して、重
みや到着パケット長に基づいて計算されるタイムスタン
プが付加され、タイムスタンプの小さいパケットもしく
はパケットキューから順にパケットを出力していくこと
を基本とする。この際、出力候補の中からタイムスタン
プが最小のものを選ぶために、ソーティング処理や半順
序木の管理が必要となるが、これらの計算量は、log
2 Nのオーダーとなる。ここで、Nはフロー数である。
【0005】そこで、DRR(Deficit Rou
nd Robin)と呼ばれる、ソーティングを行なわ
ないタイプのスケジューリングアルゴリズムが文献
「M.Shreedhar and George V
arghese,“Efficient Fair Q
ueueing using Deficit Rou
nd Robin”,Proceedings of
SIGCOMM’95.pp.231−242,199
5.」で提案されている。
nd Robin)と呼ばれる、ソーティングを行なわ
ないタイプのスケジューリングアルゴリズムが文献
「M.Shreedhar and George V
arghese,“Efficient Fair Q
ueueing using Deficit Rou
nd Robin”,Proceedings of
SIGCOMM’95.pp.231−242,199
5.」で提案されている。
【0006】以下、DRRについて説明する。DRRで
は、図8に示されるようにフロー別のパケットキュー1
20の他に、現在パケットが溜まっている(アクティブ
な)パケットキューのフローIDが保持されるアクティ
ブリストと、現在、各フローが現在送信可能なバイト数
を表すカウンタを使用する。図8において、各フロー
a,b,c,dの重みをそれぞれ、wa ,wb ,wc ,
wd (バイト)とする。ただし、これらの重みは最大パ
ケット長以上であるものとする。
は、図8に示されるようにフロー別のパケットキュー1
20の他に、現在パケットが溜まっている(アクティブ
な)パケットキューのフローIDが保持されるアクティ
ブリストと、現在、各フローが現在送信可能なバイト数
を表すカウンタを使用する。図8において、各フロー
a,b,c,dの重みをそれぞれ、wa ,wb ,wc ,
wd (バイト)とする。ただし、これらの重みは最大パ
ケット長以上であるものとする。
【0007】図8においては、パケット内の文字はパケ
ットの識別情報を表す。例えば、b3(200)で表さ
れるパケットは、フローbの3番目の到着パケットで、
パケット長は200バイトである。ここでは、a,b,
c,dの4つのフローが存在するのとする。
ットの識別情報を表す。例えば、b3(200)で表さ
れるパケットは、フローbの3番目の到着パケットで、
パケット長は200バイトである。ここでは、a,b,
c,dの4つのフローが存在するのとする。
【0008】アクティブリストのNextフィールド
は、次のアクティブなパケットキューのフローIDが入
る。また、アクティブリストは、アクティブなフローの
先頭、最後、現在選択中のテーブルエントリのフローI
Dを示すポインタも持っており、それぞれ、Head,
Tail,Nowで表される。図8では、フローa,
b,dのエントリがこの順につながっており、Head
はa、Tailはb、Nowはaを指している。Now
の値は、最初Headにセットされ、Tailまで達す
るとHeadに戻る。NowがHeadからTailま
で一巡するまでの時間をラウンドと呼ぶ。
は、次のアクティブなパケットキューのフローIDが入
る。また、アクティブリストは、アクティブなフローの
先頭、最後、現在選択中のテーブルエントリのフローI
Dを示すポインタも持っており、それぞれ、Head,
Tail,Nowで表される。図8では、フローa,
b,dのエントリがこの順につながっており、Head
はa、Tailはb、Nowはaを指している。Now
の値は、最初Headにセットされ、Tailまで達す
るとHeadに戻る。NowがHeadからTailま
で一巡するまでの時間をラウンドと呼ぶ。
【0009】wa =wb =wc =wd =500とする
と、カウンタには、初期値として重み500が入る。パ
ケット出力部130は、アクティブリストのNowで示
されるエントリからフローIDfを取り出して(この場
合f=a)、対応するカウンタと対応するパケットキュ
ー120の先頭パケットのパケット長との差が0以上で
あり、かつ、対応するパケットキュー120がアクティ
ブである間、対応するパケットキュー120からパケッ
トを出力し、対応するカウンタの値を出力したパケット
のパケット長だけデクリメントすることを繰り返す。そ
の後、パケットキュー120がまだアクティブであれば
対応するカウンタの値をwf だけインクリメントし、そ
うでなければ対応するカウンタの値をwf にセットす
る。次にNowを更新する。NowがTailに達して
いれば、NowはHeadにセットされ、その他の場合
にはNowの次のエントリにセットされる。そして、新
しいNowが指すエントリについて同様の処理が繰り返
される。
と、カウンタには、初期値として重み500が入る。パ
ケット出力部130は、アクティブリストのNowで示
されるエントリからフローIDfを取り出して(この場
合f=a)、対応するカウンタと対応するパケットキュ
ー120の先頭パケットのパケット長との差が0以上で
あり、かつ、対応するパケットキュー120がアクティ
ブである間、対応するパケットキュー120からパケッ
トを出力し、対応するカウンタの値を出力したパケット
のパケット長だけデクリメントすることを繰り返す。そ
の後、パケットキュー120がまだアクティブであれば
対応するカウンタの値をwf だけインクリメントし、そ
うでなければ対応するカウンタの値をwf にセットす
る。次にNowを更新する。NowがTailに達して
いれば、NowはHeadにセットされ、その他の場合
にはNowの次のエントリにセットされる。そして、新
しいNowが指すエントリについて同様の処理が繰り返
される。
【0010】また、パケットの到着により新たにパケッ
トキュー120がアクティブとなった場合には、直ちに
アクティブリストが更新される。例えば図8において、
フローcのパケットキュー120がアクティブになる
と、フローbのテーブルエントリのNextフィールド
がdからcに変更され、また、エントリcのNextフ
ィールドはdに設定される。
トキュー120がアクティブとなった場合には、直ちに
アクティブリストが更新される。例えば図8において、
フローcのパケットキュー120がアクティブになる
と、フローbのテーブルエントリのNextフィールド
がdからcに変更され、また、エントリcのNextフ
ィールドはdに設定される。
【0011】図8において、新たにパケット到着がない
場合に1ラウンド内のパケット出力系列は、a1(10
0),b1(300),b2(200),d1(30
0),d2(100)となり、1ラウンド終了時点での
フローa,b,c,dのカウンタの値は、それぞれ、9
00,600,500,500となる。すなわち、DR
Rでは、前のラウンドでパケット長がカウンタ値より大
きいために出力できなかったフローについては、出力さ
れなかったバイト数を記憶しておき、次のラウンドでそ
の分だけ重みよりも多く送るようにする。
場合に1ラウンド内のパケット出力系列は、a1(10
0),b1(300),b2(200),d1(30
0),d2(100)となり、1ラウンド終了時点での
フローa,b,c,dのカウンタの値は、それぞれ、9
00,600,500,500となる。すなわち、DR
Rでは、前のラウンドでパケット長がカウンタ値より大
きいために出力できなかったフローについては、出力さ
れなかったバイト数を記憶しておき、次のラウンドでそ
の分だけ重みよりも多く送るようにする。
【0012】この方式では、パケット出力部130が次
の出力パケットを選択するのにかかる時間はフロー数に
依存せずに一定となる。また、フローの入力トラヒック
が申告トラヒックパラメータに従う場合の遅延の最大値
や、ラウンドよりも大きい時間スケールでみたときのフ
ェアネスが保証される。
の出力パケットを選択するのにかかる時間はフロー数に
依存せずに一定となる。また、フローの入力トラヒック
が申告トラヒックパラメータに従う場合の遅延の最大値
や、ラウンドよりも大きい時間スケールでみたときのフ
ェアネスが保証される。
【0013】しかしながら、DRRでは、フローが一旦
選択されると、カウンタがデクリメントできなくなる
か、パケットキューが空になるまで同じフローのパケッ
トが選択され続けるために、ラウンドより小さい時間に
おいてフロー単位のバースト性が大きくなるため、フェ
アネス特性が劣化することである。この傾向は、最大パ
ケット長が大きくなるほど、すなわち、重みの最小値が
大きくなるほど顕著になる。
選択されると、カウンタがデクリメントできなくなる
か、パケットキューが空になるまで同じフローのパケッ
トが選択され続けるために、ラウンドより小さい時間に
おいてフロー単位のバースト性が大きくなるため、フェ
アネス特性が劣化することである。この傾向は、最大パ
ケット長が大きくなるほど、すなわち、重みの最小値が
大きくなるほど顕著になる。
【0014】
【発明が解決しようとする課題】従来の重み付け公平ス
ケジューリングアルゴリズムの一方式であるDRRで
は、ラウンドより小さい時間においてフロー単位のバー
スト性が大きくなるため、フェアネス特性が劣化する問
題点があった。
ケジューリングアルゴリズムの一方式であるDRRで
は、ラウンドより小さい時間においてフロー単位のバー
スト性が大きくなるため、フェアネス特性が劣化する問
題点があった。
【0015】本発明は、上記事情を考慮してなされたも
ので、重み付け公平スケジューリングアルゴリズムの一
方式であるDRRよりもトラヒックのバースト性を抑
え、短い時間スケールでのフェアネス性能を向上させる
ことが可能なパケットスケジューリング装置およびパケ
ット転送方法を提供することを目的とする。
ので、重み付け公平スケジューリングアルゴリズムの一
方式であるDRRよりもトラヒックのバースト性を抑
え、短い時間スケールでのフェアネス性能を向上させる
ことが可能なパケットスケジューリング装置およびパケ
ット転送方法を提供することを目的とする。
【0016】
【課題を解決するための手段】本発明に係るパケットス
ケジューリング装置は、パケットを保持する複数のパケ
ットキューと、受信したパケットを所定のパケットキュ
ー(例えばパケットの持つフローIDで定まるもの)に
入力する入力手段と、現在のラウンドで送信可能なパケ
ット量(例えばバイト数)が所定の条件を満たすパケッ
トキューから、先頭パケットを出力すべきパケットキュ
ーを選択するスケジューリング手段と、選択されたパケ
ットキューから先頭パケットを出力する出力手段とを備
え、前記入力手段は、前記受信パケットを前記所定のパ
ケットキューに入力するとともに、各受信パケットに対
応する所定のスケジューリング情報を前記スケジューリ
ング手段に入力し、前記スケジューリング手段は、前記
スケジューリング情報(例えばフローID)を保持する
ための2つのスケジューリングキューを持ち、一方のス
ケジューリングキューを、前記条件を満たすパケットキ
ューに保持されたパケットに対応するスケジューリング
情報を保持するための現在のラウンド用のスケジューリ
ングキューとして使用し、他方のスケジューリングキュ
ーを、前記条件を満たさないパケットキューに保持され
たパケットに対応するスケジューリング情報を保持する
ための次のラウンド用のスケジューリングキューとして
使用し、パケット出力時には、前記現在のラウンド用と
して使用しているスケジューリングキューからスケジュ
ーリング情報を取り出し、該スケジューリング情報をも
とにパケットキューを選択するとともに、該選択にあた
って、選択可能なパケットキューが複数ある場合には、
相違するパケットキューを相前後して選択するようにし
たことを特徴とする。
ケジューリング装置は、パケットを保持する複数のパケ
ットキューと、受信したパケットを所定のパケットキュ
ー(例えばパケットの持つフローIDで定まるもの)に
入力する入力手段と、現在のラウンドで送信可能なパケ
ット量(例えばバイト数)が所定の条件を満たすパケッ
トキューから、先頭パケットを出力すべきパケットキュ
ーを選択するスケジューリング手段と、選択されたパケ
ットキューから先頭パケットを出力する出力手段とを備
え、前記入力手段は、前記受信パケットを前記所定のパ
ケットキューに入力するとともに、各受信パケットに対
応する所定のスケジューリング情報を前記スケジューリ
ング手段に入力し、前記スケジューリング手段は、前記
スケジューリング情報(例えばフローID)を保持する
ための2つのスケジューリングキューを持ち、一方のス
ケジューリングキューを、前記条件を満たすパケットキ
ューに保持されたパケットに対応するスケジューリング
情報を保持するための現在のラウンド用のスケジューリ
ングキューとして使用し、他方のスケジューリングキュ
ーを、前記条件を満たさないパケットキューに保持され
たパケットに対応するスケジューリング情報を保持する
ための次のラウンド用のスケジューリングキューとして
使用し、パケット出力時には、前記現在のラウンド用と
して使用しているスケジューリングキューからスケジュ
ーリング情報を取り出し、該スケジューリング情報をも
とにパケットキューを選択するとともに、該選択にあた
って、選択可能なパケットキューが複数ある場合には、
相違するパケットキューを相前後して選択するようにし
たことを特徴とする。
【0017】送信可能なパケット量が所定の条件を満た
すパケットキューは、例えば、次のようにして選択す
る。空でないパケットキューの中で対応する送信可能な
パケット量から対応するパケットキューの先頭パケット
のパケット長を減じた値が0以上であるものを選択候補
パケットキューとする。パケット出力時に選択候補パケ
ットキューが存在する場合には、選択候補パケットキュ
ーの中から1つのパケットキューを選択する。
すパケットキューは、例えば、次のようにして選択す
る。空でないパケットキューの中で対応する送信可能な
パケット量から対応するパケットキューの先頭パケット
のパケット長を減じた値が0以上であるものを選択候補
パケットキューとする。パケット出力時に選択候補パケ
ットキューが存在する場合には、選択候補パケットキュ
ーの中から1つのパケットキューを選択する。
【0018】送信可能なパケット量は、例えば以下のよ
うにして設定される。まず、パケットキューには、パケ
ットを出力するための重みを割り付ける。重み値は、全
パケットキューについて同一にしても良いし、個別に割
り当て可能にしても良い。重み値は、対応するパケット
キューに入力されるパケットの最大パケット長以上の値
に設定する。
うにして設定される。まず、パケットキューには、パケ
ットを出力するための重みを割り付ける。重み値は、全
パケットキューについて同一にしても良いし、個別に割
り当て可能にしても良い。重み値は、対応するパケット
キューに入力されるパケットの最大パケット長以上の値
に設定する。
【0019】空であったパケットキューに新たにパケッ
トが入力された場合には、該パケットキューに対応する
送信可能なパケット量の値は、対応する重み値とする。
パケット出力時には、このパケット出力によって対応す
るパケットキューが空になる場合には送信可能なパケッ
ト量の値を0とする。
トが入力された場合には、該パケットキューに対応する
送信可能なパケット量の値は、対応する重み値とする。
パケット出力時には、このパケット出力によって対応す
るパケットキューが空になる場合には送信可能なパケッ
ト量の値を0とする。
【0020】パケット出力によって対応するパケットキ
ューが空にならない場合には、送信可能なパケット量の
値から対応するパケットキューの先頭パケットのパケッ
ト長を減じる。選択できるパケットキューがなくなった
場合に、空でない各パケットキューに対応する送信可能
なパケット量を対応する重みの分だけインクリメントす
る。
ューが空にならない場合には、送信可能なパケット量の
値から対応するパケットキューの先頭パケットのパケッ
ト長を減じる。選択できるパケットキューがなくなった
場合に、空でない各パケットキューに対応する送信可能
なパケット量を対応する重みの分だけインクリメントす
る。
【0021】ここで、本発明では、選択できるパケット
キューがなくなるまでの1ラウンドの間で、選択可能な
パケットキューが複数ある場合には、インターリーブに
すなわち前回に選択したパケットキューとは相違するも
のを選択する(ただし、そのときの状況によっては結果
的にインターリーブにパケットキューを選択しないこと
もあり得る)。したがって本発明によれば、従来のDR
Rとは異なって、ラウンドより小さい時間スケールのバ
ースト性が小さくなり、フェアネスに関する性能が向上
する。
キューがなくなるまでの1ラウンドの間で、選択可能な
パケットキューが複数ある場合には、インターリーブに
すなわち前回に選択したパケットキューとは相違するも
のを選択する(ただし、そのときの状況によっては結果
的にインターリーブにパケットキューを選択しないこと
もあり得る)。したがって本発明によれば、従来のDR
Rとは異なって、ラウンドより小さい時間スケールのバ
ースト性が小さくなり、フェアネスに関する性能が向上
する。
【0022】本発明は、パケットを出力するための重み
を個別に割り当て可能な複数のパケットキューと、受信
したパケットを所定のパケットキュー(例えばパケット
の持つフローIDで定まるもの)に入力するパケット入
力手段と、前記パケットキューごとの送信可能なパケッ
ト量(例えばバイト数)を示すカウンタ値を保持するカ
ウンタ手段と、前記パケットキューに保持されているパ
ケットを出力するためのスケジューリング情報(例えば
フローID)を保持するとともに、該スケジューリング
情報をもとに先頭パケットを出力すべきパケットキュー
を選択するスケジューリング手段と、前記スケジューリ
ング手段により選択されたパケットキューから先頭パケ
ットを出力するパケット出力手段とを備え、前記スケジ
ューリング手段は、空でないパケットキューの先頭パケ
ットの各々に対応するスケジューリング情報を保持する
第1および第2のスケジューリングキューを有し、第1
のスケジューリングキューには、対応するカウンタ値か
ら先頭パケットのパケット長を減じた値が0以上となる
パケットキューのスケジューリング情報を保持し、第2
のスケジューリングキューには、対応するカウンタ値か
ら先頭パケットのパケット長を減じた値が0未満となる
パケットキューのスケジューリング情報を保持し、パケ
ット出力時には、前記第1のスケジューリングキューか
ら前記スケジューリング情報を取り出すとともに、対応
するパケットキューがパケット出力によって空になる場
合には対応するカウンタ値を重みの値に設定し、対応す
るパケットキューがパケット出力後に空にならず、か
つ、新たな先頭パケットに対応するスケジューリング情
報を入力すべきスケジューリングキューが前記第1のス
ケジューリングキューの場合には対応するカウンタ値を
パケット出力に係るパケットのパケット長だけデクリメ
ントし、対応するパケットキューがパケット出力後に空
にならず、かつ、新たな先頭パケットに対応するスケジ
ューリング情報を入力すべきスケジューリングキューが
前記第2のスケジューリングキューの場合には対応する
カウンタの値を対応する重みの値だけインクリメント
し、前記第1のスケジューリングキューが空になった場
合には、前記第1のスケジューリングキューと前記第2
のスケジューリングキューを切り換えることを特徴とす
る。
を個別に割り当て可能な複数のパケットキューと、受信
したパケットを所定のパケットキュー(例えばパケット
の持つフローIDで定まるもの)に入力するパケット入
力手段と、前記パケットキューごとの送信可能なパケッ
ト量(例えばバイト数)を示すカウンタ値を保持するカ
ウンタ手段と、前記パケットキューに保持されているパ
ケットを出力するためのスケジューリング情報(例えば
フローID)を保持するとともに、該スケジューリング
情報をもとに先頭パケットを出力すべきパケットキュー
を選択するスケジューリング手段と、前記スケジューリ
ング手段により選択されたパケットキューから先頭パケ
ットを出力するパケット出力手段とを備え、前記スケジ
ューリング手段は、空でないパケットキューの先頭パケ
ットの各々に対応するスケジューリング情報を保持する
第1および第2のスケジューリングキューを有し、第1
のスケジューリングキューには、対応するカウンタ値か
ら先頭パケットのパケット長を減じた値が0以上となる
パケットキューのスケジューリング情報を保持し、第2
のスケジューリングキューには、対応するカウンタ値か
ら先頭パケットのパケット長を減じた値が0未満となる
パケットキューのスケジューリング情報を保持し、パケ
ット出力時には、前記第1のスケジューリングキューか
ら前記スケジューリング情報を取り出すとともに、対応
するパケットキューがパケット出力によって空になる場
合には対応するカウンタ値を重みの値に設定し、対応す
るパケットキューがパケット出力後に空にならず、か
つ、新たな先頭パケットに対応するスケジューリング情
報を入力すべきスケジューリングキューが前記第1のス
ケジューリングキューの場合には対応するカウンタ値を
パケット出力に係るパケットのパケット長だけデクリメ
ントし、対応するパケットキューがパケット出力後に空
にならず、かつ、新たな先頭パケットに対応するスケジ
ューリング情報を入力すべきスケジューリングキューが
前記第2のスケジューリングキューの場合には対応する
カウンタの値を対応する重みの値だけインクリメント
し、前記第1のスケジューリングキューが空になった場
合には、前記第1のスケジューリングキューと前記第2
のスケジューリングキューを切り換えることを特徴とす
る。
【0023】本発明では、スケジューリング情報を保持
するスケジューリングキューとして、現在送信可能なパ
ケットキューに対するものと、そうでないパケットキュ
ーに対して別々のものを用意するため、1つのスケジュ
ーリングキューからスケジューリング情報を出力してい
る期間をラウンドと考えると、DRRと同様にラウンド
を基準とした重み付け公平なスケジューリングとなる。
また、DRRと同様、スケジューリングの計算量もフロ
ー数によらず一定となる。
するスケジューリングキューとして、現在送信可能なパ
ケットキューに対するものと、そうでないパケットキュ
ーに対して別々のものを用意するため、1つのスケジュ
ーリングキューからスケジューリング情報を出力してい
る期間をラウンドと考えると、DRRと同様にラウンド
を基準とした重み付け公平なスケジューリングとなる。
また、DRRと同様、スケジューリングの計算量もフロ
ー数によらず一定となる。
【0024】さらに、スケジューリング手段により管理
される各々のスケジューリング情報は、対応するパケッ
トキューの先頭パケット1個の出力に用いられるため、
DRRとは異なり、カウンタがデクリメントできなくな
るかパケットキューが空になるまで同じフローのパケッ
トが選択され続けるということがなくなり、ラウンドよ
り小さい時間スケールのバースト性が小さくなり、フェ
アネスに関する性能が向上する。
される各々のスケジューリング情報は、対応するパケッ
トキューの先頭パケット1個の出力に用いられるため、
DRRとは異なり、カウンタがデクリメントできなくな
るかパケットキューが空になるまで同じフローのパケッ
トが選択され続けるということがなくなり、ラウンドよ
り小さい時間スケールのバースト性が小さくなり、フェ
アネスに関する性能が向上する。
【0025】好ましくは、前記第1および第2のスケジ
ューリングキューの各々は、パケットキューの先頭パケ
ットのパケット長に応じて前記スケジューリング情報を
保持する複数のパケット長別キューと、より長いパケッ
ト長を持つ先頭パケットに対応するスケジューリング情
報の保持を割り当てられたパケット長別キューほどより
高い割合でスケジューリング情報を取り出すようにした
パケット長スケジューリング手段とを有するようにして
もよい。
ューリングキューの各々は、パケットキューの先頭パケ
ットのパケット長に応じて前記スケジューリング情報を
保持する複数のパケット長別キューと、より長いパケッ
ト長を持つ先頭パケットに対応するスケジューリング情
報の保持を割り当てられたパケット長別キューほどより
高い割合でスケジューリング情報を取り出すようにした
パケット長スケジューリング手段とを有するようにして
もよい。
【0026】例えば、各パケット長別キューに割り当て
られたパケット長範囲の代表値(例えば最大値)の逆数
に応じた割合でスケジューリング情報を取り出す。本発
明では、パケット長の大小に応じてスケジューリング情
報が入るキューが異なったものとなり、パケット長が大
きいパケットは、パケット長が小さいパケットに比べて
相対的に出力されにくくなるため、パケット長の違いに
よるフェアネス特性が向上する。
られたパケット長範囲の代表値(例えば最大値)の逆数
に応じた割合でスケジューリング情報を取り出す。本発
明では、パケット長の大小に応じてスケジューリング情
報が入るキューが異なったものとなり、パケット長が大
きいパケットは、パケット長が小さいパケットに比べて
相対的に出力されにくくなるため、パケット長の違いに
よるフェアネス特性が向上する。
【0027】また、好ましくは、前記スケジューリング
手段を階層的に構成するようにしてもよい。
手段を階層的に構成するようにしてもよい。
【0028】このようにすることによって、スケジュー
リングを、クラス別に行なうことができる。これによ
り、例えば、リアルタイムクラス、ノンリアルタイムク
ラスのフローを別々に扱うことが可能になる。
リングを、クラス別に行なうことができる。これによ
り、例えば、リアルタイムクラス、ノンリアルタイムク
ラスのフローを別々に扱うことが可能になる。
【0029】また、本発明に係るパケット転送方法は、
受信したパケットを複数のパケットキューのうち所定の
もの(例えばパケットの持つフローIDで定まるもの)
に入力し一旦保持するとともに、各受信パケットに対応
する所定のスケジューリング情報(例えばフローID)
をスケジューリング手段に入力するステップと、前記ス
ケジューリング手段にて、前記スケジューリング情報を
もとにして、前記パケットキューごとに保持している現
在のラウンドで送信可能なパケット量(バイト数)が所
定の条件を満たすパケットキューから、先頭パケットを
出力すべきパケットキューを選択するステップと、選択
されたパケットキューから先頭パケットを出力するステ
ップとを有し、前記スケジューリング手段は、前記スケ
ジューリング情報を保持するために持つ2つのスケジュ
ーリングキューのうちの一方のスケジューリングキュー
を、前記条件を満たすパケットキューに保持されたパケ
ットに対応するスケジューリング情報を保持するための
現在のラウンド用のスケジューリングキューとして使用
し、他方のスケジューリングキューを、前記条件を満た
さないパケットキューに保持されたパケットに対応する
スケジューリング情報を保持するための次のラウンド用
のスケジューリングキューとして使用し、パケット出力
時には、前記現在のラウンド用として使用しているスケ
ジューリングキューからスケジューリング情報を取り出
し、該スケジューリング情報をもとにパケットキューを
選択するとともに、該選択にあたって、選択可能なパケ
ットキューが複数ある場合には、相違するパケットキュ
ーを相前後して選択することを特徴とするパケット転送
方法。
受信したパケットを複数のパケットキューのうち所定の
もの(例えばパケットの持つフローIDで定まるもの)
に入力し一旦保持するとともに、各受信パケットに対応
する所定のスケジューリング情報(例えばフローID)
をスケジューリング手段に入力するステップと、前記ス
ケジューリング手段にて、前記スケジューリング情報を
もとにして、前記パケットキューごとに保持している現
在のラウンドで送信可能なパケット量(バイト数)が所
定の条件を満たすパケットキューから、先頭パケットを
出力すべきパケットキューを選択するステップと、選択
されたパケットキューから先頭パケットを出力するステ
ップとを有し、前記スケジューリング手段は、前記スケ
ジューリング情報を保持するために持つ2つのスケジュ
ーリングキューのうちの一方のスケジューリングキュー
を、前記条件を満たすパケットキューに保持されたパケ
ットに対応するスケジューリング情報を保持するための
現在のラウンド用のスケジューリングキューとして使用
し、他方のスケジューリングキューを、前記条件を満た
さないパケットキューに保持されたパケットに対応する
スケジューリング情報を保持するための次のラウンド用
のスケジューリングキューとして使用し、パケット出力
時には、前記現在のラウンド用として使用しているスケ
ジューリングキューからスケジューリング情報を取り出
し、該スケジューリング情報をもとにパケットキューを
選択するとともに、該選択にあたって、選択可能なパケ
ットキューが複数ある場合には、相違するパケットキュ
ーを相前後して選択することを特徴とするパケット転送
方法。
【0030】なお、以上の各装置に係る発明は、方法に
係る説明としても成立する。また、上記の発明は、相当
する手順あるいは手段をコンピュータに実行させるため
のプログラムを記録した機械読取り可能な媒体としても
成立する。
係る説明としても成立する。また、上記の発明は、相当
する手順あるいは手段をコンピュータに実行させるため
のプログラムを記録した機械読取り可能な媒体としても
成立する。
【0031】
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。 (第1の実施形態)まず、本発明の第1の実施形態に係
るパケットスケジューリング装置について説明する。
実施の形態を説明する。 (第1の実施形態)まず、本発明の第1の実施形態に係
るパケットスケジューリング装置について説明する。
【0032】図1に、本実施形態に係るパケットスケジ
ューリング装置の構成を示す。本パケットスケジューリ
ング装置は、パケット入力部10、所定数のパケットキ
ュー20、パケット出力部30、制御部40を備えてい
る。
ューリング装置の構成を示す。本パケットスケジューリ
ング装置は、パケット入力部10、所定数のパケットキ
ュー20、パケット出力部30、制御部40を備えてい
る。
【0033】制御部40は、パケット出力をスケジュー
リングするものであり、スケジューリング部42、各フ
ローIDに対するカウンタ値や重み値を保持する記憶部
(図示せず)を備えている。スケジューリング部42
は、2つのスケジューリングキュー44を持つ。
リングするものであり、スケジューリング部42、各フ
ローIDに対するカウンタ値や重み値を保持する記憶部
(図示せず)を備えている。スケジューリング部42
は、2つのスケジューリングキュー44を持つ。
【0034】パケット入力部10は、到着したパケット
のヘッダからパケットを入れるべきパケットキュー20
を選択してパケットを入力するとともに、スケジューリ
ング部42にスケジューリング情報を入力する。
のヘッダからパケットを入れるべきパケットキュー20
を選択してパケットを入力するとともに、スケジューリ
ング部42にスケジューリング情報を入力する。
【0035】スケジューリング部42は、2つのスケジ
ューリングキュー44のうちスケジューリング情報の出
力用に選択されている方からスケジューリング情報を取
り出してパケット出力部30に渡す。
ューリングキュー44のうちスケジューリング情報の出
力用に選択されている方からスケジューリング情報を取
り出してパケット出力部30に渡す。
【0036】パケット出力部30は、スケジューリング
部42から渡されたスケジューリング情報により示され
るパケットキュー20から先頭パケットを出力する。パ
ケットキュー20にはパケットを出力するための重みを
個別に割り当て可能であり、各パケットキューごとに、
重み値や出力パケットのパケット長をもとにして定まる
現在送信可能なパケット量をカウンタの値として保持す
る。
部42から渡されたスケジューリング情報により示され
るパケットキュー20から先頭パケットを出力する。パ
ケットキュー20にはパケットを出力するための重みを
個別に割り当て可能であり、各パケットキューごとに、
重み値や出力パケットのパケット長をもとにして定まる
現在送信可能なパケット量をカウンタの値として保持す
る。
【0037】次に、スケジューリング部42の動作を説
明する。スケジューリング部42は、パケット入力時に
パケット入力部10からスケジューリング情報が入力さ
れると、同一のスケジューリング情報がいずれのスケジ
ューリングキュー44にも入っていない場合に、現在ス
ケジューリング情報の出力用に選択されていないスケジ
ューリングキュー44にスケジューリング情報を入力す
る(スケジューラの動作開始後は選択されているスケジ
ューリングキュー44に入力する)。入力パケットに対
応するカウンタには、重み値を設定する。
明する。スケジューリング部42は、パケット入力時に
パケット入力部10からスケジューリング情報が入力さ
れると、同一のスケジューリング情報がいずれのスケジ
ューリングキュー44にも入っていない場合に、現在ス
ケジューリング情報の出力用に選択されていないスケジ
ューリングキュー44にスケジューリング情報を入力す
る(スケジューラの動作開始後は選択されているスケジ
ューリングキュー44に入力する)。入力パケットに対
応するカウンタには、重み値を設定する。
【0038】また、スケジューリング部42は、パケッ
ト出力時に次の動作を取る。 (1)パケット出力によってそのパケットキューが空に
なる場合、対応するカウンタの値を重み値に設定する。
ト出力時に次の動作を取る。 (1)パケット出力によってそのパケットキューが空に
なる場合、対応するカウンタの値を重み値に設定する。
【0039】(2)パケット出力によってそのパケット
キューが空にならない場合、カウンタの値から新たな先
頭パケットのパケット長を減じた値が0以上であると
き、カウンタの値から出力パケットのパケット長を減
じ、スケジューリング情報の出力用に選択されているス
ケジューリングキューにスケジューリング情報を入力す
る。
キューが空にならない場合、カウンタの値から新たな先
頭パケットのパケット長を減じた値が0以上であると
き、カウンタの値から出力パケットのパケット長を減
じ、スケジューリング情報の出力用に選択されているス
ケジューリングキューにスケジューリング情報を入力す
る。
【0040】(3)パケット出力によってそのパケット
キューが空にならない場合、カウンタの値から新たな先
頭パケットのパケット長を減じた値が0未満であると
き、カウンタの値に重みの値を加え、スケジューリング
情報の出力用に選択されていないスケジューリングキュ
ーにスケジューリング情報を入力する。
キューが空にならない場合、カウンタの値から新たな先
頭パケットのパケット長を減じた値が0未満であると
き、カウンタの値に重みの値を加え、スケジューリング
情報の出力用に選択されていないスケジューリングキュ
ーにスケジューリング情報を入力する。
【0041】また、スケジューリング部42は、現在ス
ケジューリング情報の出力用に選択されている方のスケ
ジューリングキューが空になった場合には、他方のスケ
ジューリングキューを以降スケジューリング情報の出力
用として選択する(すなわち、2つのスケジューリング
キューを切り換える)。
ケジューリング情報の出力用に選択されている方のスケ
ジューリングキューが空になった場合には、他方のスケ
ジューリングキューを以降スケジューリング情報の出力
用として選択する(すなわち、2つのスケジューリング
キューを切り換える)。
【0042】図1において、パケット内の文字はパケッ
トの識別情報を表す。例えば、b3(200)で表され
るパケットは、フローbの3番目の到着パケットで、パ
ケット長は200バイトである。パケットは可変長でも
良い。ここで、フローは、IPパケットの場合には通
常、IPパケットのソースアドレス、宛先アドレス、プ
ロトコル番号、TCP/UDPのポート番号などから定
義されるが、本発明では、フローはどのように定義して
も構わない。
トの識別情報を表す。例えば、b3(200)で表され
るパケットは、フローbの3番目の到着パケットで、パ
ケット長は200バイトである。パケットは可変長でも
良い。ここで、フローは、IPパケットの場合には通
常、IPパケットのソースアドレス、宛先アドレス、プ
ロトコル番号、TCP/UDPのポート番号などから定
義されるが、本発明では、フローはどのように定義して
も構わない。
【0043】本実施形態では、最大パケット長は500
(バイト)であるとし、各フローa,b,c,dの重み
wa ,wb ,wc ,wd はすべて等しいものとして説明
する。ここでは、wa =wb =wc =wd =500(バ
イト)となる。
(バイト)であるとし、各フローa,b,c,dの重み
wa ,wb ,wc ,wd はすべて等しいものとして説明
する。ここでは、wa =wb =wc =wd =500(バ
イト)となる。
【0044】本実施形態では、カウンタの値(パケット
量)、パケットのパケット長および重み値は、バイト単
位で表しているが、任意の単位で表して良い。また、本
実施形態では、スケジューリング情報としてフローID
を使用するものとする。
量)、パケットのパケット長および重み値は、バイト単
位で表しているが、任意の単位で表して良い。また、本
実施形態では、スケジューリング情報としてフローID
を使用するものとする。
【0045】次に、本実施形態の動作について具体例を
用いて説明する。図1は、スケジューラの動作開始後、
フローaから4個、フローbから4個、フローdから2
個のパケットが到着し、パケットが1個も出力されてい
ないときの状態を示す。ここでは、スケジューリング情
報の出力のためにスケジューリングキューBが選択され
ているものとする。
用いて説明する。図1は、スケジューラの動作開始後、
フローaから4個、フローbから4個、フローdから2
個のパケットが到着し、パケットが1個も出力されてい
ないときの状態を示す。ここでは、スケジューリング情
報の出力のためにスケジューリングキューBが選択され
ているものとする。
【0046】このとき、カウンタの値はすべて500で
あり、パケット長は500バイト以下なので、パケット
キューが空でないフローa,b,dのフローIDa,
b,dが現在スケジューリング情報の出力がなされてい
ないスケジューリングキューAに入る。スケジューリン
グキューBは空である。
あり、パケット長は500バイト以下なので、パケット
キューが空でないフローa,b,dのフローIDa,
b,dが現在スケジューリング情報の出力がなされてい
ないスケジューリングキューAに入る。スケジューリン
グキューBは空である。
【0047】ここで、パケット出力のタイミングがやっ
てくるとラウンドが開始する。スケジューリング部42
は、スケジューリングキューAからフローIDaを取り
出してパケット出力部30に渡す。パケット出力部30
は、パケットキューaから先頭のパケットa1(10
0)を出力する。さらに、スケジューリング部42は、
フローaのカウンタを出力パケットのパケット長100
バイト分だけデクリメントする。この場合、フローaの
カウンタ値は400となる。また、フローaのパケット
キューの新しい先頭はパケットa2(500)となる
が、現在のカウンタ値400からこのパケットのパケッ
ト長をデクリメントすると0未満となるので、パケット
a2(500)を出力するためのフローIDaは、スケ
ジューリングキューBに入れられる。
てくるとラウンドが開始する。スケジューリング部42
は、スケジューリングキューAからフローIDaを取り
出してパケット出力部30に渡す。パケット出力部30
は、パケットキューaから先頭のパケットa1(10
0)を出力する。さらに、スケジューリング部42は、
フローaのカウンタを出力パケットのパケット長100
バイト分だけデクリメントする。この場合、フローaの
カウンタ値は400となる。また、フローaのパケット
キューの新しい先頭はパケットa2(500)となる
が、現在のカウンタ値400からこのパケットのパケッ
ト長をデクリメントすると0未満となるので、パケット
a2(500)を出力するためのフローIDaは、スケ
ジューリングキューBに入れられる。
【0048】次に、スケジューリングキューAからは、
フローIDbが取り出され、その結果、パケットb1
(300)が出力される。さらに、スケジューリング部
42は、フローbのカウンタを出力パケットのパケット
長300バイト分だけデクリメントする。この場合、フ
ローbのカウンタ値は200となる。また、フローbの
パケットキューの新しい先頭はパケットb2(100)
となるが、現在のカウンタ値300からこのパケットの
パケット長100をデクリメントすると0以上となるの
で、パケットb2(100)を出力するためのフローI
Dbは、スケジューリングキューAに入れられる。
フローIDbが取り出され、その結果、パケットb1
(300)が出力される。さらに、スケジューリング部
42は、フローbのカウンタを出力パケットのパケット
長300バイト分だけデクリメントする。この場合、フ
ローbのカウンタ値は200となる。また、フローbの
パケットキューの新しい先頭はパケットb2(100)
となるが、現在のカウンタ値300からこのパケットの
パケット長100をデクリメントすると0以上となるの
で、パケットb2(100)を出力するためのフローI
Dbは、スケジューリングキューAに入れられる。
【0049】同様の動作を繰り返すと、スケジューリン
グキューAが空になるまで、a1(100),b1(3
00),d1(300),b2(200),d2(10
0)の順番でパケットが出力される。ただし、これらの
パケットの出力中に新たなパケットの到着はないものと
する。もし、これらのパケットの出力中に、新しくフロ
ーcのパケットが到着した場合には、スケジューリング
キューAにフローIDcが入れられる。
グキューAが空になるまで、a1(100),b1(3
00),d1(300),b2(200),d2(10
0)の順番でパケットが出力される。ただし、これらの
パケットの出力中に新たなパケットの到着はないものと
する。もし、これらのパケットの出力中に、新しくフロ
ーcのパケットが到着した場合には、スケジューリング
キューAにフローIDcが入れられる。
【0050】パケットd2(100)出力後、フローd
のパケットキューは空になるため、スケジューリングキ
ューにはフローIDdは、スケジューリングキューAに
もBにも入れられない。また、フローdのカウンタ値に
は500が設定される。
のパケットキューは空になるため、スケジューリングキ
ューにはフローIDdは、スケジューリングキューAに
もBにも入れられない。また、フローdのカウンタ値に
は500が設定される。
【0051】図1の状態から状態遷移してスケジューリ
ングキューAが空になった(ラウンドが終わった)状態
を図2に示す。図2において、フローa,bに対するカ
ウンタ値が500以上になっているのは、前回のラウン
ドで送信可能だったバイト数(500)のうちパケット
長がカウンタ値よりも大きかったために出力できなかっ
た分を新しいラウンドに繰り越して使用できるようにす
るためである。
ングキューAが空になった(ラウンドが終わった)状態
を図2に示す。図2において、フローa,bに対するカ
ウンタ値が500以上になっているのは、前回のラウン
ドで送信可能だったバイト数(500)のうちパケット
長がカウンタ値よりも大きかったために出力できなかっ
た分を新しいラウンドに繰り越して使用できるようにす
るためである。
【0052】図2の状態になると、ただちに、パケット
出力のためにフローIDが取り出されるキューとしてス
ケジューリングキューBが選択され、新しいラウンドが
開始する。ラウンド開始後、新しくフローc,dのパケ
ットが到着した場合には、スケジューリングキューBに
フローc,dが入れられる。
出力のためにフローIDが取り出されるキューとしてス
ケジューリングキューBが選択され、新しいラウンドが
開始する。ラウンド開始後、新しくフローc,dのパケ
ットが到着した場合には、スケジューリングキューBに
フローc,dが入れられる。
【0053】以上のように本実施形態によれば、スケジ
ューリング情報を保持するスケジューリングキューとし
て、現在送信可能なパケットキューに対するものと、そ
うでないパケットキューに対して別々のものを用意する
ため、1つのスケジューリングキューからスケジューリ
ング情報を出力している期間をラウンドと考えると、従
来のDRRと同様にラウンドを基準とした重み付け公平
なスケジューリングとなる。また、DRRと同様、スケ
ジューリングの計算量もフロー数によらず一定となる。
ューリング情報を保持するスケジューリングキューとし
て、現在送信可能なパケットキューに対するものと、そ
うでないパケットキューに対して別々のものを用意する
ため、1つのスケジューリングキューからスケジューリ
ング情報を出力している期間をラウンドと考えると、従
来のDRRと同様にラウンドを基準とした重み付け公平
なスケジューリングとなる。また、DRRと同様、スケ
ジューリングの計算量もフロー数によらず一定となる。
【0054】さらに、各々のスケジューリング情報は、
対応するパケットキューの先頭パケット1個の出力に用
いられるため、従来のDRRとは異なり、カウンタがデ
クリメントできなくなるかパケットキューが空になるま
で同じフローのパケットが選択され続けるということが
なくなり、ラウンドより小さい時間スケールのバースト
性が小さくなり、フェアネスに関する性能が向上する。
対応するパケットキューの先頭パケット1個の出力に用
いられるため、従来のDRRとは異なり、カウンタがデ
クリメントできなくなるかパケットキューが空になるま
で同じフローのパケットが選択され続けるということが
なくなり、ラウンドより小さい時間スケールのバースト
性が小さくなり、フェアネスに関する性能が向上する。
【0055】(第2の実施形態)次に、本発明の第2の
実施形態に係るパケットスケジューリング装置について
説明する。
実施形態に係るパケットスケジューリング装置について
説明する。
【0056】図3に、本実施形態に係るパケットスケジ
ューリング装置の構成を示す。本パケットスケジューリ
ング装置は、パケット入力部10、所定数のパケットキ
ュー20、パケット出力部30、制御部40を備えてい
る。
ューリング装置の構成を示す。本パケットスケジューリ
ング装置は、パケット入力部10、所定数のパケットキ
ュー20、パケット出力部30、制御部40を備えてい
る。
【0057】制御部40は、スケジューリング部42、
各フローIDに対するカウンタ値や重み値を保持する記
憶部(図示せず)を備えている。スケジューリング部4
2は、AとBの2つのスケジューリングキュー44を持
つ。
各フローIDに対するカウンタ値や重み値を保持する記
憶部(図示せず)を備えている。スケジューリング部4
2は、AとBの2つのスケジューリングキュー44を持
つ。
【0058】また、本実施形態では、スケジューリング
キュー44のそれぞれは、所定数(ここでは3つ)のパ
ケット長別キュー46、パケット長スケジューラ48を
持つ。
キュー44のそれぞれは、所定数(ここでは3つ)のパ
ケット長別キュー46、パケット長スケジューラ48を
持つ。
【0059】本実施形態は、このスケジューリングキュ
ー44の内部構成が相違する以外は第1の実施形態と同
様の構成であり、対応する部分の説明は省略する。本実
施形態では、スケジューリングキューA(B)を、3個
のパケット長別キューA1,A2,A3(B1,B2,
B3)、および3個のパケット長別キューをスケジュー
リングするためのパケット長スケジューラSA (SB )
によって構成する。
ー44の内部構成が相違する以外は第1の実施形態と同
様の構成であり、対応する部分の説明は省略する。本実
施形態では、スケジューリングキューA(B)を、3個
のパケット長別キューA1,A2,A3(B1,B2,
B3)、および3個のパケット長別キューをスケジュー
リングするためのパケット長スケジューラSA (SB )
によって構成する。
【0060】ここでは、パケット長別キューA1および
B1には、パケットキューの先頭のパケットのうちパケ
ット長が100バイト以下のパケットに対するフローI
Dが、パケット長別キューA2およびB2には、パケッ
トキューの先頭のパケットのうちパケット長が100バ
イトを越え300バイト以下のパケットに対するフロー
IDが、パケット長別キューA3およびB3には、パケ
ットキューの先頭のパケットのうちパケット長が300
バイトを越え500バイト以下のパケットに対するフロ
ーIDが入るものとする。
B1には、パケットキューの先頭のパケットのうちパケ
ット長が100バイト以下のパケットに対するフローI
Dが、パケット長別キューA2およびB2には、パケッ
トキューの先頭のパケットのうちパケット長が100バ
イトを越え300バイト以下のパケットに対するフロー
IDが、パケット長別キューA3およびB3には、パケ
ットキューの先頭のパケットのうちパケット長が300
バイトを越え500バイト以下のパケットに対するフロ
ーIDが入るものとする。
【0061】パケット長スケジューラSA は、パケット
長別キューA1,A2,A3を、1/100:1/30
0:1/500=15:5:3で重みづけ公平にスケジ
ューリングを行なう。同様に、パケット長スケジューラ
SB は、パケット長別キューB1,B2,B3を、1/
100:1/300:1/500=15:5:3で重み
づけ公平にスケジューリングを行なう。なお、パケット
長スケジューラのスケジューリングアルゴリズムは、ど
のような重みづけ公平アルゴリズムでも良い。
長別キューA1,A2,A3を、1/100:1/30
0:1/500=15:5:3で重みづけ公平にスケジ
ューリングを行なう。同様に、パケット長スケジューラ
SB は、パケット長別キューB1,B2,B3を、1/
100:1/300:1/500=15:5:3で重み
づけ公平にスケジューリングを行なう。なお、パケット
長スケジューラのスケジューリングアルゴリズムは、ど
のような重みづけ公平アルゴリズムでも良い。
【0062】第1の実施形態と同様、パケット内の文字
はパケットの識別情報を表す。例えば、b3(200)
で表されるパケットは、フローbの3番目の到着パケッ
トで、パケット長は200バイトである。パケットは可
変長でも良い。ここでは、a,b,c,dの4つのフロ
ーが存在するものとする。また、最大パケット長は50
0(バイト)であるとし、各フローa,b,c,dの重
みwa ,wb ,wc ,wd はすべて等しいものとする。
このとき、wa =wb =wc =wd =500(バイト)
となる。ここでも、パケット長および重みはバイト単位
で表しているが、任意の単位で表して良い。
はパケットの識別情報を表す。例えば、b3(200)
で表されるパケットは、フローbの3番目の到着パケッ
トで、パケット長は200バイトである。パケットは可
変長でも良い。ここでは、a,b,c,dの4つのフロ
ーが存在するものとする。また、最大パケット長は50
0(バイト)であるとし、各フローa,b,c,dの重
みwa ,wb ,wc ,wd はすべて等しいものとする。
このとき、wa =wb =wc =wd =500(バイト)
となる。ここでも、パケット長および重みはバイト単位
で表しているが、任意の単位で表して良い。
【0063】図3は、スケジューラの動作開始後、フロ
ーaから4個、フローbから4個、フローdから2個の
パケットが到着し、パケットが1個も出力されていない
ときの状態を表す。
ーaから4個、フローbから4個、フローdから2個の
パケットが到着し、パケットが1個も出力されていない
ときの状態を表す。
【0064】このとき、カウンタの値はすべて500で
あり、パケット長は500バイト以下なので、パケット
キューが空でないフローa,b,dのフローIDa,
b,dがスケジューリングキューAに入る。さらに、ス
ケジューリングキューAの中で、フローIDaはパケッ
トキューの先頭パケットのパケット長が100バイトで
あるため、パケット長別キューA1に、フローIDb,
dはパケットキューの先頭パケットのパケット長が30
0バイトであるためパケット長別キューA2に入る。
あり、パケット長は500バイト以下なので、パケット
キューが空でないフローa,b,dのフローIDa,
b,dがスケジューリングキューAに入る。さらに、ス
ケジューリングキューAの中で、フローIDaはパケッ
トキューの先頭パケットのパケット長が100バイトで
あるため、パケット長別キューA1に、フローIDb,
dはパケットキューの先頭パケットのパケット長が30
0バイトであるためパケット長別キューA2に入る。
【0065】ここで、パケット出力のタイミングがやっ
てくるとラウンドが開始する。スケジューリング部42
内のパケット長スケジューラ48が所定のアルゴリズム
により、空でないパケット長別キュー46のどれかを選
択する。ここでは、パケット長別キューA1が選択され
るものとすると、スケジューリング部42は、パケット
長別キューA1からフローIDaを取り出してパケット
出力部30に渡す。パケット出力部30は、パケットキ
ューaから先頭のパケットa1(100)を出力する。
さらに、スケジューリング部30は、フローaのカウン
タを出力パケットのパケット長100バイト分だけデク
リメントする。この場合、フローaのカウンタ値は40
0となる。また、フローaのパケットキューの新しい先
頭はパケットa2(500)となるが、現在のカウンタ
値400からこのパケットのパケット長をデクリメント
すると0未満となるので、パケットa2(500)を出
力するためのフローIDaは、スケジューリングキュー
Bのパケット長別キューB3に入れる。
てくるとラウンドが開始する。スケジューリング部42
内のパケット長スケジューラ48が所定のアルゴリズム
により、空でないパケット長別キュー46のどれかを選
択する。ここでは、パケット長別キューA1が選択され
るものとすると、スケジューリング部42は、パケット
長別キューA1からフローIDaを取り出してパケット
出力部30に渡す。パケット出力部30は、パケットキ
ューaから先頭のパケットa1(100)を出力する。
さらに、スケジューリング部30は、フローaのカウン
タを出力パケットのパケット長100バイト分だけデク
リメントする。この場合、フローaのカウンタ値は40
0となる。また、フローaのパケットキューの新しい先
頭はパケットa2(500)となるが、現在のカウンタ
値400からこのパケットのパケット長をデクリメント
すると0未満となるので、パケットa2(500)を出
力するためのフローIDaは、スケジューリングキュー
Bのパケット長別キューB3に入れる。
【0066】次に、スケジューリングキューAのパケッ
ト長別キューA2から、フローIDbが取り出され(こ
の場合には、パケット長別キューA2以外は空であるた
め、パケット長スケジューラは必ずA2を選択する)、
その結果、パケットb1(300)が出力される。さら
に、スケジューリング部42は、フローbのカウンタを
す出力パケットのパケット長300バイト分だけデクリ
メントする。この場合、フローbのカウンタ値は200
となる。また、フローbのパケットキューの新しい先頭
はパケットb2(100)となるが、現在のカウンタ値
300からこのパケットのパケット長100をデクリメ
ントすると0以上となるので、パケットb2(100)
を出力するためのフローIDbは、スケジューリングキ
ューAのパケット長別キューA1に入れられる。
ト長別キューA2から、フローIDbが取り出され(こ
の場合には、パケット長別キューA2以外は空であるた
め、パケット長スケジューラは必ずA2を選択する)、
その結果、パケットb1(300)が出力される。さら
に、スケジューリング部42は、フローbのカウンタを
す出力パケットのパケット長300バイト分だけデクリ
メントする。この場合、フローbのカウンタ値は200
となる。また、フローbのパケットキューの新しい先頭
はパケットb2(100)となるが、現在のカウンタ値
300からこのパケットのパケット長100をデクリメ
ントすると0以上となるので、パケットb2(100)
を出力するためのフローIDbは、スケジューリングキ
ューAのパケット長別キューA1に入れられる。
【0067】同様の動作を繰り返すと、スケジューリン
グキューAが空になるまで、a1(100),b1(3
00),d1(300),b2(200),d2(10
0)の順番でパケットが出力される。ただし、これらの
パケットの出力中に新たなパケットの到着はないものと
する。もし、これらのパケットの出力中に、新しくフロ
ーc,dのパケットが到着した場合には、スケジューリ
ングキューAの中の、到着パケット長に対応する所定の
パケット長別キューにフローIDc,dが入れられる。
グキューAが空になるまで、a1(100),b1(3
00),d1(300),b2(200),d2(10
0)の順番でパケットが出力される。ただし、これらの
パケットの出力中に新たなパケットの到着はないものと
する。もし、これらのパケットの出力中に、新しくフロ
ーc,dのパケットが到着した場合には、スケジューリ
ングキューAの中の、到着パケット長に対応する所定の
パケット長別キューにフローIDc,dが入れられる。
【0068】パケットd2(100)出力後、フローd
のパケットキューは空になるため、スケジューリングキ
ューにはフローIDdは、スケジューリングキューAに
もBにも入れられない。また、フローdのカウンタ値に
は500が設定される。
のパケットキューは空になるため、スケジューリングキ
ューにはフローIDdは、スケジューリングキューAに
もBにも入れられない。また、フローdのカウンタ値に
は500が設定される。
【0069】図3の状態から状態遷移してスケジューリ
ングキューAが空になった(ラウンドが終わった)状態
を図4に示す。図4において、フローa,bに対するカ
ウンタ値が500以上になっているのは、前回のラウン
ドで送信可能だったバイト数(500)のうちパケット
長がカウンタ値よりも大きかったために出力できなかっ
た分を新しいラウンドに繰り越して使用できるようにす
るためである。
ングキューAが空になった(ラウンドが終わった)状態
を図4に示す。図4において、フローa,bに対するカ
ウンタ値が500以上になっているのは、前回のラウン
ドで送信可能だったバイト数(500)のうちパケット
長がカウンタ値よりも大きかったために出力できなかっ
た分を新しいラウンドに繰り越して使用できるようにす
るためである。
【0070】図4の状態になると、ただちに、パケット
出力のためにフローIDが取り出されるキューとしてス
ケジューリングキューBが選択され、新しいラウンドが
開始する。
出力のためにフローIDが取り出されるキューとしてス
ケジューリングキューBが選択され、新しいラウンドが
開始する。
【0071】ラウンド開始後、まず、スケジューリング
部42内のパケット長スケジューラ36が所定のアルゴ
リズムにより、空でないパケット長別キュー46のどれ
かを選択する。ここでは、パケット長別キューB2が選
択されるものとすると、スケジューリング部42は、パ
ケット長別キューB2からフローIDbを取り出してパ
ケット出力部に渡す。パケット出力部30は、パケット
キューbから先頭のパケットb3(200)を出力す
る。次に、新しくフローcのパケットc1(100)が
到着すると、スケジューリングキューBのパケット長別
キューB1にフローIDcが入れられる。
部42内のパケット長スケジューラ36が所定のアルゴ
リズムにより、空でないパケット長別キュー46のどれ
かを選択する。ここでは、パケット長別キューB2が選
択されるものとすると、スケジューリング部42は、パ
ケット長別キューB2からフローIDbを取り出してパ
ケット出力部に渡す。パケット出力部30は、パケット
キューbから先頭のパケットb3(200)を出力す
る。次に、新しくフローcのパケットc1(100)が
到着すると、スケジューリングキューBのパケット長別
キューB1にフローIDcが入れられる。
【0072】本パケットスケジューリング装置では、こ
れらの動作が繰り返される。次に、本実施形態で使用す
るパケット長スケジューラのスケジューリングアルゴリ
ズムの一例を示す。
れらの動作が繰り返される。次に、本実施形態で使用す
るパケット長スケジューラのスケジューリングアルゴリ
ズムの一例を示す。
【0073】図5にはスケジューリング情報入力時の動
作を示す、図6にはスケジューリング情報出力時の動作
を示す。ここで、スケジューリング情報として、フロー
IDを用いる。また、パケット長スケジューラは、スケ
ジューリングのためにパケット長別キューの番号を保持
するための図示しない1個のFIFOキューを持つ。
作を示す、図6にはスケジューリング情報出力時の動作
を示す。ここで、スケジューリング情報として、フロー
IDを用いる。また、パケット長スケジューラは、スケ
ジューリングのためにパケット長別キューの番号を保持
するための図示しない1個のFIFOキューを持つ。
【0074】まず、スケジューリング情報入力時の動作
について説明する。iを入力フローID、qをパケット
長別キューiのキュー長(パケット長別キューi内のフ
ローID数)、w(≧1)をパケット長別キューiの重
みとする。q≦wであれば、パケット長別キューの番号
iをFIFOキューに入れる。これをenqueue
(i)で表す。次に、qの値をインクリメントした結果
を、新しいパケット長別キューiのキュー長とする。
について説明する。iを入力フローID、qをパケット
長別キューiのキュー長(パケット長別キューi内のフ
ローID数)、w(≧1)をパケット長別キューiの重
みとする。q≦wであれば、パケット長別キューの番号
iをFIFOキューに入れる。これをenqueue
(i)で表す。次に、qの値をインクリメントした結果
を、新しいパケット長別キューiのキュー長とする。
【0075】次に、スケジューリング情報出力時の動作
について説明する。まず、FIFOキューの先頭のパケ
ット長別キューの番号を取り出し、これをiとする。こ
れはdequeueにより行なわれる。次に、パケット
長別キューiのキュー長をデクリメントしてqに代入す
る。qが0未満になったらq=0とする。もし、q≧w
であれば、パケット長別キューの番号iをFIFOキュ
ーに入れる。次に、qの値をパケット長別キューiのキ
ュー長とする。
について説明する。まず、FIFOキューの先頭のパケ
ット長別キューの番号を取り出し、これをiとする。こ
れはdequeueにより行なわれる。次に、パケット
長別キューiのキュー長をデクリメントしてqに代入す
る。qが0未満になったらq=0とする。もし、q≧w
であれば、パケット長別キューの番号iをFIFOキュ
ーに入れる。次に、qの値をパケット長別キューiのキ
ュー長とする。
【0076】以上のように本実施形態によれば、パケッ
ト長の大小に応じてスケジューリング情報が入るキュー
が異なったものとなり、パケット長が大きいパケット
は、パケット長が小さいパケットに比べて相対的に出力
されにくくなるため、第1の実施形態の作用効果に加
え、さらにパケット長の違いによるフェアネス特性も向
上させることができる。
ト長の大小に応じてスケジューリング情報が入るキュー
が異なったものとなり、パケット長が大きいパケット
は、パケット長が小さいパケットに比べて相対的に出力
されにくくなるため、第1の実施形態の作用効果に加
え、さらにパケット長の違いによるフェアネス特性も向
上させることができる。
【0077】(第3の実施形態)次に、本発明の第3の
実施形態に係るパケットスケジューリング装置について
説明する。
実施形態に係るパケットスケジューリング装置について
説明する。
【0078】本実施形態は、第1の実施形態や第2の実
施形態のスケジューリング部を複数持ち、それらを上位
のスケジューラで切り換え使用するものである。図7
に、本実施形態に係るパケットスケジューリング装置の
構成を示す。
施形態のスケジューリング部を複数持ち、それらを上位
のスケジューラで切り換え使用するものである。図7
に、本実施形態に係るパケットスケジューリング装置の
構成を示す。
【0079】本パケットスケジューリング装置は、パケ
ット入力部10、所定数のパケットキュー20、パケッ
ト出力部30、制御部40を備えている。制御部40
は、スケジューリング部42、各フローIDに対するカ
ウンタ値や重み値を保持する記憶部(図示せず)を備え
ている。
ット入力部10、所定数のパケットキュー20、パケッ
ト出力部30、制御部40を備えている。制御部40
は、スケジューリング部42、各フローIDに対するカ
ウンタ値や重み値を保持する記憶部(図示せず)を備え
ている。
【0080】スケジューリング部42は、所定数(ここ
では2)のクラス別スケジューリング部50、クラスス
ケジューラ52を持つ。ここでは、階層数2で下位層は
サービスクラス別にスケジューリングキューを設ける場
合の例を示す。サービスクラス数は2とする。
では2)のクラス別スケジューリング部50、クラスス
ケジューラ52を持つ。ここでは、階層数2で下位層は
サービスクラス別にスケジューリングキューを設ける場
合の例を示す。サービスクラス数は2とする。
【0081】図7において、スケジューリング部50
は、2個のクラス別スケジューリング部52と、1個の
クラススケジューラ52とから構成される。クラス別ス
ケジューリング部C1には、リアルタイムクラスのフロ
ーIDがスケジューリング情報として保持され、クラス
別スケジューリング部C2には、ノンリアルタイムクラ
スのフローIDがスケジューリング情報として保持され
る。
は、2個のクラス別スケジューリング部52と、1個の
クラススケジューラ52とから構成される。クラス別ス
ケジューリング部C1には、リアルタイムクラスのフロ
ーIDがスケジューリング情報として保持され、クラス
別スケジューリング部C2には、ノンリアルタイムクラ
スのフローIDがスケジューリング情報として保持され
る。
【0082】各クラス別スケジューリング部50の構成
は、第1の実施形態(図1)または第2の実施形態(図
3)のスケジューリング部の構成と同じである。また、
パケットキュー、パケット入力部、パケット出力部の構
成や動作も第1の実施形態または第2の実施形態と同じ
である。
は、第1の実施形態(図1)または第2の実施形態(図
3)のスケジューリング部の構成と同じである。また、
パケットキュー、パケット入力部、パケット出力部の構
成や動作も第1の実施形態または第2の実施形態と同じ
である。
【0083】本実施形態では、パケットが到着したと
き、スケジューリング部42は、パケット入力部10か
ら入力されたスケジューリング情報を入力するためのク
ラス別スケジューリング部50を選択して入力する。ク
ラススケジューラ52は、クラス別スケジューリング部
C1に1個でもスケジューリング情報が保持されていれ
ば、クラス別スケジューリング部C1から、そうでなけ
ればクラス別スケジューリング部C2から、スケジュー
リング情報を取り出してパケット出力部30に出力す
る。
き、スケジューリング部42は、パケット入力部10か
ら入力されたスケジューリング情報を入力するためのク
ラス別スケジューリング部50を選択して入力する。ク
ラススケジューラ52は、クラス別スケジューリング部
C1に1個でもスケジューリング情報が保持されていれ
ば、クラス別スケジューリング部C1から、そうでなけ
ればクラス別スケジューリング部C2から、スケジュー
リング情報を取り出してパケット出力部30に出力す
る。
【0084】なお、クラススケジューラ52のスケジュ
ーリングアルゴリズムは、クラスのサービスポリシーに
応じて任意のアルゴリズムを使用しても良い。以上のよ
うに本実施形態によれば、第1の実施形態あるいは第2
の実施形態のスケジューリングを、クラス別に行なうこ
とができる。これにより、例えば、リアルタイムクラ
ス、ノンリアルタイムクラスのフローを別々に扱うこと
が可能になる。本発明は、上述した実施の形態に限定さ
れるものではなく、その技術的範囲において種々変形し
て実施することができる。
ーリングアルゴリズムは、クラスのサービスポリシーに
応じて任意のアルゴリズムを使用しても良い。以上のよ
うに本実施形態によれば、第1の実施形態あるいは第2
の実施形態のスケジューリングを、クラス別に行なうこ
とができる。これにより、例えば、リアルタイムクラ
ス、ノンリアルタイムクラスのフローを別々に扱うこと
が可能になる。本発明は、上述した実施の形態に限定さ
れるものではなく、その技術的範囲において種々変形し
て実施することができる。
【0085】
【発明の効果】本発明によれば、パケットキューをイン
ターリーブに選択できるようにしたので、例えば、各パ
ケットキューの先頭パケットのパケット長を考慮してス
ケジューリングを行うことで、同じパケットキュー(フ
ロー)のパケットが選択され続けるということを回避で
きるようにしたので、従来のDRRとは異なり、ラウン
ドより小さい時間スケールのバースト性が小さくなり、
フェアネスに関する性能を向上させることができる。
ターリーブに選択できるようにしたので、例えば、各パ
ケットキューの先頭パケットのパケット長を考慮してス
ケジューリングを行うことで、同じパケットキュー(フ
ロー)のパケットが選択され続けるということを回避で
きるようにしたので、従来のDRRとは異なり、ラウン
ドより小さい時間スケールのバースト性が小さくなり、
フェアネスに関する性能を向上させることができる。
【図1】本発明の第1の実施形態に係るパケットスケジ
ューリング装置の基本構成を示す図
ューリング装置の基本構成を示す図
【図2】本実施形態のパケットスケジューリングを説明
するための図
するための図
【図3】本発明の第2の実施形態に係るパケットスケジ
ューリング装置の基本構成を示す図
ューリング装置の基本構成を示す図
【図4】本実施形態のパケットスケジューリングを説明
するための図
するための図
【図5】スケジューリング情報入力時のパケット長スケ
ジューラのアルゴリズムの一例を示す図
ジューラのアルゴリズムの一例を示す図
【図6】スケジューリング情報出力時のパケット長スケ
ジューラのアルゴリズムの一例を示す図
ジューラのアルゴリズムの一例を示す図
【図7】本発明の第3の実施形態に係るパケットスケジ
ューリング装置の基本構成を示す図
ューリング装置の基本構成を示す図
【図8】従来のパケットスケジューリング装置の構成を
示す図
示す図
10…パケット入力部
20…パケットキュー
30…パケット出力部
40…制御部
42…スケジューリング部
44…スケジューリングキュー
46…パケット長別キュー
48…パケット長スケジューラ
50…クラス別スケジューリング部
52…クラススケジューラ
フロントページの続き
(56)参考文献 特開 平4−336832(JP,A)
M Shreedhar et a
l,Efficient Fair Q
ueuing using Defic
it Round Robin,SIG
COMM’95,米国,ACM,1995年,
P231−242
Yao−Tzung Wang et
al,An Improved Sc
heduling Algorithm
for Weighted Roun
d−Robin Cell Multi
plexing in an ATM
Switch,ICC’94,米国,IE
EE,1994年,p1032−1037
M.Shreedhar et.a
l.,Effcient Fair Q
ueuing Using Defic
it Round−Robin,IEE
E/ACM Trans.on Net
working,米国,IEEE,1996
年 6月,Vol.4 No.3,p
375−385
Dimitrios Stiliad
is et.al.,Latency−
Rate Servers:A Gen
eral Model for Ana
lysis of Traffic S
cheduling Algorith
ms,Infocom’96,米国,IE
EE,1996年,p111−119
(58)調査した分野(Int.Cl.7,DB名)
H04L 12/56
Claims (13)
- 【請求項1】パケットを保持する複数のパケットキュー
と、 受信したパケットを所定のパケットキューに入力する入
力手段と、現在のラウンドで 送信可能なパケット量が所定の条件を
満たすパケットキューから、先頭パケットを出力すべき
パケットキューを選択するスケジューリング手段と、 選択されたパケットキューから先頭パケットを出力する
出力手段とを備え、前記入力手段は、前記受信パケットを前記所定のパケッ
トキューに入力するとともに、各受信パケットに対応す
る所定のスケジューリング情報を前記スケジューリング
手段に入力し、 前記スケジューリング手段は、前記スケジューリング情報を保持するための2つのスケ
ジューリングキューを持ち、一方のスケジューリングキ
ューを、前記条件を満たすパケットキューに保持された
パケットに対応するスケジューリング情報を保持するた
めの現在のラウンド用のスケジューリングキューとして
使用し、他方のスケジューリングキューを、前記条件を
満たさないパケットキューに保持されたパケットに対応
するスケジューリング情報を保持するための次のラウン
ド用のスケジューリングキューとして使用し、 パケット出力時には、前記現在のラウンド用として使用
しているスケジューリングキューからスケジューリング
情報を取り出し、該スケジューリング情報をもとに パケ
ットキューを選択するとともに、該選択にあたって、選
択可能なパケットキューが複数ある場合には、相違する
パケットキューを相前後して選択するようにしたことを
特徴とするパケットスケジューリング装置。 - 【請求項2】前記パケットキューの送信可能なパケット
量からその先頭パケットのパケット長を減じた値が0以
上である場合に、該パケットキューは前記条件を満たす
と判断することを特徴とする請求項1に記載のパケット
スケジューリング装置。 - 【請求項3】前記パケットキューごとの送信可能なパケ
ット量を保持し、前記出力手段が前記パケットキューか
ら先頭パケットを出力する場合に、該パケットキューの
送信可能なパケット量を更新するカウンタ手段をさらに
備えたことを特徴とする請求項1に記載のパケットスケ
ジューリング装置。 - 【請求項4】前記スケジューリング手段は、現在のラウ
ンド用として使用している前記一方のスケジューリング
キューが空になるまで、該一方のスケジューリングキュ
ーに保持されている前記スケジューリング情報をもと
に、前記パケットキューを選択し続け、該一方のスケジ
ューリングキューが空になった場合に、前記他方のスケ
ジューリングキューを、現在のラウンド用のスケジュー
リングキューとして使用するとともに、該一方のスケジ
ューリングキューを次のラウンド用のスケジューリング
キューとして使用することを特徴とする請求項1に記載
のパケットスケジューリング装置。 - 【請求項5】前記パケットキューごとの送信可能なパケ
ット量を示すカウンタ値を保持するカウンタ手段をさら
に備え、 前記現在のラウンド用として使用されているスケジュー
リングキューは、対応するカウンタ値から先頭パケット
のパケット長を減じた値が0以上となるパケットキュー
に保持されているパケットに対応するスケジューリング
情報を保持し、 前記次のラウンド用として使用されているスケジューリ
ングキューは、対応するカウンタ値から先頭パケットの
パケット長を減じた値が0未満となるパケットキューに
保持されているパケットに対応するスケジューリング情
報を保持することを特徴とする請求項1に記載のパケッ
トスケジューリング装置。 - 【請求項6】前記パケットキューは、パケットを出力す
るための重みを個別に割り当てられ、 前記スケジューリング手段は、前記パケット出力によっ
て前記パケットキューが空になる場合には対応するカウ
ンタ値を対応する重みの値に設定することを特徴とする
請求項5に記載のパケットスケジューリング装置。 - 【請求項7】前記パケットキューは、パケットを出力す
るための重みを個別に割り当てられ、 前記スケジューリング手段は、前記パケットキューがパ
ケット出力後に空にならず、かつ、該パケットキューの
新たな先頭パケットに対応するスケジューリング情報を
入力すべきスケジューリングキューが前記現在のラウン
ド用として使用されているスケジューリングキューの場
合には対応するカウンタ値をパケット出力に係るパケッ
トのパケット長だけデクリメントすることを特徴とする
請求項5に記載のパケットスケジューリング装置。 - 【請求項8】前記パケットキューは、パケットを出力す
るための重みを個別に割り当てられ、 前記スケジューリング手段は、前記パケットキューがパ
ケット出力後に空にならず、かつ、該パケットキューの
新たな先頭パケットに対応するスケジューリング情報を
入力すべきスケジューリングキューが前記次のラウンド
用として使用されているスケジューリングキューの場合
には対応するカウンタの値を対応する重みの値だけイン
クリメントすることを特徴とする請求項5に記載のパケ
ットスケジューリング装置。 - 【請求項9】前記パケットキューは、フローに対応して
設けられ、 前記入力手段は、前記受信パケットを、そのフローに応
じたパケットキューへ入力することを特徴とする請求項
1に記載のパケットスケジューリング装置。 - 【請求項10】パケットを出力するための重みを個別に
割り当て可能な複数のパケットキューと、 受信したパケットを所定のパケットキューに入力するパ
ケット入力手段と、 前記パケットキューごとの送信可能なパケット量を示す
カウンタ値を保持するカウンタ手段と、 前記パケットキューに保持されているパケットを出力す
るためのスケジューリング情報を保持するとともに、該
スケジューリング情報をもとに先頭パケットを出力すべ
きパケットキューを選択するスケジューリング手段と、 前記スケジューリング手段により選択されたパケットキ
ューから先頭パケットを出力するパケット出力手段とを
備え、 前記スケジューリング手段は、 空でないパケットキューの先頭パケットの各々に対応す
るスケジューリング情報を保持する第1および第2のス
ケジューリングキューを有し、第1のスケジューリング
キューには、対応するカウンタ値から先頭パケットのパ
ケット長を減じた値が0以上となるパケットキューのス
ケジューリング情報を保持し、第2のスケジューリング
キューには、対応するカウンタ値から先頭パケットのパ
ケット長を減じた値が0未満となるパケットキューのス
ケジューリング情報を保持し、 パケット出力時には、前記第1のスケジューリングキュ
ーから前記スケジューリング情報を取り出すとともに、
対応するパケットキューがパケット出力によって空にな
る場合には対応するカウンタ値を重みの値に設定し、対
応するパケットキューがパケット出力後に空にならず、
かつ、新たな先頭パケットに対応するスケジューリング
情報を入力すべきスケジューリングキューが前記第1の
スケジューリングキューの場合には対応するカウンタ値
をパケット出力に係るパケットのパケット長だけデクリ
メントし、対応するパケットキューがパケット出力後に
空にならず、かつ、新たな先頭パケットに対応するスケ
ジューリング情報を入力すべきスケジューリングキュー
が前記第2のスケジューリングキューの場合には対応す
るカウンタの値を対応する重みの値だけインクリメント
し、 前記第1のスケジューリングキューが空になった場合に
は、前記第1のスケジューリングキューと前記第2のス
ケジューリングキューを切り換えることを特徴とするパ
ケットスケジューリング装置。 - 【請求項11】前記第1および第2のスケジューリング
キューの各々は、パケットキューの先頭パケットのパケ
ット長に応じて前記スケジューリング情報を保持する複
数のパケット長別キューと、より長いパケット長を持つ
先頭パケットに対応するスケジューリング情報の保持を
割り当てられたパケット長別キューほどより高い割合で
スケジューリング情報を取り出すようにしたパケット長
スケジューリング手段とを有することを特徴とする請求
項10に記載のパケットスケジューリング装置。 - 【請求項12】前記スケジューリング手段を階層的に構
成したことを特徴とする請求項1、10または11に記
載のパケットスケジューリング装置。 - 【請求項13】受信したパケットを複数のパケットキュ
ーのうち所定のものに入力し一旦保持するとともに、各
受信パケットに対応する所定のスケジューリング情報を
スケジューリング手段に入力するステップと、前記スケジューリング手段にて、前記スケジューリング
情報をもとにして、 前記パケットキューごとに保持して
いる現在のラウンドで送信可能なパケット量が所定の条
件を満たすパケットキューから、先頭パケットを出力す
べきパケットキューを選択するステップと、 選択されたパケットキューから先頭パケットを出力する
ステップとを有し、 前記スケジューリング手段は、前記スケジューリング情報を保持するために持つ2つの
スケジューリングキューのうちの一方のスケジューリン
グキューを、前記条件を満たすパケットキューに保持さ
れたパケットに対応するスケジューリング情報を保持す
るための現在のラウンド用のスケジューリングキューと
して使用し、他方のスケジューリングキューを、前記条
件を満たさないパケットキューに保持されたパケットに
対応するスケジューリング情報を保持するための次のラ
ウンド用のスケジューリングキューとして使用し、 パケット出力時には、前記現在のラウンド用として使用
しているスケジューリングキューからスケジューリング
情報を取り出し、該スケジューリング情報をもとに パケ
ットキューを選択するとともに、該選択にあたって、選
択可能なパケットキューが複数ある場合には、相違する
パケットキューを相前後して選択することを特徴とする
パケット転送方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23915996A JP3435293B2 (ja) | 1996-09-10 | 1996-09-10 | パケットスケジューリング装置及びパケット転送方法 |
US08/926,474 US6101193A (en) | 1996-09-10 | 1997-09-10 | Packet scheduling scheme for improving short time fairness characteristic in weighted fair queueing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23915996A JP3435293B2 (ja) | 1996-09-10 | 1996-09-10 | パケットスケジューリング装置及びパケット転送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1084383A JPH1084383A (ja) | 1998-03-31 |
JP3435293B2 true JP3435293B2 (ja) | 2003-08-11 |
Family
ID=17040623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23915996A Expired - Fee Related JP3435293B2 (ja) | 1996-09-10 | 1996-09-10 | パケットスケジューリング装置及びパケット転送方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6101193A (ja) |
JP (1) | JP3435293B2 (ja) |
Families Citing this family (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389031B1 (en) | 1997-11-05 | 2002-05-14 | Polytechnic University | Methods and apparatus for fairly scheduling queued packets using a ram-based search engine |
US6526060B1 (en) * | 1997-12-05 | 2003-02-25 | Cisco Technology, Inc. | Dynamic rate-based, weighted fair scheduler with explicit rate feedback option |
US6618391B1 (en) * | 1998-03-27 | 2003-09-09 | Agere Systems Inc. | Method and apparatus for guaranteeing data transfer rates and delays in data packet networks using discrete data transfer rates |
US6570876B1 (en) * | 1998-04-01 | 2003-05-27 | Hitachi, Ltd. | Packet switch and switching method for switching variable length packets |
US6359900B1 (en) * | 1998-04-09 | 2002-03-19 | Novell, Inc. | Method and system for controlling access to a resource |
JP3711752B2 (ja) * | 1998-07-09 | 2005-11-02 | 株式会社日立製作所 | パケット通信装置 |
US6714517B1 (en) * | 1998-11-10 | 2004-03-30 | Extreme Networks | Method and apparatus for interconnection of packet switches with guaranteed bandwidth |
US6654374B1 (en) * | 1998-11-10 | 2003-11-25 | Extreme Networks | Method and apparatus to reduce Jitter in packet switched networks |
JP3684308B2 (ja) * | 1998-12-15 | 2005-08-17 | 富士通株式会社 | スケジューリング制御装置および交換機 |
US7406098B2 (en) | 1999-01-13 | 2008-07-29 | Qualcomm Incorporated | Resource allocation in a communication system supporting application flows having quality of service requirements |
US6229795B1 (en) * | 1999-01-13 | 2001-05-08 | Qualcomm Incorporated | System for allocating resources in a communication system |
JP3683133B2 (ja) | 1999-08-17 | 2005-08-17 | 日本電気株式会社 | パケットスケジューリング装置 |
US6480911B1 (en) * | 1999-09-23 | 2002-11-12 | At&T Corp. | Grouping class sensitive queues |
US6888842B1 (en) * | 1999-10-05 | 2005-05-03 | Nortel Networks Limited | Scheduling and reservation for dynamic resource control systems |
EP1250776A1 (en) * | 1999-10-29 | 2002-10-23 | Forskarpatent i Västsverige AB | Method and arrangements for congestion control in packet networks using thresholds and demoting of packet flows |
CA2393740A1 (en) * | 1999-12-08 | 2001-06-14 | The University Of British Columbia | Weighted fair queuing scheduler |
US6862292B1 (en) * | 2000-04-13 | 2005-03-01 | International Business Machines Corporation | Method and system for network processor scheduling outputs based on multiple calendars |
US6952424B1 (en) * | 2000-04-13 | 2005-10-04 | International Business Machines Corporation | Method and system for network processor scheduling outputs using queueing |
US6904045B1 (en) * | 2000-06-02 | 2005-06-07 | Agere Systems Inc. | Method and apparatus for guaranteeing data transfer rates and delays in asynchronous transfer mode networks using pivot sessions |
US7136382B1 (en) * | 2000-08-25 | 2006-11-14 | Novell, Inc. | System and method for providing quality of service operations using IP addresses |
US7424299B1 (en) * | 2000-09-11 | 2008-09-09 | Nokia Corporation | System and method for slot allocation with reduced need for measurement |
US7142514B2 (en) * | 2000-09-29 | 2006-11-28 | Zarlink Semiconductor V.N. Inc. | Bandwidth sharing using emulated weighted fair queuing |
US6914881B1 (en) * | 2000-11-28 | 2005-07-05 | Nortel Networks Ltd | Prioritized continuous-deficit round robin scheduling |
WO2002045013A2 (en) * | 2000-11-30 | 2002-06-06 | Allot Communications Ltd. | Network resource allocation and monitoring system |
IT1319611B1 (it) * | 2000-12-22 | 2003-10-20 | Siemens Inf & Comm Networks | Procedimento di schedulazione dei permessi di trasmissione dei dati apacchetto sui canali radio condivisi dalle stazioni mobili in sistemi |
US6957267B2 (en) * | 2000-12-28 | 2005-10-18 | Intel Corporation | Data packet processing |
US7149212B2 (en) * | 2001-03-21 | 2006-12-12 | International Business Machines Corporation | Apparatus, method and limited set of messages to transmit data between scheduler and a network processor |
US6807426B2 (en) * | 2001-04-12 | 2004-10-19 | Qualcomm Incorporated | Method and apparatus for scheduling transmissions in a communication system |
US6978144B1 (en) * | 2001-04-19 | 2005-12-20 | Cisco Technology, Inc. | Method and system for managing real-time bandwidth in a wireless network |
US7729302B2 (en) * | 2001-05-15 | 2010-06-01 | The United States Of America As Represented By The Secretary Of The Navy | Adaptive control of multiplexed input buffer channels |
JP3705353B2 (ja) | 2001-05-22 | 2005-10-12 | 日本電気株式会社 | パケットスケジューリング装置及び方法 |
US6891846B2 (en) * | 2001-06-18 | 2005-05-10 | Freescale Semiconductor, Inc. | Method and apparatus for a traffic shaper |
US7120113B1 (en) * | 2001-07-16 | 2006-10-10 | Juniper Networks, Inc. | Systems and methods for limiting low priority traffic from blocking high priority traffic |
FR2830162B1 (fr) * | 2001-09-27 | 2003-12-05 | Streamcore | Dispositif de gestion partagee |
US7020080B1 (en) * | 2001-10-09 | 2006-03-28 | Cisco Technology, Inc. | Method and apparatus for prevention of flow starvation with weighted fair queuing |
US7200144B2 (en) * | 2001-10-18 | 2007-04-03 | Qlogic, Corp. | Router and methods using network addresses for virtualization |
US7447197B2 (en) * | 2001-10-18 | 2008-11-04 | Qlogic, Corporation | System and method of providing network node services |
US6973036B2 (en) | 2001-11-01 | 2005-12-06 | International Business Machines Corporation | QoS scheduler and method for implementing peak service distance using next peak service time violated indication |
US6982986B2 (en) * | 2001-11-01 | 2006-01-03 | International Business Machines Corporation | QoS scheduler and method for implementing quality of service anticipating the end of a chain of flows |
US7103051B2 (en) * | 2001-11-01 | 2006-09-05 | International Business Machines Corporation | QoS scheduler and method for implementing quality of service with aging time stamps |
US7046676B2 (en) * | 2001-11-01 | 2006-05-16 | International Business Machines Corporation | QoS scheduler and method for implementing quality of service with cached status array |
US7280474B2 (en) * | 2001-11-01 | 2007-10-09 | International Business Machines Corporation | Weighted fair queue having adjustable scaling factor |
US7187684B2 (en) * | 2001-11-01 | 2007-03-06 | International Business Machines Corporation | Weighted fair queue having extended effective range |
US7317683B2 (en) * | 2001-11-01 | 2008-01-08 | International Business Machines Corporation | Weighted fair queue serving plural output ports |
US7310345B2 (en) * | 2001-11-01 | 2007-12-18 | International Business Machines Corporation | Empty indicators for weighted fair queues |
US7453801B2 (en) | 2001-11-08 | 2008-11-18 | Qualcomm Incorporated | Admission control and resource allocation in a communication system supporting application flows having quality of service requirements |
KR100431191B1 (ko) * | 2001-12-03 | 2004-05-12 | 주식회사 케이티 | 크레딧 기반 라운드 로빈을 이용한 패킷 스케쥴링장치 및방법 |
US8418129B1 (en) | 2001-12-14 | 2013-04-09 | Qualcomm Incorporated | Method for automatically generating code to define a system of hardware elements |
US7079545B1 (en) | 2001-12-17 | 2006-07-18 | Applied Microcircuits Corporation ( Amcc) | System and method for simultaneous deficit round robin prioritization |
US7352694B1 (en) | 2001-12-14 | 2008-04-01 | Applied Micro Circuits Corporation | System and method for tolerating data link faults in a packet communications switch fabric |
US7424013B1 (en) * | 2001-12-20 | 2008-09-09 | Applied Micro Circuits Corporation | System and method for granting arbitrated bids in the switching of information |
US7164652B2 (en) * | 2001-12-17 | 2007-01-16 | Alcatel Canada Inc. | System and method for detecting failures and re-routing connections in a communication network |
US7319695B1 (en) * | 2002-03-06 | 2008-01-15 | Agere Systems Inc. | Deficit-based striping algorithm |
US7586909B1 (en) * | 2002-03-06 | 2009-09-08 | Agere Systems Inc. | Striping algorithm for switching fabric |
US7680043B2 (en) * | 2002-03-20 | 2010-03-16 | International Business Machines Corporation | Network processor having fast flow queue disable process |
US7257124B2 (en) * | 2002-03-20 | 2007-08-14 | International Business Machines Corporation | Method and apparatus for improving the fairness of new attaches to a weighted fair queue in a quality of service (QoS) scheduler |
US7110411B2 (en) * | 2002-03-25 | 2006-09-19 | Erlang Technology, Inc. | Method and apparatus for WFQ scheduling using a plurality of scheduling queues to provide fairness, high scalability, and low computation complexity |
US7342936B2 (en) * | 2002-06-17 | 2008-03-11 | Integrated Device Technology, Inc. | Method of performing deficit round-robin scheduling and structure for implementing same |
KR100896616B1 (ko) * | 2002-06-27 | 2009-05-08 | 주식회사 케이티 | 큐를 이용한 트래픽 혼잡 제어 장치 및 방법 |
US7301943B2 (en) * | 2002-07-31 | 2007-11-27 | Industrial Technology Research Institute | QoS-oriented burstification method supporting various grades of burstification delay guarantee |
KR100461539B1 (ko) * | 2002-11-26 | 2004-12-17 | 한국전자통신연구원 | 이동통신 시스템에서 누적 카운터 값을 기준으로 하는패킷 스케줄링 방법 |
CN100471337C (zh) * | 2003-03-21 | 2009-03-18 | 北京邮电大学 | 一种适用于无线分组系统的调度方法 |
US7477604B2 (en) * | 2003-05-14 | 2009-01-13 | Ntt Docomo, Inc. | Packet communications system |
WO2005006672A1 (ja) * | 2003-07-10 | 2005-01-20 | Mitsubishi Denki Kabushiki Kaisha | 階層型スケジューリング装置 |
US7580355B2 (en) | 2003-08-25 | 2009-08-25 | Integrated Device Technology, Inc. | Method of performing weighted round-robin queue scheduling using a dynamic link list and structure for implementing same |
US7317706B1 (en) * | 2003-12-11 | 2008-01-08 | Nortel Networks Limited | Fair share scheduling method in a CDMA paging system |
US7916638B2 (en) * | 2003-12-24 | 2011-03-29 | Alcatel Lucent | Time-independent deficit round robin method and system |
NO327563B1 (no) * | 2004-01-20 | 2009-08-17 | Telenor Asa | En fremgangsmate og anordning for en forbedret bufferlosning i en svitsj for kommunikasjonsnettverk |
US7426215B2 (en) * | 2004-04-06 | 2008-09-16 | Intel Corporation | Method and apparatus for scheduling packets |
US8966551B2 (en) * | 2007-11-01 | 2015-02-24 | Cisco Technology, Inc. | Locating points of interest using references to media frames within a packet flow |
US9197857B2 (en) | 2004-09-24 | 2015-11-24 | Cisco Technology, Inc. | IP-based stream splicing with content-specific splice points |
US7646717B1 (en) * | 2004-10-29 | 2010-01-12 | Marvell International Ltd. | Method and apparatus for packet scheduling |
US7752627B2 (en) * | 2005-02-04 | 2010-07-06 | Mips Technologies, Inc. | Leaky-bucket thread scheduler in a multithreading microprocessor |
US7681014B2 (en) | 2005-02-04 | 2010-03-16 | Mips Technologies, Inc. | Multithreading instruction scheduler employing thread group priorities |
US7853777B2 (en) * | 2005-02-04 | 2010-12-14 | Mips Technologies, Inc. | Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions |
US7613904B2 (en) * | 2005-02-04 | 2009-11-03 | Mips Technologies, Inc. | Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler |
US7657891B2 (en) | 2005-02-04 | 2010-02-02 | Mips Technologies, Inc. | Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency |
US7506140B2 (en) * | 2005-02-04 | 2009-03-17 | Mips Technologies, Inc. | Return data selector employing barrel-incrementer-based round-robin apparatus |
US7657883B2 (en) * | 2005-02-04 | 2010-02-02 | Mips Technologies, Inc. | Instruction dispatch scheduler employing round-robin apparatus supporting multiple thread priorities for use in multithreading microprocessor |
US7490230B2 (en) * | 2005-02-04 | 2009-02-10 | Mips Technologies, Inc. | Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor |
US7664936B2 (en) * | 2005-02-04 | 2010-02-16 | Mips Technologies, Inc. | Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages |
US7631130B2 (en) * | 2005-02-04 | 2009-12-08 | Mips Technologies, Inc | Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor |
KR100745679B1 (ko) * | 2005-12-08 | 2007-08-02 | 한국전자통신연구원 | 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치 |
KR101266556B1 (ko) * | 2006-01-05 | 2013-05-24 | 삼성전자주식회사 | 데피싯 라운드 로빈 방식 데이터 패킷 스케줄링의 인스턴트서비스 방법 |
US7990989B2 (en) | 2006-09-16 | 2011-08-02 | Mips Technologies, Inc. | Transaction selector employing transaction queue group priorities in multi-port switch |
US7961745B2 (en) * | 2006-09-16 | 2011-06-14 | Mips Technologies, Inc. | Bifurcated transaction selector supporting dynamic priorities in multi-port switch |
US7760748B2 (en) * | 2006-09-16 | 2010-07-20 | Mips Technologies, Inc. | Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch |
US7773621B2 (en) * | 2006-09-16 | 2010-08-10 | Mips Technologies, Inc. | Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch |
JP4899961B2 (ja) * | 2007-03-19 | 2012-03-21 | 富士通株式会社 | 通信装置および出力制御方法 |
US7936695B2 (en) * | 2007-05-14 | 2011-05-03 | Cisco Technology, Inc. | Tunneling reports for real-time internet protocol media streams |
US8812712B2 (en) * | 2007-08-24 | 2014-08-19 | Alcatel Lucent | Proxy-driven content rate selection for streaming media servers |
US8644155B2 (en) * | 2008-01-29 | 2014-02-04 | Sony Corporation | Multi-hop wireless terminal and traffic control method thereof |
JP4937208B2 (ja) * | 2008-08-06 | 2012-05-23 | 株式会社東芝 | 送信装置、及び通信システム |
US8619787B2 (en) * | 2010-05-18 | 2013-12-31 | Lsi Corporation | Byte-accurate scheduling in a network processor |
KR101737516B1 (ko) | 2010-11-24 | 2017-05-18 | 한국전자통신연구원 | 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치 |
US10291540B2 (en) * | 2014-11-14 | 2019-05-14 | Cavium, Llc | Method and apparatus for performing a weighted queue scheduling using a set of fairness factors |
EP3939221A1 (en) * | 2019-03-12 | 2022-01-19 | FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. | Transmitter and receiver, serializer and deserializer and methods for transmitting and receiving, serializing and deserializing |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5231633A (en) * | 1990-07-11 | 1993-07-27 | Codex Corporation | Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets |
US5533020A (en) * | 1994-10-31 | 1996-07-02 | International Business Machines Corporation | ATM cell scheduler |
US5706288A (en) * | 1996-03-27 | 1998-01-06 | Pmc-Sierra, Inc. | Available bit rate scheduler |
-
1996
- 1996-09-10 JP JP23915996A patent/JP3435293B2/ja not_active Expired - Fee Related
-
1997
- 1997-09-10 US US08/926,474 patent/US6101193A/en not_active Expired - Fee Related
Non-Patent Citations (4)
Title |
---|
Dimitrios Stiliadis et.al.,Latency−Rate Servers:A General Model for Analysis of Traffic Scheduling Algorithms,Infocom’96,米国,IEEE,1996年,p111−119 |
M Shreedhar et al,Efficient Fair Queuing using Deficit Round Robin,SIGCOMM’95,米国,ACM,1995年,P231−242 |
M.Shreedhar et.al.,Effcient Fair Queuing Using Deficit Round−Robin,IEEE/ACM Trans.on Networking,米国,IEEE,1996年 6月,Vol.4 No.3,p375−385 |
Yao−Tzung Wang et al,An Improved Scheduling Algorithm for Weighted Round−Robin Cell Multiplexing in an ATM Switch,ICC’94,米国,IEEE,1994年,p1032−1037 |
Also Published As
Publication number | Publication date |
---|---|
US6101193A (en) | 2000-08-08 |
JPH1084383A (ja) | 1998-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3435293B2 (ja) | パケットスケジューリング装置及びパケット転送方法 | |
US7016366B2 (en) | Packet switch that converts variable length packets to fixed length packets and uses fewer QOS categories in the input queues that in the outout queues | |
JP3683133B2 (ja) | パケットスケジューリング装置 | |
US8023521B2 (en) | Methods and apparatus for differentiated services over a packet-based network | |
US7317727B2 (en) | Method and systems for controlling ATM traffic using bandwidth allocation technology | |
US6438135B1 (en) | Dynamic weighted round robin queuing | |
US7120158B2 (en) | Communication device and method for transmitting through the use of accumulation of capacity tokens | |
US20070237074A1 (en) | Configuration of congestion thresholds for a network traffic management system | |
US20020178282A1 (en) | Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network | |
WO2002049286A1 (en) | Apparatus and methods for scheduling packets in a broadband data stream | |
JP4163044B2 (ja) | 帯域制御方法およびその帯域制御装置 | |
CA2462793C (en) | Distributed transmission of traffic streams in communication networks | |
EP1488600B1 (en) | Scheduling using quantum and deficit values | |
CN101212417B (zh) | 一种基于时间粒度的互联网服务质量保证方法 | |
US7142514B2 (en) | Bandwidth sharing using emulated weighted fair queuing | |
Shreedhar et al. | E cient fair queuing using de cit round robin | |
JP4087279B2 (ja) | 帯域制御方法およびその帯域制御装置 | |
JP3755420B2 (ja) | ノード装置 | |
Subash et al. | Performance analysis of scheduling disciplines in optical networks | |
Yen et al. | Sliding weighted fair queueing scheme for real-time applications | |
Kanhere et al. | Prioritized elastic round robin: an efficient and low-latency packet scheduler with improved fairness | |
Wu et al. | On implementation architecture for achieving QoS provisioning in integrated services networks | |
Jiwasurat et al. | A class of shaped deficit round-robin (SDRR) schedulers | |
JP2002124985A (ja) | 送信装置、通信システムおよび送信方法 | |
Zhu et al. | A new scheduling scheme for resilient packet ring networks with single transit buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |