2005年09月15日

QOS編その5 トークンバケット

こんばんは、Networkersの講演、予約できなかったKyoです(泣
ってわけで行かない公算が大になってきました。
お察しください・・・。

で、今回はシェーピングやポリシングに用いられるアルゴリズム「トークンバケット」についてです。

トークンというのはtokenと書きますが、お金の変わりになるものを指すようです。
ぱちすろのメダルや、商品券?のようなものでしょうか。
バケットというのは日本語で言うとバケツになります。

総合すると、「メダルが入っているバケツ」。じゃあこのメダルで何ができるかというと
「パケットの送出(受入)ができる」
ということになるでしょう。たぶん・・(笑

バケツにトークンが徐々にたまっていく。
たまっている分だけパケット送信ができる。
送信したら代金を払うのでトークンは減る。
トークンがなかったら送信できない(この場合の処理はいろいろ)

ではもう少し細かく見ていきます。

まず、トークンやバケットがどのような規模のものか、どのような性質のものかを決めます。

・CIR(bps)
CIRというのは認定通信レート。つまり、この速度での通信を保障する、といった値です。
・Bc(byte)
ある間隔(下のTc)で受け取るトークンのサイズ。byteで指定します。
・Tc(sec)
トークンを受け取る間隔。秒であらわす。

つまり
1秒間にバケットにたまるトークンはCIR/8(byte)ですね。
CIR/8=Bc/Tc
の関係が成り立ちます。
これを利用してCLASS BASEポリシングの設定をしてみます。

Router(config-pmap-c)#police 64000 8000 conform-action transmit exceed-action drop

前回やったMQCを利用するんですね。最初の64000というのがCIRで、8000というのがBcです。
ここからTcは求められますね。
conform-actionというのはパケットを送出するだけのトークンがある場合のアクションです。
transmitということは送信します!・・・あたりまえですね。
ちなみにIPプレジデンス値を変更して送出とかいろいろできるようです。
exceed-actionはトークンが足りない場合のアクションです。ここではdropしてます。

これではなんだかなーという人のために?トークンバケットが2つ用意する場合もあります。

Router(config-pmap-c)#police 64000 8000 16000 conform-action transmit exceed-action set-prec-transmit 2 violate-action drop

単純に一つ目のトークンバケットがいっぱいになったとき、2つ目のトークンバケットにトークンが入っていきます。
もし、一つ目のトークンバケット(適合トークンバケット)にトークンがなくても2つ目のトークンバケット(超過トークンバケット)にあればexceed-actionを起こします。(この例ではプレジデンス値を下げている)
どっちにもトークンがなければviolate-actionをおこします。(ここではdropしている。)
ちなみに、超過トークンバケットの場合、BcではなくBeといいます。

シェーピングの場合は
C2K1(config-pmap-c)#shape average 64000 8000 16000
数字はもちろん順番にCIR Bc Beです。

以上は簡単な例ですが、やはりポリシング・シェーピングともにいろいろなオプションがあるようです。
次回はこれらについてみていこうとおもいます。
また、Catalyst3550のコマンドについても見ていきます・・・ってCat3550のQoSって範囲だったっけ。(笑

By kyo @ 11:57 PM | CCIE R&S | コメント (0) | トラックバック (0)

コメント

コメントを書く







名前、アドレスを登録しますか?




トラックバック

このエントリーのトラックバックURL:
http://www.n-study.com/mt/mt-tb.cgi/795