(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
ソフトウェアによって仮想的なネットワークを作り上げる技術として、非特許文献1,2にSDNが開示されている。SDNでは、一つの物理ネットワーク上に「スライス」と呼ばれる完全に独立した仮想的なネットワークをいくつも構築できるため、スライスごとにユーザの要求に応じた固有のネットワークを構築できる。
【0003】
特許文献1には、SDNにおいて、各スライス間でのパケット転送キューおよびリンク帯域の共用を促進して、パケット転送のスケジューリングコストを最小化するトラヒックフロー割当方法および装置が開示されている。
【0004】
特許文献2には、SDNの各スライスに対して、予めツリートポロジーを有する複数の仮想ネットワーク候補を構成し、整数計画法モデルを解法することにより、パケット転送のスケジューリングコストを最小化する仮想ネットワーク候補の組合せを選択するトラヒックフロー割当方法および装置が開示されている。
【0005】
特許文献3には、SDNの各スライスに対して、スライス間スケジューリングコストの増加量を反映したリンクコストを使って逐次的にトラヒックフロー割当を行うことにより複数の仮想ネットワーク候補を構成し、整数計画法モデルを解法することにより、スライス間のパケット転送スケジューリングコストを最小化する仮想ネットワーク候補の組合せを選択する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
SDNの各スライスは物理ネットワークの各リンクを共用できるが、その際、スライスごとに独自のリンク帯域を設定するとリンク帯域を有効利用できない。例えば、帯域が2Gの物理リンクについて、スライスA,Bに1Gずつの帯域が固定的に割り当てられていると、例えばスライスAのトラヒック量が多く、スライスBのトラヒック量が少ない場合でも、スライスAにスライスBの余剰帯域を割り当てられない。
【0009】
これに対して、物理リンク毎にスライスA,Bが一つのパケット転送キューを共用するように帯域を割り当てれば、各スライスA,Bは余剰帯域を他のスライスに分け与えることができるので、各スライスのサービス品質を低下させることなくリンク帯域を有効利用できる。しかしながら、これまでSDNの各スライスが物理リンクごとに一つのパケット転送キューを共用してリンク帯域を共用することが検討されていなかった。
【0010】
このような技術課題に対して、本発明の発明者等は、ネットワークのトポロジー情報およびトラヒックフロー情報を入力として、全てのリンクのパケット転送に関するスケジューリングコストの総和を最小化するトラヒックフロー割当を整数計画法モデルの解として計算し、その際、ネットワークのリングごとに、当該リンクを通過するトラヒックフローの優先クラスが1種類である複数のスライスのうち、当該優先クラスが同一のスライス同士にリンク帯域を共用させる条件下でトラヒックフロー割当を計算する方法および装置を発明し、特許出願した(特許文献1)。
【0011】
しかしながら、特許文献1に開示された整数計画法モデルの直接解法は大量の計算リソースを使用するので、大規模なSDNへの適用が難しいという技術課題があった。
【0012】
このような技術課題に対して、本発明の発明者等はさらに、各スライスにおいて、予め与えられた複数のツリートポロジー候補の中から、最もパケット転送スケジューリングコストを削減するツリートポロジー候補を選択するためだけに整数計画法モデルの求解を行うことで、大量の計算リソースを必要としないトラヒックフロー割当方法および装置を発明し、特許出願した(特許文献2)。
【0013】
しかしながら、各スライスにおけるツリートポロジーを有する仮想ネットワークが、常にパケット転送のスケジューリングコストを低減化するとは限らない。
【0014】
このような技術課題に対して、本発明の発明者等はさらに、スライスごとに全てのフロー条件を満たして経路の異なる複数の仮想ネットワーク候補を作成し、各スライスから選択される仮想ネットワーク候補のスライス数分の組み合わせを対象に、トラヒックフローが通過する各リンクのパケット転送に関するスケジューリングコストの総和を最小化する組み合わせを整数計画法モデルの解として計算するトラヒックフロー割当方法および装置を発明し、特許出願した(特許文献3)。
【0015】
特許文献3では、スライスごとに作成されて各経路が異なる複数の仮想ネットワーク候補の中から、最もパケット転送スケジューリングコストを削減する仮想ネットワーク候補の組み合わせを選択するためのみに整数計画法モデルの求解を行えばよいので、大量の計算リソースを必要とせず、規模の大きなSDNにも適用できるようになった。
【0016】
しかしながら、特許文献3によれば整数計画法モデルの求解に要する計算リソースを従来技術に比べ大幅に低減できるものの、スライス数が増えれば相応の計算リソースが必要となるので、大規模なSDNへの適用が難しいという技術課題があった。
【0017】
本発明の目的は、上記の技術課題を解決し、SDNの各スライスにおけるパケット転送品質へ影響が及ばない範囲で、各スライス間でのパケット転送キューの共用およびそれに伴うリンク帯域の共用を促進して、スライス間のパケット転送スケジューリングコストを最小化するトラヒックフロー割当を少ない計算量で実現するトラヒックフロー割当方法および装置を提供することにある。
【課題を解決するための手段】
【0018】
上記の目的を達成するために、本発明は、SDNの各スライス間でパケット転送キューの共用によるリンク帯域の共用を実現するトラヒックフロー割当を算出するトラヒックフロー割当において、以下の構成を具備した点に特徴がある。
【0019】
(1) 本発明のトラヒックフロー割当装置は、各リンクのコストをトラヒックフロー経路の割当ごとに、既に完了しているトラヒックフロー経路の割当に基づいて、経路算出対象トラヒックフローがコスト設定対象リンクを通過すると仮定した場合のスライス間スケジューリングコスト期待値の増加量に更新する手段と、スライスごとに前記リンクコストを更新させながら、全てのトラヒックフローに最小コスト経路を逐次的に割当て、これを全てのスライスに対して繰り返す手段とを具備した。
【0020】
(2) 本発明のトラヒックフロー割当方法は、各リンクのコストを、経路算出対象トラヒックフローがコスト設定対象リンクを通過すると仮定した場合のスライス間スケジューリングコスト期待値の増加量に設定する手順と、スライスごとに各トラヒックフローに最小コスト経路を逐次的に割当て、これを全てのトラヒックフローに対して繰り返す手順と、各リンクのコストを、トラヒックフロー経路の割当ごとに、既に完了しているトラヒックフロー経路の割当に基づいて更新する手順と、最小コスト経路の逐次的な割当およびリンクコストの更新を全てのスライスに対して繰り返す手順とを具備した。
【発明の効果】
【0021】
本発明によれば、以下のような効果が達成される。
(1)SDNの各スライスにおいて、スライス間でのパケット転送キューおよびリンク帯域の共用を促進するトラヒックフロー割当を実現できるので、リソース利用効率の向上を図ることができる。
【0022】
(2)スライス間のパケット転送スケジューリングコスト期待値の逐次的増加が最小化されるトラヒックフロー経路が算出されるので、スライス間のパケット転送スケジューリングコストを削減するトラヒックフロー割当を実現できる。
【0023】
(3)各トラヒックフローに対して最小コスト経路計算を2回実行するのみなので、スライス数の多い大規模なSDNにおいても、スライス間のパケット転送スケジューリングコストを削減するトラヒックフロー割当を少ない計算量で実現できる。
【発明を実施するための形態】
【0025】
以下、図面を参照して本発明の実施の形態について詳細に説明する。ここでは初めに、本発明におけるパケット転送キューの共用によるリンク帯域の共用について説明し、次いで、リンク帯域の共用によりスケジューリングコストを最小化できるトラヒックフロー割り当ての方法について詳細に説明する。
【0026】
本発明が注目するスケジューリングコストは、各ノードが各トラヒックフローのパケットをその優先クラスに応じた優先度で転送するために要する処理コストであり、リンク帯域を共有するスライス数やパケット転送キュー数に依存する。
【0027】
本発明では、典型的には
図1に示したように、複数のスライス(ここでは、2つのスライス#1,#2)において同一の物理リンクにそれぞれ設けていたパケット転送キューを一つにまとめ、複数のスライス#1,#2に一つのパケット転送キューを共用させることにより、当該リンクに関してスライス#1,#2のそれぞれに割り当てられていたリンク帯域の総和をスライス#1,#2が共用するトラヒックフロー割当を実現する。
【0028】
一方、トラヒックフローに複数の優先クラスが設けられているスライスでは、一般的に優先クラスに応じて相対的に優劣のある帯域割り当てが行われる。しかしながら、このような帯域割当は契約サービスの料金等に基づくものなので、優先クラスの高いパケット転送が増えた結果、優先クラスの低いパケット転送の機会が失われてサービス品質が低下したとしても、スライス内では不公平感があまり無い。
【0029】
しかしながら、
図2に示したように、トラヒックフローに複数の優先クラスが設けられているスライス(#3,#4)にリンク帯域を共用させると、一方のスライス(ここでは、スライス#4)のトラヒックフローが増加して高優先トラヒックフローが増えると、他方のスライス(ここでは、スライス#3)の、特に低優先トラヒックフローに割り当てられるべき帯域が浸食されてしまい、そのサービス品質に低下が生じるので不公平が生じる。
【0030】
そこで、本発明ではパケット転送キューの共用によるリンク帯域の共用対象とするスライスを、各リンクに単一かつ同一の優先クラスのトラヒックフローのみが流れるスライス同士に限定した。
【0031】
なお、このようなスライスの組み合わせには、
図1に示したように、優先クラスが唯一であるスライス同士のみならず、
図3,4に示したように、スライスとしては優先クラスの異なるトラヒックフローが存在するものの、リンク単位では、高優先トラヒックフローのみが流れるスライス(
図3)、低優先トラヒックフローのみが流れるスライス(
図4)のように、優先クラスが唯一となるスライス同士でも同様なので、当該スライスについてはリンク帯域の共用対象とした。
【0032】
また、
図1ないし
図4では説明の都合上、2つのスライス間でのパケット転送キューおよびリンク帯域の共用を例にして説明したが、
図5に示したように、例えば6つのスライス#1〜#6により共用されるリンクでも同様である。すなわち、スライス#1,#2同士は、トラヒックフローの優先クラスが複数なので共用を行わない。スライス#3,#4同士は、高優先トラヒックフローのみが通過するので共用を行う。スライス#5,#6同士は、低優先トラヒックフローのみが通過するので共用を行う。
【0033】
本発明では、ネットワーク全体で、スライス間のパケット転送キューおよびリンク帯域の共用を促進し、スライス間のパケット転送スケジューリングコストを最小化するトラヒックフロー割当の実現を考える。ここで、最小化されるスライス間のパケット転送スケジューリングコストは、各リンクにおけるスライス間スケジューリングコストの総和である。各リンクにおけるスライス間スケジューリングコストは、各スライスにおいてパケット転送制御を処理する仮想マシン数で表され、単純にリンク帯域共用を図った後のスライス数に比例する。従って、
図5の例では仮想マシン数が4となり、スライス間スケジューリングコストは4に比例する。
【0034】
図6は、本発明の一実施形態に係るトラヒックフロー割当装置1の主要部の構成を示した機能ブロック図である。このようなトラヒックフロー割当装置1は、汎用のコンピュータやサーバに、後述する各機能を実現するアプリケーション(プログラム)を実装することで構成できる。あるいは、アプリケーションの一部がハードウェア化またはROM化された専用機や単能機として構成しても良い。
【0035】
入力インタフェース(I/F)10は、ネットワークのトポロジー情報の入力を受け付けて記憶するトポロジー情報受付部10a、およびトラヒックフロー情報の入力を受け付けて記憶するトラヒックフロー情報受付部10bを含む。最小ホップ数経路算出部20は、全てのトラヒックフローの最小ホップ数経路を算出し、さらにその平均経由ホップ数を計算する。
【0036】
トラヒックフロー経路算出部30は、リンクコスト設定部30aを含み、後に詳述するように、全てのトラヒックフローに関して、スライス間のパケット転送スケジューリングコスト期待値の増加を最小化するようなトラヒックフロー経路を逐次的に算出する。スライス間のパケット転送スケジューリングコストの期待値を計算するためには、トラヒックフローの平均経由ホップ数の値が必要になるが、本実施形態では、先に求めた最小ホップ数経路の平均経由ホップ数でこれを代用する。
【0037】
前記リンクコスト設定部30aは、各リンクのコストをトラヒックフロー経路の割当ごとに、既に完了しているトラヒックフロー経路の割当に基づいて、経路算出対象トラヒックフローがコスト設定対象リンクを通過すると仮定した場合のスライス間スケジューリングコスト期待値の増加量に更新する。逐次的に算出されたトラヒックフロー経路は、パケット転送のスケジューリングコストを最小化するトラヒックフローの割当結果として出力される。
【0038】
図7は、前記トラヒックフロー経路算出部30が、スライスごとにトラヒックフロー経路を逐次的に算出する手順を示したフローチャートであり、全てのスライスを順番に選択し、選択したスライスに収容されるトラヒックフローの経路を1本ずつ逐次的に算出する。各トラヒックフローの経路算出に先立って、各リンクのコストを、仮に経路算出対象のトラヒックフローが当該リンクを通過した時のスライス間スケジューリングコスト期待値の増加量に設定する。各リンクのコストは、既に明らかとなっている他スライスに収容されるトラヒックフローの割当結果も考慮して設定される。
【0039】
すなわち、ステップS101ではリンク帯域の共用対象となるスライスのリストが作成される。ステップS102では、前記スライスリストから今回注目する一のスライス(注目スライス)が取り出される。
【0040】
ステップS103では、前記注目スライスのフローリストがトラヒックフロー情報に基づいて作成される。ステップS104では、前記フローリストからランダムに一のトラヒックフローが選択されて今回の注目トラヒックフロー、すなわち経路算出対象トラヒックフローとされる。
【0041】
ステップS105では、各リンクに対して、当該リンクを通過するトラヒックフローが負担することになるリンクコストが設定、更新される。本実施形態では、後に式(1)〜(5)を参照して詳述するように、各リンクのコストが、既に完了しているトラヒックフロー経路の割当に基づいて、経路算出対象トラヒックフローがコスト設定対象リンクを通過すると仮定した場合のスライス間スケジューリングコスト期待値の増加量に更新される。
【0042】
ステップS106では、前記設定された今回のリンクコストに基づいて、注目トラヒックフローの最小コスト経路が算出される。ステップS107では、前記フローリストに登録されている全てのトラヒックフローに関して最小コスト経路の割り当てが完了したか否かが判定される。完了していなければステップS104へ戻り、同一スライス内で注目トラヒックフローを切り替えながら、トラヒックフローの選択、リンクコストの更新および最小コスト経路の割当が繰り返される。
【0043】
その後、注目スライスのフローリストに登録されている全てのトラヒックフローに関する処理が完了したと判定されるとステップS108へ進み、今回の注目スライスにおいて算出された全ての最小コスト経路をトラヒックフロー経路として登録する。
【0044】
ステップS109では、全てのスライスに関してトラヒックフロー経路の計算が完了してスライスリストが空になったか否かが判定される。完了していなければステップS102へ戻り、注目スライスを切り替えながら上記の各処理が繰り返され、スライスごとに仮想ネットワークが構築される。
【0045】
次いで、前記ステップS105におけるリンクコストの設定方法について詳細に説明する。本実施形態では、各注目スライスの仮想ネットワーク構築における各リンクコストCostが、今回の注目トラヒックフローがコスト設定対象リンクを通過すると仮定した場合のスライス間スケジューリングコスト期待値(0~1)の増加量に設定され、当該リンクの属性に応じて以下の3つの値のいずれかを取る。なお、スライス数に対するスライス間スケジューリングコストの比例係数は1.0と仮定している。
【0046】
ケース1 注目トラヒックフローが収容されるスライスに関して、通過トラヒックフローの無いリンク:Cost=LC0
ケース2 注目トラヒックフローが収容されるスライスに関して、当該注目トラヒックフローと異なる1つの優先クラスに属するトラヒックフローのみが通過するリンク:Cost=1.0-LC0
ケース3 その他のリンク:Cost=ε(εは十分に小さな値)
【0047】
すなわち、注目トラヒックフローが収容されるスライスに関して、コストの設定対象であるリンクをトラヒックフローが全く通過していない状態から、注目トラヒックフローが最初に通過する場合(ケース1)、既に収容するトラヒックフロー経路が決定しているスライスの中で、注目トラヒックフローと同一の優先クラスに属するトラヒックフローのみが当該リンクを通過するようなスライス数をNとし、注目トラヒックフローを収容するスライスも含めて、収容するトラヒックフロー経路が決定していないスライス数をSとする。
【0048】
今回の注目スライス以外の、収容するトラヒックフロー経路が決定していないスライスのうち、i個のスライスと当該リンクについて帯域の共用が期待できる場合は、当該リンクにおけるスライス間スケジューリングコストの増加量は1/(i+1)になるところ、既にN個のスライスと当該リンクについて帯域を共用できることが確定していれば、当該リンクにおけるスライス間スケジューリングコストの増加量は次式(1)で表せる。
【0050】
例えば、既に収容するトラヒックフロー経路が決定しているスライスの中で、注目トラヒックフローと同一の優先クラスに属するトラヒックフローのみが当該リンクを通過するようなスライスが未だ無ければ(N=0)、当該リンクにおけるスライス間スケジューリングコストの増加量は1/(i+1)になる。
【0051】
さらに、トラヒックフロー経路を求めようとしている今回の注目スライス以外の残りのスライスとの当該リンクの帯域共用が全く期待できない場合(i=0)は、当該リンクにおけるスライス間スケジューリングコストの増加量は、そのまま1になる。
【0052】
なお、当該リンク帯域の共用が可能であるスライスとは、注目トラヒックフローと同一の優先クラスに属するトラヒックフローのみが1本以上当該リンクを通過するようなスライスである。
【0053】
ここで、m個のスライスからn個のスライスを選択する組み合わせ数をmCn、注目トラヒックフローと同一の優先クラスに属するトラヒックフローのみが1本以上当該リンクを通過する確率をPとすれば、注目トラヒックフローが収容される注目スライス以外のS-1個のスライスの内、i(=0 ~ S-1)個のスライスとの当該リンク帯域の共用が期待できる確率は、次式(2)で表せる。
【0055】
従って、既に明らかとなっている他のスライスに収容されるトラヒックフローの割当結果から、N個のスライスとリンク帯域を共用できる場合のスライス間スケジューリングコスト増加量は、上式(2)の計算結果を使ってi(=0 ~ S-1)に関して平均すれば良いので、次式(3)で表せる。
【0057】
一方、前記確率Pに関して、トラヒックフローの平均経由ホップ数をH、リンク数をLとすれば、各トラヒックフローがコスト設定対象であるリンクを通過する確率は(H/L)で与えられる。ただし、本実施形態では前記平均経由ホップ数Hが、先に求めた全トラヒックフローの最小ホップ数経路の平均経由ホップ数で代用される。
【0058】
そして、各スライスがFs本のトラヒックフローを収容しているとすれば、Fs本のトラヒックフローの内、1本以上のi(=1 ~ Fs)本のトラヒックフローが当該リンクを通過する確率は、次式(4)で表せる
【0060】
更に、i(=1 ~ Fs)本のトラヒックフローが当該リンクを通過して、当該リンクを通過するi(=1 ~ Fs)本のトラヒックフローの全てが、注目トラヒックフローと同一の優先クラスに属する確率は、優先クラス数をKとすれば、次式(5)で表せる。但し、各優先クラスに属するトラヒックフローの数は均等であると仮定している。
【0062】
以上より、各スライスにおいて、注目トラヒックフローと同一の優先クラスに属するトラヒックフローのみが1本以上当該リンクを通過する前記確率Pは、i(=1 ~ Fs)に関する和を取って、次式(6)で表せる。
【0064】
前記ケース2の場合は、仮に注目トラヒックフローが当該リンクを通過した場合、その時点で、当該スライスは他スライスとリンク帯域を共用できない独立したスライスとなる。従って、当該リンクを通過するトラヒックフローが存在しない状態からのスライス間スケジューリングコスト期待値の増加量は1.0となり、LC0は当該リンクの直前のコストを表す。
【0065】
前記ケース3の場合は、仮に注目トラヒックフローが当該リンクを通過しても、スライス間スケジューリングコスト期待値は増加しない。従って、εは十分小さな実数であり、例えばネットワークの総リンク数Lの逆数よりも小さな数である。
【0066】
本リンクコストの下で、最小コスト経路を算出することにより、スライス間のパケット転送スケジューリングコスト期待値の増加を最小化するような経路を算出できる。当該スライスに属する全てのトラヒックフローの経路算出が終了した時点で、これらのトラヒックフロー経路の全てを合成することにより、全てのトラヒックフローを満たす仮想ネットワークが得られる。
【0067】
このように、本実施形態におけるトラヒックフロー経路算出手順では、スライス間のパケット転送スケジューリングコスト期待値の逐次的増加が最小化されるような経路に各トラヒックフローが割当てられるので、最終的にスライス間のパケット転送スケジューリングコストを削減するトラヒックフロー割当を実現できる。
【0068】
本実施形態によれば、SDNの各スライスにおいて、スライス間でのパケット転送キューおよびリンク帯域の共用を促進するトラヒックフロー割当を実現できるので、リソース利用効率の向上を図ることができる。
【0069】
また、本実施形態によれば、スライス間のパケット転送スケジューリングコスト期待値の逐次的増加が最小化されるトラヒックフロー経路が算出されるので、スライス間のパケット転送スケジューリングコストを削減するトラヒックフロー割当を実現できる。
【0070】
さらに、本実施形態によれば、各トラヒックフローに対して最小ホップ数経路を算出するための最小コスト経路計算と当該トラヒックフローの割当経路を決定するための最小コスト経路計算とを合わせて2回実行するのみなので、スライス数の多い大規模なSDNにおいても、スライス間のパケット転送スケジューリングコストを削減するトラヒックフロー割当を少ない計算量で実現できる。
【0071】
なお、上記の実施形態では、リンク帯域の共用対象となるスライス組を、リンクを通過するトラヒックフローの優先クラスが唯一かつ同一のスライス同士とし、優先クラスの異なる複数のトラヒックフローが通過するスライス同士は共用の対象外であるものとして説明した。
【0072】
しかしながら、優先クラスの異なる複数のトラヒックフローが通過するスライス同士であっても、
図8に示したように、スライス内の各優先クラスにリンク帯域が固定的に割り当てられていれば、対応する優先クラス同士でパケット転送キューを一つにまとめて共用させることで、優先クラスごとに各リンク帯域の総和を共用させても良い。このとき、各スライスの対応する優先クラスに割り当てられていた帯域は必ずしも同一でなくて良い。
【0073】
このようにすれば、優先クラスが同一のパケット同士は公平に扱われ、一方のスライスの高優先トラヒックフローが増加しても、他方のスライスの低優先トラヒックフローに割り当てられるべき帯域は確保される。したがって、サービス品質を不公平に低下させることなくリンク帯域の利用効率を向上させることができる。