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って範囲だったっけ。(笑
コメント