JP5107016B2 - トークンバケットを用いたバッファ装置及びプログラム - Google Patents

トークンバケットを用いたバッファ装置及びプログラム Download PDF

Info

Publication number
JP5107016B2
JP5107016B2 JP2007325326A JP2007325326A JP5107016B2 JP 5107016 B2 JP5107016 B2 JP 5107016B2 JP 2007325326 A JP2007325326 A JP 2007325326A JP 2007325326 A JP2007325326 A JP 2007325326A JP 5107016 B2 JP5107016 B2 JP 5107016B2
Authority
JP
Japan
Prior art keywords
token
tokens
token bucket
bucket
buffer
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.)
Active
Application number
JP2007325326A
Other languages
English (en)
Other versions
JP2009147833A5 (ja
JP2009147833A (ja
Inventor
中村  元
徳広 福元
武 北原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Priority to JP2007325326A priority Critical patent/JP5107016B2/ja
Priority to PCT/JP2008/072830 priority patent/WO2009078398A1/ja
Publication of JP2009147833A publication Critical patent/JP2009147833A/ja
Publication of JP2009147833A5 publication Critical patent/JP2009147833A5/ja
Priority to US12/816,663 priority patent/US8311052B2/en
Application granted granted Critical
Publication of JP5107016B2 publication Critical patent/JP5107016B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping

Landscapes

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

Description

本発明は、トークンバケットを用いたバッファ装置及びプログラムに関する。
データパケットのバッファ読出制御について、「トークンバケット」方式がある。トークンバケット方式は、データパケットを蓄積したパケットバッファからの読み出しを制御するための技術である。トークンとは、単位量データを読み出す権利をいう。トークンバケットとは、所定レートで生成されるトークンをバケットに一時的に蓄積するバッファをいう。トークンバケット内に蓄積されたトークンを消費した際に、そのトークン数に応じたデータパケットが、パケットバッファから出力される。
図1は、従来技術におけるバッファ装置の機能構成図である。
図1によれば、バッファ装置1は、パケットバッファ10と、バッファ読出部11と、トークンバケット12と、トークン生成部13と、トークン消費制御部14とを有する。これら機能構成部は、バッファ装置(例えばバッファ部を有する通信装置)に搭載されたコンピュータを機能させるプログラムを実行することによって実現できる。
パケットバッファ10は、データパケットを一時的に蓄積する。バッファ読出部11は、トークンバケット12によって消費されたトークン数に応じて、パケットバッファ10からデータパケットを読み出して出力する。トークンバケット12は、トークンを一時的に蓄積するものであって、蓄積可能なトークン数を表すバッファサイズ(以下「トークンバケットサイズ」という)を有する。トークン生成部13は、所定レート(単位時間当たりのトークン数、以下「トークンレート」という)でトークンを生成し、トークンバケット12へ補充入力する。トークン消費制御部14は、トークンバケット12によって消費させるトークン数を制御する。
トークンバケットを用いたバッファ読出制御については、トークンバケット12のトークンバケットサイズと、トークン生成部13によって生成されるトークンレートとを、どのように設定するかが問題となる。
従来、トークンバケットは、制御対象となるトラヒック種別毎に備えるのが一般的であった。バッファ読出制御について、複数のトークンバケットを備える技術がある(例えば特許文献1参照)。この技術は、複数のトラヒック種別について、そのトラヒック種別毎に単一のトークンバケットを割り当てたものである。
トークンバケットにおけるトークンバケットサイズ及びトークンレートを、ネットワークの混雑度に応じて動的に変化させる技術もある(例えば特許文献2、3及び4参照)。この技術によれば、トラヒック種別毎に単一のトークンバケットを備えており、トークンバケットサイズ及びトークンレートのパラメータ値は、動的に変更可能であって、ネットワークの混雑率等を考慮して適応的に制御することができる。
トークンバケットを用いたバッファ読出制御によれば、短期間に集中したバーストトラヒックの転送を許容しつつ、長期間の平均トラヒック量を規制することができる。許容可能なバーストトラヒック量は、トークンバケットサイズに依存し、長期間の平均トラヒック量は、トークンレートによって規制される。
ここで、バーストトラヒック量及び平均トラヒック量の両方のトレードオフを利用した、トラヒック種別毎の制御も重要となる。具体的には、トラヒック種別毎に、ネットワーク容量への影響を考慮して、許容可能なバーストトラヒック量を抑えて平均トラヒック量を高くしたり、逆に平均トラヒック量を抑えてバーストトラヒック量を高くしたりする。
特開2007−049591号公報 特開2007−189592号公報 特開2007−221529号公報 特開2007−097045号公報
しかしながら、前述した従来技術によれば、トークンバケットについて、トークンバケットサイズ及びトークンレートの両パラメータを、予め適切な値に決定する必要がある。そのためには、トラヒックの特性を一定期間観測し又は予測し、バーストトラヒック量又は平均トラヒック量のいずれを重視するかを判断しなければならない。その上で、トークンバケットサイズ及びトークンレートを決定する。従って、トラヒック特性を特定できない場合、トークンバケットサイズ及びトークンレートを適切な値に決定できないという課題がある。
例えば通信ネットワークについては、その多様化によって、トラヒック種別毎に細かいトラヒック制御が要求される。一方で、スケーラビリティの観点からも、トラヒック種別毎のトラヒック特性を把握することは難しく、トークンバケットサイズ及びトークンレートの適切な値を特定することは難しい。
従って、本発明は、トークンバケットサイズ及びトークンレートのパラメータを予め設定することなく、パケットバッファからの読み出しを柔軟に規制することができるバッファ装置及びプログラムを提供することを目的とする。
本発明によれば、データパケットを一時的に蓄積するパケットバッファを有するバッファ装置において、
単位量データを読み出す権利となるトークンを一時的に蓄積するものであって、蓄積可能なトークン数を表すトークンバケットサイズが互いに異なる複数のトークンバケットと、
全てのトークンバケットについて同じ数のトークンを消費させる、トークンバケット毎のトークン消費制御手段と、
トークンバケットサイズが大きいほど、単位時間当たり生成されるトークン数を表すトークンレートが低くなるように設定された、トークンバケット毎のトークン生成手段と、
トークンバケットによって消費されたトークン数を計数し、トークンが空となっているトークンバケットについては負のトークン数を計数するトークン消費計数手段と、
消費されたトークン数に応じて、パケットバッファからデータパケットを読み出すバッファ読出手段と
を有し、
単位時間毎に、蓄積されたトークン量が最も多いトークンバケットに基づいてトークン数が規制されることを特徴とする。
本発明のバッファ装置における他の実施形態によれば、単位時間毎に、全てのトークン消費制御手段が、各トークンバケットからトークンを消費すると共に、全てのトークン生成手段が、トークンレートに応じてトークンバケットにトークンを補充入力することも好ましい。
本発明のバッファ装置における他の実施形態によれば、トークン消費計数手段は、トークン数が負である場合、トークンバケットにトークンが補充入力される毎に、負のトークン数を増分させることも好ましい。
本発明のバッファ装置における他の実施形態によれば、バッファ読出手段の最大読出レートに応じて、全てのトークンバケットについて、トークンを一度に消費できるトークン最大消費数を設定することも好ましい。
本発明のバッファ装置における他の実施形態によれば、トークンバケットは、
いずれか1つのトークンバケットに、トークン最大消費数以上のトークンが蓄積されている場合、全てのトークンバケットについてトークン最大消費数のトークンを消費し、
又は、
全てのトークンバケットについて、トークン最大消費数以上のトークンが蓄積されていない場合、蓄積しているトークン数が最も多いトークンバケットを選択し、そのトークンバケットに蓄積されているトークン数のトークンを、全てのトークンバケットについて消費する
ように制御されることも好ましい。
本発明によれば、通信装置であって、前述された本発明のバッファ装置を備え、データパケットを送信することを特徴とする。
本発明によれば、データパケットを一時的に蓄積するパケットバッファに対する読み出し制御としてコンピュータを機能させるプログラムにおいて、
単位量データを読み出す権利となるトークンを一時的に蓄積するものであって、蓄積可能なトークン数を表すトークンバケットサイズが互いに異なり、且つ、全てのトークンバケットについて同じ数のトークンが消費される複数のトークンバケットと、
トークンバケットサイズが大きいほど、単位時間当たり生成されるトークン数を表すトークンレートが低くなるように設定された、トークンバケット毎のトークン生成手段と、
トークンバケットによって消費されたトークン数を計数し、トークンが空となっているトークンバケットについては負のトークン数を計数するトークン消費計数手段と、
消費されたトークン数に応じて、パケットバッファからデータパケットを読み出すバッファ読出手段と
してコンピュータを機能させ、
単位時間毎に、蓄積されたトークン量が最も多いトークンバケットに基づいてトークン数が規制されることを特徴とする。
本発明のバッファ装置及びプログラムによれば、異なるトークンバケットサイズ及びトークンレートを有する複数のトークンバケットを同時に用いることによって、両パラメータを予め設定することなく、パケットバッファからの読み出しを柔軟に規制することができる。
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。
図2は、本発明におけるバッファ装置の機能構成図である。
図2によれば、バッファ装置1は、3つのトークンバケット121、122及び123を有し、トークンバケット毎にトークン生成部131、132及び133を有する。第1のトークンバケット121のトークンバケットサイズは小さく、そのトークン生成部131によって生成されるトークンレートは高い。第2のトークンバケット122のトークンバケットサイズは中程度であり、そのトークン生成部132によって生成されるトークンレートも中程度である。第3のトークンバケット123のトークンバケットサイズは大きく、そのトークン生成部133によって生成されるトークンレートは低い。本発明における複数のトークンバケットは、トークンバケットサイズが大きいバケットほど、トークンレートが低くなるように設定されている。
また、バッファ装置1は、トークンバケット毎に、トークン消費計数部151、152及び153を更に有する。トークン消費計数部は、トークン数について正及び負の両方を計数する。トークンバケットにトークンが蓄積されている場合、正のトークン数を計数する。一方で、トークンバケットにトークンが空であっても、消費された負のトークン数を計数する。負のトークン数が計数されている場合に、トークンバケットにトークンが新たに補充入力されると、トークン消費計数部は、トークン数を、正の方向に増分する。
更に、トークンバケット毎のトークン消費制御部141、142及び143は、同じ数のトークンを同時に消費する。ここで、「トークン最大消費数」を設定する。トークン最大消費数は、バッファ読出部11の最大読出レートに応じて、全てのトークンバケットから一度に消費できる最大のトークン数をいう。
本発明によれば、以下のような具体的な判断によって、トークンを消費する。
[判断1]いずれか1つのトークンバケットに、トークン最大消費数以上のトークンが蓄積されている場合、全てのトークンバケットについてトークン最大消費数のトークンを消費する。
[判断2]全てのトークンバケットについて、トークン最大消費数以上のトークンが蓄積されていない場合、蓄積しているトークン数が最も多いトークンバケットを選択する。そして、そのトークンバケットに蓄積されているトークン数のトークンを、全てのトークンバケットについて消費する。
(補足3)尚、全てのトークン生成部が所定のトークンレートで常に、トークンバケットにトークンを補充入力する限り、全てのトークンバケットについて全くトークンが蓄積されていない状態はありえないと考えられる。
バッファ読出部11は、トークンバケット121、122及び123から出力されたトークン数に、1トークン当たりの読み出し権利の単位データ量(ビット数)を乗じた値に相当するパケット数を、パケットバッファ10から読み出す。バッファ読出部11は、トークンバケットについてトークン最大消費数のトークンが消費された場合、パケットバッファ10から読み出されるデータパケットの量は、最大となる。
尚、バッファ装置のこれら機能構成部は、バッファ装置(例えばバッファ部を有する通信装置)に搭載されたコンピュータを機能させるプログラムを実行することによって実現できる。
図3は、本発明におけるトークンバケットの説明図である。
図3によれば、第1、第2及び第3のトークンバケットが表されており、トークンバケット内に蓄積された正のトークンと、トークンバケットは空であっても計数することができる負のトークンとが表されている。
例えば、具体的には以下のような数値例がある。尚、トークンバケットは、例えば1秒毎に同時に、トークンを消費するものとする。
トークン1個当たり120kビット(120kbps)の出力権利
第1のトークンバケットサイズ:最大5個のトークンを蓄積可能
120kビット× 5個=600kビット
第1のトークンレート :1秒当たり3個のトークンを補充入力
120kbps× 3個=360kbps
第2のトークンバケットサイズ:最大10個のトークンを蓄積可能
120kビット×10個=1.2Mビット
第2のトークンレート:1秒当たり2個のトークンを補充入力
120kbps× 2個=240kbps
第3のトークンバケットサイズ:最大15個のトークンを蓄積可能
120kビット×15個=1.8Mビット
第3のトークンレート:1秒当たり1個のトークンを補充入力
120kbps× 1個=120kbps
前述の数値例に対応して、バッファ装置からの最大読出レートは、以下のようになる。
トークン最大消費数:6個
バッファ装置からの最大読出レート
=トークン最大消費数×1トークンの出力権利
=6個×120kビット
=720kビット
図3によれば、以下で説明する図4〜図15における初期状態が表されている。第1のトークンバケット121には、既に3個のトークンが蓄積されている。第2のトークンバケット122には、トークンバケットサイズ一杯の10個のトークンが蓄積されている。第3のトークンバケット123には、既に14個のトークンが蓄積されている。
尚、以下では、説明を容易にするために、パケットバッファに常に、データパケットがバッファされているものとしている。パケットバッファにデータパケットが蓄積されていない場合、勿論、トークンバケットに蓄積されたトークンは、消費されることはない。但し、トークンバケットに蓄積される最大のトークン数は、トークンバケットサイズである。
図4は、第1のトークンバケットの状態図である。
[判断1]が適用できる。第2及び第3のトークンバケットに、トークン最大消費数6個以上のトークンが蓄積されているので、全てのトークンバケットについてトークン最大消費数6個のトークンを消費する。
このとき、第1のトークンバケットは3個のトークンしか消費できず、第2及び第3のトークンバケットは6個のトークンを消費する。
第1のトークンバケットのトークン数= +3個−6個=−3個(負のトークン数)
第2のトークンバケットのトークン数=+10個−6個=+4個
第3のトークンバケットのトークン数=+14個−6個=+8個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=消費されたトークン数×1トークンの出力権利
=6個×120kビット
=720kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。第1のトークンバケットには3個のトークンが補充入力され、第2のトークンバケットには2個のトークンが補充入力され、第3のトークンバケットには1個のトークンが補充入力される。
第1のトークンバケットのトークン数=−3個+3個= 0個
第2のトークンバケットのトークン数=+4個+2個=+6個
第3のトークンバケットのトークン数=+8個+1個=+9個
図5は、第2のトークンバケットの状態図である。
[判断1]が適用できる。第2及び第3のトークンバケットに、トークン最大消費数6個以上のトークンが蓄積されているので、全てのトークンバケットについてトークン最大消費数6個のトークンを消費する。
このとき、第1のトークンバケットはトークンを消費できず、第2及び第3のトークンバケットは6個のトークンを消費する。
第1のトークンバケットのトークン数= 0個−6個=−6個
第2のトークンバケットのトークン数=+6個−6個= 0個
第3のトークンバケットのトークン数=+9個−6個=+3個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=6個×120kビット
=720kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。
第1のトークンバケットのトークン数=−6個+3個=−3個
第2のトークンバケットのトークン数= 0個+2個=+2個
第3のトークンバケットのトークン数=+3個+1個=+4個
図6は、第3のトークンバケットの状態図である。
[判断2]が適用できる。全てのトークンバケットについて、トークン最大消費数6個以上のトークンが蓄積されていないので、蓄積しているトークン数が最も多い第3のトークンバケットを選択する。そして、その第3のトークンバケットに蓄積されているトークン数4個のトークンを、全てのトークンバケットについて消費する。
このとき、第1のトークンバケットはトークンを消費できず、第2のトークンバケットは2個のトークンを消費でき、第3のトークンバケットは4個のトークンを消費する。
第1のトークンバケットのトークン数=−3個−4個=−7個
第2のトークンバケットのトークン数=+2個−4個=−2個
第3のトークンバケットのトークン数=+4個−4個= 0個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=4個×120kビット
=480kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。
第1のトークンバケットのトークン数=−7個+3個=−4個
第2のトークンバケットのトークン数=−2個+2個= 0個
第3のトークンバケットのトークン数= 0個+1個=+1個
図7は、第4のトークンバケットの状態図である。
[判断2]が適用できる。全てのトークンバケットについて、トークン最大消費数6個以上のトークンが蓄積されていないので、蓄積しているトークン数が最も多い第3のトークンバケットを選択する。そして、その第3のトークンバケットに蓄積されているトークン数1個のトークンを、全てのトークンバケットについて消費する。
このとき、第1及び第2のトークンバケットはトークンを消費できず、第3のトークンバケットは1個のトークンを消費する。
第1のトークンバケットのトークン数=−4個−1個=−5個
第2のトークンバケットのトークン数= 0個−1個=−1個
第3のトークンバケットのトークン数=+1個−1個= 0個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=1個×120kビット
=120kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。
第1のトークンバケットのトークン数=−5個+3個=−2個
第2のトークンバケットのトークン数=−1個+2個=+1個
第3のトークンバケットのトークン数= 0個+1個=+1個
図8は、第5のトークンバケットの状態図である。
[判断2]が適用できる。全てのトークンバケットについて、トークン最大消費数6個以上のトークンが蓄積されていないので、蓄積しているトークン数が最も多い第2又は第3のトークンバケットを選択する。そして、その第2又は第3のトークンバケットに蓄積されているトークン数1個のトークンを、全てのトークンバケットについて消費する。
このとき、第1のトークンバケットはトークンを消費できず、第2及び第3のトークンバケットは1個のトークンを消費する。
第1のトークンバケットのトークン数=−2個−1個=−3個
第2のトークンバケットのトークン数=+1個−1個= 0個
第3のトークンバケットのトークン数=+1個−1個= 0個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=1個×120kビット
=120kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。
第1のトークンバケットのトークン数=−3個+3個= 0個
第2のトークンバケットのトークン数= 0個+2個=+2個
第3のトークンバケットのトークン数= 0個+1個=+1個
図9は、第6のトークンバケットの状態図である。
[判断2]が適用できる。全てのトークンバケットについて、トークン最大消費数6個以上のトークンが蓄積されていないので、蓄積しているトークン数が最も多い第2のトークンバケットを選択する。そして、その第2のトークンバケットに蓄積されているトークン数2個のトークンを、全てのトークンバケットについて消費する。
このとき、第1のトークンバケットはトークンを消費できず、第2のトークンバケットは2個のトークンを消費し、第3のトークンバケットは1個のトークンを消費する。
第1のトークンバケットのトークン数= 0個−2個=−2個
第2のトークンバケットのトークン数=+2個−2個= 0個
第3のトークンバケットのトークン数=+1個−2個=−1個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=2個×120kビット
=240kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。
第1のトークンバケットのトークン数=−2個+3個=+1個
第2のトークンバケットのトークン数= 0個+2個=+2個
第3のトークンバケットのトークン数=−1個+1個= 0個
図10は、第7のトークンバケットの状態図である。
[判断2]が適用できる。全てのトークンバケットについて、トークン最大消費数6個以上のトークンが蓄積されていないので、蓄積しているトークン数が最も多い第2のトークンバケットを選択する。そして、その第2のトークンバケットに蓄積されているトークン数2個のトークンを、全てのトークンバケットについて消費する。
このとき、第1のトークンバケットは1個のトークンを消費し、第2のトークンバケットは2個のトークンを消費し、第3のトークンバケットはトークンを消費できない。
第1のトークンバケットのトークン数=+1個−2個=−1個
第2のトークンバケットのトークン数=+2個−2個= 0個
第3のトークンバケットのトークン数= 0個−2個=−2個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=2個×120kビット
=240kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。
第1のトークンバケットのトークン数=−1個+3個=+2個
第2のトークンバケットのトークン数= 0個+2個=+2個
第3のトークンバケットのトークン数=−2個+1個=−1個
図11は、第8のトークンバケットの状態図である。
[判断2]が適用できる。全てのトークンバケットについて、トークン最大消費数6個以上のトークンが蓄積されていないので、蓄積しているトークン数が最も多い第1又は第2のトークンバケットを選択する。そして、その第2のトークンバケットに蓄積されているトークン数2個のトークンを、全てのトークンバケットについて消費する。
このとき、第1及び第2のトークンバケットは2個のトークンを消費し、第3のトークンバケットはトークンを消費できない。
第1のトークンバケットのトークン数=+2個−2個= 0個
第2のトークンバケットのトークン数=+2個−2個= 0個
第3のトークンバケットのトークン数=−1個−2個=−3個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=2個×120kビット
=240kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。
第1のトークンバケットのトークン数= 0個+3個=+3個
第2のトークンバケットのトークン数= 0個+2個=+2個
第3のトークンバケットのトークン数=−3個+1個=−2個
図12は、第9のトークンバケットの状態図である。
[判断2]が適用できる。全てのトークンバケットについて、トークン最大消費数6個以上のトークンが蓄積されていないので、蓄積しているトークン数が最も多い第1のトークンバケットを選択する。そして、その第1のトークンバケットに蓄積されているトークン数3個のトークンを、全てのトークンバケットについて消費する。
このとき、第1のトークンバケットは3個のトークンを消費し、第2のトークンバケットは2個のトークンを消費し、第3のトークンバケットはトークンを消費できない。
第1のトークンバケットのトークン数=+3個−3個= 0個
第2のトークンバケットのトークン数=+2個−3個=−1個
第3のトークンバケットのトークン数=−2個−3個=−5個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=3個×120kビット
=360kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。
第1のトークンバケットのトークン数= 0個+3個=+3個
第2のトークンバケットのトークン数=−1個+2個=+1個
第3のトークンバケットのトークン数=−5個+1個=−4個
図13は、第10のトークンバケットの状態図である。
[判断2]が適用できる。全てのトークンバケットについて、トークン最大消費数6個以上のトークンが蓄積されていないので、蓄積しているトークン数が最も多い第1のトークンバケットを選択する。そして、その第1のトークンバケットに蓄積されているトークン数3個のトークンを、全てのトークンバケットについて消費する。
このとき、第1のトークンバケットは3個のトークンを消費し、第2のトークンバケットは1個のトークンを消費し、第3のトークンバケットはトークンを消費できない。
第1のトークンバケットのトークン数=+3個−3個= 0個
第2のトークンバケットのトークン数=+1個−3個=−2個
第3のトークンバケットのトークン数=−4個−3個=−7個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=3個×120kビット
=360kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。
第1のトークンバケットのトークン数= 0個+3個=+3個
第2のトークンバケットのトークン数=−2個+2個= 0個
第3のトークンバケットのトークン数=−7個+1個=−6個
図14は、第11のトークンバケットの状態図である。
[判断2]が適用できる。全てのトークンバケットについて、トークン最大消費数6個以上のトークンが蓄積されていないので、蓄積しているトークン数が最も多い第1のトークンバケットを選択する。そして、その第1のトークンバケットに蓄積されているトークン数3個のトークンを、全てのトークンバケットについて消費する。
このとき、第1のトークンバケットは3個のトークンを消費し、第2及び第3のトークンバケットはトークンを消費できない。
第1のトークンバケットのトークン数=+3個−3個= 0個
第2のトークンバケットのトークン数= 0個−3個=−3個
第3のトークンバケットのトークン数=−6個−3個=−9個
このとき、バッファ装置からの最大読出レートは、以下のようになる。
最大読出レート=3個×120kビット
=360kビット
次に、トークンバケット毎に、トークン生成部からトークンが補充入力される。
第1のトークンバケットのトークン数= 0個+3個=+3個
第2のトークンバケットのトークン数=−3個+2個=−1個
第3のトークンバケットのトークン数=−9個+1個=−8個
図15は、図4〜図14における時刻経過に伴うスループットのグラフである。
最初に、第3のトークンバケットのトークンバケットサイズによって、スループットが抑制される。その後、時間経過と共に、第2のトークンバケット、次いで第1のトークンバケットの各トークンレートが適用される。第1のトークンバケットのトークンレートが適用されている間は、第2及び第3のトークンバケット内のトークン量は負となる。そして、パケットバッファが空になると、第1、第2及び第3の順に、トークンバケットにトークンが補充され始める。また、パケットバッファにデータパケットが蓄積されると、その時点でトークン量が最も多いトークンバケットのトークンレートに基づく規制が適用される。
以上、詳細に説明したように、本発明のバッファ装置及びプログラムによれば、異なるトークンバケットサイズ及びトークンレートを有する複数のトークンバケットを同時に用いることによって、両パラメータを予め設定することなく、パケットバッファからの読み出しを柔軟に規制することができる。即ち、トークンバケットサイズ及びトークンレートの異なるパラメータ値を適用することによって、トラヒック特性に適した制御パラメータが自動的に選択されることとなる。
前述した本発明の種々の実施形態において、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
従来技術におけるバッファ装置の機能構成図である。 本発明におけるバッファ装置の機能構成図である。 本発明におけるトークンバケットの説明図である。 第1のトークンバケットの状態図である。 第2のトークンバケットの状態図である。 第3のトークンバケットの状態図である。 第4のトークンバケットの状態図である。 第5のトークンバケットの状態図である。 第6のトークンバケットの状態図である。 第7のトークンバケットの状態図である。 第8のトークンバケットの状態図である。 第9のトークンバケットの状態図である。 第10のトークンバケットの状態図である。 第11のトークンバケットの状態図である。 図4〜図14における時刻経過に伴うスループットのグラフである。
符号の説明
1 バッファ装置
10 パケットバッファ
11 バッファ読出部
12、121、122、123 トークンバケット
13、131、132、133 トークン生成部
14、141、142、143 トークン消費制御部
151、152、153 トークン消費計数部

Claims (7)

  1. データパケットを一時的に蓄積するパケットバッファを有するバッファ装置において、
    単位量データを読み出す権利となるトークンを一時的に蓄積するものであって、蓄積可能なトークン数を表すトークンバケットサイズが互いに異なる複数のトークンバケットと、
    全てのトークンバケットについて同じ数の前記トークンを消費させる、前記トークンバケット毎のトークン消費制御手段と、
    前記トークンバケットサイズが大きいほど、単位時間当たり生成されるトークン数を表すトークンレートが低くなるように設定された、前記トークンバケット毎のトークン生成手段と、
    前記トークンバケットによって消費されたトークン数を計数し、トークンが空となっているトークンバケットについては負のトークン数を計数するトークン消費計数手段と、
    消費されたトークン数に応じて、前記パケットバッファから前記データパケットを読み出すバッファ読出手段と
    を有し、
    単位時間毎に、蓄積されたトークン量が最も多いトークンバケットに基づいてトークン数が規制されることを特徴とするバッファ装置。
  2. 単位時間毎に、全てのトークン消費制御手段が、各トークンバケットからトークンを消費すると共に、全てのトークン生成手段が、前記トークンレートに応じて前記トークンバケットにトークンを補充入力することを特徴とする請求項1に記載のバッファ装置。
  3. 前記トークン消費計数手段は、前記トークン数が負である場合、前記トークンバケットにトークンが補充入力される毎に、負のトークン数を増分させることを特徴とする請求項1又は2に記載のバッファ装置。
  4. 前記バッファ読出手段の最大読出レートに応じて、全てのトークンバケットについて、トークンを一度に消費できるトークン最大消費数を設定することを特徴とする請求項1から3のいずれか1項に記載のバッファ装置。
  5. 前記トークンバケットは、
    いずれか1つのトークンバケットに、トークン最大消費数以上のトークンが蓄積されている場合、全てのトークンバケットについてトークン最大消費数のトークンを消費し、
    又は、
    全てのトークンバケットについて、トークン最大消費数以上のトークンが蓄積されていない場合、蓄積しているトークン数が最も多いトークンバケットを選択し、そのトークンバケットに蓄積されているトークン数のトークンを、全てのトークンバケットについて消費する
    ように制御されることを特徴とする請求項4に記載のバッファ装置。
  6. 請求項1から5のいずれか1項に記載のバッファ装置を備え、データパケットを送信することを特徴とする通信装置。
  7. データパケットを一時的に蓄積するパケットバッファに対する読み出し制御としてコンピュータを機能させるプログラムにおいて、
    単位量データを読み出す権利となるトークンを一時的に蓄積するものであって、蓄積可能なトークン数を表すトークンバケットサイズが互いに異なり、且つ、全てのトークンバケットについて同じ数の前記トークンが消費される複数のトークンバケットと、
    前記トークンバケットサイズが大きいほど、単位時間当たり生成されるトークン数を表すトークンレートが低くなるように設定された、前記トークンバケット毎のトークン生成手段と、
    前記トークンバケットによって消費されたトークン数を計数し、トークンが空となっているトークンバケットについては負のトークン数を計数するトークン消費計数手段と、
    消費されたトークン数に応じて、前記パケットバッファから前記データパケットを読み出すバッファ読出手段と
    してコンピュータを機能させ、
    単位時間毎に、蓄積されたトークン量が最も多いトークンバケットに基づいてトークン数が規制されることを特徴とするバッファ用の読出制御プログラム。
JP2007325326A 2007-12-17 2007-12-17 トークンバケットを用いたバッファ装置及びプログラム Active JP5107016B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007325326A JP5107016B2 (ja) 2007-12-17 2007-12-17 トークンバケットを用いたバッファ装置及びプログラム
PCT/JP2008/072830 WO2009078398A1 (ja) 2007-12-17 2008-12-16 トークンバケットを用いたバッファ装置及びその制御方法
US12/816,663 US8311052B2 (en) 2007-12-17 2010-06-16 Control of packet buffer using token buckets with different token bucket sizes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007325326A JP5107016B2 (ja) 2007-12-17 2007-12-17 トークンバケットを用いたバッファ装置及びプログラム

Publications (3)

Publication Number Publication Date
JP2009147833A JP2009147833A (ja) 2009-07-02
JP2009147833A5 JP2009147833A5 (ja) 2009-08-13
JP5107016B2 true JP5107016B2 (ja) 2012-12-26

Family

ID=40795513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007325326A Active JP5107016B2 (ja) 2007-12-17 2007-12-17 トークンバケットを用いたバッファ装置及びプログラム

Country Status (3)

Country Link
US (1) US8311052B2 (ja)
JP (1) JP5107016B2 (ja)
WO (1) WO2009078398A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110075562A1 (en) * 2009-09-25 2011-03-31 Isaksson Martin Rate Shaping For Wireless Communication Using Token Bucket That Allows Token Debt
JP5445271B2 (ja) * 2010-03-30 2014-03-19 富士通株式会社 帯域制御装置,帯域制御方法,及びプログラム
US8619564B2 (en) * 2010-11-02 2013-12-31 Cisco Technology, Inc. Synchronized bandwidth reservations for real-time communications
US8913501B2 (en) 2012-08-16 2014-12-16 International Business Machines Corporation Efficient urgency-aware rate control scheme for multiple bounded flows
US9262505B2 (en) * 2013-05-17 2016-02-16 Amazon Technologies, Inc. Input-output prioritization for database workload
US9178827B2 (en) * 2013-08-05 2015-11-03 Globalfoundries U.S. 2 Llc Rate control by token buckets
JP2015037227A (ja) * 2013-08-13 2015-02-23 日本電信電話株式会社 パケット転送装置およびパケット転送方法
US9170752B2 (en) * 2013-12-19 2015-10-27 International Business Machines Corporation Dynamic feedback-based throughput control for black-box storage systems
US9654483B1 (en) * 2014-12-23 2017-05-16 Amazon Technologies, Inc. Network communication rate limiter
KR101637840B1 (ko) * 2015-06-23 2016-07-07 강원대학교산학협력단 토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템 및 방법
CN108881055B (zh) * 2018-06-27 2022-01-04 深圳市风云实业有限公司 令牌管理方法及装置
CN111131066B (zh) * 2018-10-31 2022-08-19 深圳市中兴微电子技术有限公司 一种流量整形方法及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI100158B (fi) * 1995-11-09 1997-09-30 Nokia Telecommunications Oy Liikenteen ohjaus tietoliikennejärjestelmässä
US6522628B1 (en) * 1999-03-01 2003-02-18 Cisco Technology, Inc. Method and system for managing transmission resources in a wireless communication network
US8032653B1 (en) * 2000-09-08 2011-10-04 Juniper Networks, Inc. Guaranteed bandwidth sharing in a traffic shaping system
US7382727B2 (en) * 2001-02-21 2008-06-03 Cisco Technology, Inc. System and method for asymmetrical bandwidth management
WO2004023745A1 (en) * 2002-09-06 2004-03-18 Infineon Technologies Ag Method and system for controlling bandwidth allocation
US7535843B2 (en) * 2004-12-30 2009-05-19 Alcatel-Lucent Usa Inc. Method, apparatus and system for granular policing based on multiple arrival curves
JP4704147B2 (ja) 2005-08-12 2011-06-15 Kddi株式会社 トラフィック制御装置、トラフィック制御方法及びコンピュータプログラム
JP4593426B2 (ja) 2005-09-30 2010-12-08 Kddi株式会社 無線端末及び無線トラフィック制御方法
US7660250B2 (en) * 2005-11-08 2010-02-09 Arris Group, Inc. Method and system for regulating traffic in a network device
JP4577220B2 (ja) 2006-01-16 2010-11-10 Kddi株式会社 トークンバケットによるトラヒック制御装置、方法及びプログラム
JP4577230B2 (ja) 2006-02-17 2010-11-10 Kddi株式会社 トークンバケットによるトラヒック制御装置、方法及びプログラム
JP4570586B2 (ja) * 2006-06-05 2010-10-27 日本電信電話株式会社 トラヒック制御方法とシステムおよびプログラム
US8045456B1 (en) * 2006-11-27 2011-10-25 Marvell International Ltd. Hierarchical port-based rate limiting
US7911958B2 (en) * 2008-05-13 2011-03-22 Broadcom Corporation Token bucket with variable token value

Also Published As

Publication number Publication date
US20100246596A1 (en) 2010-09-30
US8311052B2 (en) 2012-11-13
WO2009078398A1 (ja) 2009-06-25
JP2009147833A (ja) 2009-07-02

Similar Documents

Publication Publication Date Title
JP5107016B2 (ja) トークンバケットを用いたバッファ装置及びプログラム
CN1881937B (zh) 将存储空间动态分配给多个队列的方法及设备
CN102413063B (zh) 动态调整出口资源分配阈值的方法及系统
CN102420776B (zh) 动态调整入口资源分配阈值的方法及系统
Charara et al. Methods for bounding end-to-end delays on an AFDX network
EP1774714B1 (en) Hierarchal scheduler with multiple scheduling lanes
CN100426738C (zh) 一种数据流量约束控制的实现方法
US7898953B2 (en) Deficit and group round robin scheduling for efficient network traffic management
CN103326953A (zh) 一种基于令牌桶的流量限制方法和装置
CN103838659B (zh) 一种系统日志的控制方法和装置
US7843940B2 (en) Filling token buckets of schedule entries
CN102387076B (zh) 一种结合整形的分级式队列调度方法
JP4893646B2 (ja) 帯域制御装置および帯域制御方法
WO2020142867A1 (zh) 一种流量整形方法及相关设备
US7333436B2 (en) Network device with traffic shaping functions and bandwidth control method using leaky bucket algorithm
EP2432170A1 (en) A token bucket based data packet traffic shapping device
CN109660468A (zh) 一种端口拥塞管理方法、装置和设备
CN101707789B (zh) 流量控制方法及系统
CN103685062A (zh) 缓存管理方法及装置
CN102739531B (zh) 流量整形方法和流量整形设备
CN101094188A (zh) 随机先期检测装置及其硬件实现方法
CN109905331A (zh) 队列调度方法及装置、通信设备、存储介质
CN100450103C (zh) 流量整形的方法和装置
CN106533971A (zh) 基于令牌桶机制的卫星通信速率控制方法
CN100376099C (zh) 基于网络处理器平台实现的综合队列管理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090601

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120814

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121003

R150 Certificate of patent or registration of utility model

Ref document number: 5107016

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3