リンク収容率上限値算出装置、リンク収容率上限値算出方法、及びプログラム
【課題】既定のパケット損失率を満たすリンク収容率の上限を算出し、探索に要する計算量を削減する。
【解決手段】リンク収容率上限値算出装置であり、対象のフローを(m+1)個のサブフローに分割する手段と、サブフローi群(i=1,.,(m+1))を構成する手段と、リソース配分手段と、を備え、バケット1,.,mのバッファ長をb1,.,bm、バケット(m+1)の最大トークン停留量をb(m+1)、バケット1,.,(m+1)のトークンレートをr1,.,r(m+1)とした場合に、前記リソース配分状態において所与のリンク損失率閾値のもとでb(m+1)および収容率を(b1,.,bm,r1,.,rm,r(m+1))により決定する機能であって、かつその内r(m+1)を(b1,.,bm,r1,.,rm)の関数として算出し、収容率上限値を(b1,.,bm,r1,.,rm)領域上の最適値探索問題に帰着し算出する機能を有す。
【解決手段】リンク収容率上限値算出装置であり、対象のフローを(m+1)個のサブフローに分割する手段と、サブフローi群(i=1,.,(m+1))を構成する手段と、リソース配分手段と、を備え、バケット1,.,mのバッファ長をb1,.,bm、バケット(m+1)の最大トークン停留量をb(m+1)、バケット1,.,(m+1)のトークンレートをr1,.,r(m+1)とした場合に、前記リソース配分状態において所与のリンク損失率閾値のもとでb(m+1)および収容率を(b1,.,bm,r1,.,rm,r(m+1))により決定する機能であって、かつその内r(m+1)を(b1,.,bm,r1,.,rm)の関数として算出し、収容率上限値を(b1,.,bm,r1,.,rm)領域上の最適値探索問題に帰着し算出する機能を有す。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット交換網において、パケット損失や転送遅延を防止して、転送品質を確保(低パケット損失,低遅延等)するために、NW流入フローによる帯域利用に上限を設ける方式に関連し、特に、複数のフローを転送する固定長バッファを有するルーター等の通信装置において、パケット損失率が既定のパケット損失率上限以下となるリンク収容率(リンク帯域使用率とも呼ぶ)上限値を算出する技術に関するものである。
【背景技術】
【0002】
複数のフローを転送する固定長バッファを有する通信装置における、パケット損失率が既定のパケット損失率上限以下となるリンク収容率上限値を算出するための従来技術として、下記の従来技術1と従来技術2がある。従来技術1、2において、リンク収容率上限を算出する装置における入力、及び出力は、下記のとおりとする。
【0003】
入力:リンク帯域bw、バッファサイズbf、パケット損失率上限値L、対象フローのデータ(パケットのタイムスタンプとサイズのリスト)
出力:リンク収容率上限値a_max
<従来技術1>
対象とするフローのパケットサイズsは一定で、パケット到着がポアソン過程に従い、重畳する複数本のフローのパケット到着は互いに独立であるとしてモデル化を行う。このとき、重畳したフロー群のパケット到着もポアソン過程に従うことから、任意のリンク収容率aに対して、収容率a(サービス時間a/bw)、
【0004】
【数1】
の待ち行列モデルM/D/1/Kを用いてパケット損失率lを求めることができる。
【0005】
そこで、従来技術1では、sを対象フローの平均パケットサイズとして、l≦Lとなるようなaの最大値を二分法(0≦a≦1の範囲)によって求め、リンク収容率上限値a_maxとして出力する。
【0006】
<従来技術2>
従来技術2は、Elwalidらのフローモデル化手法(非特許文献1)(以下、これを従来手法と呼ぶ)を応用した技術である。
【0007】
従来技術2では、リーキーバケット・アルゴリズム(非特許文献2)を実行する単一の仮想的なリーキーバケット(サイズ無限、流出レートr)を用いて対象フローのパケット到着特性を定量化する。そして、パケットが常に一定量(サイズb)バースト到着するモデルを作り、重畳した全体トラヒックのバースト到着がポアソン過程に従うとみなす。このとき、
【0008】
【数2】
使用率r*a/r0の待ち行列モデルM/D/1/Kを用いてフロー群のパケット損失率lを求めることができる。
【0009】
つまり、任意のリンク収容率a、リーキーバケットの流出レートr(r≧対象フローの平均レートr0)に対してパケット損失率lを求めることができる。
【0010】
そこで、従来技術2では、rをr0 と初期設定して、l≦Lとなるようなaの最大値を二分探索法(0≦a≦1の範囲)によって求めて結果をa_maxとする。そして、rを一定量ずつ増やして上記処理を繰り返してaを出力し、もしa>a_maxならばa_maxにaを代入してa_maxを更新する。そして、上記手順を繰り返して実行し、一定回数a_maxが更新されないときに繰り返し実行を終了して、a_maxを、目的のリンク収容率上限値a_maxとして出力する。
【0011】
なお、上記従来技術2で用いられるリーキーバケット・アルゴリズムは、仮想的なバケットにビット量を補充し、一定レートでバケットのビット量を流出させるモデルのアルゴリズムである。バケットが空いている場合にはビット量が流出されず、満杯の場合にはビット量が補充されない。対象フローのパケット到着時にパケットサイズ相当のビット量を補充する状況で、パケットがバースト的に到着する場合、瞬間的に消費レートに対して補充量が過多となり、バケット内にトークンが滞留することになる。
【先行技術文献】
【非特許文献】
【0012】
【非特許文献1】A. Elwalid, et al.,"A new approach for allocating buffers and bandwidth to heterogeneous, regulated traffic in an ATM node,"IEEE J. Select. Areas Commun., vol.13, pp.1115-1127, Aug. 1995.
【非特許文献2】ITU-T Recommendation I.371,"Traffic control and congestion control in B-ISDN,"Mar. 2004.
【発明の概要】
【発明が解決しようとする課題】
【0013】
対象フローの実際のトラヒックは、バースト性を伴っている部分と、定期的なパケット送出を行っている部分の合成からなると考えられる。しかし、従来技術1ではパケットのバースト到着を想定しておらず、パケットがバースト到着する場合に比べて、算出されるパケット損失率lを実態より低く推定してしまい、NW設計上のリンク収容率上限値を適切に出力することができない。
【0014】
一方、従来技術2では、全てのトラヒックがバースト到着するという、実態より過度にバースト性の高い単一ソースのON/OFFモデルを作ることになるため、パケット損失率を実態より高く推定してしまいNW設計上のリンク収容率上限値を低く推定することから、NWの利用効率が上がらないという問題がある。
【0015】
上記の問題を解決するために、対象フローの特性をより適切にモデル化して、より実態に近いパケット損失率を推定することにより、予め定められたパケット損失率以下を満たせるリンク収容率の適切な上限値を算出するための技術が先願である特願2010−188878に記載されている。特願2010−188878に記載された技術は、本発明の前提となる技術であるので、これを「前提技術」とよぶことにする。
【0016】
しかし、後に詳述するように、前提技術では、収容率上限値算出に際して、3 個のパラメータを独立に動かし決定することとしており、探索に要する計算量が非常に大きいという課題がある。更に、前提技術では、各パラメータの探索範囲を特定していないため、本来探索対象である領域以外を探索する懸念、逆に探索対象の領域を探索対象としない懸念も存在する。
【0017】
本発明は、従来技術1、2における課題を解決するとともに、前提技術における上記の課題を解決するための技術を提供することを目的とする。
【課題を解決するための手段】
【0018】
上記の課題を解決するために、本発明は、パケット交換網における複数のフローを転送する固定長バッファを有する通信装置における、既定のパケット損失率上限以下を満たすリンク収容率上限値を算出するリンク収容率上限値算出装置であり、実トラヒックのキャプチャデータの入力を受け、当該キャプチャデータから対象情報を抽出する情報抽出手段と、前記情報抽出手段により抽出された情報に対して複数個のリーキーバケット(バケット1,2,...,(m+1)とする)を適用し、対象のフローを(m+1)個のサブフローに分割するサブフロー分割手段と、前記サブフロー分割手段で得られた各サブフロー毎に、それを重畳してサブフローi群 (i=1, 2,...,(m+1) )を構成するサブフロー群構成手段と、前記通信装置の帯域およびバッファリソースを各サブフロー群毎に固定的に配分するリソース配分手段と、を備えるリンク収容率上限値算出装置であって、前記リーキーバケット1,2,...,mのバッファ長をb1, b2, ...,bm、前記リーキーバケット(m+1) の最大トークン停留量をb(m+1)、バケット1, 2,...,(m+1)のトークンレートをr1, r2, .....,r(m+1)とした場合に、前記リソース配分手段により配分されたリソース配分状態において所与のリンク損失率閾値のもとでb(m+1) および収容率を(b1,...,bm,r1, ..., rm,r(m+1)) により決定する機能であって、かつその内r(m+1)を(b1,...,bm,r1,...,rm) の関数として算出し、収容率上限値を(b1,..., bm, r1,...,rm) 領域上の最適値探索問題に帰着して算出する機能を有する収容率上限値算出手段を備えることを特徴とするリンク収容率上限値算出装置として構成される。
【0019】
前記収容率上限値算出手段は、所与のリンク損失率閾値のもとでパラメータ(b1,...,bm, r1,...,rm,r(m+1))のうちいずれか1個を他のパラメータの関数として表すことにより、処理を実行するように構成してもよい。
【0020】
また、前記収容率上限値算出手段は、前記最適値探索における探索対象の関数の特徴を勘案した探索法を適用して、前記最適値探索の処理を実行するように構成することもできる。
【0021】
また、本発明は、上記リンク収容率上限値算出装置が実行するリンク収容率上限値算出方法として構成することもできる。
【0022】
更に、本発明は、コンピュータを、上記リンク収容率上限値算出装置の各手段として機能させるためのプログラムとして構成することもできる。
【発明の効果】
【0023】
本発明によれば、対象フローの特性をより適切にモデル化して、より実態に近いパケット損失率を推定することにより、予め定められたパケット損失率以下を満たせるリンク収容率の適切な上限値を算出することができる。
【0024】
更に、本発明によれば、前提技術における課題が解決される。すなわち、探索に要する計算量が削減される。また、各パラメータの探索範囲を特定できるため、本来探索対象である領域以外を探索する懸念や、逆に探索対象の領域を探索対象としない懸念が解消される。
【図面の簡単な説明】
【0025】
【図1】対象フローを仮想的にサブフロー1とサブフロー2に分割することを説明するための図である。
【図2】前提技術におけるリンク収容率上限値算出装置10の機能構成例である。
【図3】サブフロー分割機能部11における処理の概念を説明するための図である。
【図4】サブフロー分割機能部11が実行する処理手順を示すフローチャートである。
【図5】パケット損失率算出機能部12が実行する処理手順を示すフローチャートである。
【図6】リンク収容率上限値算出機能部13が実行する処理手順を示すフローチャートである。
【図7】リンク収容率上限値最大値探索機能部14が実行する処理手順を示すフローチャートである。
【図8】前提技術でのリンク収容率上限値の算出方式の処理概念を説明するための図である。
【図9】本発明の実施の形態に係るリンク収容率上限値算出装置の構成例である。
【図10】本発明の実施の形態に係るリンク収容率上限値算出装置が実行する処理の概念を説明するための図である。
【図11】収容率上限値算出部の処理手順例を示す図である。
【図12】SA(Simulated Annealing)法を適用する場合において、高コスト解の採択率が座標に依存していることを示す図である。
【図13】SA(Simulated Annealing)法を適用して、収容率上限値算出部が探索を行う場合の手順の一例を示す図である。
【発明を実施するための形態】
【0026】
<前提技術>
以下、本発明の実施の形態を説明するにあたり、まず、その前提となった前提技術について説明する。
【0027】
(概要)
図1を参照して、前提技術の概要を説明する。図1の上段に示すように、従来技術2では、リンク収容率上限値を算出する対象となる対象フローが常にバースト到着するものとしてモデル化していたところ、前提技術においては、図1の下段に示すように、リンク収容率上限値を算出する対象となる対象フローを仮想的にサブフロー1とサブフロー2に分割してモデル化を行うことにより対象フローの特性をより適切にモデル化する。これにより、より実態に近いパケット損失率を推定することができる。このように実態に近いパケット損失率を推定することにより、予め定められたパケット損失率以下を満たせるリンク収容率の適切な上限を算出することが可能である。
【0028】
(装置構成)
図2に、前提技術におけるリンク収容率上限値算出装置10の機能構成例を示す。図2に示すように、リンク収容率上限値算出装置10は、対象フローを仮想的なサブフローに分割するサブフロー分割機能部11と、サブフロー群ごとにリンク帯域及びバッファのリソースを固定的に割り当てて、待ち行列モデルを用いてパケット損失率を算出するパケット損失率算出機能部12と、入力条件に対応したリンク収容率上限値を算出するリンク収容率上限値算出機能部13と、対象フローに対応したリンク収容率上限値を算出するリンク収容率上限値最大値探索機能部14と、各種データを格納するデータ記憶部15とを備えている。
【0029】
ここで、データ記憶部15は、各機能部からアクセスされるメモリ等の記憶部であり、各機能部は、データ記憶部15から処理に用いるデータ(例えば変数の値)を読み出し、処理後のデータをデータ記憶部15に格納することにより、処理を進める。また、各機能部からの出力は、データ記憶部15に格納され、他の機能部や他の装置への入力のために読み出される。ただし、リンク収容率上限値最大値探索機能部14からの出力は、リンク収容率上限値算出装置10の出力として、そのまま外部に出力することとしてもよい。
【0030】
リンク収容率上限値算出装置10には、リンク帯域bw、ルータのバッファサイズbf、パケット損失率上限L、及び、対象フローのデータ(本実施の形態では、パケットのタイムスタンプとサイズのリスト)が入力され、対象フローに対応したリンク収容率上限値a_maxが出力される。例えば、入力データのうちのリンク帯域bw、バッファサイズbf、パケット損失率上限Lは、NW設計者等により、入力手段を用いてリンク収容率上限値算出装置10に入力され、対象フローのデータは、例えば、外部のデータベース装置に蓄積されたデータを通信ネットワークを介して受信することができる。
【0031】
(各機能部の詳細)
以下、図2に示すリンク収容率上限値算出装置10の各機能部の処理を詳細に説明する。後述するように、本実施の形態に係るリンク収容率上限値算出装置10においては、リンク収容率上限値最大値探索機能部14が、各機能部を動作させる制御を行って、結果として対象フローに対応したリンク収容率上限値a_maxを算出するが、以下では、各機能部毎に処理内容を説明する。
【0032】
[サブフロー分割機能部11]
サブフロー分割機能部11は、リーキーバケット・アルゴリズムを実行する2 個の仮想的なリーキーバケットを用いてフローのパケット到着特性を定量化し、対象フローを仮想的なサブフローに分割するサブフロー分割処理を行う。
【0033】
より具体的には、サブフロー分割機能部11は、対象フローのデータ、バケット1の流出レートr1、バケット1のサイズb1、及びバケット2の流出レートr2を入力し、バケット2があふれないようにする上で必要なバケットサイズb2を出力する機能を有する。サブフロー分割機能部11における処理の概念を図3を参照して説明する。
【0034】
図3に示すとおり、リーキーバケット・アルゴリズムを実行する2 個の仮想的なリーキーバケットを用いてフローのパケット到着特性を定量化するにあたり、バケット1 のサイズはb1、流出レートはr1 とする。また、バケット2 のサイズは無限として、流出レートはr2 とする。
【0035】
そして、対象フローのデータから対象フローを再現して到着パケットを観測し、パケット到着毎に観測パケットサイズ相当のビット量(トークン)をバケット1 に補充する。バケット1 が満杯の場合には、バケット1 に補充しきれない分のビット量をバケット2 へ補充する。このとき、観測中におけるバケット2 の最大ビット滞留量b2 を求める。そして、対象フローは以下の2 つのサブフローで構成されるとみなす。
【0036】
サブフロー1:平均レートr1 で常にサイズb1 のバースト到着となるフロー
サブフロー2:平均レートr2 で常にサイズb2 のバースト到着となるフロー
なお、r1 = 0,b1 = 0 の場合,従来手法と同等となる。
【0037】
図4は、対象フローのデータを与えて、r1、b1、r2を入力パラメータとし、b2を出力するための処理手順を示すフローチャートである。図4の処理は、図3に示す処理に対応するものである。また、図4の処理における一時変数等の意味は、図4内に示すとおりである。
【0038】
図4を参照して、サブフロー分割機能部11が実行するb2を出力するための処理手順を説明する。なお、以下の処理で、変数に数値を代入するとは、データ記憶部15の所定領域に、数値を格納することに相当する。
【0039】
まず、ステップ101において、パケット1個目のタイムスタンプをltimeに代入する。次に、ステップ102において、パケット1個目のパケットサイズをql1maxに代入し、ql1maxの値をql1に代入する。
【0040】
次に、ql1>b1であるか否かの判定が行われ(ステップ103)、判定結果がYesであればステップ104に進み、Noであればステップ105に進む。ステップ104では、(ql1-b1)がql2に代入され、ql2の値がql2maxに代入される。
【0041】
上記のステップ101〜104の処理はパケット1個目の処理に該当する。
【0042】
ステップ105において、次のパケットデータの有無が判定され、Noであればステップ117に進み、Yesであれば次のパケットデータの処理を行うためにステップ106に進む。
【0043】
ステップ106において、(ql1-(タイムスタンプ-ltime)*r1)がql1に代入され、(ql2-(タイムスタンプ-ltime)*r2)がql2に代入される。次に、ステップ107において、ql1<0であるか否かの判定が行われ、判定結果がYes(バケット1が空)であればステップ108に進み、Noであればステップ109に進む。
ステップ108において、ql1に0が代入される。ステップ109では、ql2<0であるか否かの判定が行われ、判定結果がYes(バケット2が空)であればステップ110に進み、Noであればステップ111に進む。ステップ110において、ql2に0が代入される。
【0044】
上記のステップ105〜110の処理はバケットからのビット量流出処理に該当する。
【0045】
ステップ111では、(ql1+パケットサイズ)がql1に代入される。続いて、ステップ112において、ql1>b1であるか否かの判定が行われ、判定結果がYes(バケット1が満杯)であればステップ113に進み、Noであればステップ114に進む。
【0046】
ステップ113において、(ql1-b1)がql2に代入され、ql2の値がql2maxに代入される。ステップ114において、ql2>ql2maxであるか否かの判定が行われ、判定結果がYesであればステップ115に進み、Noであればステップ116に進む。ステップ115において、ql2がql2maxに代入される。
【0047】
上記のステップ111〜115の処理はバケットへのビット量補充処理に該当する。
【0048】
ステップ116において、パケットのタイムスタンプがltimeに代入される。これは、直近パケットタイムスタンプltimeの更新処理である。
【0049】
そして、ステップ105に判定において、次のパケットデータがなくなった場合に、ql2maxをb2(バケット2があふれないようにする上で必要なバケットサイズ)として出力する。
【0050】
[パケット損失率算出機能部12]
パケット損失率算出機能部12は、パケット損失率算出処理を行う。パケット損失率算出処理におけるパケット損失率算出機能部12への入力と、パケット損失率算出機能部12からの出力は下記のとおりである。
【0051】
入力:リンク帯域bw、ルータバッファサイズbf、対象フロー平均レートr0、バケット1の流出レートr1、バケット1のサイズb1、バケット2の流出レートr2、バケット2があふれないようにする上で必要なバケットサイズb2、リンク収容率a
出力:パケット損失率l
パケット損失率算出機能部12は、サブフローを重畳したトラヒック(サブフロー群)ごとにリンク帯域及びバッファのリソースを固定的に割り当てて、それぞれのサブフロー群において仮想的な待ち行列モデルを従来手法に準じた方法で評価してサブフロー群毎のパケット損失率を算出して、リンク全体でのパケット損失率lを算出する機能を有する。
【0052】
ここで、リーキーバケットでモデル化されたサブフロー1に対して帯域リソースr1,バッファリソースb1を用意するとき、b1はサブフロー1の最大キュー長に等しいことからパケット損失は生じない。
【0053】
よって、上述した固定的に割り当てるリソースとして、サブフロー1 群に対してパケット損失が生じないようリンク収容率に応じたリンク帯域リソースr1 *(bw*a/r0)を割り当て、バッファリソースb1*(bw*a/r0)を割り当てる。また、残余リンク帯域リソース(bw-r1*(bw*a/r0))、残余バッファリソース(bf-b1*(bw*a/r0) )をサブフロー2 群に対して割り当てる。
【0054】
そして、サブフロー2 群においてはサイズb2 のバーストパケットがランダムに到着するモデルを考えて、
【0055】
【数3】
使用率(r2*(bw*a/r0))/(bw-(bw*a/r0)*r1)の待ち行列モデルM/D/1/K(非特許文献1)を用いてサブフロー2 群のパケット損失率l2 を求める。
【0056】
上記の算出結果から、リンク全体のパケット損失率l=l2*r2/(r1+r2) を求める。なお、r1=0、k=0とする場合、サブフロー1群は無いものとしてサブフロー2のみを重畳することになるので、従来技術2と同等となる。
【0057】
パケット損失率算出機能部12が実行する処理手順は、図5に示すとおりである。すなわち、ステップ201において、
【0058】
【数4】
使用率(r2*(bw*a/r0))/(bw-(bw*a/r0)*r1)の待ち行列モデルM/D/1/K(非特許文献1)を用いてサブフロー2群のパケット損失率l2を求め、ステップ202において、パケット損失率l=l2*r2/(r1+r2)を算出し、出力する。
[リンク収容率上限値算出機能部13]
リンク収容率上限値算出機能部13は、リンク収容率上限値算出処理を行う。リンク収容率上限値算出機能部13への入力と、リンク収容率上限値算出機能部13からの出力は、下記のとおりである。
【0059】
入力:リンク帯域bw、ルータバッファサイズbf、パケット損失率上限L、対象フロー平均レートr0、バケット1の流出レートr1、バケット1のサイズb1、バケット2の流出レートr2、バケット2があふれないようにする上で必要なバケットサイズb2
出力:入力条件r1、r2、b1、b2に対応したリンク収容率上限値a_m
より具体的には、リンク収容率上限値算出機能部13は、入力条件r1、r2、b1、b2の下で、損失率l≦損失率上限Lとなるようなリンク収容率aの最大値a_mを出力する。例えば、二分法(0≦a≦1の範囲)を用いて、リンク収容率aを変えながらパケット損失率算出機能部12を用いてパケット損失率の算出処理を繰り返すことにより、リンク収容率aの最大値a_mを算出する。
【0060】
リンク収容率上限値算出機能部13が実行する処理手順を図6のフローチャートを参照して説明する。
【0061】
リンク収容率aを設定し(ステップ301)、パケット損失率算出機能部12を用いてステップ301で設定したリンク収容率aに対応するパケット損失率lを算出する(ステップ302)。
【0062】
そして、リンク収容率上限値算出機能部13は、算出した損失率lと、与えられた損失率上限Lを比較し、損失率lが損失率上限L以下ならば、a_mにaを代入する(ステップ303)。損失率lが損失率上限L以下でなければa_mは更新されない。リンク収容率上限値算出機能部13は、ステップ301〜303の処理を十分な回数繰り返した後(ステップ304)、a_mを、入力条件r1、r2、b1、b2に対応したリンク収容率上限値として出力する(ステップ305)。上記の十分な回数の判定は、例えば、予め定めた回数の繰り返しを行ったかどうか、処理を繰り返す中でのa_mの変化が、予め定めた値よりも小さくなったかどうか、などにより行うことができる。
【0063】
以下、ここでの処理をより具体的に説明する。
【0064】
リンク収容率上限値算出機能部13は、まず、リンク収容率をa=(0+1)/2=0.5と設定し(ステップ301)、パケット損失率算出機能部12を用いてリンク収容率a=0.5のときのパケット損失率lを算出する(ステップ302)。
【0065】
続いて、リンク収容率上限値算出機能部13は、損失率lと損失率上限Lを比較し、損失率lが損失率上限L以下であれば、a_mにaを代入し(ステップ303)、a=(0.5+1)/2=0.75と設定して(ステップ304、ステップ301)、再度ステップ302の計算を行う。ステップ303において、損失率lが損失率上限Lを上回っていれば、a_mは更新されずa=(0+0.5)/2=0.25として再計算を行う。
【0066】
[リンク収容率上限値最大値探索機能部14]
リンク収容率上限値最大値探索機能部14は、対象フローのデータ、リンク帯域bw、ルータバッファサイズbf、及び損失率上限Lを入力し、リンク収容率上限値の最大値探索処理を行って、対象フローに対応したリンク収容率上限値a_maxを出力する。
【0067】
より具体的には、リンク収容率上限値最大値探索機能部14は、r1、r2、b1を変化させてサブフロー分割機能部11によりb2を求め、リンク収容率上限値算出機能部13によりリンク収容率上限値a_mを求める。そして、各r1、r2、b1の組に対するa_mの中から最大値を探索し、a_maxとして出力する。
【0068】
以下、リンク収容率上限値最大値探索機能部14が実行する処理の手順を図7のフローチャートを参照して説明する。
【0069】
まず、対象フローの平均レートr0を取得する(ステップ401)。この平均レートは、対象フローのデータから算出してもよいし、予めデータ記憶部15に格納したものを読み出してもよい。続いて、r1、r2、b1をそれぞれ0、r0、0と初期設定する(ステップ402)。その後、十分な粒度で網羅的にr1、r2、b1を変更(ただし、r1+r2≧r0)させていきa_mを算出、出力し、もしa_m>a_maxならばa_maxにa_mを代入してa_maxを更新していき、a_mの最大値a_maxを出力する。
【0070】
すなわち、ステップ403において、ステップ402での設定値をサブフロー分割機能部12への入力として使用して、サブフロー分割機能部12により、バケット2があふれないようにする上で必要なバケットサイズb2を算出する。
【0071】
続いてステップ404において、リンク収容率上限値算出機能部13により、入力条件r1、r2、b1、及びb2に対応したリンク収容率上限値a_mを算出する。そして、ステップ405で、a_m>a_maxであるか否かを判定し、判定結果がNoであればステップ407に進み、Yesであればステップ406に進む。
【0072】
ステップ406では、a_mをa_maxに代入する。そして、r1、r2、b1を変更して、ステップ402からの処理を繰り返す。ステップ407では、r1、r2、b1のそれぞれを変更してもa_maxが一定回数以上更新されていないか否かを判定する。判定結果がNo(a_maxの更新がされている場合)であれば、r1、r2、b1を変更して、ステップ402からの処理を繰り返す。判定結果がYesであれば、そのときのa_maxをリンク収容率上限値として出力する(ステップ408)。
【0073】
<前提技術における課題について>
上述したように、前提技術では、2 個のリーキーバケットを用いて、対象フローのパケット到着特性からモデルトラヒックを構成し、待ち行列モデルを用いてサブフロー(m + 1) 群(前提技術ではm=1)の損失率およびリンク全体の損失率を求める処理を、パラメータを動かしながら行い、リンク収容率上限値を探索する。
【0074】
前提技術でのリンク収容率上限値の算出方式は、図8のように表すことができる。すなわち、前提技術ではまず、パラメータ(b1, r1, r2) を独立に動かし、対応するa(b1, r1, r2) の値を求める。続いてリンク全体の損失率l(b1, r1, r2, a(b1, r1, r2)) の値を算出する。この値が閾値L 以下であれば、当該a(b1, r1, r2) ,(b1, r1, r2)をそれぞれ最適解およびそれを実現するパラメータの候補として採択する。
【0075】
そして、上記操作を各(b1, r1, r2)について実施し、a(b1, r1, r2)としてより大きい値が算出された場合には、上記の最適解候補を更新していく。
【0076】
上記のように、前提技術では、収容率上限値算出に際して、3 個のパラメータを独立に動かし決定することとしているので、探索に要する計算量が非常に大きい。また各パラメータの探索範囲を特定していないため、本来探索対象である領域以外を探索する可能性や、逆に探索対象の領域を探索対象としない可能性がある。
【0077】
<前提技術における課題を解決するための構成>
(装置構成)
上記の課題を解決するための本実施の形態に係るリンク収容率上限値算出装置100の構成例を図9に示す。本実施の形態に係るリンク収容率上限値算出装置100は、ネットワークのルータ収容設計等への使用に適した装置であり、図9に示すように、情報抽出部101、サブフロー分割部102、サブフロー群構成部103、リソース配分部104、収容率上限値算出部105、及びデータ記憶部106を備える。
【0078】
情報抽出部101は、実トラヒック(平均レートr0とする)のキャプチャデータの入力を受け、当該キャプチャデータから必要情報を抽出する機能部である。
【0079】
サブフロー分割部102は、情報抽出部101により抽出された情報に対して複数個のリーキーバケット(バケット1,2,...,(m+1)とする)を適用し、対象のフローを(m+1)個のサブフローに分割する機能部である。以下、(m+1)個のサブフローは、それぞれサブフロー1、サブフロー2,..., サブフロー(m+1)とする。また、バケット1,2,...,mのバッファ長をb1, b2, ...,bm、バケット(m+1) の最大トークン停留量をb(m+1)(m+1は添字)、バケット1, 2,...,(m+1)のトークンレートをr1, r2, .....,r(m+1)とする。
【0080】
サブフロー群構成部103は、サブフロー分割部102で得られた各サブフロー毎に、それを重畳して仮想的トラヒックモデルを構成する機能部である。以下、サブフローi を重畳して構成したモデルをサブフローi群 (i=1, 2,...,(m+1) )と記する。
【0081】
リソース配分部104は、ルータの帯域およびバッファリソースを各サブフロー群毎に固定的に配分する機能部である。
【0082】
また、収容率上限値算出部105は、前記リソース配分状態において所与のリンク損失率閾値のもとでb(m+1) および収容率を(b1,...,bm,r1,...,rm,r(m+1)) により決定する機能であって、かつその内r(m+1)を(b1,...,bm,r1,...,rm) の関数として算出し、収容率上限値を(b1,...,bm,r1,...,rm) 領域上の最適値探索問題に帰着して算出する機能を有する機能部である。
【0083】
収容率上限値算出部105は、所与のリンク損失率閾値のもとでパラメータ(b1,...,bm,r1,...,rm,r(m+1))のうちいずれか1個を他のパラメータの関数として表すことにより、処理を実行することが可能である。更に、収容率上限値算出部105は、探索対象の関数の特徴を勘案した探索法(例:SA(Simulated Annealing)における重み付け等)を適用して、前記最適値探索の処理を実行することができる。
【0084】
ここで、データ記憶部106は、各機能部からアクセスされるメモリ等の記憶部であり、各機能部は、データ記憶部106から処理に用いるデータ(例えば変数の値)を読み出し、処理後のデータをデータ記憶部106に格納することにより、処理を進める。また、各機能部からの出力は、データ記憶部106に格納され、他の機能部や他の装置への入力のために読み出される。
【0085】
リンク収容率上限値算出装置100は、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、リンク収容率上限値算出装置100の各部で行われる処理や機能は、リンク収容率上限値算出装置100を構成するコンピュータに内蔵されるCPUやメモリなどのハードウェア資源を用いて、各部で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、当該プログラムは、当該プログラムを記録したFD、CD−ROM、DVDなどの記録媒体や、インターネットなどのネットワークを介して市場に流通させることができる。
【0086】
また、リンク収容率上限値算出装置100は、単独の装置として実現してもよいし、ネットワーク運用監視装置やネットワーク設計支援装置の機能の一部、あるいは、ルータ等の通信装置の機能の一部として構成することもできる。
(リンク収容率上限値算出装置100における処理概要)
次に、リンク収容率上限値算出装置100が実行する処理の概念を図10に示す。図10は、説明を分かりやすくするために、m=1の場合を示している。また、前提技術との相違についても説明する。
【0087】
図10に示すように、損失率が一定においては、aおよび r2 はそれぞれb1,r1の関数として表すことができる。すなわち、損失率が閾値を与える領域においては、(b1,...,bm, r1,...,rm) のうちの(m-1)個を用いて、他の1個およびa を所定の領域上で表すことができる。そして、前記所定の領域において最大となるa を探索し、それを、求める最適解とする。以下、m =1の 場合において前提技術との比較を行う。
【0088】
前提技術ではパラメータ(b1,r1,r2) を独立に動かしてa(b1,r1,r2) の上限値を求めたため、例えば各パラメータの探索範囲をそれぞれ
【0089】
【数5】
とすると探索領域のボリュームは
【0090】
【数6】
で与えられたのに対し、本発明に係る方式では例えば(b1,r1) のパラメータ空間上の領域(当該領域は明示的に算出可能である)上で探索を行えばよく探索領域のボリュームは
【0091】
【数7】
で与えられる(図8、10に示したとおり)。
【0092】
また、実施の一形態として後述するように、当該パラメータ空間をさらに有界領域に分割し、個々の有界領域上での最適解を比較して全体としての最適解を求める構成とすることが可能である。
【0093】
(リンク収容率上限値算出装置100における処理の詳細:m=1の場合の例)
以下、まず、リンク収容率上限値算出装置100における処理内容をm=1の場合を例にして説明する。説明にあたって使用する記号の凡例を以下に示す。
【0094】
【数8】
まず、情報抽出部101が、実トラヒック(平均レートr0とする)のキャプチャデータの入力を受け、当該キャプチャデータから対象フローのデータ(パケットのタイムスタンプとサイズのリスト)を抽出し、サブフロー分割部102に与える。サブフロー分割部102は、情報抽出部101により抽出された情報に対して2個のリーキーバケットを適用し、対象のフローを2個のサブフローに分割する。また、サブフロー群構成部103は、サブフロー分割部102で得られた各サブフロー毎に、それを重畳してサブフロー1群、2群を構成する。ここまでの処理は前提技術と同様である。
【0095】
リソース配分部104は、各サブフロー群に対して、以下に示すようにルータの帯域リソースを固定配分する。本実施の形態では、一例として、サブフロー1群での損失率が0となるように配分を行う場合を示している。
【0096】
【数9】
この場合、サブフロー2群のパケット損失率に「Β^(サブフロー2に流入するビット数)/Β(データ中の全パケットのビット数)」を乗じることにより、リンク全体の損失率を算出することができる。
【0097】
[問題設定]
次に、収容率上限値算出部105が収容率上限値を算出するにあたっての問題設定について説明する。
【0098】
サブフロー2群のパケット損失率は、サブフロー2群に待ち行列モデルM/D/1/Kを適用し算出する。上記リソース配分より、
【0099】
【数10】
のM/D/1/K待ち行列モデルを適用すると、収容率上限値を決定することは、以下のような問題として記述できる。なお、以下での[x]は実数xの整数部分を示す。
【0100】
問題:「
【0101】
【数11】
のもとでリンク収容率(の定数倍)a^(=a/r0)の上限値を与えるパラメータの組を求めよ。ここで
【0102】
【数12】
である。」
[処理手順]
本実施の形態に係るリンク収容率上限値算出装置100の収容率上限値算出部105は、上記の問題を解くための処理を、図11に示すパラメータ最適化手順に従って実行する。この手順では、探索領域を明確にするために、リーキーバケット2に流入するビット数(Β^)をパラメータとしてとり、(b1,r1)領域を有界領域に分割する。なお、図11に示すパラメータ最適化手順は一例である。以下、収容率上限値算出部105が実行する処理手順を図11に沿って説明する。
【0103】
ステップ1)リーキーバケット2に流入するビット数Β^を所与とし、
【0104】
【数13】
をとる。
【0105】
ステップ2)
【0106】
【数14】
よりサブフロー2群の待ち行列モデルにおける損失率ρ(k, u)を求める。
【0107】
ステップ3)上記損失率を与える(k, u)の組
【0108】
【数15】
を求める。
【0109】
ステップ4)上記の各(ki, ui)について
【0110】
【数16】
を求める。これを各(b1,r1)について行い、最大のa^(=a/r0)を与えるものを探索する。
【0111】
ステップ5)上記のステップ1~4を、任意の増分幅で
【0112】
【数17】
について実施し、最大のa^×r0を求め、これをリンク収容率最大値として出力する。
【0113】
(リンク収容率上限値算出装置100における処理の詳細:一般のmについて)
次に、mが一般の場合におけるリンク収容率上限値算出装置100の処理内容を説明する。新規に必要な記号の凡例を以下に示す。
【0114】
【数18】
まず、情報抽出部101が、実トラヒック(平均レートr0とする)のキャプチャデータの入力を受け、当該キャプチャデータから対象フローのデータ(パケットのタイムスタンプとサイズのリスト)を抽出し、サブフロー分割部102に与える。サブフロー分割部103は、情報抽出部102により抽出された情報に対して(m+1)個のリーキーバケットを適用し、対象のフローを(m+1)個のサブフローに分割する。また、サブフロー群構成部103は、サブフロー分割部102で得られた各サブフロー毎に、それを重畳してサブフローi群 (i=1, 2,...,(m+1) )を構成する。前述したように、(m+1)個のサブフローは、それぞれサブフロー1、サブフロー2,..., サブフロー(m+1)であり、バケット1,2,...,mのバッファ長はb1, b2, ...,bm、バケット(m+1) の最大トークン停留量はb(m+1)、バケット1, 2,...,(m+1)のトークンレートはr1, r2, r(m+1)である。
【0115】
次に、リソース配分部104は、各サブフロー群に対して、以下に示すようにルータの帯域リソースを固定配分する。本実施の形態では、一例として、サブフロー1群での損失率が0となるように配分を行う場合を示している。
【0116】
【数19】
ここでは、サブフロー(m+1)群におけるM/D/1/Kモデルは以下のとおりである。
【0117】
【数20】
[収容率上限値算出部105の処理手順]
収容率上限値算出部105は、図11に示すパラメータ最適化手順と同様の手順で収容率上限値を求める処理を実行している。ただし、本例ではmは一般であり、1に限られない。以下、収容率上限値算出部105が実行する処理手順(ステップ11〜15)を説明する。
【0118】
ステップ11)リーキーバケット(m+1)に流入するビット数Β^を所与とし、
【0119】
【数21】
をとる。
【0120】
ステップ12)
【0121】
【数22】
よりサブフロー(m+1)群の待ち行列モデルにおける損失率ρ(k, u)を求める。
【0122】
ステップ13)上記損失率を与える(k, u)の組
【0123】
【数23】
を求める。
【0124】
ステップ14)上記の各(ki, ui)について
【0125】
【数24】
を求める。これを
【0126】
【数25】
について行い、最大のa^(=a/r0)を与えるものを探索する。
【0127】
ステップ15)上記のステップ11~14を、任意の増分幅で
【0128】
【数26】
について実施し、最大のa^×r0を求め、これをリンク収容率最大値として出力する。
【0129】
[探索処理について]
上記のステップ14(m=1のときのステップ4も同様)において、収容率上限値算出部105が実行する探索処理としては種々の手法を用いることが可能である。本実施の形態では、一例として、SA(Simulated Annealing)法を適用する場合を説明する。
【0130】
本例においては、
【0131】
【数27】
但し、b(m+1)はその各引数の値が大きい場合の方が、小さい値をとる可能性が高いため、高コスト解採択率は、これら引数の値に応じて重み付けをすることとする。図12は、この性質をm=1の場合で示した図である。図12には、高コスト解の採択率が座標に依存していることが示されている。
【0132】
【数28】
パラメータの値に依らず既存のSA法を適用する。
【0133】
図13は、SA(Simulated Annealing)法を適用して、収容率上限値算出部105が探索を行う場合の手順の一例を示す図である。本例は、
【0134】
【数29】
探索を行う場合(上記の一番目)における手順を示すものである。
【0135】
ステップ21)
【0136】
【数30】
ステップ22)解の近傍N(sol)から
【0137】
【数31】
ステップ23)
【0138】
【数32】
δ>0であるか否かを判定し、δ>0であればステップ24に進み、そうでなければステップ25に進む。
【0139】
ステップ24)
【0140】
【数33】
更新後、ステップ26に進む。
【0141】
ステップ25)
【0142】
【数34】
ステップ25での判定結果がYesであれば、
【0143】
【数35】
そして、ステップ24に進む。また、ステップ25での判定結果がNoである場合、solを更新せずにステップ26に進む。
【0144】
ステップ26)温度をα×θで更新し、ステップ22に戻る。収容率上限値算出部105は、上記のステップ22〜26を所定の回数反復することにより探索を行う。
【0145】
以上、説明したように、本実施の形態に係る技術によれば、対象フローの特性をより適切にモデル化して、より実態に近いパケット損失率を推定することにより、予め定められたパケット損失率以下を満たせるリンク収容率の適切な上限値を算出することができるという前提技術と同様の効果が得られるとともに、前提技術における課題が解決される。すなわち、探索に要する計算量が削減される。また、各パラメータの探索範囲を特定できるため、本来探索対象である領域以外を探索する懸念や、逆に探索対象の領域を探索対象としない懸念が解消される。
【0146】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【0147】
10 リンク収容率上限値算出装置
11 サブフロー分割機能部
12 パケット損失率算出機能部
13 リンク収容率上限値算出機能部
14 リンク収容率上限値最大値探索機能部
15 データ記憶部
100 リンク収容率上限値算出装置
101 情報抽出部
102 サブフロー分割部
103 サブフロー群構成部
104 リソース配分部
105 収容率上限値算出部
106 データ記憶部
【技術分野】
【0001】
本発明は、パケット交換網において、パケット損失や転送遅延を防止して、転送品質を確保(低パケット損失,低遅延等)するために、NW流入フローによる帯域利用に上限を設ける方式に関連し、特に、複数のフローを転送する固定長バッファを有するルーター等の通信装置において、パケット損失率が既定のパケット損失率上限以下となるリンク収容率(リンク帯域使用率とも呼ぶ)上限値を算出する技術に関するものである。
【背景技術】
【0002】
複数のフローを転送する固定長バッファを有する通信装置における、パケット損失率が既定のパケット損失率上限以下となるリンク収容率上限値を算出するための従来技術として、下記の従来技術1と従来技術2がある。従来技術1、2において、リンク収容率上限を算出する装置における入力、及び出力は、下記のとおりとする。
【0003】
入力:リンク帯域bw、バッファサイズbf、パケット損失率上限値L、対象フローのデータ(パケットのタイムスタンプとサイズのリスト)
出力:リンク収容率上限値a_max
<従来技術1>
対象とするフローのパケットサイズsは一定で、パケット到着がポアソン過程に従い、重畳する複数本のフローのパケット到着は互いに独立であるとしてモデル化を行う。このとき、重畳したフロー群のパケット到着もポアソン過程に従うことから、任意のリンク収容率aに対して、収容率a(サービス時間a/bw)、
【0004】
【数1】
の待ち行列モデルM/D/1/Kを用いてパケット損失率lを求めることができる。
【0005】
そこで、従来技術1では、sを対象フローの平均パケットサイズとして、l≦Lとなるようなaの最大値を二分法(0≦a≦1の範囲)によって求め、リンク収容率上限値a_maxとして出力する。
【0006】
<従来技術2>
従来技術2は、Elwalidらのフローモデル化手法(非特許文献1)(以下、これを従来手法と呼ぶ)を応用した技術である。
【0007】
従来技術2では、リーキーバケット・アルゴリズム(非特許文献2)を実行する単一の仮想的なリーキーバケット(サイズ無限、流出レートr)を用いて対象フローのパケット到着特性を定量化する。そして、パケットが常に一定量(サイズb)バースト到着するモデルを作り、重畳した全体トラヒックのバースト到着がポアソン過程に従うとみなす。このとき、
【0008】
【数2】
使用率r*a/r0の待ち行列モデルM/D/1/Kを用いてフロー群のパケット損失率lを求めることができる。
【0009】
つまり、任意のリンク収容率a、リーキーバケットの流出レートr(r≧対象フローの平均レートr0)に対してパケット損失率lを求めることができる。
【0010】
そこで、従来技術2では、rをr0 と初期設定して、l≦Lとなるようなaの最大値を二分探索法(0≦a≦1の範囲)によって求めて結果をa_maxとする。そして、rを一定量ずつ増やして上記処理を繰り返してaを出力し、もしa>a_maxならばa_maxにaを代入してa_maxを更新する。そして、上記手順を繰り返して実行し、一定回数a_maxが更新されないときに繰り返し実行を終了して、a_maxを、目的のリンク収容率上限値a_maxとして出力する。
【0011】
なお、上記従来技術2で用いられるリーキーバケット・アルゴリズムは、仮想的なバケットにビット量を補充し、一定レートでバケットのビット量を流出させるモデルのアルゴリズムである。バケットが空いている場合にはビット量が流出されず、満杯の場合にはビット量が補充されない。対象フローのパケット到着時にパケットサイズ相当のビット量を補充する状況で、パケットがバースト的に到着する場合、瞬間的に消費レートに対して補充量が過多となり、バケット内にトークンが滞留することになる。
【先行技術文献】
【非特許文献】
【0012】
【非特許文献1】A. Elwalid, et al.,"A new approach for allocating buffers and bandwidth to heterogeneous, regulated traffic in an ATM node,"IEEE J. Select. Areas Commun., vol.13, pp.1115-1127, Aug. 1995.
【非特許文献2】ITU-T Recommendation I.371,"Traffic control and congestion control in B-ISDN,"Mar. 2004.
【発明の概要】
【発明が解決しようとする課題】
【0013】
対象フローの実際のトラヒックは、バースト性を伴っている部分と、定期的なパケット送出を行っている部分の合成からなると考えられる。しかし、従来技術1ではパケットのバースト到着を想定しておらず、パケットがバースト到着する場合に比べて、算出されるパケット損失率lを実態より低く推定してしまい、NW設計上のリンク収容率上限値を適切に出力することができない。
【0014】
一方、従来技術2では、全てのトラヒックがバースト到着するという、実態より過度にバースト性の高い単一ソースのON/OFFモデルを作ることになるため、パケット損失率を実態より高く推定してしまいNW設計上のリンク収容率上限値を低く推定することから、NWの利用効率が上がらないという問題がある。
【0015】
上記の問題を解決するために、対象フローの特性をより適切にモデル化して、より実態に近いパケット損失率を推定することにより、予め定められたパケット損失率以下を満たせるリンク収容率の適切な上限値を算出するための技術が先願である特願2010−188878に記載されている。特願2010−188878に記載された技術は、本発明の前提となる技術であるので、これを「前提技術」とよぶことにする。
【0016】
しかし、後に詳述するように、前提技術では、収容率上限値算出に際して、3 個のパラメータを独立に動かし決定することとしており、探索に要する計算量が非常に大きいという課題がある。更に、前提技術では、各パラメータの探索範囲を特定していないため、本来探索対象である領域以外を探索する懸念、逆に探索対象の領域を探索対象としない懸念も存在する。
【0017】
本発明は、従来技術1、2における課題を解決するとともに、前提技術における上記の課題を解決するための技術を提供することを目的とする。
【課題を解決するための手段】
【0018】
上記の課題を解決するために、本発明は、パケット交換網における複数のフローを転送する固定長バッファを有する通信装置における、既定のパケット損失率上限以下を満たすリンク収容率上限値を算出するリンク収容率上限値算出装置であり、実トラヒックのキャプチャデータの入力を受け、当該キャプチャデータから対象情報を抽出する情報抽出手段と、前記情報抽出手段により抽出された情報に対して複数個のリーキーバケット(バケット1,2,...,(m+1)とする)を適用し、対象のフローを(m+1)個のサブフローに分割するサブフロー分割手段と、前記サブフロー分割手段で得られた各サブフロー毎に、それを重畳してサブフローi群 (i=1, 2,...,(m+1) )を構成するサブフロー群構成手段と、前記通信装置の帯域およびバッファリソースを各サブフロー群毎に固定的に配分するリソース配分手段と、を備えるリンク収容率上限値算出装置であって、前記リーキーバケット1,2,...,mのバッファ長をb1, b2, ...,bm、前記リーキーバケット(m+1) の最大トークン停留量をb(m+1)、バケット1, 2,...,(m+1)のトークンレートをr1, r2, .....,r(m+1)とした場合に、前記リソース配分手段により配分されたリソース配分状態において所与のリンク損失率閾値のもとでb(m+1) および収容率を(b1,...,bm,r1, ..., rm,r(m+1)) により決定する機能であって、かつその内r(m+1)を(b1,...,bm,r1,...,rm) の関数として算出し、収容率上限値を(b1,..., bm, r1,...,rm) 領域上の最適値探索問題に帰着して算出する機能を有する収容率上限値算出手段を備えることを特徴とするリンク収容率上限値算出装置として構成される。
【0019】
前記収容率上限値算出手段は、所与のリンク損失率閾値のもとでパラメータ(b1,...,bm, r1,...,rm,r(m+1))のうちいずれか1個を他のパラメータの関数として表すことにより、処理を実行するように構成してもよい。
【0020】
また、前記収容率上限値算出手段は、前記最適値探索における探索対象の関数の特徴を勘案した探索法を適用して、前記最適値探索の処理を実行するように構成することもできる。
【0021】
また、本発明は、上記リンク収容率上限値算出装置が実行するリンク収容率上限値算出方法として構成することもできる。
【0022】
更に、本発明は、コンピュータを、上記リンク収容率上限値算出装置の各手段として機能させるためのプログラムとして構成することもできる。
【発明の効果】
【0023】
本発明によれば、対象フローの特性をより適切にモデル化して、より実態に近いパケット損失率を推定することにより、予め定められたパケット損失率以下を満たせるリンク収容率の適切な上限値を算出することができる。
【0024】
更に、本発明によれば、前提技術における課題が解決される。すなわち、探索に要する計算量が削減される。また、各パラメータの探索範囲を特定できるため、本来探索対象である領域以外を探索する懸念や、逆に探索対象の領域を探索対象としない懸念が解消される。
【図面の簡単な説明】
【0025】
【図1】対象フローを仮想的にサブフロー1とサブフロー2に分割することを説明するための図である。
【図2】前提技術におけるリンク収容率上限値算出装置10の機能構成例である。
【図3】サブフロー分割機能部11における処理の概念を説明するための図である。
【図4】サブフロー分割機能部11が実行する処理手順を示すフローチャートである。
【図5】パケット損失率算出機能部12が実行する処理手順を示すフローチャートである。
【図6】リンク収容率上限値算出機能部13が実行する処理手順を示すフローチャートである。
【図7】リンク収容率上限値最大値探索機能部14が実行する処理手順を示すフローチャートである。
【図8】前提技術でのリンク収容率上限値の算出方式の処理概念を説明するための図である。
【図9】本発明の実施の形態に係るリンク収容率上限値算出装置の構成例である。
【図10】本発明の実施の形態に係るリンク収容率上限値算出装置が実行する処理の概念を説明するための図である。
【図11】収容率上限値算出部の処理手順例を示す図である。
【図12】SA(Simulated Annealing)法を適用する場合において、高コスト解の採択率が座標に依存していることを示す図である。
【図13】SA(Simulated Annealing)法を適用して、収容率上限値算出部が探索を行う場合の手順の一例を示す図である。
【発明を実施するための形態】
【0026】
<前提技術>
以下、本発明の実施の形態を説明するにあたり、まず、その前提となった前提技術について説明する。
【0027】
(概要)
図1を参照して、前提技術の概要を説明する。図1の上段に示すように、従来技術2では、リンク収容率上限値を算出する対象となる対象フローが常にバースト到着するものとしてモデル化していたところ、前提技術においては、図1の下段に示すように、リンク収容率上限値を算出する対象となる対象フローを仮想的にサブフロー1とサブフロー2に分割してモデル化を行うことにより対象フローの特性をより適切にモデル化する。これにより、より実態に近いパケット損失率を推定することができる。このように実態に近いパケット損失率を推定することにより、予め定められたパケット損失率以下を満たせるリンク収容率の適切な上限を算出することが可能である。
【0028】
(装置構成)
図2に、前提技術におけるリンク収容率上限値算出装置10の機能構成例を示す。図2に示すように、リンク収容率上限値算出装置10は、対象フローを仮想的なサブフローに分割するサブフロー分割機能部11と、サブフロー群ごとにリンク帯域及びバッファのリソースを固定的に割り当てて、待ち行列モデルを用いてパケット損失率を算出するパケット損失率算出機能部12と、入力条件に対応したリンク収容率上限値を算出するリンク収容率上限値算出機能部13と、対象フローに対応したリンク収容率上限値を算出するリンク収容率上限値最大値探索機能部14と、各種データを格納するデータ記憶部15とを備えている。
【0029】
ここで、データ記憶部15は、各機能部からアクセスされるメモリ等の記憶部であり、各機能部は、データ記憶部15から処理に用いるデータ(例えば変数の値)を読み出し、処理後のデータをデータ記憶部15に格納することにより、処理を進める。また、各機能部からの出力は、データ記憶部15に格納され、他の機能部や他の装置への入力のために読み出される。ただし、リンク収容率上限値最大値探索機能部14からの出力は、リンク収容率上限値算出装置10の出力として、そのまま外部に出力することとしてもよい。
【0030】
リンク収容率上限値算出装置10には、リンク帯域bw、ルータのバッファサイズbf、パケット損失率上限L、及び、対象フローのデータ(本実施の形態では、パケットのタイムスタンプとサイズのリスト)が入力され、対象フローに対応したリンク収容率上限値a_maxが出力される。例えば、入力データのうちのリンク帯域bw、バッファサイズbf、パケット損失率上限Lは、NW設計者等により、入力手段を用いてリンク収容率上限値算出装置10に入力され、対象フローのデータは、例えば、外部のデータベース装置に蓄積されたデータを通信ネットワークを介して受信することができる。
【0031】
(各機能部の詳細)
以下、図2に示すリンク収容率上限値算出装置10の各機能部の処理を詳細に説明する。後述するように、本実施の形態に係るリンク収容率上限値算出装置10においては、リンク収容率上限値最大値探索機能部14が、各機能部を動作させる制御を行って、結果として対象フローに対応したリンク収容率上限値a_maxを算出するが、以下では、各機能部毎に処理内容を説明する。
【0032】
[サブフロー分割機能部11]
サブフロー分割機能部11は、リーキーバケット・アルゴリズムを実行する2 個の仮想的なリーキーバケットを用いてフローのパケット到着特性を定量化し、対象フローを仮想的なサブフローに分割するサブフロー分割処理を行う。
【0033】
より具体的には、サブフロー分割機能部11は、対象フローのデータ、バケット1の流出レートr1、バケット1のサイズb1、及びバケット2の流出レートr2を入力し、バケット2があふれないようにする上で必要なバケットサイズb2を出力する機能を有する。サブフロー分割機能部11における処理の概念を図3を参照して説明する。
【0034】
図3に示すとおり、リーキーバケット・アルゴリズムを実行する2 個の仮想的なリーキーバケットを用いてフローのパケット到着特性を定量化するにあたり、バケット1 のサイズはb1、流出レートはr1 とする。また、バケット2 のサイズは無限として、流出レートはr2 とする。
【0035】
そして、対象フローのデータから対象フローを再現して到着パケットを観測し、パケット到着毎に観測パケットサイズ相当のビット量(トークン)をバケット1 に補充する。バケット1 が満杯の場合には、バケット1 に補充しきれない分のビット量をバケット2 へ補充する。このとき、観測中におけるバケット2 の最大ビット滞留量b2 を求める。そして、対象フローは以下の2 つのサブフローで構成されるとみなす。
【0036】
サブフロー1:平均レートr1 で常にサイズb1 のバースト到着となるフロー
サブフロー2:平均レートr2 で常にサイズb2 のバースト到着となるフロー
なお、r1 = 0,b1 = 0 の場合,従来手法と同等となる。
【0037】
図4は、対象フローのデータを与えて、r1、b1、r2を入力パラメータとし、b2を出力するための処理手順を示すフローチャートである。図4の処理は、図3に示す処理に対応するものである。また、図4の処理における一時変数等の意味は、図4内に示すとおりである。
【0038】
図4を参照して、サブフロー分割機能部11が実行するb2を出力するための処理手順を説明する。なお、以下の処理で、変数に数値を代入するとは、データ記憶部15の所定領域に、数値を格納することに相当する。
【0039】
まず、ステップ101において、パケット1個目のタイムスタンプをltimeに代入する。次に、ステップ102において、パケット1個目のパケットサイズをql1maxに代入し、ql1maxの値をql1に代入する。
【0040】
次に、ql1>b1であるか否かの判定が行われ(ステップ103)、判定結果がYesであればステップ104に進み、Noであればステップ105に進む。ステップ104では、(ql1-b1)がql2に代入され、ql2の値がql2maxに代入される。
【0041】
上記のステップ101〜104の処理はパケット1個目の処理に該当する。
【0042】
ステップ105において、次のパケットデータの有無が判定され、Noであればステップ117に進み、Yesであれば次のパケットデータの処理を行うためにステップ106に進む。
【0043】
ステップ106において、(ql1-(タイムスタンプ-ltime)*r1)がql1に代入され、(ql2-(タイムスタンプ-ltime)*r2)がql2に代入される。次に、ステップ107において、ql1<0であるか否かの判定が行われ、判定結果がYes(バケット1が空)であればステップ108に進み、Noであればステップ109に進む。
ステップ108において、ql1に0が代入される。ステップ109では、ql2<0であるか否かの判定が行われ、判定結果がYes(バケット2が空)であればステップ110に進み、Noであればステップ111に進む。ステップ110において、ql2に0が代入される。
【0044】
上記のステップ105〜110の処理はバケットからのビット量流出処理に該当する。
【0045】
ステップ111では、(ql1+パケットサイズ)がql1に代入される。続いて、ステップ112において、ql1>b1であるか否かの判定が行われ、判定結果がYes(バケット1が満杯)であればステップ113に進み、Noであればステップ114に進む。
【0046】
ステップ113において、(ql1-b1)がql2に代入され、ql2の値がql2maxに代入される。ステップ114において、ql2>ql2maxであるか否かの判定が行われ、判定結果がYesであればステップ115に進み、Noであればステップ116に進む。ステップ115において、ql2がql2maxに代入される。
【0047】
上記のステップ111〜115の処理はバケットへのビット量補充処理に該当する。
【0048】
ステップ116において、パケットのタイムスタンプがltimeに代入される。これは、直近パケットタイムスタンプltimeの更新処理である。
【0049】
そして、ステップ105に判定において、次のパケットデータがなくなった場合に、ql2maxをb2(バケット2があふれないようにする上で必要なバケットサイズ)として出力する。
【0050】
[パケット損失率算出機能部12]
パケット損失率算出機能部12は、パケット損失率算出処理を行う。パケット損失率算出処理におけるパケット損失率算出機能部12への入力と、パケット損失率算出機能部12からの出力は下記のとおりである。
【0051】
入力:リンク帯域bw、ルータバッファサイズbf、対象フロー平均レートr0、バケット1の流出レートr1、バケット1のサイズb1、バケット2の流出レートr2、バケット2があふれないようにする上で必要なバケットサイズb2、リンク収容率a
出力:パケット損失率l
パケット損失率算出機能部12は、サブフローを重畳したトラヒック(サブフロー群)ごとにリンク帯域及びバッファのリソースを固定的に割り当てて、それぞれのサブフロー群において仮想的な待ち行列モデルを従来手法に準じた方法で評価してサブフロー群毎のパケット損失率を算出して、リンク全体でのパケット損失率lを算出する機能を有する。
【0052】
ここで、リーキーバケットでモデル化されたサブフロー1に対して帯域リソースr1,バッファリソースb1を用意するとき、b1はサブフロー1の最大キュー長に等しいことからパケット損失は生じない。
【0053】
よって、上述した固定的に割り当てるリソースとして、サブフロー1 群に対してパケット損失が生じないようリンク収容率に応じたリンク帯域リソースr1 *(bw*a/r0)を割り当て、バッファリソースb1*(bw*a/r0)を割り当てる。また、残余リンク帯域リソース(bw-r1*(bw*a/r0))、残余バッファリソース(bf-b1*(bw*a/r0) )をサブフロー2 群に対して割り当てる。
【0054】
そして、サブフロー2 群においてはサイズb2 のバーストパケットがランダムに到着するモデルを考えて、
【0055】
【数3】
使用率(r2*(bw*a/r0))/(bw-(bw*a/r0)*r1)の待ち行列モデルM/D/1/K(非特許文献1)を用いてサブフロー2 群のパケット損失率l2 を求める。
【0056】
上記の算出結果から、リンク全体のパケット損失率l=l2*r2/(r1+r2) を求める。なお、r1=0、k=0とする場合、サブフロー1群は無いものとしてサブフロー2のみを重畳することになるので、従来技術2と同等となる。
【0057】
パケット損失率算出機能部12が実行する処理手順は、図5に示すとおりである。すなわち、ステップ201において、
【0058】
【数4】
使用率(r2*(bw*a/r0))/(bw-(bw*a/r0)*r1)の待ち行列モデルM/D/1/K(非特許文献1)を用いてサブフロー2群のパケット損失率l2を求め、ステップ202において、パケット損失率l=l2*r2/(r1+r2)を算出し、出力する。
[リンク収容率上限値算出機能部13]
リンク収容率上限値算出機能部13は、リンク収容率上限値算出処理を行う。リンク収容率上限値算出機能部13への入力と、リンク収容率上限値算出機能部13からの出力は、下記のとおりである。
【0059】
入力:リンク帯域bw、ルータバッファサイズbf、パケット損失率上限L、対象フロー平均レートr0、バケット1の流出レートr1、バケット1のサイズb1、バケット2の流出レートr2、バケット2があふれないようにする上で必要なバケットサイズb2
出力:入力条件r1、r2、b1、b2に対応したリンク収容率上限値a_m
より具体的には、リンク収容率上限値算出機能部13は、入力条件r1、r2、b1、b2の下で、損失率l≦損失率上限Lとなるようなリンク収容率aの最大値a_mを出力する。例えば、二分法(0≦a≦1の範囲)を用いて、リンク収容率aを変えながらパケット損失率算出機能部12を用いてパケット損失率の算出処理を繰り返すことにより、リンク収容率aの最大値a_mを算出する。
【0060】
リンク収容率上限値算出機能部13が実行する処理手順を図6のフローチャートを参照して説明する。
【0061】
リンク収容率aを設定し(ステップ301)、パケット損失率算出機能部12を用いてステップ301で設定したリンク収容率aに対応するパケット損失率lを算出する(ステップ302)。
【0062】
そして、リンク収容率上限値算出機能部13は、算出した損失率lと、与えられた損失率上限Lを比較し、損失率lが損失率上限L以下ならば、a_mにaを代入する(ステップ303)。損失率lが損失率上限L以下でなければa_mは更新されない。リンク収容率上限値算出機能部13は、ステップ301〜303の処理を十分な回数繰り返した後(ステップ304)、a_mを、入力条件r1、r2、b1、b2に対応したリンク収容率上限値として出力する(ステップ305)。上記の十分な回数の判定は、例えば、予め定めた回数の繰り返しを行ったかどうか、処理を繰り返す中でのa_mの変化が、予め定めた値よりも小さくなったかどうか、などにより行うことができる。
【0063】
以下、ここでの処理をより具体的に説明する。
【0064】
リンク収容率上限値算出機能部13は、まず、リンク収容率をa=(0+1)/2=0.5と設定し(ステップ301)、パケット損失率算出機能部12を用いてリンク収容率a=0.5のときのパケット損失率lを算出する(ステップ302)。
【0065】
続いて、リンク収容率上限値算出機能部13は、損失率lと損失率上限Lを比較し、損失率lが損失率上限L以下であれば、a_mにaを代入し(ステップ303)、a=(0.5+1)/2=0.75と設定して(ステップ304、ステップ301)、再度ステップ302の計算を行う。ステップ303において、損失率lが損失率上限Lを上回っていれば、a_mは更新されずa=(0+0.5)/2=0.25として再計算を行う。
【0066】
[リンク収容率上限値最大値探索機能部14]
リンク収容率上限値最大値探索機能部14は、対象フローのデータ、リンク帯域bw、ルータバッファサイズbf、及び損失率上限Lを入力し、リンク収容率上限値の最大値探索処理を行って、対象フローに対応したリンク収容率上限値a_maxを出力する。
【0067】
より具体的には、リンク収容率上限値最大値探索機能部14は、r1、r2、b1を変化させてサブフロー分割機能部11によりb2を求め、リンク収容率上限値算出機能部13によりリンク収容率上限値a_mを求める。そして、各r1、r2、b1の組に対するa_mの中から最大値を探索し、a_maxとして出力する。
【0068】
以下、リンク収容率上限値最大値探索機能部14が実行する処理の手順を図7のフローチャートを参照して説明する。
【0069】
まず、対象フローの平均レートr0を取得する(ステップ401)。この平均レートは、対象フローのデータから算出してもよいし、予めデータ記憶部15に格納したものを読み出してもよい。続いて、r1、r2、b1をそれぞれ0、r0、0と初期設定する(ステップ402)。その後、十分な粒度で網羅的にr1、r2、b1を変更(ただし、r1+r2≧r0)させていきa_mを算出、出力し、もしa_m>a_maxならばa_maxにa_mを代入してa_maxを更新していき、a_mの最大値a_maxを出力する。
【0070】
すなわち、ステップ403において、ステップ402での設定値をサブフロー分割機能部12への入力として使用して、サブフロー分割機能部12により、バケット2があふれないようにする上で必要なバケットサイズb2を算出する。
【0071】
続いてステップ404において、リンク収容率上限値算出機能部13により、入力条件r1、r2、b1、及びb2に対応したリンク収容率上限値a_mを算出する。そして、ステップ405で、a_m>a_maxであるか否かを判定し、判定結果がNoであればステップ407に進み、Yesであればステップ406に進む。
【0072】
ステップ406では、a_mをa_maxに代入する。そして、r1、r2、b1を変更して、ステップ402からの処理を繰り返す。ステップ407では、r1、r2、b1のそれぞれを変更してもa_maxが一定回数以上更新されていないか否かを判定する。判定結果がNo(a_maxの更新がされている場合)であれば、r1、r2、b1を変更して、ステップ402からの処理を繰り返す。判定結果がYesであれば、そのときのa_maxをリンク収容率上限値として出力する(ステップ408)。
【0073】
<前提技術における課題について>
上述したように、前提技術では、2 個のリーキーバケットを用いて、対象フローのパケット到着特性からモデルトラヒックを構成し、待ち行列モデルを用いてサブフロー(m + 1) 群(前提技術ではm=1)の損失率およびリンク全体の損失率を求める処理を、パラメータを動かしながら行い、リンク収容率上限値を探索する。
【0074】
前提技術でのリンク収容率上限値の算出方式は、図8のように表すことができる。すなわち、前提技術ではまず、パラメータ(b1, r1, r2) を独立に動かし、対応するa(b1, r1, r2) の値を求める。続いてリンク全体の損失率l(b1, r1, r2, a(b1, r1, r2)) の値を算出する。この値が閾値L 以下であれば、当該a(b1, r1, r2) ,(b1, r1, r2)をそれぞれ最適解およびそれを実現するパラメータの候補として採択する。
【0075】
そして、上記操作を各(b1, r1, r2)について実施し、a(b1, r1, r2)としてより大きい値が算出された場合には、上記の最適解候補を更新していく。
【0076】
上記のように、前提技術では、収容率上限値算出に際して、3 個のパラメータを独立に動かし決定することとしているので、探索に要する計算量が非常に大きい。また各パラメータの探索範囲を特定していないため、本来探索対象である領域以外を探索する可能性や、逆に探索対象の領域を探索対象としない可能性がある。
【0077】
<前提技術における課題を解決するための構成>
(装置構成)
上記の課題を解決するための本実施の形態に係るリンク収容率上限値算出装置100の構成例を図9に示す。本実施の形態に係るリンク収容率上限値算出装置100は、ネットワークのルータ収容設計等への使用に適した装置であり、図9に示すように、情報抽出部101、サブフロー分割部102、サブフロー群構成部103、リソース配分部104、収容率上限値算出部105、及びデータ記憶部106を備える。
【0078】
情報抽出部101は、実トラヒック(平均レートr0とする)のキャプチャデータの入力を受け、当該キャプチャデータから必要情報を抽出する機能部である。
【0079】
サブフロー分割部102は、情報抽出部101により抽出された情報に対して複数個のリーキーバケット(バケット1,2,...,(m+1)とする)を適用し、対象のフローを(m+1)個のサブフローに分割する機能部である。以下、(m+1)個のサブフローは、それぞれサブフロー1、サブフロー2,..., サブフロー(m+1)とする。また、バケット1,2,...,mのバッファ長をb1, b2, ...,bm、バケット(m+1) の最大トークン停留量をb(m+1)(m+1は添字)、バケット1, 2,...,(m+1)のトークンレートをr1, r2, .....,r(m+1)とする。
【0080】
サブフロー群構成部103は、サブフロー分割部102で得られた各サブフロー毎に、それを重畳して仮想的トラヒックモデルを構成する機能部である。以下、サブフローi を重畳して構成したモデルをサブフローi群 (i=1, 2,...,(m+1) )と記する。
【0081】
リソース配分部104は、ルータの帯域およびバッファリソースを各サブフロー群毎に固定的に配分する機能部である。
【0082】
また、収容率上限値算出部105は、前記リソース配分状態において所与のリンク損失率閾値のもとでb(m+1) および収容率を(b1,...,bm,r1,...,rm,r(m+1)) により決定する機能であって、かつその内r(m+1)を(b1,...,bm,r1,...,rm) の関数として算出し、収容率上限値を(b1,...,bm,r1,...,rm) 領域上の最適値探索問題に帰着して算出する機能を有する機能部である。
【0083】
収容率上限値算出部105は、所与のリンク損失率閾値のもとでパラメータ(b1,...,bm,r1,...,rm,r(m+1))のうちいずれか1個を他のパラメータの関数として表すことにより、処理を実行することが可能である。更に、収容率上限値算出部105は、探索対象の関数の特徴を勘案した探索法(例:SA(Simulated Annealing)における重み付け等)を適用して、前記最適値探索の処理を実行することができる。
【0084】
ここで、データ記憶部106は、各機能部からアクセスされるメモリ等の記憶部であり、各機能部は、データ記憶部106から処理に用いるデータ(例えば変数の値)を読み出し、処理後のデータをデータ記憶部106に格納することにより、処理を進める。また、各機能部からの出力は、データ記憶部106に格納され、他の機能部や他の装置への入力のために読み出される。
【0085】
リンク収容率上限値算出装置100は、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、リンク収容率上限値算出装置100の各部で行われる処理や機能は、リンク収容率上限値算出装置100を構成するコンピュータに内蔵されるCPUやメモリなどのハードウェア資源を用いて、各部で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、当該プログラムは、当該プログラムを記録したFD、CD−ROM、DVDなどの記録媒体や、インターネットなどのネットワークを介して市場に流通させることができる。
【0086】
また、リンク収容率上限値算出装置100は、単独の装置として実現してもよいし、ネットワーク運用監視装置やネットワーク設計支援装置の機能の一部、あるいは、ルータ等の通信装置の機能の一部として構成することもできる。
(リンク収容率上限値算出装置100における処理概要)
次に、リンク収容率上限値算出装置100が実行する処理の概念を図10に示す。図10は、説明を分かりやすくするために、m=1の場合を示している。また、前提技術との相違についても説明する。
【0087】
図10に示すように、損失率が一定においては、aおよび r2 はそれぞれb1,r1の関数として表すことができる。すなわち、損失率が閾値を与える領域においては、(b1,...,bm, r1,...,rm) のうちの(m-1)個を用いて、他の1個およびa を所定の領域上で表すことができる。そして、前記所定の領域において最大となるa を探索し、それを、求める最適解とする。以下、m =1の 場合において前提技術との比較を行う。
【0088】
前提技術ではパラメータ(b1,r1,r2) を独立に動かしてa(b1,r1,r2) の上限値を求めたため、例えば各パラメータの探索範囲をそれぞれ
【0089】
【数5】
とすると探索領域のボリュームは
【0090】
【数6】
で与えられたのに対し、本発明に係る方式では例えば(b1,r1) のパラメータ空間上の領域(当該領域は明示的に算出可能である)上で探索を行えばよく探索領域のボリュームは
【0091】
【数7】
で与えられる(図8、10に示したとおり)。
【0092】
また、実施の一形態として後述するように、当該パラメータ空間をさらに有界領域に分割し、個々の有界領域上での最適解を比較して全体としての最適解を求める構成とすることが可能である。
【0093】
(リンク収容率上限値算出装置100における処理の詳細:m=1の場合の例)
以下、まず、リンク収容率上限値算出装置100における処理内容をm=1の場合を例にして説明する。説明にあたって使用する記号の凡例を以下に示す。
【0094】
【数8】
まず、情報抽出部101が、実トラヒック(平均レートr0とする)のキャプチャデータの入力を受け、当該キャプチャデータから対象フローのデータ(パケットのタイムスタンプとサイズのリスト)を抽出し、サブフロー分割部102に与える。サブフロー分割部102は、情報抽出部101により抽出された情報に対して2個のリーキーバケットを適用し、対象のフローを2個のサブフローに分割する。また、サブフロー群構成部103は、サブフロー分割部102で得られた各サブフロー毎に、それを重畳してサブフロー1群、2群を構成する。ここまでの処理は前提技術と同様である。
【0095】
リソース配分部104は、各サブフロー群に対して、以下に示すようにルータの帯域リソースを固定配分する。本実施の形態では、一例として、サブフロー1群での損失率が0となるように配分を行う場合を示している。
【0096】
【数9】
この場合、サブフロー2群のパケット損失率に「Β^(サブフロー2に流入するビット数)/Β(データ中の全パケットのビット数)」を乗じることにより、リンク全体の損失率を算出することができる。
【0097】
[問題設定]
次に、収容率上限値算出部105が収容率上限値を算出するにあたっての問題設定について説明する。
【0098】
サブフロー2群のパケット損失率は、サブフロー2群に待ち行列モデルM/D/1/Kを適用し算出する。上記リソース配分より、
【0099】
【数10】
のM/D/1/K待ち行列モデルを適用すると、収容率上限値を決定することは、以下のような問題として記述できる。なお、以下での[x]は実数xの整数部分を示す。
【0100】
問題:「
【0101】
【数11】
のもとでリンク収容率(の定数倍)a^(=a/r0)の上限値を与えるパラメータの組を求めよ。ここで
【0102】
【数12】
である。」
[処理手順]
本実施の形態に係るリンク収容率上限値算出装置100の収容率上限値算出部105は、上記の問題を解くための処理を、図11に示すパラメータ最適化手順に従って実行する。この手順では、探索領域を明確にするために、リーキーバケット2に流入するビット数(Β^)をパラメータとしてとり、(b1,r1)領域を有界領域に分割する。なお、図11に示すパラメータ最適化手順は一例である。以下、収容率上限値算出部105が実行する処理手順を図11に沿って説明する。
【0103】
ステップ1)リーキーバケット2に流入するビット数Β^を所与とし、
【0104】
【数13】
をとる。
【0105】
ステップ2)
【0106】
【数14】
よりサブフロー2群の待ち行列モデルにおける損失率ρ(k, u)を求める。
【0107】
ステップ3)上記損失率を与える(k, u)の組
【0108】
【数15】
を求める。
【0109】
ステップ4)上記の各(ki, ui)について
【0110】
【数16】
を求める。これを各(b1,r1)について行い、最大のa^(=a/r0)を与えるものを探索する。
【0111】
ステップ5)上記のステップ1~4を、任意の増分幅で
【0112】
【数17】
について実施し、最大のa^×r0を求め、これをリンク収容率最大値として出力する。
【0113】
(リンク収容率上限値算出装置100における処理の詳細:一般のmについて)
次に、mが一般の場合におけるリンク収容率上限値算出装置100の処理内容を説明する。新規に必要な記号の凡例を以下に示す。
【0114】
【数18】
まず、情報抽出部101が、実トラヒック(平均レートr0とする)のキャプチャデータの入力を受け、当該キャプチャデータから対象フローのデータ(パケットのタイムスタンプとサイズのリスト)を抽出し、サブフロー分割部102に与える。サブフロー分割部103は、情報抽出部102により抽出された情報に対して(m+1)個のリーキーバケットを適用し、対象のフローを(m+1)個のサブフローに分割する。また、サブフロー群構成部103は、サブフロー分割部102で得られた各サブフロー毎に、それを重畳してサブフローi群 (i=1, 2,...,(m+1) )を構成する。前述したように、(m+1)個のサブフローは、それぞれサブフロー1、サブフロー2,..., サブフロー(m+1)であり、バケット1,2,...,mのバッファ長はb1, b2, ...,bm、バケット(m+1) の最大トークン停留量はb(m+1)、バケット1, 2,...,(m+1)のトークンレートはr1, r2, r(m+1)である。
【0115】
次に、リソース配分部104は、各サブフロー群に対して、以下に示すようにルータの帯域リソースを固定配分する。本実施の形態では、一例として、サブフロー1群での損失率が0となるように配分を行う場合を示している。
【0116】
【数19】
ここでは、サブフロー(m+1)群におけるM/D/1/Kモデルは以下のとおりである。
【0117】
【数20】
[収容率上限値算出部105の処理手順]
収容率上限値算出部105は、図11に示すパラメータ最適化手順と同様の手順で収容率上限値を求める処理を実行している。ただし、本例ではmは一般であり、1に限られない。以下、収容率上限値算出部105が実行する処理手順(ステップ11〜15)を説明する。
【0118】
ステップ11)リーキーバケット(m+1)に流入するビット数Β^を所与とし、
【0119】
【数21】
をとる。
【0120】
ステップ12)
【0121】
【数22】
よりサブフロー(m+1)群の待ち行列モデルにおける損失率ρ(k, u)を求める。
【0122】
ステップ13)上記損失率を与える(k, u)の組
【0123】
【数23】
を求める。
【0124】
ステップ14)上記の各(ki, ui)について
【0125】
【数24】
を求める。これを
【0126】
【数25】
について行い、最大のa^(=a/r0)を与えるものを探索する。
【0127】
ステップ15)上記のステップ11~14を、任意の増分幅で
【0128】
【数26】
について実施し、最大のa^×r0を求め、これをリンク収容率最大値として出力する。
【0129】
[探索処理について]
上記のステップ14(m=1のときのステップ4も同様)において、収容率上限値算出部105が実行する探索処理としては種々の手法を用いることが可能である。本実施の形態では、一例として、SA(Simulated Annealing)法を適用する場合を説明する。
【0130】
本例においては、
【0131】
【数27】
但し、b(m+1)はその各引数の値が大きい場合の方が、小さい値をとる可能性が高いため、高コスト解採択率は、これら引数の値に応じて重み付けをすることとする。図12は、この性質をm=1の場合で示した図である。図12には、高コスト解の採択率が座標に依存していることが示されている。
【0132】
【数28】
パラメータの値に依らず既存のSA法を適用する。
【0133】
図13は、SA(Simulated Annealing)法を適用して、収容率上限値算出部105が探索を行う場合の手順の一例を示す図である。本例は、
【0134】
【数29】
探索を行う場合(上記の一番目)における手順を示すものである。
【0135】
ステップ21)
【0136】
【数30】
ステップ22)解の近傍N(sol)から
【0137】
【数31】
ステップ23)
【0138】
【数32】
δ>0であるか否かを判定し、δ>0であればステップ24に進み、そうでなければステップ25に進む。
【0139】
ステップ24)
【0140】
【数33】
更新後、ステップ26に進む。
【0141】
ステップ25)
【0142】
【数34】
ステップ25での判定結果がYesであれば、
【0143】
【数35】
そして、ステップ24に進む。また、ステップ25での判定結果がNoである場合、solを更新せずにステップ26に進む。
【0144】
ステップ26)温度をα×θで更新し、ステップ22に戻る。収容率上限値算出部105は、上記のステップ22〜26を所定の回数反復することにより探索を行う。
【0145】
以上、説明したように、本実施の形態に係る技術によれば、対象フローの特性をより適切にモデル化して、より実態に近いパケット損失率を推定することにより、予め定められたパケット損失率以下を満たせるリンク収容率の適切な上限値を算出することができるという前提技術と同様の効果が得られるとともに、前提技術における課題が解決される。すなわち、探索に要する計算量が削減される。また、各パラメータの探索範囲を特定できるため、本来探索対象である領域以外を探索する懸念や、逆に探索対象の領域を探索対象としない懸念が解消される。
【0146】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【0147】
10 リンク収容率上限値算出装置
11 サブフロー分割機能部
12 パケット損失率算出機能部
13 リンク収容率上限値算出機能部
14 リンク収容率上限値最大値探索機能部
15 データ記憶部
100 リンク収容率上限値算出装置
101 情報抽出部
102 サブフロー分割部
103 サブフロー群構成部
104 リソース配分部
105 収容率上限値算出部
106 データ記憶部
【特許請求の範囲】
【請求項1】
パケット交換網における複数のフローを転送する固定長バッファを有する通信装置における、既定のパケット損失率上限以下を満たすリンク収容率上限値を算出するリンク収容率上限値算出装置であり、
実トラヒックのキャプチャデータの入力を受け、当該キャプチャデータから対象情報を抽出する情報抽出手段と、
前記情報抽出手段により抽出された情報に対して複数個のリーキーバケット(バケット1,2,...,(m+1)とする)を適用し、対象のフローを(m+1)個のサブフローに分割するサブフロー分割手段と、
前記サブフロー分割手段で得られた各サブフロー毎に、それを重畳してサブフローi群 (i=1, 2,...,(m+1) )を構成するサブフロー群構成手段と、
前記通信装置の帯域およびバッファリソースを各サブフロー群毎に固定的に配分するリソース配分手段と、を備えるリンク収容率上限値算出装置であって、
前記リーキーバケット1,2,...,mのバッファ長をb1, b2, ...,bm、前記リーキーバケット(m+1) の最大トークン停留量をb(m+1)、バケット1, 2,...,(m+1)のトークンレートをr1, r2, .....,r(m+1)とした場合に、前記リソース配分手段により配分されたリソース配分状態において所与のリンク損失率閾値のもとでb(m+1) および収容率を(b1,...,bm,r1, ..., rm,r(m+1)) により決定する機能であって、かつその内r(m+1)を(b1,...,bm,r1,...,rm) の関数として算出し、収容率上限値を(b1,...,bm,r1,...,rm) 領域上の最適値探索問題に帰着して算出する機能を有する収容率上限値算出手段
を備えることを特徴とするリンク収容率上限値算出装置。
【請求項2】
前記収容率上限値算出手段は、所与のリンク損失率閾値のもとでパラメータ(b1,...,bm, r1,...,rm,r(m+1))のうちいずれか1個を他のパラメータの関数として表すことにより、処理を実行する
ことを特徴とする請求項1に記載のリンク収容率上限値算出装置。
【請求項3】
前記収容率上限値算出手段は、前記最適値探索における探索対象の関数の特徴を勘案した探索法を適用して、前記最適値探索の処理を実行する
ことを特徴とする請求項1又は2に記載のリンク収容率上限値算出装置。
【請求項4】
パケット交換網における複数のフローを転送する固定長バッファを有する通信装置における、既定のパケット損失率上限以下を満たすリンク収容率上限値を算出するリンク収容率上限値算出装置が実行するリンク収容率上限値算出方法であって、
実トラヒックのキャプチャデータの入力を受け、当該キャプチャデータから対象情報を抽出する情報抽出ステップと、
前記情報抽出ステップにより抽出された情報に対して複数個のリーキーバケット(バケット1,2,...,(m+1)とする)を適用し、対象のフローを(m+1)個のサブフローに分割するサブフロー分割ステップと、
前記サブフロー分割ステップで得られた各サブフロー毎に、それを重畳してサブフローi群 (i=1, 2,...,(m+1) )を構成するサブフロー群構成ステップと、
前記通信装置の帯域およびバッファリソースを各サブフロー群毎に固定的に配分するリソース配分ステップと、を含むリンク収容率上限値算出方法であって、
前記リーキーバケット1,2,...,mのバッファ長をb1, b2, ...,bm、前記リーキーバケット(m+1) の最大トークン停留量をb(m+1)、バケット1, 2,...,(m+1)のトークンレートをr1, r2, .....,r(m+1)とした場合に、前記リソース配分ステップにより配分されたリソース配分状態において所与のリンク損失率閾値のもとでb(m+1) および収容率を(b1,...,bm,r1, ..., rm,r(m+1)) により決定するステップを有し、かつその内r(m+1)を(b1,...,bm,r1,...,rm) の関数として算出し、収容率上限値を(b1,...,bm,r1,...,rm) 領域上の最適値探索問題に帰着して算出するステップを有する収容率上限値算出ステップ
を備えることを特徴とするリンク収容率上限値算出方法。
【請求項5】
前記収容率上限値算出ステップは、所与のリンク損失率閾値のもとでパラメータ(b1,...,bm, r1,...,rm,r(m+1))のうちいずれか1個を他のパラメータの関数として表すことにより、処理を実行するステップを含む
ことを特徴とする請求項4に記載のリンク収容率上限値算出方法。
【請求項6】
前記収容率上限値算出ステップは、前記最適値探索における探索対象の関数の特徴を勘案した探索法を適用して、前記最適値探索の処理を実行するステップを含む
ことを特徴とする請求項4又は5に記載のリンク収容率上限値算出方法。
【請求項7】
コンピュータを、請求項1ないし3のうちいずれか1項に記載のリンク収容率上限値算出装置の各手段として機能させるためのプログラム。
【請求項1】
パケット交換網における複数のフローを転送する固定長バッファを有する通信装置における、既定のパケット損失率上限以下を満たすリンク収容率上限値を算出するリンク収容率上限値算出装置であり、
実トラヒックのキャプチャデータの入力を受け、当該キャプチャデータから対象情報を抽出する情報抽出手段と、
前記情報抽出手段により抽出された情報に対して複数個のリーキーバケット(バケット1,2,...,(m+1)とする)を適用し、対象のフローを(m+1)個のサブフローに分割するサブフロー分割手段と、
前記サブフロー分割手段で得られた各サブフロー毎に、それを重畳してサブフローi群 (i=1, 2,...,(m+1) )を構成するサブフロー群構成手段と、
前記通信装置の帯域およびバッファリソースを各サブフロー群毎に固定的に配分するリソース配分手段と、を備えるリンク収容率上限値算出装置であって、
前記リーキーバケット1,2,...,mのバッファ長をb1, b2, ...,bm、前記リーキーバケット(m+1) の最大トークン停留量をb(m+1)、バケット1, 2,...,(m+1)のトークンレートをr1, r2, .....,r(m+1)とした場合に、前記リソース配分手段により配分されたリソース配分状態において所与のリンク損失率閾値のもとでb(m+1) および収容率を(b1,...,bm,r1, ..., rm,r(m+1)) により決定する機能であって、かつその内r(m+1)を(b1,...,bm,r1,...,rm) の関数として算出し、収容率上限値を(b1,...,bm,r1,...,rm) 領域上の最適値探索問題に帰着して算出する機能を有する収容率上限値算出手段
を備えることを特徴とするリンク収容率上限値算出装置。
【請求項2】
前記収容率上限値算出手段は、所与のリンク損失率閾値のもとでパラメータ(b1,...,bm, r1,...,rm,r(m+1))のうちいずれか1個を他のパラメータの関数として表すことにより、処理を実行する
ことを特徴とする請求項1に記載のリンク収容率上限値算出装置。
【請求項3】
前記収容率上限値算出手段は、前記最適値探索における探索対象の関数の特徴を勘案した探索法を適用して、前記最適値探索の処理を実行する
ことを特徴とする請求項1又は2に記載のリンク収容率上限値算出装置。
【請求項4】
パケット交換網における複数のフローを転送する固定長バッファを有する通信装置における、既定のパケット損失率上限以下を満たすリンク収容率上限値を算出するリンク収容率上限値算出装置が実行するリンク収容率上限値算出方法であって、
実トラヒックのキャプチャデータの入力を受け、当該キャプチャデータから対象情報を抽出する情報抽出ステップと、
前記情報抽出ステップにより抽出された情報に対して複数個のリーキーバケット(バケット1,2,...,(m+1)とする)を適用し、対象のフローを(m+1)個のサブフローに分割するサブフロー分割ステップと、
前記サブフロー分割ステップで得られた各サブフロー毎に、それを重畳してサブフローi群 (i=1, 2,...,(m+1) )を構成するサブフロー群構成ステップと、
前記通信装置の帯域およびバッファリソースを各サブフロー群毎に固定的に配分するリソース配分ステップと、を含むリンク収容率上限値算出方法であって、
前記リーキーバケット1,2,...,mのバッファ長をb1, b2, ...,bm、前記リーキーバケット(m+1) の最大トークン停留量をb(m+1)、バケット1, 2,...,(m+1)のトークンレートをr1, r2, .....,r(m+1)とした場合に、前記リソース配分ステップにより配分されたリソース配分状態において所与のリンク損失率閾値のもとでb(m+1) および収容率を(b1,...,bm,r1, ..., rm,r(m+1)) により決定するステップを有し、かつその内r(m+1)を(b1,...,bm,r1,...,rm) の関数として算出し、収容率上限値を(b1,...,bm,r1,...,rm) 領域上の最適値探索問題に帰着して算出するステップを有する収容率上限値算出ステップ
を備えることを特徴とするリンク収容率上限値算出方法。
【請求項5】
前記収容率上限値算出ステップは、所与のリンク損失率閾値のもとでパラメータ(b1,...,bm, r1,...,rm,r(m+1))のうちいずれか1個を他のパラメータの関数として表すことにより、処理を実行するステップを含む
ことを特徴とする請求項4に記載のリンク収容率上限値算出方法。
【請求項6】
前記収容率上限値算出ステップは、前記最適値探索における探索対象の関数の特徴を勘案した探索法を適用して、前記最適値探索の処理を実行するステップを含む
ことを特徴とする請求項4又は5に記載のリンク収容率上限値算出方法。
【請求項7】
コンピュータを、請求項1ないし3のうちいずれか1項に記載のリンク収容率上限値算出装置の各手段として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−105086(P2012−105086A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−252141(P2010−252141)
【出願日】平成22年11月10日(2010.11.10)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願日】平成22年11月10日(2010.11.10)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]