(57)【要約】      （修正有）【課題】既定のパケット損失率以下を満たせるリンク帯域使用率の適切な上限を算出する。【解決手段】リンク帯域使用率上限算出装置１０において、２つのリーキーバケットに関する入力条件に基づいて、対象フローを仮想的なサブフローに分割する手段１１と、分割したサブフロー毎に、固定的なリンク帯域リソースとバッファリソースとを割り当てて、与えられたリンク帯域使用率に対応するパケット損失率を算出する手段１２と、リンク帯域使用率を変更しながらパケット損失率を算出し、パケット損失率が、与えられたパケット損失率上限以下を満たせるリンク帯域使用率上限を算出する手段１３と、前記２つのリーキーバケットに関する入力条件を変更しながらリンク帯域使用率上限を算出し、算出されたリンク帯域使用率上限の最大値を、対象フローに対応したリンク帯域使用率上限として出力する手段１４とを備えて構成する。【選択図】図２
2012049746.tif 000002
【特許請求の範囲】
【請求項１】
パケット交換網における複数のフローを転送する固定長バッファを有する通信装置における、既定のパケット損失率上限以下を満たせるリンク帯域使用率上限を算出するリンク帯域使用率上限算出装置が実行するリンク帯域使用率上限算出方法であって、
２つのリーキーバケットに関する入力条件に基づいて、対象フローを仮想的なサブフローに分割するサブフロー分割ステップと、
分割したサブフロー毎に、固定的なリンク帯域リソースとバッファリソースとを割り当てて、与えられたリンク帯域使用率に対応する前記リンクのパケット損失率を算出するパケット損失率算出ステップと、
リンク帯域使用率を変更しながら前記パケット損失率算出ステップを実行してパケット損失率を算出し、パケット損失率が、与えられたパケット損失率上限以下を満たせるリンク帯域使用率上限を算出するリンク帯域使用率上限算出ステップと、
前記２つのリーキーバケットに関する入力条件を変更しながら、前記サブフロー分割ステップと前記リンク帯域使用率上限算出ステップを実行することによりリンク帯域使用率上限を算出し、算出されたリンク帯域使用率上限の最大値を、対象フローに対応したリンク帯域使用率上限として出力するリンク帯域使用率上限最大値探索ステップと
を備えたことを特徴とするリンク帯域使用率上限算出方法。
【請求項２】
前記２つのリーキーバケットに関する入力条件は、第１のバケットの流出レートr1、第１のバケットのサイズb1、及び第２のバケットの流出レートr2であり、前記サブフロー分割ステップにおいて、当該入力条件、及び対象フローのデータを用いて、第２のバケットがあふれないようにする上で必要なバケットサイズb2を算出する
ことを特徴とする請求項１に記載のリンク帯域使用率上限算出方法。
【請求項３】
前記パケット損失率算出ステップにおいて、前記第１のバケットに対応する第１のサブフローに、パケット損失が生じないようにリンク帯域リソースとバッファリソースを割り当て、残余のリンク帯域リソースとバッファリソースを前記第２のバケットに対応する第２のサブフローに割り当て、待ち行列モデルを用いて前記パケット損失率を算出する
ことを特徴とする請求項２に記載のリンク帯域使用率上限算出方法。  
【請求項４】
パケット交換網における複数のフローを転送する固定長バッファを有する通信装置における、既定のパケット損失率上限以下を満たせるリンク帯域使用率上限を算出するリンク帯域使用率上限算出装置であって、
２つのリーキーバケットに関する入力条件に基づいて、対象フローを仮想的なサブフローに分割するサブフロー分割手段と、
分割したサブフロー毎に、固定的なリンク帯域リソースとバッファリソースとを割り当てて、与えられたリンク帯域使用率に対応する前記リンクのパケット損失率を算出するパケット損失率算出手段と、
リンク帯域使用率を変更しながら前記パケット損失率算出手段を用いてパケット損失率を算出し、パケット損失率が、与えられたパケット損失率上限以下を満たせるリンク帯域使用率上限を算出するリンク帯域使用率上限算出手段と、
前記サブフロー分割手段と前記リンク帯域使用率上限算出手段を用いて、前記２つのリーキーバケットに関する入力条件を変更しながらリンク帯域使用率上限を算出し、算出されたリンク帯域使用率上限の最大値を、対象フローに対応したリンク帯域使用率上限として出力するリンク帯域使用率上限最大値探索手段と
を備えたことを特徴とするリンク帯域使用率上限算出装置。
【請求項５】
前記２つのリーキーバケットに関する入力条件は、第１のバケットの流出レートr1、第１のバケットのサイズb1、及び第２のバケットの流出レートr2であり、前記サブフロー分割手段は、当該入力条件、及び対象フローのデータを用いて、第２のバケットがあふれないようにする上で必要なバケットサイズb2を算出する
ことを特徴とする請求項４に記載のリンク帯域使用率上限算出装置。
【請求項６】
前記パケット損失率算出手段は、前記第１のバケットに対応する第１のサブフローに、パケット損失が生じないようにリンク帯域リソースとバッファリソースを割り当て、残余のリンク帯域リソースとバッファリソースを前記第２のバケットに対応する第２のサブフローに割り当て、待ち行列モデルを用いて前記パケット損失率を算出する
ことを特徴とする請求項５に記載のリンク帯域使用率上限算出装置。
【請求項７】
コンピュータを、請求項４ないし６のうちいずれか１項に記載のリンク帯域使用率上限算出装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット交換網において、パケット損失や転送遅延を防止して、転送品質を確保（低パケット損失，低遅延等）するために、NW流入フローによる帯域利用に上限を設ける方式に関連し、特に、複数のフローを転送する固定長バッファを有するルーター等の通信装置において、パケット損失率が既定のパケット損失率上限以下となるリンク帯域使用率上限を算出する技術に関するものである。
【背景技術】
【０００２】
複数のフローを転送する固定長バッファを有する通信装置における、パケット損失率が既定のパケット損失率上限以下となるリンク帯域使用率上限を算出するための従来技術として、下記の従来技術１と従来技術２がある。従来技術１、２において、リンク帯域使用率上限を算出する装置における入力、及び出力は、下記のとおりとする。
【０００３】
入力：リンク帯域bw、バッファサイズbf、パケット損失率上限L、対象フローのデータ（パケットのタイムスタンプとサイズのリスト）
出力：リンク帯域使用率上限a_max
＜従来技術１＞
対象とするフローのパケットサイズsは一定で、パケット到着がポアソン過程に従い、重畳する複数本のフローのパケット到着は互いに独立であるとしてモデル化を行う。このとき、重畳したフロー群のパケット到着もポアソン過程に従うことから、任意のリンク帯域使用率aに対して、使用率a（サービス時間a/bw）、
【０００４】
【数１】
2012049746.tif 000003
の待ち行列モデルM/D/1/Kを用いてパケット損失率lを求めることができる。
【０００５】
そこで、従来技術１では、sを対象フローの平均パケットサイズとして、l≦Lとなるようなaの最大値を二分法（0≦a≦1の範囲）によって求め、リンク帯域使用率上限a_maxとして出力する。
【０００６】
＜従来技術２＞
従来技術２は、Elwalidらのフローモデル化手法（非特許文献１）（以下、これを従来手法と呼ぶ）を応用した技術である。
【０００７】
従来技術２では、リーキーバケット・アルゴリズム（非特許文献２）を実行する単一の仮想的なリーキーバケット（サイズ無限、流出レートr）を用いて対象フローのパケット到着特性を定量化する。そして、パケットが常に一定量（サイズb）バースト到着するモデルを作り、重畳した全体トラヒックのバースト到着がポアソン過程に従うとみなす。このとき、
【０００８】
【数２】
2012049746.tif 000004
使用率r*a/r0の待ち行列モデルM/D/1/Kを用いてフロー群のパケット損失率lを求めることができる。
【０００９】
つまり、任意のリンク帯域使用率a、リーキーバケットの流出レートr（r≧対象フローの平均レートr0）に対してパケット損失率lを求めることができる。
【００１０】
そこで、従来技術２では、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として出力する。
【００１１】
なお、上記従来技術２で用いられるリーキーバケット・アルゴリズムは、仮想的なバケットにビット量を補充し、一定レートでバケットのビット量を流出させるモデルのアルゴリズムである。バケットが空いている場合にはビット量が流出されず、満杯の場合にはビット量が補充されない。対象フローのパケット到着時にパケットサイズ相当のビット量を補充する状況で、パケットがバースト的に到着する場合、瞬間的に消費レートに対して補充量が過多となり、バケット内にトークンが滞留することになる。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】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.
【非特許文献２】ITU-T Recommendation I.371,"Traffic control and congestion control in B-ISDN,"Mar. 2004.
【発明の概要】
【発明が解決しようとする課題】
【００１３】
対象フローの実際のトラヒックは、バースト性を伴っている部分と、定期的なパケット送出を行っている部分の合成からなると考えられる。しかし、従来技術１ではパケットのバースト到着を想定しておらず、パケットがバースト到着する場合に比べて、算出されるパケット損失率lを実態より低く推定してしまい、NW設計上のリンク帯域使用率上限を適切に出力することができない。
【００１４】
一方、従来技術２では、全てのトラヒックがバースト到着するという、実態より過度にバースト性の高い単一ソースのON/OFFモデルを作ることになるため、パケット損失率を実態より高く推定してしまいNW設計上のリンク帯域使用率上限を低く推定することから、NWの利用効率が上がらないという問題がある。
本発明は上記の問題点に鑑みてなされたものであり、対象フローの特性をより適切にモデル化して、より実態に近いパケット損失率を推定することにより、予め定められたパケット損失率以下を満たせるリンク帯域使用率の適切な上限を算出するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記の課題を解決するために、本発明は、パケット交換網における複数のフローを転送する固定長バッファを有する通信装置における、既定のパケット損失率上限以下を満たせるリンク帯域使用率上限を算出するリンク帯域使用率上限算出装置が実行するリンク帯域使用率上限算出方法であって、２つのリーキーバケットに関する入力条件に基づいて、対象フローを仮想的なサブフローに分割するサブフロー分割ステップと、分割したサブフロー毎に、固定的なリンク帯域リソースとバッファリソースとを割り当てて、与えられたリンク帯域使用率に対応する前記リンクのパケット損失率を算出するパケット損失率算出ステップと、リンク帯域使用率を変更しながら前記パケット損失率算出ステップを実行してパケット損失率を算出し、パケット損失率が、与えられたパケット損失率上限以下を満たせるリンク帯域使用率上限を算出するリンク帯域使用率上限算出ステップと、前記２つのリーキーバケットに関する入力条件を変更しながら、前記サブフロー分割ステップと前記リンク帯域使用率上限算出ステップを実行することによりリンク帯域使用率上限を算出し、算出されたリンク帯域使用率上限の最大値を、対象フローに対応したリンク帯域使用率上限として出力するリンク帯域使用率上限最大値探索ステップとを備えたことを特徴とするリンク帯域使用率上限算出方法として構成される。
【００１６】
前記２つのリーキーバケットに関する入力条件は、第１のバケットの流出レートr1、第１のバケットのサイズb1、及び第２のバケットの流出レートr2であり、前記サブフロー分割ステップにおいて、当該入力条件、及び対象フローのデータを用いて、第２のバケットがあふれないようにする上で必要なバケットサイズb2を算出することとしてもよい。
【００１７】
また、前記パケット損失率算出ステップにおいて、前記第１のバケットに対応する第１のサブフローに、パケット損失が生じないようにリンク帯域リソースとバッファリソースを割り当て、残余のリンク帯域リソースとバッファリソースを前記第２のバケットに対応する第２のサブフローに割り当て、待ち行列モデルを用いて前記パケット損失率を算出することができる。
【００１８】
また、本発明は、上記リンク帯域使用率上限算出方法の実行に適した各手段を備えるリンク帯域使用率上限算出装置として構成することもできる。更に、本発明は、コンピュータを、上記リンク帯域使用率上限算出装置の各手段として機能させるためのプログラムとして構成することもできる。
【発明の効果】
【００１９】
本発明によれば、対象フローの特性をより適切にモデル化して、より実態に近いパケット損失率を推定することができ、予め定められたパケット損失率以下を満たせるリンク帯域使用率の適切な上限を算出することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】対象フローを仮想的にサブフロー１とサブフロー２に分割することを説明するための図である。
【図２】本発明の実施の形態におけるリンク帯域使用率上限算出装置１０の機能構成例である。
【図３】サブフロー分割機能部１１における処理の概念を説明するための図である。
【図４】サブフロー分割機能部１１が実行する処理手順を示すフローチャートである。
【図５】パケット損失率算出機能部１２が実行する処理手順を示すフローチャートである。
【図６】リンク帯域使用率上限算出機能部１３が実行する処理手順を示すフローチャートである。
【図７】リンク帯域使用率上限最大値探索機能部１４が実行する処理手順を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態を説明する。
【００２２】
（概要）
まず、図１を参照して、本実施の形態の概要を説明する。図１の上段に示すように、従来技術２では、リンク帯域使用率上限を算出する対象となる対象フローが常にバースト到着するものとしてモデル化していたところ、本実施の形態においては、図１の下段に示すように、リンク帯域使用率上限を算出する対象となる対象フローを仮想的にサブフロー１とサブフロー２に分割してモデル化を行うことにより対象フローの特性をより適切にモデル化する。これにより、より実態に近いパケット損失率を推定することができる。このように実態に近いパケット損失率を推定することにより、予め定められたパケット損失率以下を満たせるリンク帯域使用率の適切な上限を算出することが可能である。
【００２３】
（装置構成）
図２に、本発明の実施の形態におけるリンク帯域使用率上限算出装置１０の機能構成例を示す。図２に示すように、リンク帯域使用率上限算出装置１０は、対象フローを仮想的なサブフローに分割するサブフロー分割機能部１１と、サブフロー群ごとにリンク帯域及びバッファのリソースを固定的に割り当てて、待ち行列モデルを用いてパケット損失率を算出するパケット損失率算出機能部１２と、入力条件に対応したリンク帯域使用率上限を算出するリンク帯域使用率上限算出機能部１３と、対象フローに対応したリンク帯域使用率上限を算出するリンク帯域使用率上限最大値探索機能部１４と、各種データを格納するデータ記憶部１５とを備えている。
【００２４】
ここで、データ記憶部１５は、各機能部からアクセスされるメモリ等の記憶部であり、各機能部は、データ記憶部１５から処理に用いるデータ（例えば変数の値）を読み出し、処理後のデータをデータ記憶部１５に格納することにより、処理を進める。また、各機能部からの出力は、データ記憶部１５に格納され、他の機能部や他の装置への入力のために読み出される。ただし、リンク帯域使用率上限最大値探索機能部１４からの出力は、リンク帯域使用率上限算出装置１０の出力として、そのまま外部に出力することとしてもよい。
【００２５】
リンク帯域使用率上限算出装置１０には、リンク帯域bw、ルータのバッファサイズbf、パケット損失率上限L、及び、対象フローのデータ（本実施の形態では、パケットのタイムスタンプとサイズのリスト）が入力され、対象フローに対応したリンク帯域使用率上限a_maxが出力される。例えば、入力データのうちのリンク帯域bw、バッファサイズbf、パケット損失率上限Lは、NW設計者等により、入力手段を用いてリンク帯域使用率上限算出装置１０に入力され、対象フローのデータは、例えば、外部のデータベース装置に蓄積されたデータを通信ネットワークを介して受信することができる。
【００２６】
リンク帯域使用率上限算出装置１０は、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、リンク帯域使用率上限算出装置１０の各部で行われる処理や機能は、リンク帯域使用率上限算出装置１０を構成するコンピュータに内蔵されるＣＰＵやメモリなどのハードウェア資源を用いて、各部で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、当該プログラムは、当該プログラムを記録したＦＤ、ＣＤ−ＲＯＭ、ＤＶＤなどの記録媒体や、インターネットなどのネットワークを介して市場に流通させることができる。
【００２７】
また、リンク帯域使用率上限算出装置１０は、単独の装置として実現してもよいし、ネットワーク運用監視装置やネットワーク設計支援装置の機能の一部、あるいは、ルータ等の通信装置の機能の一部として構成することもできる。
【００２８】
（各機能部の詳細）
以下、図２に示すリンク帯域使用率上限算出装置１０の各機能部の処理を詳細に説明する。後述するように、本実施の形態に係るリンク帯域使用率上限算出装置１０においては、リンク帯域使用率上限最大値探索機能部１４が、各機能部を動作させる制御を行って、結果として対象フローに対応したリンク帯域使用率上限a_maxを算出するが、以下では、各機能部毎に処理内容を説明する。
【００２９】
＜サブフロー分割機能部１１＞
サブフロー分割機能部１１は、リーキーバケット・アルゴリズムを実行する2 個の仮想的なリーキーバケットを用いてフローのパケット到着特性を定量化し、対象フローを仮想的なサブフローに分割するサブフロー分割処理を行う。
【００３０】
より具体的には、サブフロー分割機能部１１は、対象フローのデータ、バケット1の流出レートr1、バケット1のサイズb1、及びバケット2の流出レートr2を入力し、バケット2があふれないようにする上で必要なバケットサイズb2を出力する機能を有する。サブフロー分割機能部１１における処理の概念を図３を参照して説明する。
【００３１】
図３に示すとおり、リーキーバケット・アルゴリズムを実行する2 個の仮想的なリーキーバケットを用いてフローのパケット到着特性を定量化するにあたり、バケット1 のサイズはb1、流出レートはr1 とする。また、バケット2 のサイズは無限として、流出レートはr2 とする。
【００３２】
そして、対象フローのデータから対象フローを再現して到着パケットを観測し、パケット到着毎に観測パケットサイズ相当のビット量（トークン）をバケット1 に補充する。バケット1 が満杯の場合には、バケット1 に補充しきれない分のビット量をバケット2 へ補充する。このとき、観測中におけるバケット2 の最大ビット滞留量b2 を求める。そして、対象フローは以下の2 つのサブフローで構成されるとみなす。
【００３３】
サブフロー1：平均レートr1 で常にサイズb1 のバースト到着となるフロー
サブフロー2：平均レートr2 で常にサイズb2 のバースト到着となるフロー
なお、r1 = 0，b1 = 0 の場合，従来手法と同等となる。
【００３４】
図４は、対象フローのデータを与えて、r1、b1、r2を入力パラメータとし、b2を出力するための処理手順を示すフローチャートである。図４の処理は、図３に示す処理に対応するものである。また、図４の処理における一時変数等の意味は、図４内に示すとおりである。
【００３５】
図４を参照して、サブフロー分割機能部１１が実行するb2を出力するための処理手順を説明する。なお、以下の処理で、変数に数値を代入するとは、データ記憶部１５の所定領域に、数値を格納することに相当する。
【００３６】
まず、ステップ１０１において、パケット１個目のタイムスタンプをltimeに代入する。次に、ステップ１０２において、パケット１個目のパケットサイズをql1maxに代入し、ql1maxの値をql1に代入する。
【００３７】
次に、ql1>b1であるか否かの判定が行われ（ステップ１０３）、判定結果がYesであればステップ１０４に進み、Noであればステップ１０５に進む。ステップ１０４では、(ql1-b1)がql2に代入され、ql2の値がql2maxに代入される。
【００３８】
上記のステップ１０１〜１０４の処理はパケット１個目の処理に該当する。
【００３９】
ステップ１０５において、次のパケットデータの有無が判定され、Noであればステップ１１７に進み、Yesであれば次のパケットデータの処理を行うためにステップ１０６に進む。
【００４０】
ステップ１０６において、(ql1-(タイムスタンプ-ltime)*r1)がql1に代入され、(ql2-(タイムスタンプ-ltime)*r2)がql2に代入される。次に、ステップ１０７において、ql1<0であるか否かの判定が行われ、判定結果がYes（バケット１が空）であればステップ１０８に進み、Noであればステップ１０９に進む。  
ステップ１０８において、ql1に０が代入される。ステップ１０９では、ql2<0であるか否かの判定が行われ、判定結果がYes（バケット２が空）であればステップ１１０に進み、Noであればステップ１１１に進む。ステップ１１０において、ql2に０が代入される。
【００４１】
上記のステップ１０５〜１１０の処理はバケットからのビット量流出処理に該当する。
【００４２】
ステップ１１１では、(ql1＋パケットサイズ)がql1に代入される。続いて、ステップ１１２において、ql1>b1であるか否かの判定が行われ、判定結果がYes（バケット１が満杯）であればステップ１１３に進み、Noであればステップ１１４に進む。
【００４３】
ステップ１１３において、(ql1-b1)がql2に代入され、ql2の値がql2maxに代入される。ステップ１１４において、ql2>ql2maxであるか否かの判定が行われ、判定結果がYesであればステップ１１５に進み、Noであればステップ１１６に進む。ステップ１１５において、ql2がql2maxに代入される。
【００４４】
上記のステップ１１１〜１１５の処理はバケットへのビット量補充処理に該当する。
【００４５】
ステップ１１６において、パケットのタイムスタンプがltimeに代入される。これは、直近パケットタイムスタンプltimeの更新処理である。
【００４６】
そして、ステップ１０５に判定において、次のパケットデータがなくなった場合に、ql2maxをb2（バケット２があふれないようにする上で必要なバケットサイズ）として出力する。
【００４７】
＜パケット損失率算出機能部１２＞
パケット損失率算出機能部１２は、パケット損失率算出処理を行う。パケット損失率算出処理におけるパケット損失率算出機能部１２への入力と、パケット損失率算出機能部１２からの出力は下記のとおりである。
【００４８】
入力：リンク帯域bw、ルータバッファサイズbf、対象フロー平均レートr0、バケット1の流出レートr1、バケット1のサイズb1、バケット2の流出レートr2、バケット2があふれないようにする上で必要なバケットサイズb2、リンク帯域使用率a
出力：パケット損失率l
パケット損失率算出機能部１２は、サブフローを重畳したトラヒック（サブフロー群）ごとにリンク帯域及びバッファのリソースを固定的に割り当てて、それぞれのサブフロー群において仮想的な待ち行列モデルを従来手法に準じた方法で評価してサブフロー群毎のパケット損失率を算出して、リンク全体でのパケット損失率lを算出する機能を有する。
【００４９】
ここで、リーキーバケットでモデル化されたサブフロー1に対して帯域リソースr1，バッファリソースb1を用意するとき、b1はサブフロー1の最大キュー長に等しいことからパケット損失は生じない。
【００５０】
よって、上述した固定的に割り当てるリソースとして、サブフロー1 群に対してパケット損失が生じないようリンク帯域使用率に応じたリンク帯域リソースr1 *(bw*a/r0)を割当、バッファリソースb1*(bw*a/r0)を割り当てる。また、残余リンク帯域リソース(bw-r1*(bw*a/r0))、残余バッファリソース(bf-b1*(bw*a/r0) )をサブフロー2 群に対して割り当てる。
【００５１】
そして、サブフロー2 群においてはサイズb2 のバーストパケットがランダムに到着するモデルを考えて、
【００５２】
【数３】
2012049746.tif 000005
使用率(r2*(bw*a/r0))/(bw-(bw*a/r0)*r1)の待ち行列モデルM/D/1/K（非特許文献１）を用いてサブフロー2 群のパケット損失率l2 を求める。
【００５３】
上記の算出結果から、リンク全体のパケット損失率l=l2*r2/(r1+r2) を求める。なお、r1=0、k=0とする場合、サブフロー1群は無いものとしてサブフロー2のみを重畳することになるので、従来技術２と同等となる。
【００５４】
パケット損失率算出機能部１２が実行する処理手順は、図５に示すとおりである。すなわち、ステップ２０１において、
【００５５】
【数４】
2012049746.tif 000006
使用率(r2*(bw*a/r0))/(bw-(bw*a/r0)*r1)の待ち行列モデルM/D/1/K（非特許文献１）を用いてサブフロー2群のパケット損失率l2を求め、ステップ２０２において、パケット損失率l=l2*r2/(r1+r2)を算出し、出力する。
＜リンク帯域使用率上限算出機能部１３＞
リンク帯域使用率上限算出機能部１３は、リンク帯域使用率上限算出処理を行う。リンク帯域使用率上限算出機能部１３への入力と、リンク帯域使用率上限算出機能部１３からの出力は、下記のとおりである。なお、リンク帯域使用率上限算出機能部１３は、パケット損失率算出機能部１２を利用するので、下記の入力には、前述したパケット損失率算出機能部１２への入力が含まれている。
【００５６】
入力：リンク帯域bw、ルータバッファサイズbf、パケット損失率上限L、対象フロー平均レートr0、バケット1の流出レートr1、バケット1のサイズb1、バケット2の流出レートr2、バケット2があふれないようにする上で必要なバケットサイズb2
出力：入力条件r1、r2、b1、b2に対応したリンク帯域使用率上限a_m
より具体的には、リンク帯域使用率上限算出機能部１３は、入力条件r1、r2、b1、b2の下で、損失率l≦損失率上限Lとなるようなリンク帯域使用率aの最大値a_mを出力する。例えば、二分法（0≦a≦1の範囲）を用いて、リンク使用率aを変えながらパケット損失率算出機能部１２を用いてパケット損失率の算出処理を繰り返すことにより、リンク帯域使用率aの最大値a_mを算出する。
【００５７】
リンク帯域使用率上限算出機能部１３が実行する処理手順を図６のフローチャートを参照して説明する。
【００５８】
リンク帯域使用率aを設定し（ステップ３０１）、パケット損失率算出機能部１２を用いてステップ３０１で設定したリンク帯域使用率aに対応するパケット損失率lを算出する（ステップ３０２）。
【００５９】
そして、リンク帯域使用率上限算出機能部１３は、算出した損失率lと、与えられた損失率上限Lを比較し、損失率lが損失率上限L以下ならば、a_mにaを代入する（ステップ３０３）。損失率lが損失率上限L以下でなければa_mは更新されない。リンク帯域使用率上限算出機能部１３は、ステップ３０１〜３０３の処理を十分な回数繰り返した後（ステップ３０４）、a_mを、入力条件r1、r2、b1、b2に対応したリンク帯域使用率上限として出力する（ステップ３０５）。上記の十分な回数の判定は、例えば、予め定めた回数の繰り返しを行ったかどうか、処理を繰り返す中でのa_mの変化が、予め定めた値よりも小さくなったかどうか、などにより行うことができる。
【００６０】
以下、ここでの処理をより具体的に説明する。
【００６１】
リンク帯域使用率上限算出機能部１３は、まず、リンク帯域使用率をa=(0+1)/2=0.5と設定し（ステップ３０１）、パケット損失率算出機能部１２を用いてリンク帯域使用率a=0.5のときのパケット損失率lを算出する（ステップ３０２）。
【００６２】
続いて、リンク帯域使用率上限算出機能部１３は、損失率lと損失率上限Lを比較し、損失率lが損失率上限L以下であれば、a_mにaを代入し（ステップ３０３）、a=(0.5+1)/2=0.75と設定して（ステップ３０４、ステップ３０１）、再度ステップ３０２の計算を行う。ステップ３０３において、損失率lが損失率上限Lを上回っていれば、a_mは更新されずa=(0+0.5)/2=0.25として再計算を行う。
例えば、十分な繰り返し回数を5回とするとき、aの設定値は以下のように変化していく。
（1回目）aを(0+1)/2=0.5と設定→ロス率上限を下回る。
（２回目）aを(0.5+1)/2=0.75と設定→ロス率上限を下回る。
（３回目）aを(0.75+1)/2=0.875と設定→ロス率上限を下回る。
（４回目）aを(0.875+1)/2=0.9375と設定→ロス率上限を上回る。
（５回目）aを(0.875+0.9375)/2=0.90625と設定→ロス率上限を下回る。
【００６３】
（出力）５回目におけるa_mへの代入値である0.90625を出力する。
【００６４】
＜リンク帯域使用率上限最大値探索機能部１４＞
リンク帯域使用率上限最大値探索機能部１４は、対象フローのデータ、リンク帯域bw、ルータバッファサイズbf、及び損失率上限Lを入力し、リンク帯域使用率上限の最大値探索処理を行って、対象フローに対応したリンク帯域使用率上限a_maxを出力する。
【００６５】
より具体的には、リンク帯域使用率上限最大値探索機能部１４は、r1、r2、b1を変化させてサブフロー分割機能部１１によりb２を求め、リンク帯域使用率上限算出機能部１３によりリンク帯域使用率上限a_mを求める。そして、各r1、r2、b1の組に対するa_mの中から最大値を探索し、a_maxとして出力する。
【００６６】
以下、リンク帯域使用率上限最大値探索機能部１４が実行する処理の手順を図７のフローチャートを参照して説明する。
【００６７】
まず、対象フローの平均レートr0を取得する（ステップ４０１）。この平均レートは、対象フローのデータから算出してもよいし、予めデータ記憶部１５に格納したものを読み出してもよい。続いて、r1、r2、b1をそれぞれ0、r0、0と初期設定する（ステップ４０２）。その後、十分な粒度で網羅的にr1、r2、b1を変更（ただし、r1+r2≧r0）させていきa_mを算出、出力し、もしa_m>a_maxならばa_maxにa_mを代入してa_maxを更新していき、a_mの最大値a_maxを出力する。
【００６８】
すなわち、ステップ４０３において、ステップ４０２での設定値をサブフロー分割機能部１２への入力として使用して、サブフロー分割機能部１２により、バケット２があふれないようにする上で必要なバケットサイズb2を算出する。
【００６９】
続いてステップ４０４において、リンク帯域使用率上限算出機能部１３により、入力条件r1、r2、b1、及びb2に対応したリンク帯域使用率上限a_mを算出する。そして、ステップ４０５で、a_m>a_maxであるか否かを判定し、判定結果がNoであればステップ４０７に進み、Yesであればステップ４０６に進む。
【００７０】
ステップ４０６では、a_mをa_maxに代入する。そして、r1、r2、b1を変更して、ステップ４０２からの処理を繰り返す。ステップ４０７では、r1、r2、b1のそれぞれを変更してもa_maxが一定回数以上更新されていないか否かを判定する。判定結果がNo（a_maxの更新がされている場合）であれば、r1、r2、b1を変更して、ステップ４０２からの処理を繰り返す。判定結果がYesであれば、そのときのa_maxをリンク帯域使用率上限として出力する（ステップ４０８）。
【００７１】
例えば、ステップ４０１で取得したr0が10Mbpsのとき、以下のように入力条件r1、r2、b1を変化させていく。なお、以下の例では、1パラメータを3回連続して増加させてもa_maxの更新が行われないときに、他のパラメータの変更、及び終了判定を行うこととする。
【００７２】
(r1、    r2、    b1)
0Mbps、10Mbps、0KB→更新有り
0Mbps、10.1Mbps、0KB→更新有り
0Mbps、10.2Mbps、0KB→更新有り
…
0Mbps、13.5Mbps、0KB→更新有り
0Mbps、13.6Mbps、0KB→更新無し１回目
0Mbps、13.7Mbps、0KB→更新無し２回目
0Mbps、13.8Mbps、0KB→更新無し３回目、r1の変更へ
0.1Mbps、9.9Mbps、0KB→更新有り
0.1Mbps、10Mbps、0KB→更新有り
0.1Mbps、10.1Mbps、0KB→更新有り
…
0.1Mbps、13.5Mbps、0KB→更新有り
0.1Mbps、13.6Mbps、0KB→更新無し１回目
0.1Mbps、13.7Mbps、0KB→更新無し２回目
0.1Mbps、13.8Mbps、0KB→更新無し３回目、r1の変更へ
…
14.9Mbps、0.5Mbps、0KB→更新無し３回目、r1の変更へ
15Mbps、0Mbps、0KB→更新無し１回目
15Mbps、0.1Mbps、0KB→更新無し２回目
15Mbps、0.2Mbps、0KB→更新無し３回目かつr1変更後に更新無し１回目、r1の変更へ
15.1Mbps、0Mbps、0KB→更新無し１回目
15.1Mbps、0.1Mbps、0KB→更新無し２回目
15.1Mbps、0.2Mbps、0KB→更新無し３回目かつr1変更後に更新無し２回目、r1の変更へ
15.2Mbps、0Mbps、0KB→更新無し１回目
15.2Mbps、0.1Mbps、0KB→更新無し２回目
15.2Mbps、0.2Mbps、0KB→更新無し３回目かつr1変更後に更新無し３回目、b1の変更へ
0Mbps、10Mbps、1KB→更新有り
0Mbps、10.1Mbps、1KB→更新有り
0Mbps、10.2Mbps、1KB→更新有り
…
15.2Mbps、0.1Mbps、1KB→更新無し２回目
15.2Mbps、0.2Mbps、1KB→更新無し３回目かつr1変更後に更新無し３回目、b1の変更へ
…
0Mbps、10Mbps、6KB→更新無し１回目
0Mbps、10.1Mbps、6KB→更新無し２回目
0Mbps、10.2Mbps、6KB→更新無し３回目、r1の変更へ
…
15.2Mbps、0.1Mbps、6KB→更新無し２回目
15.2Mbps、0.2Mbps、6KB→更新無し３回目かつr1変更後に更新無し３回目、b1変更後に更新無し１回目
0Mbps、10Mbps、7KB→更新無し１回目
0Mbps、10.1Mbps、7KB→更新無し２回目
0Mbps、10.2Mbps、7KB→更新無し３回目、r1の変更へ
…
15.2Mbps、0.1Mbps、7KB→更新無し２回目
15.2Mbps、0.2Mbps、7KB→更新無し３回目かつr1変更後に更新無し３回目、b1変更後に更新無し２回目
0Mbps、10Mbps、8KB→更新無し１回目
0Mbps、10.1Mbps、8KB→更新無し２回目
0Mbps、10.2Mbps、8KB→更新無し３回目、r1の変更へ
…
15.2Mbps、0.1Mbps、8KB→更新無し２回目
15.2Mbps、0.2Mbps、8KB→更新無し３回目かつr1変更後に更新無し３回目、b1変更後に更新無し３回目
→終了、a_max出力
＜比較例＞
以下の条件で従来技術１、２、及び本発明に係る技術を適用した時のリンク使用率上限を算出した。
【００７３】
対象フローの平均レートr0：7.74 Mbps
平均パケットサイズs：1357.5Byte
ルーターバッファーサイズbf：12.25MB
リンク帯域bw：10Gbps
目標パケット損失率L：10-4
以下に、各技術においてのリンク帯域使用率上限の出力結果を示す。
【００７４】
従来技術１：0.999999以上
従来技術２：0.777
本発明に係る技術：0.912
＜実施の形態のまとめ、効果＞
上述したように、本実施の形態に係るリンク帯域使用率上限算出装置１０は、サブフロー分割機能部１１と、パケット損失率算出機能部１２と、リンク帯域使用率上限算出機能部１３と、リンク帯域使用率上限最大値探索機能部１４を有する。
【００７５】
サブフロー分割機能部１２は、2つのリーキーバケットを用いて対象フローを仮想的なサブフローに分割することによりモデル化する。パケット損失率算出機能部１２は、サブフロー群ごとに固定的なリソース（リンク帯域、バッファ）割り当てを行うこととして、パケット損失率を算出することとし、サブフロー1群にはパケットロスが生じないようにリソースを割り当ててパケット損失率を算出する。
【００７６】
リンク帯域使用率上限算出機能部１３は、リンク帯域使用率を変更してそれぞれパケット損失率を求め、パケット損失率が、与えられたパケット損失率上限を満たせるようなリンク帯域使用率の上限を算出する。リンク帯域使用率上限最大値探索機能部１４は、バケット1、2の流出レートr1、r2、バケット1のサイズb1を変更してそれぞれリンク帯域使用率上限を求め、最もリンク帯域使用率上限が大きくなるときの値を探索する。
【００７７】
上記のような各機能部を備えるリンク帯域使用率上限算出装置１０により、対象フローの特性をより適切にモデル化して、より実態に近いパケット損失率を推定し、定められたパケット損失率以下を満たせるリンク帯域使用率の適切な上限を出力することが可能となる。これにより、効率的なNW設計を実現することができる。
【００７８】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００７９】
１０  リンク帯域使用率上限算出装置
１１  サブフロー分割機能部
１２  パケット損失率算出機能部
１３  リンク帯域使用率上限算出機能部
１４  リンク帯域使用率上限最大値探索機能部
１５  データ記憶部
【図１】
2012049746.tif 000007
【図２】
2012049746.tif 000008
【図３】
2012049746.tif 000009
【図４】
2012049746.tif 000010
【図５】
2012049746.tif 000011
【図６】
2012049746.tif 000012
【図７】
2012049746.tif 000013