2011年11月22日火曜日

QOS 4.ポリシングとシェーピング


帯域制御、輻輳制御、輻輳回避の設定をやっていきます。


■帯域制御


ポリシング(Policing)

リミット帯域を事前に設定しておき、その帯域以上のトラフィックが来た場合超過分のパケットを破棄する技術。ユーザが実際のアクセスルートより小さなアクセスルートが割り当てられている場合、各プロバイダーはポリシングを使用し小さいアクセスルート値(サブレート値)を強制される事が出来る。

シェーピング(Shaping)

リミット帯域を事前に設定しておき、常にその設定された帯域を超過しないようにする機能。又、リミット帯域以上のパケットを処理する場合、バッファに格納しておき再転送する。(破棄されない)。主に、FRやWAN接続の際に使用されたり、プロバイダーが顧客を契約したSLAに応じて契約したレートに制限する時に使用される。


ポリシングとシェーピングでは、トークンバケット方式を採用しております。
トークンバケット方式

CIR・・・・・平均レート
Bc・・・・・ 定期的に入ってくるトークンの量の事。
Be・・・・・ トークンバケットに貯蓄する事が出来る最大トークン量の事。
Tc・・・・・ 定期的にトークンバケットに入ってくる補充間隔。


基本的に帯域制御しているルータにパケットが到達すると、トークンバケット内に、そのトラフィックを転送可能分のトークンがあるか確認し、あればその分のトークンをバケットから取り除きます。


・シングルトークンパケット方式

シングルトークンバケット方式では、使用するトークンバケットはBcバケットの1つです。
パケットを転送するする際に、Bcバケット分のトークンで転送できるパケットの際は使用したBc分のトークンを差し引き転送する事が出来ます。
しかし、Bcバケット分のトークンではパケット転送できない場合は破棄(ポリシング)又は、キュー(シェーピング)に蓄積されます。


例> [Bc=1000バイト CIR= 10000bps の場合]
※パケットは0.8秒後に到着すると仮定します。
トークンの補充数・・・0.8秒×10000bps÷8= 1000バイト


①0.2秒目で800バイトのパケットが転送されてきた時、Bcトークンバケットから800バイト分のトークンを使用してパケットを転送する事が出来る。
残り[200バイト]

②1秒経ったので、Bc= 1000バイト分のトークンが補充されるが、Bcバケットには200バイト分のトークンが残っており残り200バイト分のトークンは溢れてしまい格納できない。
残り[1000バイト]  ※Bcバケット値以上は格納する事が出来ない

③1.2秒目で1200バイトのパケットが転送されてきた時、Bcバケット内は1000バイト分のトークンしかなく200バイト分の不足している為、パケットは破棄(ポリシング)又は、キュー(シェーピング)に蓄積されます。
残り[1000バイト]


・デュアルトークンバケット方式

デュアルトークンバケット方式ではBcとBeのトークンバケットを使用する事が可能です。

例> [Bc=1000バイト Be=3000バイト[現在は,1000バイト入っている] CIR= 10000bps の場合]
※パケットは0.8秒後に到着すると仮定します。
トークンの補充数・・・0.8秒×10000bps÷8= 1000バイト


①0.2秒目で800バイトのパケットが転送されてきた時、Bcトークンバケットから800バイト分のトークンを使用してパケットを転送する事が出来る。
残り Bcバケット[200バイト] Beバケット[1000バイト]

②1秒経ったので、Bc= 1000バイト分のトークンが補充されるが、Bcバケットには200バイト分のトークンが残っており残り200バイト分のトークンは溢れてしまい格納できないので、
溢れた200バイト分のトークンをBeバケットに格納する。
残りBcバケット[1000バイト] Beバケット[1200バイト]

③1.2秒目で1200バイトのパケットが転送されてきた時、Bcバケット内は1000バイト分のトークンしかなく200バイト分の不足している為、超過した200バイト分のトークンをBeバケットから使用する事が出来る。
残り Bcバケット[0バイト] Beバケット[1000バイト]


------  公式  ----------

・CIR = Bc(ビット) ÷ Tc(秒)
・補充するトークン量 = パケット到達時刻(秒) × CIR ÷ 8(バイト変換)


>>オススメ記事:CCIEが語る!ネットワークエンジニアにオススメな本・参考書!
>>オススメ記事:ITエンジニア必見!失敗しない転職エージェントの選び方はこれだ!