JP4601657B2 - トラヒックシェーピング装置および方法 - Google Patents

トラヒックシェーピング装置および方法 Download PDF

Info

Publication number
JP4601657B2
JP4601657B2 JP2007277842A JP2007277842A JP4601657B2 JP 4601657 B2 JP4601657 B2 JP 4601657B2 JP 2007277842 A JP2007277842 A JP 2007277842A JP 2007277842 A JP2007277842 A JP 2007277842A JP 4601657 B2 JP4601657 B2 JP 4601657B2
Authority
JP
Japan
Prior art keywords
value
token
token counter
packet
transmission request
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
JP2007277842A
Other languages
English (en)
Other versions
JP2009105829A (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.)
NTT Electronics Corp
Nippon Telegraph and Telephone Corp
Nippon Telegraph and Telephone West Corp
Nippon Telegraph and Telephone East Corp
Original Assignee
NTT Electronics Corp
Nippon Telegraph and Telephone Corp
Nippon Telegraph and Telephone West Corp
Nippon Telegraph and Telephone East 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 NTT Electronics Corp, Nippon Telegraph and Telephone Corp, Nippon Telegraph and Telephone West Corp, Nippon Telegraph and Telephone East Corp filed Critical NTT Electronics Corp
Priority to JP2007277842A priority Critical patent/JP4601657B2/ja
Publication of JP2009105829A publication Critical patent/JP2009105829A/ja
Application granted granted Critical
Publication of JP4601657B2 publication Critical patent/JP4601657B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、通信網におけるパケットの転送、出力を指定された帯域に制限し、かつ平滑化するトラヒックシェーピング装置および方法に関する。
従来、通信網におけるパケットの転送、出力においては、送信要求されたパケットを指定された帯域に制限し、かつ平滑化してパケットを出力するトラヒックシェーピング(パケットシェーピング)装置が用いられている。例えば、特許文献1には、トークンバケツモデルおよびリーキバケツモデルを用いたトラヒックシェーピング装置(シェーパ)が開示されている。
このようなトークンバケツモデルまたはリーキバケツモデルのトラヒックシェーピング装置におけるトークンカウント方法としては、システムクロックを分周し、分周したタイミングで、トークンバケツにトークンカウント値を加算している。このとき、トークンカウント値が加算される頻度を示すトークンレートは,システムクロックをClk、分周比をN、加算値をTとすると、以下の式のようになる。
トークンレート=8×Clk×T/N
上記式が示すように、トークンレートは、システムクロックを分周比Nで除算することで算出されるため、トークンレートが高い場合には粗くしか設定できず、また、低い場合には必要以上に密に設定されるという問題があった。
この問題を解決するために、特許文献2には、システムクロックを設定された分周比に分周し、分周されたシステムクロックをカウントして、カウントされたカウンタ値が予め設定された比較値以下の場合に分周されたクロックを出力し、一方、カウントされたカウンタ値が予め設定された比較値を超えた場合に分周されたクロックを出力しないことにより、単位時間あたりのトリガの生成を調整して、トークンレートの設定を行う方法が提案されている。
また、特許文献3には、このようなシェーパを多段的に複数備え、前段回路からのパケット送信要求と当該パケットのフレーム情報を受け取り、トークンの状態によって送信要求を後段回路に出力し、後段回路から受信したパケット受理信号を前段回路に出力する多段QoSモジュールが開示されている。
特開2007−088998号公報 特開2007−088994号公報 特開2005−323230号公報
しかしながら、上述の特許文献2に示す方法でも、分周されたクロックをカウントするカウンタ手段に設定された加算値により、周期的にクロックが出力と停止を繰り返すため、設定される値によりトークンレートの精度は上下するという問題がある。
本発明は、このような状況に鑑みてなされたもので、所望のトークンレートに対して高い精度でトークンレートを制御するトラヒックシェーピングが可能なトラヒックシェーピング装置を提供する。
上述の課題を解決するために、本発明は、予め定められたトークンカウンタ値の最大値であるトークンサイズを上限値として、予め定められた周期により加算されるトークンカウンタ値を記憶するトークンカウンタ記憶部を備え、トークンカウンタ記憶部に記憶されるトークンカウンタ値に基づいてパケット送信を制御するトラヒックシェーピング装置であって、予め定められたシフト値を記憶するシフト値記憶手段と、トークンカウンタ値に加算値を加算する際に、トークンカウンタ値と、トークンサイズをシフト値により左シフト演算した値とを比較し、トークンカウンタ値の方が、トークンサイズをシフト値により左シフト演算した値よりも大きい場合に、トークンサイズを、トークンカウンタ値としてトークンカウンタ記憶部に記憶させる第1の演算手段と、パケットの送信要求を受信した場合に、トークンカウンタ値に基づいて、パケットの送信要求を行う制御手段と、制御手段がパケットの送信要求を行った場合に、パケットのフレームサイズ値をシフト値により左シフト演算した値を、トークンカウンタ値から減算する第2の演算手段と、を備えることを特徴とする。
本発明は、上述の制御手段が、パケットの送信要求を受信した場合に、トークンカウンタ値が、パケットのフレームサイズ値をシフト値により左シフト演算した値以上である場合に、パケットの送信要求を行うことを特徴とする。
本発明は、上述の制御手段が、パケットの送信要求を受信した場合に、トークンカウンタ値が、予め定められたトークンカウンタ値の初期値以上である場合に、パケットの送信要求を行うことを特徴とする。
本発明は、上述の制御手段が、送信要求を行った後、予め定められた待機時間の間、新たなパケットの送信要求を受信しない場合に、トークンカウンタ記憶部に記憶されたトークンカウンタ値に初期値を記憶させる第3の演算手段と、を備えることを特徴とする。
本発明は、予め定められたトークンカウンタ値の最大値であるトークンサイズを上限値として、予め定められた周期により加算されるトークンカウンタ値を記憶するトークンカウンタ記憶部に記憶されるトークンカウンタ値に基づいてパケット送信を制御するトラヒックシェーピング方法であって、第1の演算手段が、トークンカウンタ値に加算値を加算する際に、トークンカウンタ値と、トークンサイズを予め定められたシフト値により左シフト演算した値とを比較し、トークンカウンタ値の方が、トークンサイズをシフト値により左シフト演算した値よりも大きい場合に、トークンサイズを、トークンカウンタ値としてトークンカウンタ記憶部に記憶させるステップと、制御手段が、パケットの送信要求を受信した場合に、トークンカウンタ値に基づいて、パケットの送信要求を行うステップと、第2の演算手段が、制御手段がパケットの送信要求を行った場合に、パケットのフレームサイズ値をシフト値により左シフト演算した値を、トークンカウンタ値から減算するステップと、を備えることを特徴とする。
以上説明したように、本発明によれば、予め定められた周期(Clk)により加算値(T)が加算されるトークンカウンタ値に基づいてパケット送信を制御するトラヒックシェーピング装置が、パケットの送信要求を受信した場合に、パケットのフレームサイズ値を予め定められたシフト値(N)により左シフト演算した値と、前記トークンカウンタ値とを比較して大小を判定し、トークンカウンタ値の方が大きいと判定された場合に、前記パケットを送信すると、前記フレームサイズ値を、トークンカウンタ値から減算するようにしたので、トークンレートの値の算出式を、トークンレート=8×Clk×T/2とすることができ、従来と比べて精度の高いトークンレートによるトラヒックシェーピングを行うことが可能となる。
さらに、本発明によれば、パケットを送信した後、予め定められた待機時間の間、新たなパケットの送信要求を受信しない場合に、トークンカウンタ記憶部に記憶されたトークンカウンタ値に初期値を記憶させてトークンカウンタ値をリセットするようにしたので、リーキバケツモデルでのパケットの送受信の間隔が長い場合、その間もトークンカウンタ値には加算値が加算され、トークンカウンタ値が0以上となり、早い時点でのトークン加算の停止によるトークンレートの低下を抑え、所望するトークンレートを保つことが可能となる。
以下、本発明の一実施形態について、図面を参照して説明する。
本発明の説明中で、M<<N(M、Nは任意の数)とは、Mの値をNの値分左シフト演算を行うことを示す。また、本発明の説明中で、(条件)?(真値):(偽値)とは、三項演算子であり、(条件)が真であれば(真値)をとり、(条件)が偽であれば(偽値)をとることを示す。また、本発明の説明中で、(条件A)==(条件B)とは、(条件A)が示す条件と(条件B)が示す条件とが一致するか否かの判定を行い、一致すれば真とし、一致しなければ偽とする条件式を示す。また、本発明の説明中で、(条件A)&&(条件B)とは、(条件A)が示す条件と(条件B)が示す条件とのAND(論理積)をとることを示す。
<第1の実施形態>
図1の(a)は、第1の実施形態によりトークンバケツモデルで動作するトラヒックシェーピング装置の構成を示すブロック図である。
トラヒックシェーピング装置100は、トークンバケツモデルにより送信要求されたパケットの帯域を平滑化して出力し、トークンサイズ設定部101と、加算値設定部102と、トークンカウンタ103と、シフト値設定部104と、フレーム長設定部105と、演算部106と、制御部107とを備えている。
ここで、図2を参照して、トークンバケツモデルの処理概念を説明する。この図が示すようにトークンバケツモデルは、所望の帯域に合わせたレート(トークンレート)でトークンをトークンバケツに入れてゆき、予め定められたトークンサイズを最大とするトークンが蓄積される。
そして、フレームバッファからフレームの送出要求を得た場合、送出要求フレームのサイズと現在のトークンバケツに蓄積されているトークン量とが比較され、送出要求フレームのサイズよりもトークン量が少ない場合には、トークン量が送出要求フレームのサイズ以上になるまでフレームは送出されない。一方、トークン量が送出要求フレームのサイズ以上であれば、送出要求フレームが送出され、トークンバケツに蓄積されているトークンから送出されたフレームのサイズ(フレーム長)分のトークンを減算する。
図1に戻り、トークンサイズ設定部101は、トークンバケツに蓄積されるトークン量の最大値であるトークンサイズを記憶する。加算値設定部102は、トークンカウンタ103に加算する加算値(T)を記憶する。トークンカウンタ103は、トークンバケツに蓄積されているトークン量としてのトークンカウンタ値を記憶する。シフト値設定部104は、フレーム長とトークンカウンタ値とを比較する際に用いるシフト値を記憶する。フレーム長設定部105は、前段回路10から入力されるフレームのサイズを記憶する。演算部106は、システムクロック周波数に合わせて、トークンカウンタ103に記憶されたトークンカウンタ値に、トークンサイズ設定部101に記憶されたトークンサイズを最大値として、加算値設定部102に記憶された加算値を加算するトークンカウント処理を実行する。図1の(b)に、演算部106が行う比較処理を示す式を示す。
制御部107は、トラヒックシェーピング装置100の各機能部の動作を制御する。図3は、本実施形態における制御部107の状態遷移を示す図である。制御部107は、IDLE(待機)、ReqSnd(後段回路20へのパケット送信要求出力)、AckWait(後段回路20からのパケット受理信号待ち)、AckSnd(後段回路20からの受理信号を後段回路20に送信)のうちいずれかの状態をとる。
制御部107の初期状態は、IDLEである。IDLE状態にて、制御部107に、前段回路10からフレーム送信要求が入力され、一定の条件を満たすと、制御部107は、ReqSnd状態に遷移する。制御部107は、ReqSnd状態に遷移すると、後段回路20にフレームの送信要求を出力する。そして、制御部107は、AckWait状態となり、後段回路20からの応答を待つ。
制御部107は、AckWait状態にて後段回路20から受理信号を受信すると、AckSnd状態となり、受理信号を前段回路10に出力する。図1の(c)に、制御部107が行う処理動作を示す式を示す。ここで、前段回路10と後段回路20とは、例えば、他のトラヒックシェーピング装置100や、パケットの送信制御に関連する、パケットのキュー制御を行うキュー制御回路、パケットの優先制御、重み付け構成制御などを行うスケジューラ回路などである。
次に、図4を参照して、本発明によるトラヒックシェーピング装置100が、トラヒックシェーピングを行う動作例を説明する。
ユーザは、トラヒックシェーピング装置100の、トークンサイズ設定部101と、加算値設定部102と、シフト値設定部104とに、所定の値を記憶させておく。また、制御部107の初期状態はIDLEとする(ステップS501)。
演算部106は、トークンカウント処理を開始する。すなわち、演算部106は、一定周期で、トークンカウンタ103に記憶されたトークンカウンタ値(トークン量)を読み出し、加算値設定部102に記憶された加算値を、読み出したトークンカウンタ値に加算する。そして、演算部106は、トークンカウンタ値が、トークンサイズ設定部101に記憶されたトークンサイズをシフト値設定部104に記憶されたシフト値分左シフトした値より大きくなった場合は、トークンサイズ設定部101に記憶された値をシフト値分左シフトした値を、トークンカウンタ103にトークンカウンタ値として記憶させる。
一方、トークン量が、トークンサイズ設定部101に記憶されたトークンサイズをシフト値設定部104に記憶されたシフト値分左シフトした値より小さければ、上述のように、加算値を加算したトークンカウンタ値をトークンカウンタ103に記憶させる(ステップS502)。以降、演算部106は、ステップS502において説明したトークンカウント処理を実行し続ける。
制御部107は、前段回路10からフレーム送信要求を受信するとともに、パケットのフレーム長を受信すると、フレーム長設定部105にフレーム長を記憶させ、トークンカウンタ103に記憶されたトークンカウンタ値を読み出すとともに、シフト値設定部104からシフト値を読み出す(ステップS503)。ここで、トークンカウンタ103に記憶されたトークンカウンタ値は、ステップS502にて、一定周期で、加算値が加算されている。
そして、制御部107は、読み出したトークンカウンタ値が、フレーム長設定部105に記憶されたフレーム長をシフト値分左シフトした値以上である(YES)か否(NO)かを判定する(ステップS504)。制御部107が、ステップS504の判定処理で、NOと判定すれば、再度、トークンカウンタ103の値を読み出し、ステップS503とステップS504との処理を繰り返す。
一方、制御部107が、ステップS504の判定処理で、YESと判定すれば、制御部107は、制御部107の状態をIDLEからReqSndに遷移させる(ステップS505)。すなわち、演算部106が、シフト値設定部104に記憶されたシフト値分フレーム長を左にシフトさせた値を算出し、加算値設定部102に記憶された加算値をトークンカウンタ103に記憶されたトークンカウンタ値に加算し、加算されたトークンカウンタ値からフレーム長をシフト値分左にシフトした値を減算し、減算した結果をトークンカウンタ103に記憶させる(ステップS506)。
そして、制御部107は、後段回路20に送信要求を出力すると、制御部107の状態をReqSndからAckWaitに遷移させる(ステップS508)。制御部107は、後段回路20から受理信号を受信すると、制御部107の状態をAckWaitからAckSndに遷移させる(ステップS508)。そして、制御部107は、前段回路10に受理信号を出力すると、制御部107の状態をAckSndからIDLEに遷移させる(ステップS509)。以後、トラヒックシェーピング装置100は、ステップS503からステップS509までの処理を繰り返す。
以上説明したように、本実施形態によれば、加算値をT、システムクロックをClk、シフト値をNとすると、トークンレートは以下の式で表される。
トークンレート=8×T×Clk/2
上式を用いると、トークンレートの設定ステップΔは、Δ=8×(T+1)×Clk/2−8×T×Clk/2=8×Clk/2で表される。ここで、設定ステップΔは、シェーピングレートをつかさどるTに無関係である。そのため、トラヒックシェーピング装置100は、トークンレートの高低にかかわらず一定の設定ステップを取ることが出来る。また、上式が示すように、2で除算を行うことで、除算をシフト演算に変形することが出来るため、計算コストが低いという特長を持つ。
<第2の実施形態>
図5の(a)は、第2の実施形態によりリーキバケツモデルで動作するトラヒックシェーピング装置の構成を示すブロック図である。第2の実施形態によるトラヒックシェーピング装置200は、第1の実施形態と同様の構成をしており、第1の実施形態と同様の構成・動作については、その説明を省略する。
トラヒックシェーピング装置200は、リーキバケツモデルにより送信要求されたパケットの帯域を平滑化して出力し、トークンサイズ設定部201と、加算値設定部202と、トークンカウンタ203と、シフト値設定部204と、フレーム長設定部205と、演算部206と、制御部207とを備えている。ここで、リーキバケツモデルは、トークン量が正あるいは0である場合にフレームを送出するとともに、トークンバケツに蓄積されているトークンからフレーム長分のトークンを減算するシェーピングモデルである。
図6は、本実施形態における制御部207の状態遷移を示す図である。本実施形態による制御部207の状態遷移は、第1の実施形態とほぼ同様であるが、本実施形態では、制御部207の状態がIDLEからReqSndへ遷移する要因が、第1の実施形態と異なる。すなわち、第1の実施形態のトークンバケツモデルででは、後段回路20に送信要求を出力する状態(ReqSnd)へ移行する条件が、トークンカウンタ値≧(フレーム長<<シフト値)であるのに対し、第2の実施形態のリーキバケツモデルの場合は、トークンカウンタ値≧0である。図5の(b)に、制御部207が行う処理動作を示す式を示す。
次に、図7を参照して、本発明によるトラヒックシェーピング装置200が、トラヒックシェーピングを行う動作例を説明する。ステップS601からステップS603までの動作は、第1の実施形態におけるステップS501からステップS503までの動作と同様である。そしてステップS603の後、制御部207が、トークンカウンタ203に記憶されたトークンカウンタ値を読み出し、読み出したトークンカウンタ値が0以上(YES)か否(NO)かを判定する(ステップS604)。
ステップS604の判定処理で、制御部207がNOと判定すれば、再度、トークンカウンタ103に記憶されたトークンカウンタ値を読み出し、ステップS603とステップS604とを繰り返す。
一方、ステップS604の判定処理で、制御部207がYESと判定すれば、第1の実施形態と同様に、制御部207の状態をIDLEからReqSndに遷移させ(ステップS605)、第1の実施形態と同様の動作を行う。
このように、第2の実施形態においても、第1の実施形態と同様、トークンレートを示す式は、トークンレート=8×T×Clk/2となり、従来の分周比で単に除算する場合の問題である、設定可能なトークンレートが高い場合、粗くなり、低い場合、必要以上に細かいという点を改善できる。
以上説明したように、第2の実施形態によれば、リーキバケツモデルによっても設定ステップΔを一定にすることができる。次に、本実施形態によるトラヒックシェーピング装置200を、図8に示すような多段QoSモジュールにおけるシェーパとして用いる場合を考える。
図8に示す例では、トークンレートが200Mbit/sであるシェーパAと、トークンレートが90Mbit/sであるシェーパBと、トークンレートが100Mbit/sであるシェーパCとを想定する。シェーパAには、フレーム長1500Byteのパケットが入力され、シェーパBには、フレーム長64Byteのパケットが入力される。スケジューラ回路21は、予め定められた優先度に応じてパケットの出力を選択する。ここで、スケジューラ回路21によって、シェーパBの出力が、シェーパAの出力よりも優先される。
図9は、図8におけるシェーパA、シェーパB、シェーパCを動作させた場合の各シェーパのトークンカウンタ値を示す表である。ここで、各シェーパのシステムクロック周波数を40MHzとしたトークン加算値を用いている。また、シフト量を16ビットとして扱っているため実数であらわしている。図9に示される時刻の項は、システムクロックのクロック数を示す。
図9に示されるように、スケジューラ回路21の出力先に接続されたシェーパCのトークンレートが、スケジューラ回路21の高優先入力に接続されているシェーパBのトークンレートに近い場合、低優先入力のパケット出力時間中に高優先側に接続されているシェーパBのトークンがいっぱいになってしまい、次の高優先入力が選択されるまで加算されなくなる(時刻456から時刻5006まで)。
このため、指定されたレートでパケットをシェーピングできなくなる場合がある。図9に示されるように、シェーパCのトークン加算量の累積は、時刻7280において2275Byteである。よって2275Byte×8/(7280/40MHz)=100Mbit/sとなり、システム全体のレートは100Mbit/sであり設定値どおりであるが、シェーパBのトークン加算量の累計は、時刻7280において7687.8125Byteである。そのため、767.8125×8/(7280/40MHz)=33.76Mbit/sとなり設定値とまったく異なるレートになってしまう。この原因は、先に示したようにトークンが加算されない期間が存在するためである。
このように、第2の実施形態では、制御部207の状態がAckSndの状態で前段回路10に受理信号を出力した場合、制御部207の状態はIDLEに遷移する。ここで、図7のステップS602に示すように、前段回路10から次の送信要求信号を受信するまでの間、演算部106は、トークンカウンタ203に記憶されたトークンカウンタ値は加算値設定部202に設定された加算値をトークンサイズ設定部201に設定されたトークンサイズになるまで加算し続ける。そして、トークンカウンタ203に記憶されたトークンカウンタ値は、トークンサイズ設定部201に記憶されたトークンサイズに達した時点で加算が行われなくなる。
<第3の実施形態>
図10は、第3の実施形態によりリーキバケツモデルで動作するトラヒックシェーピング装置の構成を示すブロック図である。第3の実施形態によるトラヒックシェーピング装置300は、第2の実施形態と同様の構成をしており、第2の実施形態と同様の構成・動作については、その説明を省略する。
本実施形態によるトラヒックシェーピング装置300は、トークンサイズ設定部301と、加算値設定部302と、トークンカウンタ303と、シフト値設定部304と、フレーム長設定部305と、演算部306と、制御部307と、ウェイト値設定部308と、ウェイトカウンタ309とを備えている。
このように、第3の実施形態によるトラヒックシェーピング装置300は、第2の実施形態によるトラヒックシェーピング装置200に加え、ウェイト制御に関連する機能部が加えられている。ウェイト値設定部308は、ウェイト値の最大値(JudgeWait)を記憶する。ウェイトカウンタ309は、ウェイト値(WaitCnt)を記憶する。図11は、本実施形態における制御部307の状態遷移を示す図である。本実施形態では、制御部307は、後段回路20から受信信号を受信した後、TimeWaitの状態をとることが可能である。制御部307は、TimeWaitの状態では、ウェイト値設定部308に設定されたウェイト値の最大値が示す間、送信処理を待機する。
次に、図12を参照して、本発明によるトラヒックシェーピング装置300が、トラヒックシェーピングを行う動作例を説明する。
ユーザは、トークンサイズ設定部301、加算値設定部302、トークンカウンタ303、シフト値設定部304、ウェイト値設定部308に所定の値を記憶させておく。また制御部307の初期状態はIDLEとする(ステップS701)。演算部306は、トークンカウンタ303からトークンカウンタ値を読み出し、また、制御部307の状態を読み出し、制御部307の状態がIDLEで、かつ、トークンカウンタ≧0なら、トークンカウンタを0にリセットする。図1の(b)には、演算部306が行う処理動作を表す式が示されている。
一方、演算部306は、制御部307の状態がIDLEではないか、または、トークンカウンタ<0の場合には、加算値設定部302に設定された加算値をトークンカウンタ303のトークンカウンタ値に加算する。加算した結果、トークンカウンタ値がトークンサイズ設定部301に記憶された値をシフト値分左シフトした値より大きくなった場合は、トークンカウンタ303の値を、トークンサイズ設定部301に記憶された値をシフト債分左シフトした値に設定する(ステップS702)。
制御部307は、前段回路10から送信要求を受信するとともに、パケットのフレーム長を受信すると、トークンカウンタ303の値を読み出し(ステップS703)、トークンカウンタ303の値が0以上(YES)か否(NO)かを判定する(ステップS704)。制御部307は、ステップS704でNOと判定した場合は、所定の周期で、トークンカウンタ303の値を読み出しステップS703とステップS704とを繰り返す。一方、制御部307は、ステップS70でYESと判定した場合は、制御部307の状態をIDLEからReqSndに遷移させる(ステップS705)。
演算部306は、制御部307の状態がReqSndである場合、加算値設定部302に設定された加算値をトークンカウンタ303に記憶されたトークンカウンタ値に加算し、トークンカウンタ値から、シフト値設定部104に記憶されたシフト値分フレーム長を左にシフトした値を減算した算出結果をトークンカウンタ303にトークンカウンタ値として記憶させる(ステップS706)。
制御部307は、後段回路20へ送信要求を出力すると、制御部307の状態をReqSndからAckWaitに遷移させる(ステップS707)。そして、制御部307が、後段回路20から受理信号を受信すると、制御部307の状態をAckWaitからAckSndに遷移させる(ステップS708)。演算部306は、ウェイト値設定部308に記憶されたウェイトカウント最大値を、ウェイトカウンタ309にウェイトカウント値として記憶させる(ステップS709)。
次に、制御部307は、前段回路10に受理信号を出力し、制御部107の状態をAckSndからTimeWaitに遷移させる(ステップS710)。演算部306は、ウェイトカウンタ309に記憶されたウェイトカウント値を1減算する。演算部306は、ウェイトカウンタ309に記憶された値が0になるまで、所定の周期で減算処理を繰り返す(ステップS711、ステップS712)。
制御部307は、ウェイトカウンタ309に記憶された値が0であり、かつ、前段回路10から送信要求を受信した場合は、ステップS702に戻り、以降の処理動作を繰り返す(ステップS713:YES)。制御部307は、ウェイトカウンタ309に記憶されたウェイトカウント値が0であり、前段回路10から送信要求を受信しない場合(ステップS713:NO)は、制御部307の状態をTimeWaitからIDLEに遷移させ、ステップS702に戻り、以降の処理動作を繰り返す(ステップS714)。
このように、第3の実施形態によれば、制御部307の状態がAckSndであり、前段回路10に受理信号を出力した場合、制御部307の状態として、TimeWaitの状態を設け、このTimeWaitの状態に遷移させ、ウェイト値設定部308に設定した値になるまで、前段からの次の送信要求の受信を待ち、設定した時間内に次の送信要求の受信がない場合に、制御部の状態をIDLEにするとともに、演算部306において、トークンカウンタ303に記憶されたトークンカウンタ値が0以上の場合には、トークンカウンタ値を0にリセットする。
例えば、以上説明したようなトラヒックシェーピング装置300を、図13に示したような多段QoSモジュールにおけるシェーパとして用いる場合を考える。ここで、シェーパA´、シェーパB´、シェーパC´はいずれも本実施形態におけるトラヒックシェーピング装置300である。各シェーパのトークンレート、システムクロック周波数、フレーム長などの値は第2の実施形態において図8を用いた説明と同様である。
図14は、図13におけるシェーパA´、シェーパB´、シェーパC´を動作させた場合の各シェーパのトークンカウンタ値を示す表である。トラヒックシェーピング装置300は、後段回路20からの受理信号を受信し、前段回路10に受理信号を送信し、もし次に送出すべき送信要求がある場合には、ウェイトカウンタ309に記憶されたウェイトカウンタ値が0になる前に前段回路10から送信要求を受理する。
時刻「5005」で、シェーパC´のトークンカウンタ値が0または正になるので、トラヒックシェーピング装置300は、スケジューラ回路21に要求信号を出力し、それに対して受理信号がその後戻ってくる。つまり、加算停止していた時刻「456」から時刻「5006」の区間においてシェーパBのトークンカウンタヘの加算は継続される。従って、前段回路からの次の送信要求の受信時のトークンカウンタの値は正常となり、指定されたレートでパケットをシェーピングすることが可能となる。
すなわち、演算部106は、時刻「456」の段階で加算停止せず、加算値設定部102に記憶された加算値をトークンカウンタ103に加算し続ける。これにより、時刻「7282」のときのシェーパB´のトークン累積値が2048.062500であり、シェーパB´のトークンレートは、2048.0625×8/(7282/40MHz)=90Mbit/sとなり、指定されたレートで正しくシェーピング動作をしていることがわかる。
ただし、演算部106は、加算を続けるままでは、トークンバケツモデルのようにバーストで送信要求を行うことを許容してしまうことになるので、ウェイト値が0になった場合、すなわち設定されたトークンレートより入力される送信要求速度が低い場合には、先の加算は必要ないので、トークンカウンタを0にする。
以上説明したように、本発明によるトラヒックシェーピング装置は、前段回路からの送信要求をフレーム長とともに受信し、トークンカウンタの値により決定される送信可能状態である場合に、送信要求を後段回路にフレーム長とともに送信し、後段回路から受理信号を受信した場合、前段回路に受理信号を送信する制御部を具備し、制御部の状態により加算値をトークンカウンタに加算し、トークンサイズよりトークンカウンタの値が大きくなったときトークンカウンタの値をトークンサイズにし、制御部が送信要求を後段に送信したときトークンサイズから送信したフレーム長を減算する演算部を具備する。
さらに、本発明は、トークンサイズおよびフレームサイズを指定されたシフト値により左シフトした値とトークンカウンタとを比較する演算部を具備する。また、前段回路に受理信号を送出した後、指定された待ち時間の間トークンカウンタを加算し続け、待ち時間経過しても前段回路からの送信要求がない場合、トークンカウンタ値をリセットする。
このように、本発明によれば、リーキバケツモデル時において、ウェイト制御機能を設け、後段回路に送信要求を出力して、後段回路から受理信号を受信し、前段回路に受理信号を出力してから、次の送信要求を受信するまでの時間を調整する待ち時間が経過するまでの間、トークンサイズに指定された値までトークンカウンタに加算値を加算し続け、待ち時間が経過しても送信要求信号の受信がない場合、トークンカウンタを0にする制御を行っている。このことにより、前段回路に受理信号を出力してから次の送信要求を受信するまでの時間がかかる場合、その間、トークンカウンタに加算値が加算されるため、トークンカウンタ値が0以上となり、早い時点でトークンの加算が停止する状況が発生し、そのため、トークンレートが下がり、指定されたレートでパケットをシェーピングできなくなるという問題を解消できる。
以上、本発明の実施の形態について説明した。本実施形態によるトラヒックシェーピング装置の各手段は、専用のハードウェア(例えば、ワイヤードロジック等)により実現されるが、メモリおよびCPU(中央処理装置)により構成され、各部の機能を実現するためのプログラムをメモリからロードして実行することによりその機能を実現させるものであってもよい。また、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりトラヒックシェーピングを行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
本発明の第1の実施形態によるトラヒックシェーピング装置の構成を示す図である。 トークンバケツを用いたトラヒックシェーピングの概念を示す図である。 本発明の第1の実施形態による制御部の状態遷移を示す図である。 本発明の第1の実施形態によるトラヒックシェーピング装置の動作例を示すフローチャートである。 本発明の第2の実施形態によるトラヒックシェーピング装置の構成を示す図である。 本発明の第2の実施形態による制御部の状態遷移を示す図である。 本発明の第2の実施形態によるトラヒックシェーピング装置の動作例を示すフローチャートである。 本発明の第2の実施形態によるトラヒックシェーピング装置の実施例を示す図である。 本発明の第2の実施形態によるトラヒックシェーピング装置の実施例によるトークンカウンタ値を示す図である。 本発明の第3の実施形態によるトラヒックシェーピング装置の構成を示す図である。 本発明の第3の実施形態による制御部の状態遷移を示す図である。 本発明の第3の実施形態によるトラヒックシェーピング装置の動作例を示すフローチャートである。 本発明の第3の実施形態によるトラヒックシェーピング装置の実施例を示す図である。 本発明の第3の実施形態によるトラヒックシェーピング装置の実施例によるトークンカウンタ値を示す図である。
符号の説明
10 前段回路
20 後段回路
21 スケジューラ回路
100 トラヒックシェーピング装置
101 トークンサイズ設定部
102 加算値設定部
103 トークンカウンタ
104 シフト値設定部
105 フレーム長設定部
106 演算部
107 制御部
200 トラヒックシェーピング装置
201 トークンサイズ設定部
202 加算値設定部
203 トークンカウンタ
204 シフト値設定部
205 フレーム長設定部
206 演算部
207 制御部
300 トラヒックシェーピング装置
301 トークンサイズ設定部
302 加算値設定部
303 トークンカウンタ
304 シフト値設定部
305 フレーム長設定部
306 演算部
307 制御部
308 ウェイト値設定部
309 ウェイトカウンタ

Claims (5)

  1. 予め定められたトークンカウンタ値の最大値であるトークンサイズを上限値として、予め定められた周期により加算されるトークンカウンタ値を記憶するトークンカウンタ記憶部を備え、当該トークンカウンタ記憶部に記憶される前記トークンカウンタ値に基づいてパケット送信を制御するトラヒックシェーピング装置であって、
    予め定められたシフト値を記憶するシフト値記憶手段と、
    前記トークンカウンタ値に加算値を加算する際に、当該トークンカウンタ値と、前記トークンサイズを前記シフト値により左シフト演算した値とを比較し、前記トークンカウンタ値の方が、前記トークンサイズを前記シフト値により左シフト演算した値よりも大きい場合に、前記トークンサイズを、前記トークンカウンタ値として前記トークンカウンタ記憶部に記憶させる第1の演算手段と、
    前記パケットの送信要求を受信した場合に、前記トークンカウンタ値に基づいて、前記パケットの送信要求を行う制御手段と、
    前記制御手段が前記パケットの送信要求を行った場合に、前記パケットのフレームサイズ値を前記シフト値により左シフト演算した値を、前記トークンカウンタ値から減算する第2の演算手段と、
    を備えることを特徴とするトラヒックシェーピング装置。
  2. 前記制御手段は、前記パケットの送信要求を受信した場合に、前記トークンカウンタ値が、前記パケットのフレームサイズ値を前記シフト値により左シフト演算した値以上である場合に、前記パケットの送信要求を行う
    ことを特徴とする請求項1に記載のトラヒックシェーピング装置。
  3. 前記制御手段は、前記パケットの送信要求を受信した場合に、前記トークンカウンタ値が、予め定められたトークンカウンタ値の初期値以上である場合に、前記パケットの送信要求を行う
    ことを特徴とする請求項1に記載のトラヒックシェーピング装置。
  4. 前記制御手段が、前記送信要求を行った後、予め定められた待機時間の間、新たなパケットの送信要求を受信しない場合に、前記トークンカウンタ記憶部に記憶されたトークンカウンタ値に初期値を記憶させる第3の演算手段と、
    を備えることを特徴とする請求項1から請求項3のいずれか1項に記載のトラヒックシェーピング装置。
  5. 予め定められたトークンカウンタ値の最大値であるトークンサイズを上限値として、予め定められた周期により加算されるトークンカウンタ値を記憶するトークンカウンタ記憶部に記憶される前記トークンカウンタ値に基づいてパケット送信を制御するトラヒックシェーピング方法であって、
    第1の演算手段が、前記トークンカウンタ値に加算値を加算する際に、当該トークンカウンタ値と、前記トークンサイズを予め定められたシフト値により左シフト演算した値とを比較し、前記トークンカウンタ値の方が、前記トークンサイズを前記シフト値により左シフト演算した値よりも大きい場合に、前記トークンサイズを、前記トークンカウンタ値として前記トークンカウンタ記憶部に記憶させるステップと、
    制御手段が、前記パケットの送信要求を受信した場合に、前記トークンカウンタ値に基づいて、前記パケットの送信要求を行うステップと、
    第2の演算手段が、前記制御手段が前記パケットの送信要求を行った場合に、前記パケットのフレームサイズ値を前記シフト値により左シフト演算した値を、前記トークンカウンタ値から減算するステップと、
    を備えることを特徴とするトラヒックシェーピング方法。
JP2007277842A 2007-10-25 2007-10-25 トラヒックシェーピング装置および方法 Active JP4601657B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007277842A JP4601657B2 (ja) 2007-10-25 2007-10-25 トラヒックシェーピング装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007277842A JP4601657B2 (ja) 2007-10-25 2007-10-25 トラヒックシェーピング装置および方法

Publications (2)

Publication Number Publication Date
JP2009105829A JP2009105829A (ja) 2009-05-14
JP4601657B2 true JP4601657B2 (ja) 2010-12-22

Family

ID=40707064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007277842A Active JP4601657B2 (ja) 2007-10-25 2007-10-25 トラヒックシェーピング装置および方法

Country Status (1)

Country Link
JP (1) JP4601657B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6589497B2 (ja) * 2015-09-17 2019-10-16 日本電気株式会社 帯域制御装置、帯域制御方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1023040A (ja) * 1996-06-19 1998-01-23 Pmc Sierra Inc 可変ビットレートスケジューラ
JP2007088994A (ja) * 2005-09-26 2007-04-05 Nippon Telegr & Teleph Corp <Ntt> トラヒックシェーピング装置、およびトラヒックシェーピング方法
JP2007088998A (ja) * 2005-09-26 2007-04-05 Nippon Telegr & Teleph Corp <Ntt> パケットシェーピング装置およびパケットシェーピング方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1023040A (ja) * 1996-06-19 1998-01-23 Pmc Sierra Inc 可変ビットレートスケジューラ
JP2007088994A (ja) * 2005-09-26 2007-04-05 Nippon Telegr & Teleph Corp <Ntt> トラヒックシェーピング装置、およびトラヒックシェーピング方法
JP2007088998A (ja) * 2005-09-26 2007-04-05 Nippon Telegr & Teleph Corp <Ntt> パケットシェーピング装置およびパケットシェーピング方法

Also Published As

Publication number Publication date
JP2009105829A (ja) 2009-05-14

Similar Documents

Publication Publication Date Title
US11709534B2 (en) Method and apparatus for managing global chip power on a multicore system on chip
US8965942B1 (en) Systems and methods for sample rate tracking
WO2015096692A1 (zh) 数据接收流量控制方法及其***、计算机存储介质
CN113783793B (zh) 对时间敏感的数据帧的流量调度方法及相关设备
CN110391873B (zh) 用于确定数据传送方式的方法、装置以及计算机程序产品
CN111338575A (zh) 一种存储服务质量控制方法、装置、设备及存储介质
JP4601657B2 (ja) トラヒックシェーピング装置および方法
JP2008046892A (ja) 調停回路
Claeys et al. Tail distribution of the delay in a general batch-service queueing model
TW202301842A (zh) 具有可自動調整成本參數的非線性流量整形器
KR101829596B1 (ko) 정보 처리 장치 및 정보 처리 방법
JP3957696B2 (ja) Ipネットワーク端末装置
JP4806716B2 (ja) 通信品質制御装置、及び通信品質制御方法
CN108141431B (zh) 发射实体以及由其执行以用于向接收实体传送一个或多个数据分组的方法
JP4637154B2 (ja) トラヒックコントロール方法及び装置
JP5644531B2 (ja) データ転送装置及びデータ転送方法
US7603400B2 (en) Method and system for filter loop with saturation
CN116318516B (zh) 基于dp协议的再生流时钟动态精准实现方法及设备
CN113726691B (zh) 带宽预留方法、装置、设备以及存储介质
WO2023221780A1 (en) Hardware accelerated temporal congestion signals
JP2007079836A (ja) データ通信装置及びデータ通信方法
JP4995304B2 (ja) パケット転送装置の制御方法及び制御装置
JP6389149B2 (ja) 呼処理装置およびその動作方法
CN117176203A (zh) 音频传输方法、装置、存储介质、电子设备及产品
CN117896577A (zh) 数据处理方法、装置、电子设备及计算机存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100906

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

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

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

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4601657

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250