(57)【要約】【課題】空き帯域を効率的に測定する。【解決手段】空き帯域測定装置１０は、物理ノード２相手に通信を行う複数のＶＭ１１〜１３を１つのグループに分類する。次に空き帯域測定装置１０は、グループに属する複数のＶＭ１１〜１３それぞれを模倣した測定用パケットを、物理ノード２に送信することで、複数のＶＭ１１〜１３それぞれが異なる時間帯にデータ送信を行ったときの、空き帯域を測定する。そして空き帯域測定装置１０は、複数のＶＭ１１〜１３それぞれの空き帯域に基づいて、複数のＶＭ１１〜１３が同じ時間帯に物理ノード２へのデータ送信を行うときの、複数のＶＭ１１〜１３それぞれの物理ノード２へのデータ送信の実効帯域を通知する。【選択図】図１
2018029230.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
前記コンピュータにネットワークを介して接続された物理ノードと通信を行う、前記コンピュータ上に生成された複数の仮想マシンを１つのグループに分類し、
前記グループに属する前記複数の仮想マシンそれぞれを模倣した測定用パケットを前記物理ノードに送信することで、前記複数の仮想マシンそれぞれが異なる時間帯に前記物理ノードへのデータ送信を行ったときの、前記物理ノードとの間の通信経路の空き帯域を、前記複数の仮想マシンそれぞれについて測定し、
前記複数の仮想マシンそれぞれの前記空き帯域に基づいて、前記複数の仮想マシンが同じ時間帯に前記物理ノードへのデータ送信を行うときの、前記複数の仮想マシンそれぞれの実効帯域を決定し、
前記複数の仮想マシンそれぞれに前記実効帯域を通知する、
処理を実行させる空き帯域測定プログラム。
【請求項２】
前記測定では、第１仮想マシンについてのすでに測定されている第１空き帯域の情報を利用して、第２仮想マシンを模倣した前記物理ノードとの間の通信経路の第２空き帯域を測定する、
請求項１記載の空き帯域測定プログラム。
【請求項３】
前記測定では、前記第１空き帯域を、前記第２仮想マシンの前記第２空き帯域を二分探索で測定する際の送信レートの初期値とする、
請求項２記載の空き帯域測定プログラム。
【請求項４】
前記決定では、前記複数の仮想マシンの前記空き帯域が同じ場合、前記空き帯域を仮想マシン数で除算した値を、前記複数の仮想マシンそれぞれの前記実効帯域とする、
請求項１乃至３のいずれかに記載の空き帯域測定プログラム。
【請求項５】
前記決定では、第３仮想マシンの第３空き帯域が、前記複数の仮想マシンそれぞれの前記空き帯域のうちの最大値を仮想マシン数で除算した値よりも狭い場合、前記第３仮想マシンの前記第３空き帯域を前記第３仮想マシンの前記実効帯域とし、前記最大値から前記第３空き帯域を減算した残りを、前記第３仮想マシン以外の仮想マシン数で除算し、除算結果を、前記第３仮想マシン以外の仮想マシンそれぞれの前記実効帯域とする、
請求項１乃至４のいずれかに記載の空き帯域測定プログラム。
【請求項６】
コンピュータが、
前記コンピュータにネットワークを介して接続された物理ノードと通信を行う、前記コンピュータ上に生成された複数の仮想マシンを１つのグループに分類し、
前記グループに属する前記複数の仮想マシンそれぞれを模倣した測定用パケットを前記物理ノードに送信することで、前記複数の仮想マシンそれぞれが異なる時間帯に前記物理ノードへのデータ送信を行ったときの、前記物理ノードとの間の通信経路の空き帯域を、前記複数の仮想マシンそれぞれについて測定し、
前記複数の仮想マシンそれぞれの前記空き帯域に基づいて、前記複数の仮想マシンが同じ時間帯に前記物理ノードへのデータ送信を行うときの、前記複数の仮想マシンそれぞれの実効帯域を決定し、
前記複数の仮想マシンそれぞれに前記実効帯域を通知する、
空き帯域測定方法。
【請求項７】
通信経路上の空き帯域を測定する空き帯域測定装置であって、
前記空き帯域測定装置にネットワークを介して接続された物理ノードと通信を行う、前記空き帯域測定装置上に生成された複数の仮想マシンを１つのグループに分類する分類手段と、
前記グループに属する前記複数の仮想マシンそれぞれを模倣した測定用パケットを前記物理ノードに送信することで、前記複数の仮想マシンそれぞれが異なる時間帯に前記物理ノードへのデータ送信を行ったときの、前記物理ノードとの間の通信経路の空き帯域を、前記複数の仮想マシンそれぞれについて測定する測定手段と、
前記複数の仮想マシンそれぞれの前記空き帯域に基づいて、前記複数の仮想マシンが同じ時間帯に前記物理ノードへのデータ送信を行うときの、前記複数の仮想マシンそれぞれの実効帯域を決定し、前記複数の仮想マシンそれぞれに前記実効帯域を通知する決定手段と、
を有する空き帯域測定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、空き帯域測定プログラム、空き帯域測定方法、および空き帯域測定装置に関する。
【背景技術】
【０００２】
近年は、仮想化技術を使ってネットワーク機能が汎用コンピュータ上で実現されている。このような技術は、ＮＦＶ（Network Functions Virtualization）と呼ばれる。ＮＦＶでは、ネットワーク機能（ファイアウォール、ロードバランサなど）が仮想化される。ネットワーク機能を仮想化した仮想マシンは、ＶＮＦ（Virtualized Network Function）と呼ばれる。
【０００３】
複数のＶＮＦを有する物理ノードがＷＡＮ（Wide Area Network）に接続されている場合、複数のＶＮＦそれぞれがＷＡＮを介した通信を行う。ＷＡＮは、例えば複数の国を跨がったネットワークであり、複数の通信キャリアによって構成される。ＷＡＮ内のネットワークには、有線網も無線網も含まれる。
【０００４】
ＶＮＦがＷＡＮを介した通信を行う場合、通信経路の帯域が分かれば、通信効率を高めることができる。例えばＶＮＦは、通信経路上のボトルネックとなる部分の帯域に合わせた通信速度でデータを送信することで、空き帯域を効率的に利用した通信を行うことができる。そこで、各ＶＮＦは、ＷＡＮを介した通信の伝送効率を高めるために、空き帯域を測定する。ＷＡＮを介した通信の空き帯域は、ＷＡＮを経由した通信経路上の、通信余力が最も少ない部分における通信余力である。通信経路における通信余力は、例えば機器間を接続するリンクの最大の通信速度と、通信しているデータの通信速度との差分である。空き帯域の測定では、例えば、データ送信速度（送信レート）を変えながら、通信が繰り返し行われる。そして、送信レートと同程度の速度でデータを受信することができる最大の送信レートが、空き帯域と判定される。
【０００５】
仮想ネットワークの状態を把握するのに有用な技術としては、例えば、網の制御機能が利用可能な資源を絞るというような運用がなされる仮想網でも正しく網の状態を把握できるようにする網状態推定装置がある。また、無用な帯域測定動作を削減して帯域測定動作が通信網に与える負荷を軽減するパケット通信網の帯域測定方法が考えられている。さらに通信セッションの監視に必要な計算機資源を低減しつつ、実際の利用状況に応じて帯域を制御し、帯域の利用効率を向上する帯域制御装置も考えられている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−０７４４９４号公報
【特許文献２】特開２００８−１３１１００号公報
【特許文献３】国際公開第２０１５／１６２７５３号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
同一の物理ノード上に、他の特定の物理ノードと通信を行う複数のＶＮＦがある場合、複数のＶＮＦそれぞれが空き帯域の測定を行うと、複数のＶＮＦが互いの空き帯域の測定結果の情報を共有できず、余計な通信負荷が生じる。
【０００８】
１つの側面では、本件は、空き帯域を効率的に測定することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、コンピュータに以下の処理を実効させる空き帯域測定プログラムが提供される。
コンピュータは、空き帯域測定プログラムに基づいて、コンピュータにネットワークを介して接続された物理ノードと通信を行う、コンピュータ上に生成された複数の仮想マシンを１つのグループに分類する。次にコンピュータは、グループに属する複数の仮想マシンそれぞれを模倣した測定用パケットを物理ノードに送信することで、複数の仮想マシンそれぞれが異なる時間帯に物理ノードへのデータ送信を行ったときの、物理ノードとの間の通信経路の空き帯域を、複数の仮想マシンそれぞれについて測定する。さらにコンピュータは、複数の仮想マシンそれぞれの空き帯域に基づいて、複数の仮想マシンが同じ時間帯に物理ノードへのデータ送信を行うときの、複数の仮想マシンそれぞれの実効帯域を決定する。そしてコンピュータは、複数の仮想マシンそれぞれに実効帯域を通知する。
【発明の効果】
【００１０】
１態様によれば、空き帯域を効率的に測定することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態のシステムの構成例を示す図である。
【図２】第２の実施の形態のシステムの構成例を示す図である。
【図３】第２の実施の形態に用いる物理ノードのハードウェアの一構成例を示す図である。
【図４】各ＶＮＦが空き帯域を測定する場合の通信状況の一例を示す図である。
【図５】帯域制限機構の一例を示す図である。
【図６】各ノードの機能を示すブロック図である。
【図７】空き帯域探索方法の一例を示す図である。
【図８】前の測定結果の有効利用の一例を示す図である。
【図９】ＶＮＦからの依頼に応じた空き帯域の判定処理の一例を示すシーケンス図である。
【図１０】周期的に空き帯域の判定処理を行う例を示すシーケンス図である。
【図１１】物理ノードのソフトウェアの実装例を示す図である。
【図１２】各ノード内の要素間で送受信される情報を示す図である。
【図１３】管理ノードのコントローラの機能を示すブロック図である。
【図１４】送信側のＶＮＦ帯域制御部の機能を示すブロック図である。
【図１５】送信側の代表測定部の機能を示すブロック図である。
【図１６】受信側のＶＮＦ帯域制御部の機能を示すブロック図である。
【図１７】受信側の代表測定部の機能を示すブロック図である。
【図１８】ノード管理テーブルの一例を示す図である。
【図１９】物理フローテーブルの一例を示す図である。
【図２０】グループ管理テーブルの一例を示す図である。
【図２１】帯域観測テーブルの一例を示す図である。
【図２２】物理ノードが通信情報を送信するときのパケットフォーマットの一例を示す図である。
【図２３】管理ノードが通信情報を送信するときのパケットフォーマットの一例を示す図である。
【図２４】伝送スケジュールの一例を示す図である。
【図２５】伝送スケジュール送信用のパケットフォーマットの一例を示す図である。
【図２６】空き帯域測定用パケットの一例を示す図である。
【図２７】空き帯域測定用のパケットであることを示す識別値をＣｏＳに設定する例を示す図である。
【図２８】すべてのＶＮＦが帯域制限を受けていない場合の空き帯域の測定結果を示す図である。
【図２９】すべてのＶＮＦが帯域制限を受けていない場合の空き帯域の測定手順を示すシーケンス図である。
【図３０】一部のＶＮＦが帯域制限を受けている場合の空き帯域の測定結果を示す図である。
【図３１】一部のＶＮＦが帯域制限を受けている場合の空き帯域の測定手順を示すシーケンス図である。
【図３２】物理ノードにおける最新の通信情報の送信手順の一例を示すフローチャートである。
【図３３】コントローラの通信情報管理処理の手順を示すフローチャートである。
【図３４】測定依頼による伝送スケジュール決定処理の手順の一例を示すフローチャートである。
【図３５】定期的に伝送スケジュール決定を行う処理の手順の一例を示すフローチャートである。
【図３６】伝送スケジュールのチェック処理の手順の一例を示すフローチャートである。
【図３７】ＶＮＦを模倣したデータ送信処理の手順の一例を示すフローチャートである。
【図３８】空き帯域測定時のデータ受信処理の手順の一例を示すフローチャートである。
【図３９】実効帯域決定処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず、第１の実施の形態について説明する。
【００１３】
図１は、第１の実施の形態のシステムの構成例を示す図である。第１の実施の形態では、空き帯域測定装置１０が、ネットワーク１を介して物理ノード２に接続されている。ネットワーク１は、例えば複数の通信キャリアによって構成されるＷＡＮである。空き帯域測定装置１０は、例えば物理ノード２との間の通信経路の空き帯域測定機能を有する物理ノードである。
【００１４】
空き帯域測定装置１０は、複数の仮想マシン（ＶＭ：Virtual Machine）１１〜１３、分類手段１４、測定手段１５、および決定手段１６を有する。
ＶＭ１１〜１３は、例えばハイパーバイザによって空き帯域測定装置１０上に生成されている。ＶＭ１１〜１３は、物理ノード２との間の通信の実効帯域の通知を受けた場合、その実効帯域を超えない範囲で、物理ノード２との効率的な通信を行う。またＶＭ１１〜１３は、測定手段１５により、いずれかのＶＭ１１〜１３についての空き帯域の測定が行われている間は、物理ノード２との通信は行わない。これにより、ＶＭ１１〜１３自身の通信が、測定手段１５による空き帯域の測定結果に影響をおよぼすことを抑止できる。
【００１５】
分類手段１４は、物理ノード２相手に通信を行う複数のＶＭ１１〜１３を１つのグループに分類する。
測定手段１５は、同じグループに属する複数のＶＭ１１〜１３それぞれを模倣した測定用パケットを物理ノード２に送信する。そして測定手段１５は、物理ノード２における測定用パケットの受信状況に基づいて、複数のＶＭ１１〜１３それぞれが異なる時間帯に物理ノード２へのデータ送信を行ったときの、物理ノード２との間の通信経路の空き帯域を測定する。空き帯域は、複数のＶＭ１１〜１３それぞれについて測定される。例えば測定手段１５は、物理ノード２での受信レート（単位時間当たりの受信データ量）を、受信状況として物理ノード２から取得する。そして測定手段１５は、受信状況に基づいて、複数のＶＭ１１〜１３それぞれが異なる時間帯に通信したときの物理ノード２との間の通信経路の空き帯域を測定する。例えば測定手段１５は、二分探索によって、空き帯域を測定する。二分探索の詳細は後述する（図７参照）。
【００１６】
測定手段１５は、空き帯域を測定する際、すでに測定されているＶＭの空き帯域の情報を利用して、他のＶＭを模倣した物理ノードとの間の通信経路の空き帯域を、効率的に測定することができる。例えば測定手段１５は、特定のＶＭの空き帯域を、他のＶＭの空き帯域を二分探索で測定する際の、送信レートの初期値とする。
【００１７】
決定手段１６は、複数のＶＭ１１〜１３それぞれの空き帯域に基づいて、複数のＶＭ１１〜１３が同じ時間帯に物理ノード２へのデータ送信を行うときの、複数のＶＭ１１〜１３それぞれの実効帯域を決定する。そして決定手段１６は、複数のＶＭ１１〜１３それぞれに実効帯域を通知する。例えば決定手段１６は、複数のＶＭ１１〜１３の空き帯域が同じ場合、空き帯域をＶＭ数で除算した値を、複数のＶＭ１１〜１３それぞれの実効帯域とする。また複数のＶＭ１１〜１３それぞれの空き帯域のうちの最大値をＶＭ数で除算した値よりも、空き帯域が狭い低帯域ＶＭがある場合もある。この場合、決定手段１６は、低帯域ＶＭの空き帯域を、その低帯域ＶＭの実効帯域とする。そして決定手段１６は、最大値から、低帯域ＶＭの空き帯域を減算した残りを、低帯域ＶＭ以外のＶＭ数で除算する。決定手段１６は、除算結果を、低帯域ＶＭ以外のＶＭそれぞれの実効帯域とする。
【００１８】
このようなシステムによれば、空き帯域測定装置１０では、複数のＶＭ１１〜１３それぞれが個別に物理ノード２と通信した場合の空き容量が、測定手段１５によって測定される。これにより、先の測定したＶＭの空き帯域を有効に利用して、他のＶＭの空き帯域の測定を効率的に行うことができる。
【００１９】
なお、その複数のＶＮＦのうちの１つが空き帯域測定を実施し、その結果を他のＶＮＦと共有すれば、空き帯域の測定の負荷を軽減することができる。しかし、ＷＡＮを構成する通信キャリアの中には、ＶＭごとの帯域制限を行っている場合がある。そのため、１つのＶＭが測定して得られた空き帯域分の帯域を、他のＶＭが使用できるとは限らない。すなわち、特定のＶＭに対する帯域制限により通信可能な通信速度が、他のＶＮＦが測定した空き帯域より低い場合、その特定のＶＮＦは空き帯域分の通信速度で通信を行うことはできない。そのため、ＶＭごとの帯域制限が行われるＷＡＮを経由した通信については、複数のＶＭについて個別に空き帯域を測定することとなる。第１の実施の形態では、測定手段１５が複数のＶＭ１１〜１３それぞれの空き帯域を測定することで、帯域制限を考慮した正確な空き帯域測定を、効率的に行うことができる。
【００２０】
図１の例では、ＶＭ１１、ＶＭ１２、ＶＭ１３の順で、空き帯域の測定を行っている。ＶＭ１１とＶＭ１２は、ネットワーク１の伝送経路上で帯域制限を受けないが、ＶＭ１３は帯域制限を受けるものとする。そしてＶＭ１１を模倣した通信により空き帯域を測定した結果、４８０Ｍｂｐｓの空き帯域が得られている。これは送信レートが４８０Ｍｂｐｓのとき、受信レートも４８０Ｍｂｐｓであるが、送信レートが４８０Ｍｂｐｓを超えると、受信レートは、送信レートより低くなることを意味する。
【００２１】
ＶＭ１２の空き帯域を測定する場合、例えば測定手段１５は、ＶＭ１２を模倣した通信の送信レートの初期値を、ＶＭ１１の空き帯域である４８０Ｍｂｐｓとする。このときの受信レートが４８０Ｍｂｐｓであれば、測定手段１５は、送信レートを４８０Ｍｂｐｓより若干増やして、ＶＭ１２を模倣したデータ送信を行う。このときの送信レートの増加量は、予め設定されているものとする。４８０Ｍｂｐｓより若干増やしたときの受信レートが送信レートより低い場合、ＶＭ１２の空き帯域が４８０Ｍｂｐｓであると判断できる。すなわち、送信レートの異なるデータ送信を２回行うだけで、ＶＭ１２の空き帯域が判明する。
【００２２】
次にＶＭ１３の空き帯域を測定する場合、例えば測定手段１５は、ＶＭ１３を模倣した通信の送信レートの初期値を、ＶＭ１２の空き帯域である４８０Ｍｂｐｓとする。図１の例では、ＶＭ１３は帯域制限を受けており、受信レートは４８０Ｍｂｐｓ未満となる。この場合、測定手段１５は、通常の二分探索と同様に、送信レートを変えながら繰り返しデータ送信を行い、ＶＭ１３の空き帯域を測定する。図１の例では、ＶＭ１３の空き帯域は、８０Ｍｂｐｓである。
【００２３】
このように、第１の実施の形態によれば、帯域制限を受けていないＶＭが複数あれば、それらのＶＭのうちの１台の空き帯域を測定すれば、その他のＶＭの空き帯域を非常に効率的に測定できる。しかも第１の実施の形態では、すべてのＶＭ１１〜１３それぞれを模倣した通信により空き帯域を測定するため、帯域制限を受けるＶＭがあれば、そのＶＭの空き帯域について、帯域制限を反映した値が測定できる。
【００２４】
第１の実施の形態で測定される空き帯域は、ＶＭ１１〜１３のいずれか１台のみが通信を行い、他のＶＭが通信を行わない場合における、通信を行うＶＭについての、物理ノード２との間の伝送経路の空き帯域である。実際の運用では、ＶＭ１１〜１３それぞれが物理ノード２との間で通信を行う。そのため決定手段１６は、測定された最大の空き帯域（帯域制限を受けない場合の空き帯域）をＶＭ１１〜１３に分配することで、各ＶＭ１１〜１３の実効帯域を決定する。その際、決定手段１６は、帯域制限を受けているＶＭ１３については、帯域制限内の実効帯域を割り当てる。これにより、帯域制限を受けていないＶＭ１１，１２に対して、すべてのＶＭ１１〜１３に均等に実効帯域を割り当てた場合よりも大きな実効帯域を割り当てることができる。
【００２５】
図１の例ではＶＭ１３は、帯域制限により、空き帯域が８０Ｍｂｐｓである。そこで決定手段１６は、ＶＭ１３の実効帯域を８０Ｍｂｐｓとする。そして決定手段１６は、最大の空き帯域である４８０Ｍｂｐｓから割り当て済みの帯域である８０Ｍｂｐｓを減算した残りの４００Ｍｂｐｓを、２台のＶＭ１１，１２に均等に割り当てる。その結果、ＶＭ１１，１２の実効帯域は、共に２００Ｍｂｐｓとなる。この結果、ネットワーク１の性能を最大限利用して通信を行うことができる。
【００２６】
例えば各ＶＭ１１〜１３は、大量のデータを物理ノード２に送信する場合、通知された実効帯域を送信レートとしてデータ送信を行うことで、効率的な通信を実現する。すなわち、ＶＭ１１〜１３が実効帯域を超えた速度でデータを送信すると、パケットロスが発生する。パケットロスが発生すると、パケットの再送などの余分な処理が行われ、データ伝送効率が悪化する。それに対して、各ＶＭ１１〜１３が実効帯域を送信レートとしてデータ送信すれば、パケットのロスが発生しない範囲での最大の速度でデータを転送できる。
【００２７】
なお、分類手段１４、測定手段１５、および決定手段１６は、例えば空き帯域測定装置１０が有するプロセッサにより実現することができる。また、図１に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【００２８】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、ＮＦＶによって仮想化されたＶＮＦ間の通信における空き帯域の測定を、効率的に行うものである。
【００２９】
図２は、第２の実施の形態のシステムの構成例を示す図である。図２の例では、ネットワーク２０を介して２台の物理ノード１００，２００が接続されている。ネットワーク２０は、例えばＷＡＮであり、複数の通信キャリアのネットワークが含まれている。物理ノード１００，２００は、例えば、仮想化技術により内部に複数のＶＮＦが構築されたコンピュータである。
【００３０】
ネットワーク２０には、さらに管理ノード３００が接続されている。管理ノード３００は、物理ノード１００，２００上に設けられたＶＮＦを管理するコンピュータである。
図３は、第２の実施の形態に用いる物理ノードのハードウェアの一構成例を示す図である。物理ノード１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００３１】
メモリ１０２は、物理ノード１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００３２】
バス１０９に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェースカード（ＮＩＣ）１０８ａ，１０８ｂがある。
【００３３】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００３４】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３５】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３６】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３７】
機器接続インタフェース１０７は、物理ノード１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００３８】
ＮＩＣ１０８ａ，１０８ｂは、ネットワーク２０に接続されている。ＮＩＣ１０８ａ，１０８ｂは、ネットワーク２０を介して、他の物理ノード２００や管理ノード３００との間でデータの送受信を行う。
【００３９】
以上のようなハードウェア構成によって、第２の実施の形態の物理ノード１００の処理機能を実現することができる。なお物理ノード２００および管理ノード３００も、物理ノード１００と同様のハードウェアにより実現することができる。また、第１の実施の形態に示した装置も、図３に示した物理ノード１００と同様のハードウェアにより実現することができる。
【００４０】
物理ノード１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。物理ノード１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、物理ノード１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。また物理ノード１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。同様に、物理ノード２００または管理ノード３００も、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現することができる。
【００４１】
以上のようなシステムにおいて、物理ノード１００内のＶＮＦから物理ノード２００内のＶＮＦへデータを送信する際、送信側である物理ノード１００内のＶＮＦは、空き帯域が分かれば、その空き帯域を効率的に利用したデータ送信を行うことができる。そこで、物理ノード１００と物理ノード２００との間で、空き帯域の測定が行われる。このとき、複数のＶＮＦが個別に空き帯域を測定すると、空き帯域測定のための通信により、ネットワークに余分な負荷がかかってしまう。
【００４２】
図４は、各ＶＮＦが空き帯域を測定する場合の通信状況の一例を示す図である。ＮＶＦのＷＡＮ高速化のための、物理ノード１００内のＶＮＦ１１１，１１２，・・・，１１ｎが空き帯域を測定する場合を考える。ＶＮＦ１１１，１１２，・・・，１１ｎは、通信相手の物理ノード２００内のＶＮＦ２１１，２１２，・・・，２１ｎのいずれかに向けたデータ送信を試み、受信側でのデータの受信速度に基づいて、空き帯域を判断する。このとき、空き帯域の想定を各ＶＮＦ１１１，１１２，・・・，１１ｎが個別に実施すると、ネットワーク２０に余計な負荷が生じる。
【００４３】
そこで、例えば１台のＶＮＦ１１１が代表して空き帯域を探索し、その空き帯域の情報を、物理ノード１００内の全ＶＮＦ１１１，１１２，・・・，１１ｎで共有することが考えられる。しかし、ネットワーク２０内では、ＶＮＦごとに使用できる帯域に制限が設けられている可能性がある。
【００４４】
図５は、帯域制限機構の一例を示す図である。図５の例では、ＶＮＦ１１１に対しては使用できる帯域が制限されていないが、ＶＮＦ１１２に対しては使用できる帯域が制限されている。
【００４５】
ＶＮＦ１１１が物理ノード２００内のＶＮＦ２１１に対して、送信レート「Ｓ（ｂｐｓ）」（Ｓは正の実数）で送信すると、ＶＮＦ２１１において受信レート「Ｓ」で受信できるものとする。このような送信レート「Ｓ」の最大値が、ＶＮＦ１１１により測定される空き帯域となる。
【００４６】
ＶＮＦ１１２が物理ノード２００内のＶＮＦ２１２にデータを送信する場合も、通信経路は、ＶＮＦ１１１とＶＮＦ２１１との間の通信と同じであると想定できる。するとＶＮＦ１１２が使用できる帯域に制限がなければ、ＶＮＦ１１２から送信レート「Ｓ」で送信したデータは、ＶＮＦ２１２で受信レート「Ｓ」で受信できるはずである。
【００４７】
しかしネットワーク２０内での帯域制限機構により使用できる帯域が制限されると、ＶＮＦ１１２が送信レート「Ｓ」で送信したデータは、例えば送信レート「Ｓａ」（Ｓａは、Ｓより小さい正の実数）に速度が低下する。帯域制限が複数の箇所で行われていれば、ＶＮＦ１１２送信したデータは、例えば送信レート「Ｓｂ」（「Ｓｂ」は、「Ｓａ」より小さい正の実数）に、さらに速度が低下する。そして、ＶＮＦ２１２がデータを受信する際の受信レートは「Ｓｂ」となる。この場合、ＶＮＦ１１２にとっての空き帯域は、「Ｓｂ」となる。
【００４８】
このように帯域制限機構が存在する場合、ＶＮＦ１１１で測定した空き帯域を、ＶＮＦ１１２が使用できる空き帯域とすることができない。そこで第２の実施の形態では、各物理ノード１００，２００内に代表測定部を設け、代表測定部が複数のＶＮＦを模倣した通信を行うことで、各ＶＮＦが使用できる空き帯域を測定する。このとき代表測定部は、１つのＶＮＦを模倣して測定した空き帯域の情報を有効に利用し、他のＶＮＦの空き帯域の測定を効率的に実施する。これにより、空き帯域測定によるネットワーク２０の負荷を軽減できる。
【００４９】
なお帯域制限機構は、例えば伝搬するパケットの送信元アドレスまたは送信元ポート番号に基づいて、そのパケットの送信元が帯域制限対象であるか否かを判断する。そのため、ＶＮＦのＩＰアドレスやポート番号を送信元として用いたパケットを送信することで、ＶＮＦ以外の要素であってもＶＮＦの空き帯域を測定することができる。
【００５０】
図６は、各ノードの機能を示すブロック図である。物理ノード１００は、複数のＶＮＦ１１１，１１２，・・・，１１ｎ、仮想スイッチ１２０、ＶＮＦ帯域制御部１３０、代表測定部１４０、および記憶部１５０を有する。
【００５１】
複数のＶＮＦ１１１，１１２，・・・，１１ｎは、仮想スイッチ１２０に接続されている。さらに仮想スイッチ１２０には、ＶＮＦ帯域制御部１３０と代表測定部１４０とが接続されている。
【００５２】
ＶＮＦ帯域制御部１３０は、代表測定部１４０が測定したＶＮＦ１１１，１１２，・・・，１１ｎごとの空き帯域に基づいて、各ＶＮＦ１１１，１１２，・・・，１１ｎが使用できる最大の帯域を決定する。そしてＶＮＦ帯域制御部１３０は、決定した帯域を、空き帯域として、各ＶＮＦ１１１，１１２，・・・，１１ｎに通知する。
【００５３】
代表測定部１４０は、ＶＮＦ１１１，１１２，・・・，１１ｎそれぞれを模倣した通信により、ＶＮＦ１１１，１１２，・・・，１１ｎそれぞれの空き帯域を、物理ノード２００内の代表測定部２４０と連携した処理で測定する。代表測定部１４０は、１つのＶＮＦの空き帯域を測定したら、その測定結果を有効に利用し、他のＶＮＦの空き帯域の測定を効率的に実施する。例えば代表測定部１４０は、１つのＶＮＦの空き帯域の測定結果が得られたら、次のＶＮＦの空き帯域の測定では、既に得られた測定結果に示される送信レートでデータ送信を開始する。これにより、次のＶＮＦの空き帯域の測定では、短時間で空き帯域を測定できる。
【００５４】
また代表測定部１４０は、管理ノード３００内のコントローラ３１０から、ネットワーク２０に接続された他の物理ノード２００やその物理ノード２００内で動作しているＶＮＦ２１１，２１２，・・・，２１ｎの情報を取得する。そして代表測定部１４０は、コントローラ３１０から取得した情報を、記憶部１５０に格納する。
【００５５】
記憶部１５０は、ネットワーク２０を介したＶＮＦ間の接続関係や、空き帯域の測定結果を記憶する。記憶部１５０は、例えばメモリ１０２またはストレージ装置１０３内の一部の記憶領域である。
【００５６】
物理ノード２００は、複数のＶＮＦ２１１，２１２，・・・，２１ｎ、仮想スイッチ２２０、ＶＮＦ帯域制御部２３０、代表測定部２４０、および記憶部２５０を有する。物理ノード２００内の各要素は、物理ノード１００内の同名の要素と同じ機能を有している。
【００５７】
管理ノード３００は、コントローラ３１０と記憶部３２０とを有する。コントローラ３１０は、物理ノード１００，２００と各物理ノード１００，２００で動作するＶＮＦ１１１，１１２，・・・，１１ｎ，２１１，２１２，・・・，２１ｎの状態を管理する。そして管理ノード３００は、最新の状態を、各物理ノード１００，２００の代表測定部１４０，２４０に通知する。記憶部３２０は、コントローラ３１０が管理している情報を記憶する。
【００５８】
なお、図６に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図６に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００５９】
図６に示した構成のシステムにより、物理ノード１００内の代表測定部１４０と物理ノード２００内の代表測定部２４０とによって、空き帯域が測定される。空き帯域の測定では、例えば代表測定部１４０から代表測定部２４０へ、異なる送信レートで繰り返しデータが送信される。そして代表測定部１４０が、データの送信レートと受信レートとを比較することで、二分探索により空き帯域を測定する。二分探索による空き帯域の測定は、例えば「Ｐａｔｈｌｏａｄ」と呼ばれるソフトウェアを利用して実施できる。
【００６０】
図７は、空き帯域探索方法の一例を示す図である。図７に示すように代表測定部１４０が送信レート「Ｓ」でデータを送信すると、そのデータはネットワーク２０を介して代表測定部２４０で受信される。このときの代表測定部２４０での受信レートを「Ｐ」（Ｐは０以上のＳ以下の実数）とする。代表測定部２４０は、受信レート「Ｐ」を代表測定部１４０に通知する。代表測定部１４０は、取得した受信レートに基づいて、次に送信するデータの送信レート「Ｓ」を決定する。例えば代表測定部１４０は、二分探索により、送信レート「Ｓ」を決定する。以下、二分探索を行う場合における空き帯域探索の手順を具体的に説明する。
【００６１】
代表測定部１４０は、最初のデータ送信における送信レート「Ｓ」をランダムに決定する。そして代表測定部１４０は、決定したデータ送信レート「Ｓ」でデータを送信する。すると受信側の代表測定部２４０により受信レート「Ｐ」が測定される。代表測定部２４０は、測定した受信レート「Ｐ」を、送信側の代表測定部１４０に通知する。
【００６２】
代表測定部１４０は、送信レート「Ｓ」と受信レート「Ｐ」との大小関係を比較し、次のデータ送信における送信レートを決定する。次のデータ送信の送信レートは、二分探索範囲内の未探索の範囲から決定される。未探索範囲は、二分探索範囲のうちの、空き帯域を含まないことが未確認の範囲である。例えば二分探索範囲は、予め探索最小値と探索最大値とが決められているものとする。そして二分探索範囲内で、それまでのデータ送信で使用した送信レートのうち、「送信レート≦受信レート」となった送信レートの最大値以上で、「送信レート＞受信レート」となった送信レートの最小値以下の範囲が、未探索の範囲となる。
【００６３】
代表測定部１４０は、「送信レート＞受信レート」であれば、前回のデータ送信の送信レート「Ｓ」よりも低い送信レートを、次回のデータ送信の送信レートとする。例えば代表測定部１４０は、未探索の範囲の最大値と、前回の送信レートとの中間（平均値）を、次回の送信レートとする。
【００６４】
また代表測定部１４０は、「送信レート≦受信レート」であれば、前回のデータ送信の送信レート「Ｓ」よりも高い送信レートを、次回のデータ送信の送信レートとする。例えば代表測定部１４０は、未探索の範囲の最小値と、前回の送信レートとの中間（平均値）を、次回の送信レートとする。
【００６５】
代表測定部１４０は、送信レートを変えながら、データ送信を繰り返し行い、例えば、未探索の範囲の幅が探索終了閾値未満になったときに、探索を終了する。そして代表測定部１４０は、探索を終了したときの未探索の範囲の最小値を空き帯域と判定する。
【００６６】
ここで、図７のグラフの目標として示している送信レートが、空き帯域であるものとする。送信レートが空き帯域の値以下であれば、「送信レート≦受信レート」となる。また送信レートが空き帯域の値より高ければ、「送信レート＞受信レート」となる。
【００６７】
例えば代表測定部１４０は、最初に二分探索範囲の最小値を送信レート「Ｓ１」としてデータ送信を行う。すると「送信レート≦受信レート」となる。次に代表測定部１４０は、二分探索範囲の最大値を送信レート「Ｓ２」として、データ送信を行う。すると「送信レート＞受信レート」となる。次に代表測定部１４０は、二分探索範囲の最小値と最大値との平均値を送信レート「Ｓ３」として、データ送信を行う。すると「送信レート≦受信レート」となる。この場合、送信レート「Ｓ１」以上、送信レート「Ｓ３」未満の範囲は、空き帯域の値が含まれないことが判明する。すると未探索の範囲は、送信レート「Ｓ３」以上、転送レート「Ｓ２」未満の範囲である。
【００６８】
次に代表測定部１４０は、未探索の範囲の最小値と最大値との中間（平均値）を送信レート「Ｓ４」として、データ送信を行う。すると「送信レート＞受信レート」となる。この場合、送信レート「Ｓ４」以上、送信レート「Ｓ２」以下の範囲は、空き帯域の値が含まれないことが判明する。すると未探索の範囲は、送信レート「Ｓ３」以上、転送レート「Ｓ４」未満の範囲である。
【００６９】
このように二分探索では、送信レートを変えてデータ送信を行うごとに、未探索の範囲が狭まっていく。そして、未探索の範囲が十分に狭くなり探索終了閾値未満になったとき、未探索の範囲内の最小値が、空き帯域と判定される。
【００７０】
代表測定部１４０は、図７に示した空き帯域を、物理ノード１００内のＶＮＦ１１１，１１２，・・・１１ｎを模倣して実施する。例えば代表測定部１４０は、ＶＮＦ１１１を模倣する場合、送信するパケットの送信元アドレスとしてＶＮＦ１１１のＩＰ（Internet Protocol）アドレスを用い、送信元ポート番号としてＶＮＦ１１１のポート番号を用いる。そして代表測定部１４０は、例えばＶＮＦ１１１を模倣した空き帯域測定が終了すると、ＶＮＦ１１２を模倣した空き帯域測定を開始する。このとき代表測定部１４０は、ＶＮＦ１１１を模倣した空き帯域測定の測定結果を有効に利用して、ＶＮＦ１１２を模倣した空き帯域測定を効率的に実施する。
【００７１】
図８は、前の測定結果の有効利用の一例を示す図である。例えば代表測定部１４０は、空き帯域の全測定時間を、測定対象となるＶＮＦの数分のタイムスロットに分ける。そして代表測定部１４０は、各タイムスロットにおいて、特定のＶＮＦの通信情報（ＩＰアドレス、ポート番号）を模倣したパケットによりデータ送信を行い、そのＶＮＦに対応する空き帯域を測定する。
【００７２】
例えばｎ個（ｎは２以上の整数）のＶＮＦの空き帯域を測定するとき、代表測定部１４０は、全測定時間をｎ個のタイムスロットに分ける。そして最初のタイムスロット「Time slot(0)」において、ＶＮＦ（Ａ）の通信情報を模倣して空き帯域を測定する。空き帯域の測定では、異なる送信レートでデータを送信することによる、そのデータの受信レートの観測と、観測結果を用いた空き帯域の結果判定とが、タイムスロット内の時間で行われる。
【００７３】
そして代表測定部１４０は、前のタイムスロットの空き帯域測定結果を有効に利用して、後のタイムスロットの空き帯域測定を行う。例えばTime slot(n)の観測の初期送信レート「Ｓ」をランダムに選択せずに、直前のTime slot(n-1)の測定結果として得られた空き帯域を、初期の送信レート「Ｓ」として選択する。これにより、ランダムに選択された送信レート「Ｓ」より、観測時間とパケット数を減らすことが可能となる。
【００７４】
例えば、前のタイムスロットで測定された空き帯域を初期の送信レート「Ｓ１」として最初のデータ送信を行ったときに「送信レート≦受信レート」であれば、前のタイムスロットと同じ測定結果となる可能性がある。この場合、代表測定部１４０は、送信レート「Ｓ１」より探索終了閾値だけ早い転送レートを、次回の転送レート「Ｓ２」としてもよい。転送レート「Ｓ２」でデータ送信を行ったときに「送信レート＞受信レート」であれば、代表測定部１４０は、前のタイムスロットと同じ空き帯域を、今回のタイムスロットの空き帯域と判定する。
【００７５】
前のタイムスロットでの測定結果を有効利用する場合、２番目以降のタイムスロットの時間を、１番目のタイムスロットの時間よりも短くしてもよい。また代表測定部１４０は、空き帯域の測定が終了した場合には、タイムスロットの時間が余っていても、次のタイムスロットの処理に移行する。
【００７６】
なお、直前のTime slot(n-1)の測定結果を利用するのではなく、既に測定されている空き帯域のうちの最大値を利用してもよい。すなわち、既に測定されている空き帯域のうちの最大値は、帯域制限を受けない場合の空き帯域と考えられる。そのため、次に空き帯域の測定対象となるＶＮＦが帯域制限を受けていなければ、既に測定されている空き帯域のうちの最大値を送信レートの初期値とすることで、測定時間の短縮が可能である。
【００７７】
代表測定部１４０，２４０による空き帯域の測定は、ＶＮＦ帯域制御部１３０からの指示に従って行われる。例えばＶＮＦ帯域制御部１３０から代表測定部１４０へ、伝送スケジュールが渡される。伝送スケジュールには、空き帯域測定対象のＶＮＦの指定と、全測定時間をどのようにタイムスロットに分けるのかが指定されている。ＶＮＦ帯域制御部１３０は、空き帯域の調査タイミングであると判断したときに伝送スケジュールを作成し、代表測定部１４０にその伝送スケジュールを送信する。
【００７８】
なおＶＮＦ帯域制御部１３０が空き帯域の調査タイミングであると判断するのは、例えばいずれかのＶＮＦから空き帯域調査依頼を受信したときである。またＶＮＦ帯域制御部１３０は、前回の空き帯域の調査から所定の時間が経過したら、空き帯域の調査タイミングであると判断してもよい。
【００７９】
図９は、ＶＮＦからの依頼に応じた空き帯域の判定処理の一例を示すシーケンス図である。空き帯域の調査に先立ち、管理ノード３００のコントローラ３１０が、各物理ノード１００，２００へ、物理ノード１００，２００内の存在する各ＶＮＦの通信情報を送信する（ステップＳ１０１）。その後、図９の例では、物理ノード１００内のＶＮＦ１１１，１１２，・・・，１１ｎが、空き帯域調査依頼を出力する（ステップＳ１０２）。空き帯域調査依頼は、ＶＮＦ帯域制御部１３０に送られる。ＶＮＦ帯域制御部１３０は、例えば、最初の空き帯域調査依頼を受信すると、所定時間だけ、他の空き帯域調査依頼を待つ。そして所定時間経過後、ＶＮＦ帯域制御部１３０は、最初に受信した空き帯域調査依頼と、待っている間に送られた空き帯域調査依頼とを処理するための伝送スケジュールを決定する（ステップＳ１０３）。伝送スケジュールには、どのＶＮＦから順に帯域の測定を行うのかが示されている。ＶＮＦ帯域制御部１３０は、決定した伝送スケジュールを代表測定部１４０に送信する（ステップＳ１０４）。代表測定部１４０は、受信した伝送スケジュールを物理ノード２００の代表測定部２４０に送信する（ステップＳ１０５）。
【００８０】
物理ノード２００では、伝送スケジュールを受信した代表測定部２４０が、その伝送スケジュールをＶＮＦ帯域制御部２３０に送信する（ステップＳ１０６）。ＶＮＦ帯域制御部２３０は、受信した伝送スケジュールをメモリなどの記録媒体に記録する（ステップＳ１０７）。
【００８１】
その後、送信側の代表測定部１４０は、伝送スケジュールに示される最初のＶＮＦの通信情報を模倣して、二分探索手順に沿って決めた送信レートでデータを送信する（ステップＳ１０８）。受信側の代表測定部２４０は、送信されたデータの受信レートを送信側の代表測定部１４０に通知する（ステップＳ１０９）。その後、送信側の代表測定部１４０によるデータ送信と、受信側の代表測定部２４０による受信レートの通知とが繰り返される。そして伝送スケジュールに沿った順番で、ＶＮＦごとの空き帯域が測定されていく。そして代表測定部１４０による、最後に測定するＶＮＦを模倣したデータ送信（ステップＳ１１０）と、そのデータ送信に対する、代表測定部２４０による受信レート通知（Ｓ１１１）とが行われる。これによりＶＮＦ１１１，１１２，・・・，１１ｎそれぞれの空き帯域の測定が終了する。
【００８２】
なお代表測定部１４０は、ＶＮＦを模倣したデータ送信を実施している間は、空き帯域調査依頼を送信したＶＮＦによる物理ノード２００へのデータ送信を停止させる。これによりＶＮＦを模倣したデータ送信して空き帯域を測定している間に、測定対象のＶＮＦ以外のＶＮＦによるデータ送信が、空き帯域を変化させてしまうことを抑止できる。
【００８３】
空き帯域の測定が終了すると、代表測定部１４０は、測定結果をＶＮＦ帯域制御部１３０に通知する（ステップＳ１１３）。ＶＮＦ帯域制御部１３０は、各ＶＮＦ１１１，１１２，・・・，１１ｎそれぞれの空き帯域の測定結果に基づいて、ＶＮＦ１１１，１１２，・・・，１１ｎそれぞれの割り当て帯域を決定する（ステップＳ１１４）。例えばＶＮＦ帯域制御部１３０は、すべてのＶＮＦ１１１，１１２，・・・，１１ｎの空き帯域が同じであれば、その空き帯域のＶＮＦ数で除算した値を、ＶＮＦ１１１，１１２，・・・，１１ｎそれぞれに割り当てる帯域とする。ＶＮＦ帯域制御部１３０は、各ＶＮＦ１１１，１１２，・・・，１１ｎそれぞれに対して、決定した割り当て帯域を、そのＶＮＦが使用できる空き帯域として通知する（ステップＳ１１５）。通知を受けた各ＶＮＦ１１１，１１２，・・・，１１ｎは、以後、通知された空き帯域を上限とした送信レートで、データ送信を行う。
【００８４】
図１０は、周期的に空き帯域の判定処理を行う例を示すシーケンス図である。図１０に示す処理のうち、図９と同じ処理には同じステップ番号を付与している。以下、図１０の処理では、図９のステップＳ１０２の処理に代えて、ＶＮＦ帯域制御部１３０が、周期的に空き帯域の調査開始を決定する（ステップＳ１０２ａ）。この場合、ＶＮＦ帯域制御部１３０は、空き帯域調査開始タイミングになると、物理ノード１００内のすべてのＶＮＦ１１１，１１２，・・・，１１ｎを対象とした空き帯域の測定を開始する。
【００８５】
なお代表測定部１４０は、ＶＮＦを模倣したデータ送信を実施している間は、すべてのＶＮＦによる物理ノード２００へのデータ送信を停止させる。
このように、空き帯域の測定は、送信側と受信側の物理ノード１００，２００それぞれのＶＮＦ帯域制御部１３０，２３０と代表測定部１４０，２４０との連携処理で実現される。ＶＮＦ帯域制御部１３０，２３０と代表測定部１４０，２４０とは、例えば物理ノード１００，２００のホストＯＳ内に設けられる。
【００８６】
図１１は、物理ノードのソフトウェアの実装例を示す図である。ＶＮＦを動作させる物理ノード１００に実装されるソフトウェアは、物理ノード１００のハードウェアを制御するＯＳ側と、ＯＳ上で管理されるソフトウェアを含むユーザ側とに分かれる。
【００８７】
ＯＳ側のソフトウェアにより、仮想スイッチ１２０、ＶＮＦ帯域制御部１３０、代表測定部１４０、およびＯＳモジュール１７０が実現される。ＯＳ側のソフトウェアは、ＮＩＣ１０８ａ，１０８ｂを利用して、ネットワーク２０経由の通信を行う。
【００８８】
ユーザ側のソフトウェアは、ホスト側とゲスト側とに分かれる。ホスト側には、複数のアプリケーション（Ａｐｐ．）１６１，１６２，・・・，１６ｎが含まれる。ゲスト側で動作するソフトウェアにより、複数のＯＳ１８１，１８２，・・・，１８ｎと、各ＯＳ１８１，１８２，・・・，１８ｎ上で動作するＶＮＦ１１１，１１２，・・・，１１ｎとの機能が実現される。
【００８９】
図１１には物理ノード１００のソフトウェアの実装例を示したが、物理ノード２００にも同様の構成でソフトウェアが実装されている。
次に物理ノード１００内のＶＮＦ１１１，１１２，・・・，１１ｎの帯域制御を行うために、各ノード内の要素間で送受信される情報について説明する。
【００９０】
図１２は、各ノード内の要素間で送受信される情報を示す図である。なお図１２は、要素間で送受信される情報の一部を示すものであり、図１２に示した情報以外にも送受信される情報は存在する。
【００９１】
管理ノード３００の記憶部３２０（図６参照）には、ノード管理テーブル３２１が格納されている。ノード管理テーブル３２１は、システム内で通信を行う各要素の通信情報を記憶するデータテーブルである。ノード管理テーブル３２１には、システム内のすべての物理ノード１００，２００それぞれが通信のために使用する情報が、通信情報として記憶される。ノード管理テーブル３２１に記憶される通信情報には、物理ノード１００，２００自身が通信するための通信情報と、物理ノード１００，２００内のＶＮＦが通信するための通信情報とが含まれる。
【００９２】
物理ノード１００内の記憶部１１０（図６参照）には、物理フローテーブル１５１、グループ管理テーブル１５２、および帯域観測テーブル１５３が格納されている。
物理フローテーブル１５１は、各物理ノード１００，２００内の仮想スイッチ１２０，２２０間の通信接続（物理フロー）に関する情報を記憶するデータテーブルである。
【００９３】
グループ管理テーブル１５２は、同じ物理ノード内のＶＮＦを通信相手とする物理ノード１００内のＶＮＦのグループを記憶するデータテーブルである。ＶＮＦのグループは、ＶＮＦの通信情報を基に生成される。
【００９４】
帯域観測テーブル１５３は、各ＶＮＦが利用可能な帯域（利用可能帯域）を記憶するデータテーブルである。各ＶＮＦの利用可能帯域は、空き帯域の測定結果から算出される。
物理ノード２００内の記憶部２１０（図６参照）にも、物理フローテーブル２５１、グループ管理テーブル２５２、および帯域観測テーブル２５３が格納されている。これらのテーブルには、それぞれ物理フローテーブル１５１、グループ管理テーブル１５２、および帯域観測テーブル１５３と同種の情報が格納される。
【００９５】
物理ノード１００が有するＮＩＣ１０８ａ，１０８ｂは、観測用と管理用とに用途が分けられている。観測用のＮＩＣ１０８ａは、空き帯域測定のためのパケット送信に使用される。管理用のＮＩＣ１０８ｂは、伝送スケジュールの送信や受信レートの受信など、ＶＮＦ帯域制御のための物理ノード２００との連携に利用する情報の送受信に使用される。
【００９６】
物理ノード２００が有するＮＩＣ２０８ａ，２０８ｂも同様に、観測用と管理用とに用途が分けられている。観測用のＮＩＣ２０８ａは、空き帯域測定のためのパケット受信に使用される。管理用のＮＩＣ２０８ｂは、伝送スケジュールの受信や受信レートの送信など、ＶＮＦ帯域制御のための物理ノード１００との連携に利用する情報の送受信に使用される。
【００９７】
管理ノード３００内のコントローラ３１０は、ノード管理テーブル３２１から通信情報を取得し、その通信情報を物理ノード１００，２００に送信する。通信情報は、管理用のＶＩＣ１０８ｂ，２０８ｂで受信される。受信された通信情報は、代表測定部１４０，２４０を経由して、ＶＮＦ帯域制御部１３０，２３０に転送される。ＶＮＦ帯域制御部１３０，２３０は受信した通信情報の少なくとも一部を、物理フローテーブル１５１，２５１またはグループ管理テーブル１５２，２５２に格納する。
【００９８】
物理ノード１００のＶＮＦ帯域制御部１３０は、伝送スケジュールを決定した際には、その伝送スケジュールを代表測定部１４０に送信する。代表測定部１４０は、グループ管理テーブル１５２からグループ情報を収集し、伝送スケジュールによる空き帯域測定対象のＶＮＦが同一グループに属することを確認する。また代表測定部１４０は、ＮＩＣ１０８ｂを介して、伝送スケジュールを物理ノード２００に送信する。送信された伝送スケジュールは物理ノード２００のＮＩＣ２０８ｂを介して、代表測定部２４０で受信される。代表測定部２４０は、受信した伝送スケジュールをＶＮＦ帯域制御部２３０に送信する。ＶＮＦ帯域制御部２３０は、伝送スケジュールを受信すると、例えば伝送スケジュールに示される通信の相手が、物理ノード２００内のＶＮＦであることを確認する。
【００９９】
伝送スケジュールを受信した代表測定部１４０は、空き帯域測定の時間帯を複数のタイムスロットに分けて、タイムスロットごとに、ＶＮＦ１１１，１１２，・・・，１１ｎのいずれかの通信情報を模倣したパケットを、ＮＩＣ１０８ａを介して送信する。パケットは、ネットワーク２０を介して物理ノード２００に伝送される。そしてパケットは物理ノード２００の代表測定部２４０で受信される。代表測定部２４０は、受信したパケットに基づいてパケットの受信レートを測定する。代表測定部２４０は、測定した受信レートを、ＮＩＣ２０８ｂを介して物理ノード１００に送信する。受信レートは、物理ノード１００の代表測定部１４０で受信される。代表測定部１４０は、取得した受信レートに基づいてＶＮＦ１１１，１１２，・・・，１１ｎそれぞれを模倣したときの空き帯域を測定し、帯域観測テーブル１５３に格納する。
【０１００】
空き帯域の測定が終了すると、代表測定部１４０は、測定結果をＶＮＦ帯域制御部１３０に通知する。ＶＮＦ帯域制御部１３０は、測定結果に基づいて、各ＶＮＦ１１１，１１２，・・・，１１ｎそれぞれが利用可能な帯域幅（実効帯域）を決定する。なおＶＮＦ帯域制御部１３０は、測定結果の詳細情報は、例えば帯域観測テーブル１５３から収集することができる。ＶＮＦ帯域制御部１３０は、決定した実効帯域を、各ＶＮＦ１１１，１１２，・・・，１１ｎに通知する。
【０１０１】
次に、各ノードが有する機能を、さらに詳細に説明する。まず管理ノード３００内のコントローラ３１０の機能について詳細に説明する。
図１３は、管理ノードのコントローラの機能を示すブロック図である。コントローラ３１０は、通信部３１１、ノードテーブル操作部３１２、メッセージ生成部３１３、およびレコード削除部３１４を有する。
【０１０２】
通信部３１１は、物理ノード１００，２００とコントローラ３１０との間の通信メッセージの送受信を行う。例えば通信部３１１は、ネットワーク２０を介してＶＮＦや物理ノードに関する最新情報を受信する。例えば通信部３１１は、現在動作中の物理ノード１００，２００の通信情報や、物理ノード１００，２００で動作中のＶＮＦの通信情報を受信する。通信部３１１は、受信した最新情報を、ノードテーブル操作部３１２に送信する。
【０１０３】
ノードテーブル操作部３１２は、物理ノード１００，２００からのメッセージ内のフラグをみて、ノード管理テーブル３２１を用いて、物理ノードおよびＶＮＦを管理する。物理ノード１００，２００から受信したＶＮＦに関するメッセージには、例えば、「Ｄ（Delete）」、「Ｕ（Update）」、「Ｉ（Insert）」のいずれかの値のフラグが含まれる。「Ｄ」は、対応するＶＮＦが削除されたことを意味する。「Ｕ」は、対応するＶＮＦに関する情報が更新されたことを意味する。「Ｉ」は、対応するＶＮＦが追加されたことを意味する。例えばノードテーブル操作部３１２は、受信した最新情報を、ノード管理テーブル３２１に格納する。またノードテーブル操作部３１２は、ノード管理テーブル３２１を更新したとき、更新されたことをメッセージ生成部３１３に通知する。
【０１０４】
メッセージ生成部３１３は、ノードテーブル操作部３１２から情報更新の通知を受けると、更新された情報を各物理ノード１００，２００に渡すためのメッセージを生成して、そのメッセージを通信部３１１に渡す。例えばメッセージ生成部３１３は、ノード管理テーブル３２１が更新されると、最新情報をノード管理テーブル３２１から取得する。メッセージ生成部３１３は、取得した情報に基づいて、最新の物理ノードおよびＶＮＦに関する通信情報を各物理ノード１００，２００に送信するメッセージを生成する。そしてメッセージ生成部３１３は、生成したメッセージを、通信部３１１を介して物理ノード１００，２００に送信する。また、メッセージ生成部３１３は、メッセージ生成が終了すると、メッセージの生成が終了したことをレコード削除部３１４に通知する。
【０１０５】
レコード削除部３１４は、メッセージ生成部３１３によるメッセージの生成が終了すると、最新情報では存在していないＶＮＦに関する情報を、ノード管理テーブル３２１から削除する。例えばレコード削除部３１４は、フラグが「Ｄ」のレコードを、ノード管理テーブル３２１から削除する。
【０１０６】
次に、送信側の物理ノード１００内のＶＮＦ帯域制御部１３０の機能について詳細に説明する。
図１４は、送信側のＶＮＦ帯域制御部の機能を示すブロック図である。ＶＮＦ帯域制御部１３０は、ＶＮＦ情報収集部１３１、ＶＮＦインタフェース１３２、ＶＮＦグループ管理部１３３、空き帯域測定タイマ１３４、伝送スケジュール決定部１３５、レート制限判断部１３６、およびＶＮＦ帯域通知部１３７を有する。
【０１０７】
ＶＮＦ情報収集部１３１は、ＶＮＦ１１１，１１２，・・・，１１ｎの状態を監視する。ＶＮＦ情報収集部１３１は、いずれかのＶＮＦの状態が更新されると、更新情報のパケットを生成する。生成するパケットには、更新後のＶＮＦの状態を示すフラグが含まれる。例えばＶＮＦ情報収集部１３１は、ＶＮＦが削除されたのであれば、フラグの値を「Ｄ（Delete）」とする。またＶＮＦ情報収集部１３１は、ＶＮＦの状態が更新されたのであれば、フラグの値を「Ｕ（Update）」とする。またＶＮＦ情報収集部１３１は、ＶＮＦが追加されたのであれば、フラグの値を「Ｉ（Insert）」とする。ＶＮＦ情報収集部１３１は、生成したメッセージを、ＶＮＦインタフェース１３２経由でコントローラ３１０に送信する。
【０１０８】
ＶＮＦインタフェース１３２は、代表測定部１４０との間のメッセージの送受信を行う。例えばＶＮＦインタフェース１３２は、代表測定部１４０に伝送スケジュールを送信する。またＶＮＦインタフェース１３２は、代表測定部１４０から帯域測定結果を受信する。
【０１０９】
ＶＮＦグループ管理部１３３は、コントローラ３１０から送られるＶＮＦの通信情報を取得し、同じ物理フローを使用するＶＮＦ同士を同じグループにグループ化する。そしてＶＮＦグループ管理部１３３は、生成したグループと、そのグループに属するＶＮＦの情報を、グループ管理テーブル１５２に格納する。
【０１１０】
空き帯域測定タイマ１３４は、周期的に空き帯域を測定する場合の、空き帯域の測定タイミングを計るタイマである。例えば空き帯域測定タイマ１３４は、空き帯域の測定が実施されると時間の計測を開始し、計測時間が所定の値に達すると、空き帯域の測定タイミングになったことを、伝送スケジュール決定部１３５に通知する。
【０１１１】
伝送スケジュール決定部１３５は、同じグループに属するＶＮＦの通信情報を基に、タイムスロット単位でどの順番でＶＮＦの空き領域探索を行うのかを決定する。そして伝送スケジュール決定部１３５は、決定した順番を伝送スケジュールとして、ＶＮＦインタフェース１３２を介して代表測定部１４０に送信する。
【０１１２】
レート制限判断部１３６は、空き帯域の測定結果から、帯域制限機構で制限を受けるＶＮＦのフローを検出する。レート制限判断部１３６は、帯域制限を受けているＶＮＦを示す情報を、ＶＮＦ帯域通知部１３７に送信する。
【０１１３】
ＶＮＦ帯域通知部１３７は、空き帯域の測定結果に基づいて、各ＶＮＦ１１１，１１２，・・・，１１ｎの利用可能な帯域を、そのＶＮＦの実効帯域として決定する。そしてＶＮＦ帯域通知部１３７は、ＶＮＦインタフェース１３２を介して、各ＶＮＦ１１１，１１２，・・・，１１ｎそれぞれに対して、実効帯域を通知する。
【０１１４】
次に送信側の物理ノード１００内の代表測定部１４０の機能について詳細に説明する。
図１５は、送信側の代表測定部の機能を示すブロック図である。代表測定部１４０は、通信部１４１、帯域結果操作部１４２、送信レート決定部１４３、通信情報模倣部１４４、観測タイマ１４５、パケット生成部１４６、パケット識別値設定部１４７、および測定用パケット送信部１４８を有する。
【０１１５】
通信部１４１は、受信側の物理ノード２００の代表測定部２４０と通信をする。例えば通信部１４１は、ＶＮＦ帯域制御部１３０から送られた伝送スケジュールを、ＮＩＣ１０８ｂを介して代表測定部２４０に送信する。また通信部１４１は、伝送スケジュールを送信レート決定部１４３に送信する。通信部１４１は、受信側の代表測定部２４０から受信レートを受信すると、その受信レートを帯域結果操作部１４２に送信する。
【０１１６】
帯域結果操作部１４２は、受信側の物理ノード２００から送られた受信レートに基づいて空き帯域を測定し、空き帯域の測定結果を帯域観測テーブル１５３に格納する。また帯域結果操作部１４２は、受信レートを送信レート決定部１４３に送信する。さらに帯域結果操作部１４２は、測定対象のすべてのＶＮＦの空き帯域の測定が終了すると、測定結果をＶＮＦ帯域制御部１３０に送信する。
【０１１７】
送信レート決定部１４３は、帯域結果操作部１４２から送られた受信レートに基づいて、次のデータ送信の送信レートを決定する。送信レート決定部１４３は、決定した送信レートを通信情報模倣部１４４に送信する。
【０１１８】
通信情報模倣部１４４は、パケットに設定する通信情報を、空き帯域の測定対象となるＶＮＦの通信情報に変換する。通信情報模倣部１４４は、パケットに設定する通信情報と送信レートの指定情報とを、観測タイマ１４５に送信する。
【０１１９】
観測タイマ１４５は、時分割したタイムスロット用のタイマである。観測タイマ１４５は、空き帯域を測定中のＶＮＦに与えられたタイムスロットの時間を計測し、タイムスロットの時間が伝送スケジュールで定めた時間に達すると、そのＶＮＦの空き帯域の測定を終了させる。
【０１２０】
パケット生成部１４６は、通信情報を模倣したパケットを生成する。パケット生成部１４６は、生成したパケットをパケット識別値設定部１４７に送信する。
パケット識別値設定部１４７は、空き帯域測定用のパケットであることを示す識別値を、パケットに設定する。例えばパケット識別値設定部１４７は、パケットのＤＳＣＰ（Differentiated Services Code Point）またはＣｏＳ（Class of Service）に、所定の識別値を設定する。
【０１２１】
測定用パケット送信部１４８は、空き帯域測定用のパケットを、送信レート決定部１４３で決定された送信レートで送信する。
次に受信側の物理ノード２００のＶＮＦ帯域制御部２３０の機能について説明する。
【０１２２】
図１６は、受信側のＶＮＦ帯域制御部の機能を示すブロック図である。ＶＮＦ帯域制御部２３０は、ＶＮＦ情報収集部２３１、ＶＮＦインタフェース２３２、およびＶＮＦグループ管理部２３３を有する。ＶＮＦ帯域制御部２３０内の各要素は、送信側のＶＮＦ帯域制御部１３０内の同名の要素と同じ機能を有している。
【０１２３】
次に受信側の物理ノード２００の代表測定部２４０の機能について説明する。
図１７は、受信側の代表測定部の機能を示すブロック図である。代表測定部２４０は、パケット識別部２４１、受信レート計算部２４２、帯域結果操作部２４３、および通信部２４４を有する。
【０１２４】
パケット識別部２４１は、空き領域測定用のパケットを識別する。例えばパケット識別部２４１は、受信したパケットのＤＳＣＰまたはＣｏＳに、空き領域測定用のパケットであることを示す識別値が設定されているかどうかにより、空き領域測定用のパケットを識別する。
【０１２５】
受信レート計算部２４２は、単位時間内に受信したパケット数を数えて、受信レートを計算する。受信レート計算部２４２は、計算した受信レートを帯域結果操作部２４３と通信部２４４とに通知する。
【０１２６】
帯域結果操作部２４３は、取得した受信レートに基づいて空き帯域を測定し、空き帯域の測定結果を帯域観測テーブル２５３に格納する。受信側で空き帯域を測定する場合、例えば帯域結果操作部２４３は、同じタイムスロットで受信したデータの受信レートの最大値を、そのタイムスロットでの測定対象のＶＮＦの空き帯域とする。
【０１２７】
通信部２４４は、帯域観測テーブル２５３から取得した受信レートを、物理ノード１００に送信する。また通信部２４４は、受信側で空き帯域を測定した場合、その測定結果を帯域観測テーブル２５３から読み込み、測定結果を物理ノード１００に送信する。また通信部２４４は、送信側から送られた伝送スケジュールを受信すると、その伝送スケジュールをＶＮＦ帯域制御部２３０に送信する。
【０１２８】
なお、図１３〜図１７に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図１３〜図１７に示した各要素は、その要素に対応するプログラムモジュールを物理ノード１００，２００または管理ノード３００に実行させることで実現することができる。
【０１２９】
次に図１８〜図２１を参照して、各ノードが有するデータテーブルについて、具体的に説明する。
図１８は、ノード管理テーブルの一例を示す図である。ノード管理テーブル３２１には、各仮想スイッチ間の通信における接続ポートの情報が、通信情報として記憶されている。例えばノード管理テーブル３２１には、物理ノードごとのテーブル３２１ａ，３２１ｂ，・・・，３２１ｎが設けられている。各テーブル３２１ａ，３２１ｂ，３２１ｎには、ＩＤ、ＴＹＰＥ、Ｓ＿ＩＰ、Ｒ＿ＩＰ、Ｓ＿ＰＯＲＴ、Ｒ＿ＰＯＲＴ、ＰＲＯＴＯＣＯＬ、およびＦＬＡＧの欄が設けられている。
【０１３０】
ＩＤの欄には、通信情報の識別子（ＩＤ）が設定される。
ＴＹＰＥの欄には、物理インタフェースの通信を示す通信情報なのか、ＶＮＦの通信を示す通信情報なのかが設定される。物理インタフェースの通信であれば、ＴＹＰＥの欄に「ＰＨＹ」と設定される。ＶＮＦの通信であれば、ＴＹＰＥの欄に「ＶＮＦ」と設定される。
【０１３１】
Ｓ＿ＩＰの欄には、送信側のＩＰアドレスが設定される。Ｒ＿ＩＰの欄には、受信側のＩＰアドレスが設定される。
Ｓ＿ＰＯＲＴの欄には、送信側のポート番号が設定される。Ｒ＿ＰＯＲＴの欄には、受信側のポート番号が設定される。
【０１３２】
ＰＲＯＴＯＣＯＬの欄には、通信に利用される通信プロトコルを示す値が設定される。例えばＵＤＰが利用される場合、ＰＲＯＴＯＣＯＬの欄にＵＤＰを示す値「１７」が設定される。
【０１３３】
ＦＬＡＧの欄には、レコードに示される通信情報の最新状態を示すフラグが設定される。例えば通信情報の対象となっているＶＮＦが存在しなくなった場合、ＦＬＡＧの欄に「Ｄ」が設定される。また通信情報の対象となっているＶＮＦの通信情報が更新された場合、ＦＬＡＧの欄に「Ｕ」が設定される。また通信情報の対象となっているＶＮＦが新たに追加された場合、ＦＬＡＧの欄に「Ｉ」が設定される。
【０１３４】
Ｓ＿ＩＰ、Ｒ＿ＩＰ、Ｓ＿ＰＯＲＴ、Ｒ＿ＰＯＲＴ、ＰＲＯＴＯＣＯＬ、およびＦＬＡＧの欄に設定された値の組が、ＩＤで示される通信の通信情報である。
図１９は、物理フローテーブルの一例を示す図である。物理フローテーブル１５１には、各仮想スイッチ間の通信で使用する物理的な接続ポートの情報が、通信情報として記憶されている。物理フローテーブル１５１には、ＰＨＹ＿ＩＤ、ＰＨＹ＿Ｓ＿ＩＰ、ＰＨＹ＿Ｒ＿ＩＰ、ＰＨＹ＿Ｓ＿ＰＯＲＴ、ＰＨＹ＿Ｒ＿ＰＯＲＴ、およびＰＨＹ＿ＰＲＯＴＯＣＯＬの欄が設けられている。
【０１３５】
ＰＨＹ＿ＩＤの欄には、仮想スイッチが物理ポート間の通信情報を利用するためのＩＤが設定される。
ＰＨＹ＿Ｓ＿ＩＰの欄には、送信側のＩＰアドレスが設定される。ＰＨＹ＿Ｒ＿ＩＰの欄には、受信側のＩＰアドレスが設定される。
【０１３６】
ＰＨＹ＿Ｓ＿ＰＯＲＴの欄には、送信側のポート番号が設定される。
ＰＨＹ＿Ｒ＿ＰＯＲＴの欄には、受信側のポート番号が設定される。
ＰＨＹ＿ＰＲＯＴＯＣＯＬの欄には、通信に利用される通信プロトコルを示す値が設定される。例えばＵＤＰが利用される場合、ＰＲＯＴＯＣＯＬの欄にＵＤＰを示す値「１７」が設定される。
【０１３７】
ＰＨＹ＿Ｓ＿ＩＰ、ＰＨＹ＿Ｒ＿ＩＰ、ＰＨＹ＿Ｓ＿ＰＯＲＴ、ＰＨＹ＿Ｒ＿ＰＯＲＴ、およびＰＨＹ＿ＰＲＯＴＯＣＯＬの欄に設定された値の組が、ＩＤで示される物理ポート間の通信の通信情報（物理通信情報）である。
【０１３８】
図２０は、グループ管理テーブルの一例を示す図である。グループ管理テーブル１５２には、ＶＮＦ間の通信フローを示す通信情報と、その通信フローが属するグループの情報が記憶される。グループ管理テーブル１５２には、Ｇｒｏｕｐ＿ＩＤ、ＶＮＦ＿ＩＤ、ＰＨＹ＿ＩＤ、Ａｃｔｕａｌ＿ＢＷ、ＶＮＦ＿Ｓ＿ＩＰ、ＶＮＦ＿Ｒ＿ＩＰ、ＶＮＦ＿Ｓ＿ＰＯＲＴ、ＶＮＦ＿Ｒ＿ＰＯＲＴ、およびＶＮＦ＿ＰＲＯＴＯＣＯＬの欄が設けられている。
【０１３９】
Ｇｒｏｕｐ＿ＩＤの欄には、同じ物理フローを利用するＶＮＦを識別するためのグループを識別するグループＩＤが設定される。図２０の例では、上から２つ目と３つ目の通信情報が、同じグループに属している。同じグループに属する通信情報は、利用する物理フローが共通であり、ＰＨＹ＿ＩＤの欄に設定されている値が同じである。
【０１４０】
ＶＮＦ＿ＩＤの欄には、各ＶＮＦに割り当てたＩＤが設定される。
ＰＨＹ＿ＩＤの欄には、物理フローテーブル１５１にある通信情報を利用するためのＩＤが設定される。
【０１４１】
Ａｃｔｕａｌ＿ＢＷの欄には、ＶＮＦに通知する実効帯域が設定される。
ＶＮＦ＿Ｓ＿ＩＰの欄には、送信側のＩＰアドレスが設定される。
ＶＮＦ＿Ｒ＿ＩＰの欄には、受信側のＩＰアドレスが設定される。
【０１４２】
ＶＮＦ＿Ｓ＿ＰＯＲＴの欄には、送信側のポート番号が設定される。
ＶＮＦ＿Ｒ＿ＰＯＲＴの欄には、受信側のポート番号が設定される。
ＶＮＦ＿ＰＲＯＴＯＣＯＬの欄には、通信に利用される通信プロトコルを示す値が設定される。例えばＵＤＰが利用される場合、ＰＲＯＴＯＣＯＬの欄にＵＤＰを示す値「１７」が設定される。
【０１４３】
ＶＮＦ＿Ｓ＿ＩＰ、ＶＮＦ＿Ｒ＿ＩＰ、ＶＮＦ＿Ｓ＿ＰＯＲＴ、ＶＮＦ＿Ｒ＿ＰＯＲＴ、およびＶＮＦ＿ＰＲＯＴＯＣＯＬに設定された値の組が、ＶＮＦ間の通信フローを示す通信情報である。
【０１４４】
図２１は、帯域観測テーブルの一例を示す図である。帯域観測テーブル１５３には、各ＶＮＦのフローの空き帯域の測定結果が記憶される。帯域観測テーブル１５３には、Ｔｉｍｅ  ｓｌｏｔ、Ｔｉｍｅ、ＦＬＯＷ＿ＩＤ、ＰＡＣＫＥＴ＿ＩＤ、およびＡＢＷの欄が設けられている。
【０１４５】
Ｔｉｍｅ  ｓｌｏｔの欄には、タイムスロットの識別番号が設定される。
Ｔｉｍｅの欄には、マイクロ秒単位までの観測日時が設定される。
ＦＬＯＷ＿ＩＤの欄には、フローを識別するためのＶＮＦ＿ＩＤが設定される。
【０１４６】
ＰＡＣＫＥＴ＿ＩＤの欄には、各タイムスロットに割り当てたＤＳＣＰまたはＣｏＳの値が設定される。
ＡＢＷの欄には、ＶＮＦのフローに対する空き帯域の測定結果が設定される。
【０１４７】
図１８〜図２１に示した各データテーブルを用いて、ＶＮＦの空き領域の測定と、測定結果に基づく各ＶＮＦの実効帯域の決定が行われる。
なお、各物理ノード１００，２００が実施する通信に関する通信情報は、まず管理ノード３００に集約される。例えば各物理ノード１００，２００から管理ノード３００へ、最新の通信情報を含むパケットがされる。
【０１４８】
図２２は、物理ノードが通信情報を送信するときのパケットフォーマットの一例を示す図である。パケットには、宛先アドレス（Destination Address）、送信元アドレス（Source Address）、パケット長（Length）、ＢＰＤＵ（Bridge Protocol Data Unit）、およびフレームチェックシーケンス（Frame Check Sequence）のフィールドが設けられている。物理ノード１００，２００は、例えばＢＰＤＵのフィールドに、通信のＴＹＰＥ（ＰＨＹまたはＶＮＦ）、通信情報、およびＦＬＡＧを設定したパケットを、管理ノード３００に送信する。
【０１４９】
管理ノード３００で収集した通信情報が、図１８に示したノード管理テーブル３２１で管理される。そして管理ノード３００から各物理ノード１００，２００に通信情報が配布される。
【０１５０】
図２３は、管理ノードが通信情報を送信するときのパケットフォーマットの一例を示す図である。管理ノードが通信情報を送信するときのパケットフォーマットの構成は、図２２と同様である。管理ノード３００は、例えばＢＰＤＵのフィールドに、通信のＴＹＰＥ（ＰＨＹまたはＶＮＦ）と通信情報を設定したパケットを、物理ノード１００，２００に送信する。
【０１５１】
通信情報を物理ノード１００，２００に配布することで、各物理ノード１００，２００において最新の通信情報を保持することができる。そして、物理ノード１００，２００は、所定のタイミングで、ＶＮＦの通信情報を模倣して、空き帯域を測定する。
【０１５２】
空き領域の測定は伝送スケジュールに従って実施される。伝送スケジュールは、送信側の物理ノード１００で生成され受信側の物理ノード２００に送られる。これにより、空き領域の測定を行う双方の物理ノード１００，２００で、伝送スケジュールが共有される。
【０１５３】
図２４は、伝送スケジュールの一例を示す図である。伝送スケジュール３１には、測定対象のＶＮＦごとに、Ｇｒｏｕｐ＿ＩＤ、ＤＳＣＰ（またはＣｏＰ）、ＶＮＦ＿Ｓ＿ＩＰ、ＶＮＦ＿Ｒ＿ＩＰ、ＶＮＦ＿Ｓ＿ＰＯＲＴ、ＶＮＦ＿Ｒ＿ＰＯＲＴ、およびＶＮＦ＿ＰＲＯＴＯＣＯＬが設定されている。
【０１５４】
Ｇｒｏｕｐ＿ＩＤは、測定対象のＶＮＦが属するグループのグループＩＤである。ＤＳＣＰは、各ＶＮＦの空き帯域測定のために送信するパケットのＤＳＣＰの値である。ＶＮＦ＿Ｓ＿ＩＰは、送信側のＶＮＦのＩＰアドレスである。ＶＮＦ＿Ｒ＿ＩＰは、受信側のＶＮＦのＩＰアドレスである。ＶＮＦ＿Ｓ＿ＰＯＲＴは、送信側のＶＮＦのポート番号である。ＶＮＦ＿Ｒ＿ＰＯＲＴは、受信側のＶＮＦのポート番号である。ＶＮＦ＿ＰＲＯＴＯＣＯＬは、ＶＮＦが通信に使用する通信プロトコルを示す値である。
【０１５５】
物理ノード１００は、図２４に示したような伝送スケジュールを含むパケットを、物理ノード２００に送信する。
図２５は、伝送スケジュール送信用のパケットフォーマットの一例を示す図である。伝送スケジュール送信用のパケットフォーマットの構成は、図２２と同様である。送信側の物理ノード１００は、例えばＢＰＤＵのフィールドに伝送スケジュールを設定したパケットを、受信側の物理ノード２００に送信する。
【０１５６】
伝送スケジュールの送信後、物理ノード１００は、空き帯域測定のため、ＶＮＦの通信情報を模倣したパケットを送信する。
図２６は、空き帯域測定用パケットの一例を示す図である。空き帯域測定用のパケットは、ＴＣＰヘッダとＩＰヘッダを含んでいる。ＴＣＰヘッダの送信元ポート番号のフィールドには、測定対象のＶＮＦのポート番号が設定される。ＩＰヘッダのＤＳＣＰのフィールドには、測定対象のＶＮＦ用の、空き帯域測定を示す識別値が設定される。ＩＰヘッダのプロトコルのフィールドには、測定対象のＶＮＦが通信に使用するプロトコルの番号が設定される。ＩＰヘッダの送信元ＩＰアドレスのフィールドには、測定対象のＶＮＦのＩＰアドレスが設定される。
【０１５７】
物理ノード１００において、代表測定部１４０が図２６に示したパケットを生成することで、測定対象のＶＮＦを模倣した通信を行うことができる。その結果、そのＶＮＦがネットワーク２０上で帯域制限を受ける場合、模倣した通信についても帯域が制限される。
【０１５８】
なお空き帯域測定用のパケットであることを示す識別値は、ＤＳＣＰではなく、ＣｏＳに設定することもできる。
図２７は、空き帯域測定用のパケットであることを示す識別値をＣｏＳに設定する例を示す図である。例えばタグＶＬＡＮを使用する場合、パケットを送信するフレームにＶＬＡＮ  Ｔａｇのフィールドが設けられる。そのフィールドにはＣｏＳビット（３ビット）が含まれる。このＣｏＳビットに空き帯域測定を示す識別値が設定される。
【０１５９】
物理ノード１００は、例えば図２６に示すようなパケットを、送信レートを変えながら繰り返し送信する。そして受信側の物理ノード２００において受信レートを計算し、物理ノード１００が送信レートと受信レートとを比較することで、空き帯域が判定される。
【０１６０】
以下、図２８と図２９に、すべてのＶＮＦが帯域制限を受けていない場合の空き帯域の測定例を示す。
図２８は、すべてのＶＮＦが帯域制限を受けていない場合の空き帯域の測定結果を示す図である。図２８の例では、ＶＮＦ帯域制御部１３０は、ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）から空き帯域観測依頼を受けているものとする。また、ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）は、同じ物理ノード２００内のＶＮＦを宛先とする通信を行うものとする。この場合、ＶＮＦ帯域制御部１３０のＶＮＦグループ管理部１３３は、ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）を同じグループとする。そして伝送スケジュール決定部１３５が、ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）それぞれにタイムスロット（Time slot(0)〜Time slot(3)）を割り当て、伝送スケジュールを決定する。図２８の例では、全対の観測時間４０秒とし、この時間を４つに分割して伝送スケジュールを決めている。
【０１６１】
そして伝送スケジュールに従って、複数のＶＮＦそれぞれを模倣した通信が行われ、空き帯域が測定される。図２８の例では、すべてのＶＮＦについて４８０Ｍｂｐｓの空き帯域が検出されている。
【０１６２】
図２９は、すべてのＶＮＦが帯域制限を受けていない場合の空き帯域の測定手順を示すシーケンス図である。なお図２９では、空き帯域判定処理開以前の処理は、図９または図１０のステップＳ１０１〜Ｓ１０７の処理と同じであるため省略している。
【０１６３】
代表測定部１４０は、伝送スケジュールに従って通信情報を模倣して空き帯域を測定する。図２９の例では、最初のタイムスロット「Time slot(0)」において、代表測定部１４０がＶＮＦ（Ａ）の通信情報を模倣したパケットを物理ノード２００に送信する（ステップＳ１２１）。そして物理ノード２００の代表測定部２４０が、受信レートを物理ノード１００に送信する（ステップＳ１２２）。この処理を繰り返すことで、二分探索によりＶＮＦ（Ａ）の空き帯域（４８０Ｍｂｐｓ）が測定される。
【０１６４】
次にタイムスロット「Time slot(1)」において、代表測定部１４０がＶＮＦ（Ｂ）の通信情報を模倣したパケットを物理ノード２００に送信する（ステップＳ１２３）。そして物理ノード２００の代表測定部２４０が、受信レートを物理ノード１００に送信する（ステップＳ１２４）。この処理を繰り返すことで、二分探索によりＶＮＦ（Ｂ）の空き帯域（４８０Ｍｂｐｓ）が測定される。
【０１６５】
次にタイムスロット「Time slot(2)」において、代表測定部１４０がＶＮＦ（Ｃ）の通信情報を模倣したパケットを物理ノード２００に送信する（ステップＳ１２５）。そして物理ノード２００の代表測定部２４０が、受信レートを物理ノード１００に送信する（ステップＳ１２６）。この処理を繰り返すことで、二分探索によりＶＮＦ（Ｃ）の空き帯域（４８０Ｍｂｐｓ）が測定される。
【０１６６】
最後にタイムスロット「Time slot(3)」において、代表測定部１４０がＶＮＦ（Ｄ）の通信情報を模倣したパケットを物理ノード２００に送信する（ステップＳ１２７）。そして物理ノード２００の代表測定部２４０が、受信レートを物理ノード１００に送信する（ステップＳ１２８）。この処理を繰り返すことで、二分探索によりＶＮＦ（Ｄ）の空き帯域（４８０Ｍｂｐｓ）が測定される。
【０１６７】
代表測定部１４０は、各ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）の空き帯域の測定結果を、ＶＮＦ帯域制御部１３０に通知する（ステップＳ１２９）。ＶＮＦ帯域制御部１３０は、測定結果を基に、ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）それぞれの実効帯域を決定する（ステップＳ１３０）。図２９の例では、いずれのＶＮＦも同じ空き帯域であることから、ＶＮＦ帯域制御部１３０は、空き帯域を４台のＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）に均等に割り当て、それぞれの実効帯域を「１２０Ｍｂｐｓ」に決定している。
【０１６８】
そして、ＶＮＦ帯域制御部１３０は、各ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）に対して、実効帯域「１２０Ｍｂｐｓ」を通知する（ステップＳ１３１）。
このようにして、ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）それぞれの空き帯域が測定され、その測定結果に応じて実効帯域が決定される。以後、ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）が決定された実効帯域内の通信速度でデータ送信を行うことで、効率的な通信が可能となる。
【０１６９】
次に図３０と図３１に、一部のＶＮＦが帯域制限を受けている場合の空き帯域の測定例を示す。
図３０は、一部のＶＮＦが帯域制限を受けている場合の空き帯域の測定結果を示す図である。図３０の例では、空き帯域測定対象のＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）のうち、ＶＮＦ（Ｃ）について、ネットワーク２０上のどこかで帯域制限機構によって、使用できる帯域が８０Ｍｂｐｓに制限されているものとする。他のＶＮＦ（Ａ）（Ｂ）（Ｄ）は、図２８、図２９の例と同様に帯域制限はされていないものとする。図３０の例では、ＶＮＦ（Ｂ）については８０Ｍｂｐｓの空き帯域が検出され、ＶＮＦ（Ａ）（Ｂ）（Ｄ）について４８０Ｍｂｐｓの空き帯域が検出されている。
【０１７０】
図３１は、一部のＶＮＦが帯域制限を受けている場合の空き帯域の測定手順を示すシーケンス図である。なお図３１では、空き帯域判定処理開以前の処理は、図９または図１０のステップＳ１０１〜Ｓ１０７の処理と同じであるため省略している。
【０１７１】
代表測定部１４０は、伝送スケジュールに従って通信情報を模倣して空き帯域を測定する。図３１の例では、最初のタイムスロット「Time slot(0)」において、代表測定部１４０がＶＮＦ（Ａ）の通信情報を模倣したパケットを物理ノード２００に送信する（ステップＳ１４１）。そして物理ノード２００の代表測定部２４０が、受信レートを物理ノード１００に送信する（ステップＳ１４２）。この処理を繰り返すことで、二分探索によりＶＮＦ（Ａ）の空き帯域（４８０Ｍｂｐｓ）が測定される。
【０１７２】
次にタイムスロット「Time slot(1)」において、代表測定部１４０がＶＮＦ（Ｂ）の通信情報を模倣したパケットを物理ノード２００に送信する（ステップＳ１４３）。そして物理ノード２００の代表測定部２４０が、受信レートを物理ノード１００に送信する（ステップＳ１４４）。この処理を繰り返すことで、二分探索によりＶＮＦ（Ｂ）の空き帯域（４８０Ｍｂｐｓ）が測定される。
【０１７３】
次にタイムスロット「Time slot(2)」において、代表測定部１４０がＶＮＦ（Ｃ）の通信情報を模倣したパケットを物理ノード２００に送信する（ステップＳ１４５）。このパケットの送信では、帯域制限により、受信レートが８０Ｍｂｐｓを超えることはない。そして物理ノード２００の代表測定部２４０が、受信レートを物理ノード１００に送信する（ステップＳ１４６）。この処理を繰り返すことで、二分探索によりＶＮＦ（Ｃ）の空き帯域（８０Ｍｂｐｓ）が測定される。
【０１７４】
最後にタイムスロット「Time slot(3)」において、代表測定部１４０がＶＮＦ（Ｄ）の通信情報を模倣したパケットを物理ノード２００に送信する（ステップＳ１４７）。そして物理ノード２００の代表測定部２４０が、受信レートを物理ノード１００に送信する（ステップＳ１４８）。この処理を繰り返すことで、二分探索によりＶＮＦ（Ｄ）の空き帯域（４８０Ｍｂｐｓ）が測定される。
【０１７５】
代表測定部１４０は、各ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）の空き帯域の測定結果を、ＶＮＦ帯域制御部１３０に通知する（ステップＳ１４９）。ＶＮＦ帯域制御部１３０は、測定結果を基に、ＶＮＦ（Ａ）（Ｂ）（Ｃ）（Ｄ）それぞれの実効帯域を決定する（ステップＳ１５０）。図３１の例では、ＶＮＦ（Ｃ）が帯域制限を受けていることから、ＶＮＦ帯域制御部１３０にＶＮＦ（Ｃ）に８０Ｍｂｐｓの帯域を割り当てる。そしてＶＮＦ帯域制御部１３０は、帯域制限を受けないときの空き帯域（４８０Ｍｂｐｓ）からＶＮＦ（Ｃ）に割り当てた分を減算した残りの帯域（４００Ｍｂｐｓ）を、３台のＶＮＦ（Ａ）（Ｂ）（Ｄ）に均等に割り当てる。その結果、ＶＮＦ（Ａ）（Ｂ）（Ｄ）の実効帯域は「１３３Ｍｂｐｓ」に決定される。
【０１７６】
そして、ＶＮＦ帯域制御部１３０は、各ＶＮＦ（Ｃ）に実効帯域「８０Ｍｂｐｓ」を通知すると共に、ＶＮＦ（Ａ）（Ｂ）（Ｄ）に実効帯域「１３３Ｍｂｐｓ」を通知する（ステップＳ１５１）。
【０１７７】
これにより、ＶＮＦ（Ｃ）については空き帯域が正しく測定され、使用可能な帯域内での効率的な通信を行うことができる。またＶＮＦ（Ａ）（Ｂ）（Ｄ）は、ＶＮＦ（Ｃ）が使用できない分の帯域を有効に利用し、図２８、図２９の場合よりも高速な通信が可能となる。
【０１７８】
次に、ＶＮＦの帯域管理のために、各ノードが実行する処理について、詳細に説明する。まず、通信情報の管理処理について説明する。通信情報の管理処理には、物理ノード１００，２００から管理ノード３００への最新の通信情報の送信処理と、管理ノード３００内のコントローラ３１０から各物理ノード１００，２００への通信情報の配信処理がある。
【０１７９】
図３２は、物理ノードにおける最新の通信情報の送信手順の一例を示すフローチャートである。以下、物理ノード１００が最新の通信情報を送信する場合を想定し、図３２に示す処理をステップ番号に沿って説明する。なお物理ノード２００も、物理ノード１００と同様の手順で最新の通信情報を送信する。
【０１８０】
［ステップＳ２０１］ＶＮＦ情報収集部１３１は、ＶＮＦ１１１，１１２，・・・，１１ｎの状態を監視する。
［ステップＳ２０２］ＶＮＦ情報収集部１３１は、すくなくとも１つのＶＮＦの設定が更新されたか否かを判断する。設定が更新されたＶＮＦがある場合、処理がステップＳ２０３に進められる。設定が更新されたＶＮＦがない場合、処理がステップＳ２０１に進められる。
【０１８１】
［ステップＳ２０３］ＶＮＦ情報収集部１３１は、設定が更新されたＶＮＦの通信情報を、該当するＶＮＦから収集する。
［ステップＳ２０４］ＶＮＦ情報収集部１３１は、更新されたすべての通信情報について、その通信情報を含むメッセージを生成したか否かを判断する。すべての通信情報についてメッセージを生成し終わった場合、処理がステップＳ２０９に進められる。メッセージが未生成の通信情報がある場合、処理がステップＳ２０５に進められる。
【０１８２】
［ステップＳ２０５］ＶＮＦ情報収集部１３１は、通信情報の更新タイプを判断する。更新タイプが生成「Ｉ」であれば、処理がステップＳ２０６に進められる。更新タイプが削除「Ｄ」であれば、処理がステップＳ２０７に進められる。更新タイプが更新「Ｕ」であれば、処理がステップＳ２０８に進められる。
【０１８３】
［ステップＳ２０６］ＶＮＦ情報収集部１３１は、通信情報にＦＬＡＧ「Ｉ」を追加したメッセージを生成する。その後、処理がステップＳ２０４に進められる。
［ステップＳ２０７］ＶＮＦ情報収集部１３１は、通信情報にＦＬＡＧ「Ｄ」を追加したメッセージを生成する。その後、処理がステップＳ２０４に進められる。
【０１８４】
［ステップＳ２０８］ＶＮＦ情報収集部１３１は、通信情報にＦＬＡＧ「Ｕ」を追加したメッセージを生成する。その後、処理がステップＳ２０４に進められる。
［ステップＳ２０９］ＶＮＦ情報収集部１３１は、生成したメッセージを、ＶＮＦインタフェース１３２を介してコントローラ３１０に送信する。
【０１８５】
このようにして、物理ノード１００からコントローラ３１０に、最新の通信情報が送信される。同様に、物理ノード２００からコントローラ３１０へも、最新の通信情報が送信される。これにより、管理ノード３００において、最新の通信情報が保持される。
【０１８６】
次に、各コントローラが実行する通信情報の管理処理について、詳細に説明する。
図３３は、コントローラの通信情報管理処理の手順を示すフローチャートである。以下、図３３に示す処理をステップ番号に沿って説明する。
【０１８７】
［ステップＳ２１１］通信部３１１は、物理ノード１００，２００からのメッセージを受信する。
［ステップＳ２１２］通信部３１１は、受信したメッセージがＶＮＦまたは物理ノードの最新の通信情報か否かを判断する。例えば通信部３１１は、パケットのＢＰＤＵにＦＬＡＧとして「Ｕ」、「Ｉ」、または「Ｄ」が設定された通信情報が含まれている場合、最新の通信情報であると判断する。最新の通信情報であれば、処理がステップＳ２１３に進められる。最新の通信情報でなければ、処理が終了する。
【０１８８】
［ステップＳ２１３］通信部３１１は、ノードテーブル操作部３１２に通信情報を転送する。
［ステップＳ２１４］ノードテーブル操作部３１２は、取得した通信情報に対応するレコードを、ノード管理テーブル３２１から検索する。
【０１８９】
［ステップＳ２１５］ノードテーブル操作部３１２は、受信したすべての通信情報に関して、ノード管理テーブル３２１内の対応するレコードを更新したか否かを判断する。更新を行っていない通信情報があれば、処理がステップＳ２１６に進められる。すべての通信情報に関して更新が終了していれば、処理がステップＳ２２０に進められる。
【０１９０】
［ステップＳ２１６］ノードテーブル操作部３１２は、未処理の通信情報の１つを選択し、その通信情報に付与されているＦＬＡＧの値を識別する。ＦＬＡＧが「Ｄ」であれば、処理がステップＳ２１７に進められる。ＦＬＡＧが「Ｕ」であれば、処理がステップＳ２１８に進められる。ＦＬＡＧが「Ｉ」であれば、処理がステップＳ２１９に進められる。
【０１９１】
［ステップＳ２１７］ノードテーブル操作部３１２は、選択した通信情報に対応するノード管理テーブル３２１内のレコードのＦＬＡＧの欄に「Ｄ」を設定する。その後、処理がステップＳ２１５に進められる。
【０１９２】
［ステップＳ２１８］ノードテーブル操作部３１２は、選択した通信情報に対応するノード管理テーブル３２１内のレコードの通信情報を、選択した通信情報に更新する。そしてノードテーブル操作部３１２は、そのレコードのＦＬＡＧの欄に「Ｕ」を設定する。その後、処理がステップＳ２１５に進められる。
【０１９３】
［ステップＳ２１９］ノードテーブル操作部３１２は、選択した通信情報を含むレコードを、ノード管理テーブル３２１に追加する。そしてノードテーブル操作部３１２は、追加したレコードのＦＬＡＧの欄に「Ｉ」を設定する。その後、処理がステップＳ２１５に進められる。
【０１９４】
［ステップＳ２２０］ノードテーブル操作部３１２は、メッセージ生成部３１３にノード管理テーブル３２１が更新されたことを通知する。
［ステップＳ２２１］メッセージ生成部３１３は、物理ノード１００，２００に送信する最新の通信情報を含むメッセージを生成する。
【０１９５】
［ステップＳ２２２］レコード削除部３１４は、ノード管理テーブル３２１内に、ＦＬＡＧが「Ｄ」のレコードが存在するか否かを判断する。該当するレコードがある場合、処理がステップＳ２２３に進められる。該当するレコードがない場合、処理がステップＳ２２４に進められる。
【０１９６】
［ステップＳ２２３］レコード削除部３１４は、ノード管理テーブル３２１からＦＬＡＧが「Ｄ」のレコードを削除する。
［ステップＳ２２４］レコード削除部３１４は、ノード管理テーブル３２１内のすべてのレコードのＦＬＡＧの欄の値をブランクにする。
【０１９７】
［ステップＳ２２５］メッセージ生成部３１３は、通信部３１１を介して、生成したメッセージを各物理ノード１００，２００に送信する。
このようにして、コントローラ３１０によって、最新の通信情報が物理ノード１００，２００に配信される。
【０１９８】
次に、物理ノード１００，２００による伝送スケジュール決定処理について説明する。伝送スケジュールの決定は、ＶＮＦからの依頼に起因する場合と、定期的なＶＮＦ測定タイミングになったと判定された場合とに実施される。
【０１９９】
図３４は、測定依頼による伝送スケジュール決定処理の手順の一例を示すフローチャートである。以下、図３４に示す処理をステップ番号に沿って説明する。
［ステップＳ２４１］ＶＮＦインタフェース１３２は、いずれかのＶＮＦから、空き帯域の測定依頼を受信したか否かを判断する。測定依頼を受信した場合、処理がステップＳ２４２に進められる。測定依頼を受信していなければ、ステップＳ２４１の処理が繰り返される。
【０２００】
［ステップＳ２４２］ＶＮＦインタフェース１３２は、伝送スケジュール決定部１３５に測定依頼を通知する。この通知には、測定依頼を送信したＶＮＦの識別情報が含まれる。
【０２０１】
［ステップＳ２４３］伝送スケジュール決定部１３５は、伝送スケジュールを決定するため、ＶＮＦグループ管理部１３３にＶＮＦのグループの情報を要求する。
［ステップＳ２４４］ＶＮＦグループ管理部１３３は、物理フローテーブル１５１とグループ管理テーブル１５２とから、測定依頼を送信したＶＮＦに関連する通信情報を取り出す。
【０２０２】
［ステップＳ２４５］ＶＮＦグループ管理部１３３は、取り出した通信情報を、伝送スケジュール決定部１３５に送信する。
［ステップＳ２４６］伝送スケジュール決定部１３５は、空き帯域の全体の測定時間を、測定対象のＶＮＦの数分のタイムスロットに分割し、伝送スケジュールを決定する。
【０２０３】
このような手順で伝送スケジュールが決定される。
図３５は、定期的に伝送スケジュール決定を行う処理の手順の一例を示すフローチャートである。以下、図３５に示す処理をステップ番号に沿って説明する。
【０２０４】
［ステップＳ２５１］空き帯域測定タイマ１３４は、値が０になったかを判断する。空き帯域測定タイマ１３４はカウントダウンタイマであり、初期値の設定時刻からの経過時間を、初期値から減算した値が、空き帯域測定タイマ１３４の値となる。空き帯域測定タイマ１３４の値が０になった場合、処理がステップＳ２５２に進められる。空き帯域測定タイマ１３４の値が０でなければ、ステップＳ２５１の処理が繰り返される。
【０２０５】
［ステップＳ２５２］空き帯域測定タイマ１３４は、伝送スケジュール決定部１３５に空き帯域の測定タイミングになったことを通知する。
［ステップＳ２５３］伝送スケジュール決定部１３５は、伝送スケジュールを決定するため、ＶＮＦグループ管理部１３３にＶＮＦのグループの情報を要求する。
【０２０６】
［ステップＳ２５４］ＶＮＦグループ管理部１３３は、物理フローテーブル１５１とグループ管理テーブル１５２とから、全ＶＮＦに関連する通信情報を取り出す。
［ステップＳ２５５］ＶＮＦグループ管理部１３３は、取り出した通信情報を、伝送スケジュール決定部１３５に送信する。
【０２０７】
［ステップＳ２５６］伝送スケジュール決定部１３５は、すべてのＶＮＦ１１１，１１２，・・・，ＶＮＦ１１ｎを測定対象として、空き帯域の全体の測定時間をＶＮＦ数分のタイムスロットに分割し、伝送スケジュールを決定する。
【０２０８】
［ステップＳ２５７］空き帯域測定タイマ１３４は、タイマの値に所定の初期値を設定する。
このようにして、定期的に伝送スケジュールを決定し、空き帯域の測定を行うことができる。決定された伝送スケジュールは、受信側の物理ノード２００に送信される。伝送スケジュールを受信した物理ノード２００は、伝送スケジュールの内容が正しいかをチェックする。
【０２０９】
図３６は、伝送スケジュールのチェック処理の手順の一例を示すフローチャートである。以下、図３６に示す処理をステップ番号に沿って説明する。
［ステップＳ２６１］代表測定部２４０内の通信部２４４は、伝送スケジュールを受信する。
【０２１０】
［ステップＳ２６２］通信部２４４は、受信した伝送スケジュールをＶＮＦ帯域制御部２３０に送信する。
［ステップＳ２６３］ＶＮＦ帯域制御部２３０において、ＶＮＦインタフェース２３２は、送信された伝送スケジュールを受信する。ＶＮＦインタフェース２３２は、受信した伝送スケジュールをＶＮＦグループ管理部２３３に渡す。
【０２１１】
［ステップＳ２６４］ＶＮＦグループ管理部２３３は、伝送スケジュールに示されるＶＮＦに対応する通信情報が、グループ管理テーブル１５２に存在することを確認する。
［ステップＳ２６５］ＶＮＦグループ管理部２３３は、伝送スケジュールに示されるすべてのＶＮＦが、同じグループに属しているかどうかを判断する。同じグループに属していれば、処理がステップＳ２６６に進められる。伝送スケジュールに示されるＶＮＦのうち、グループ管理テーブル１５２に対応する通信情報が存在しないＶＮＦが少なくとも１つある場合、または伝送スケジュールに示されるＶＮＦのグループが完全同一ではない場合、処理がステップＳ２６７に進められる。
【０２１２】
［ステップＳ２６６］ＶＮＦグループ管理部２３３は、帯域観測テーブル２５３に、伝送スケジュールに示される各ＶＮＦの通信情報と識別値（ＤＳＣＰまたはＣｏＳの値）を格納する。その後、処理が終了する。
【０２１３】
［ステップＳ２６７］ＶＮＦグループ管理部２３３は、伝送スケジュールに誤りがあることを、代表測定部２４０に通知する。すると代表測定部２４０は、誤りがあることを示すメッセージを、送信側の物理ノード１００に送信する。
【０２１４】
送信側の物理ノード１００では、伝送スケジュールを送信後、その伝送スケジュールに誤りがあることを示すメッセージが返されなければ、伝送スケジュールに従って、ＶＮＦを模倣したデータ送信を開始する。
【０２１５】
図３７は、ＶＮＦを模倣したデータ送信処理の手順の一例を示すフローチャートである。以下、図３７に示す処理をステップ番号に沿って説明する。
［ステップＳ２７１］代表測定部１４０の通信部１４１は、ＶＮＦ帯域制御部１３０から伝送スケジュールを受信する。
【０２１６】
［ステップＳ２７２］通信部１４１は、送信レート決定部１４３を介して、受信した伝送スケジュールを通信情報模倣部１４４に送信する。
［ステップＳ２７３］通信情報模倣部１４４は、伝送スケジュールに基づいて、各タイムスロットにおいて空き帯域を測定する対象のＶＮＦを確認する。
【０２１７】
［ステップＳ２７４］帯域結果操作部１４２は、処理対象のタイムスロットの番号（０，１，・・・）を示す変数「Time slot」の値が、タイムスロットの数（Max time slot）と一致するか否かを判断する。一致する場合、処理がステップＳ２７５に進められる。一致しない場合、処理がステップＳ２７６に進められる。
【０２１８】
［ステップＳ２７５］帯域結果操作部１４２は、空き帯域の測定結果を、ＶＮＦ帯域制御部１３０に通知する。その後、処理が終了する。
［ステップＳ２７６］観測タイマ１４５は、観測タイマをスタートさせる。観測タイマは、測定を行うタイムスロットの時間が初期値として設定され、その初期値からの経過時間の分だけカウントダウンされる。この際、送信レート決定部１４３により、送信レートの初期値が設定される。２つ目以降のタイムスロットの測定を行う場合、送信レート決定部１４３は、例えば直前のタイムスロットで測定した空き帯域の値を、送信レートの初期値とする。
【０２１９】
［ステップＳ２７７］観測タイマ１４５は、観測タイマの値が「０」か否かを判断する。観測タイマの値が「０」であれば、処理がステップＳ２８３に進められる。観測タイマの値が「０」でなければ、処理がステップＳ２７８に進められる。
【０２２０】
［ステップＳ２７８］帯域結果操作部１４２は、送信レート決定部１４３に観測結果（送信レートと受信レートとの比較結果）を通知する。
［ステップＳ２７９］送信レート決定部１４３は、次にパケットを送信する際の送信レートを、二分探索のアルゴリズムに従って決定する。
【０２２１】
［ステップＳ２８０］パケット生成部１４６は、変数「Time slot」で示される順番のタイムスロットに対応するＶＮＦの通信情報を模倣したパケットを生成する。
［ステップＳ２８１］パケット識別値設定部１４７は、生成したパケットのＤＳＣＰまたはＣｏＳに、測定対象のＶＮＦに対応する識別値を設定する。
【０２２２】
［ステップＳ２８２］測定用パケット送信部１４８は、送信レート決定部１４３が決定した送信レートで、生成したパケットを送信する。その後、処理がステップＳ２７７に進められる。
【０２２３】
［ステップＳ２８３］帯域結果操作部１４２は、繰り返し送信したパケットの送信レートおよび受信レートに基づいて空き帯域を判定する。例えば帯域結果操作部１４２は、異なる送信レートで繰り返し送信した場合において、「送信レート≦受信レート」となることが確認できた最も高い送信レートを空き帯域と判定する。
【０２２４】
［ステップＳ２８４］帯域結果操作部１４２は、帯域観測テーブル１５３に測定した空き帯域の値を記録する。
［ステップＳ２８５］通信情報模倣部１４４は、伝送スケジュールに基づいて、次に模倣するフローを決定する。
【０２２５】
［ステップＳ２８６］帯域結果操作部１４２は、変数「Time slot」の値を１だけカウントアップする。その後、処理がステップＳ２７４に進められる。
このような手順で、複数のＶＮＦそれぞれも模倣した通信における空き帯域を測定することができる。なお空き帯域の測定は、受信側の物理ノード２００における代表測定部２４０が連携した処理を実行することで実現されている。
【０２２６】
図３８は、空き帯域測定時のデータ受信処理の手順の一例を示すフローチャートである。以下、図３８に示す処理をステップ番号に沿って説明する。
［ステップＳ２９１］代表測定部２４０のパケット識別部２４１は、処理対象のタイムスロットの番号（０，１，・・・）を示す変数「Time slot」の値が、タイムスロットの数（Max time slot）と一致するか否かを判断する。一致する場合、処理がステップＳ２９２に進められる。一致しない場合、処理がステップＳ２９３に進められる。
【０２２７】
［ステップＳ２９２］通信部２７５は、物理ノード１００に測定が終了したことを通知する。
［ステップＳ２９３］パケット識別部２４１は、受信したパケットが空き帯域測定用のパケットか否かを判断する。例えばパケット識別部２４１は、パケットのＤＳＣＰとして所定の値が設定されている場合、空き帯域測定用のパケットであると判断する。空き帯域測定用のパケットでなければ、処理がステップＳ２９４に進められる。空き帯域測定用のパケットであれば、処理がステップＳ２９５に進められる。
【０２２８】
［ステップＳ２９４］パケット識別部２４１は、仮想スイッチ２２０にパケットを送信する。その後、処理がステップＳ２９１に進められる。
［ステップＳ２９５］受信レート計算部２４２は、同一レートで送信された一連のパケットのすべてを受信したか否かを判断する。例えば所定のデータ量のメッセージが複数のパケットに分割して、所定の送信レートで送信された場合、そのメッセージの受信が完了することで、同一レートで送信された一連のパケットのすべてを受信したと判断できる。すべてのパケットを受信した場合、処理がステップＳ２９７に進められる。未受信のパケットがあれば、処理がステップＳ２９６に進められる。
【０２２９】
［ステップＳ２９６］受信レート計算部２４２は、受信したパケットのデータ量を積算する。その後、処理がステップＳ２９５に進められる。
［ステップＳ２９７］受信レート計算部２４２は、同一レートで送信された全パケットのデータ量を受信時間で除算し、受信レートを計算する。
【０２３０】
［ステップＳ２９８］通信部２４４は、計算した受信レートを物理ノード１００に通知する。
［ステップＳ２９９］パケット識別部２４１は、次のパケットを受信すると、そのパケットが、現在の変数「Time slot」の値で示される現タイムスロットの空き帯域測定用のパケットか否かを判断する。現タイムスロットの空き帯域測定用のパケットであれば、処理がステップＳ２９１に進められる。現タイムスロットの空き帯域測定用のパケットでなければ、処理がステップＳ２３０に進められる。
【０２３１】
［ステップＳ２３０］パケット識別部２４１は、変数「Time slot」の値を１だけカウントアップする。その後、処理がステップＳ２９１に進められる。
このように受信側の物理ノード１００では、空き帯域測定用のパケットを受信すると、そのパケットの受信レートを送信側の物理ノード２００に通知する。これにより、送信側の物理ノード１００では、二分探索により空き帯域の探索することができる。
【０２３２】
ＶＮＦごとの空き領域が判明すると、送信側の物理ノード１００のＶＮＦ帯域制御部１３０により、各ＶＮＦに通知する実効帯域が決定される。
図３９は、実効帯域決定処理の手順の一例を示すフローチャートである。以下、図３９に示す処理をフローチャートに沿って説明する。
【０２３３】
［ステップＳ３１１］ＶＮＦ帯域制御部１３０のＶＮＦインタフェース１３２は、代表測定部１４０から測定結果を受信したか否かを判断する。測定結果を受信した場合、処理がステップＳ３１２に進められる。測定結果を受信していなければ、ステップＳ３１１の処理が繰り返される。
【０２３４】
［ステップＳ３１２］ＶＮＦインタフェース１３２は、測定結果をレート制限判断部１３６に通知する。
［ステップＳ３１３］レート制限判断部１３６は、帯域観測テーブル１５３から、観測結果を示すレコードを取得する。
【０２３５】
［ステップＳ３１４］レート制限判断部１３６は、帯域制限機構によって帯域が制限されているＶＮＦが存在するか否かを判断する。例えばレート制限判断部１３６は、同じグループに属するＶＮＦの空き帯域を比較し、他のＶＮＦより空き帯域が少なく測定されたＶＮＦは、帯域の制限を受けていると判断する。帯域が制限されているＶＮＦがある場合、処理がステップＳ３１５に進められる。帯域が制限されているＶＮＦがない場合、処理がステップＳ３１７に進められる。
【０２３６】
［ステップＳ３１５］ＶＮＦ帯域通知部１３７は、グループ管理テーブル１５２内の、帯域が制限されているＶＮＦの通信情報に、そのＶＮＦの空き帯域の値を、実効帯域として設定する。
【０２３７】
［ステップＳ３１６］ＶＮＦ帯域通知部１３７は、グループ管理テーブル１５２内の、帯域が制限されていないＶＮＦの通信情報に、残りの空き帯域を均等に分けた値を、そのＶＮＦの実効帯域として設定する。その後、処理がステップＳ３１８に進められる。なお、残りの空き帯域とは、帯域が制限されていないＶＮＦで測定された空き帯域から、帯域が制限されているＶＮＦの実効帯域を減算した値である。
【０２３８】
［ステップＳ３１７］ＶＮＦ帯域通知部１３７は、グループ管理テーブル１５２内の同一グループのすべてのＶＮＦの通信情報に、空き帯域を均等に分けた値を、すべてのＶＮＦの実効帯域として設定する。
【０２３９】
［ステップＳ３１８］ＶＮＦ帯域通知部１３７は、同一グループのＶＮＦそれぞれに設定された実効帯域の値を、レート制限判断部１３６を介して取得する。そしてＶＮＦ帯域通知部１３７は、ＶＮＦインタフェース１３２を介して、各ＶＮＦに、そのＶＮＦの実効帯域を通知する。
【０２４０】
このようにして、複数のＶＮＦそれぞれに対応する空き帯域を効率的に測定し、その測定結果に基づいて、各ＶＮＦに適切な実効帯域を通知することができる。各ＶＮＦは、データを送信する場合、通知された実効帯域以下の送信レートでデータを送信する。これにより、ＶＮＦは、効率的なデータ送信を行うことができる。
【０２４１】
ここで、所定の測定時間内で、ＶＮＦそれぞれが独自に空き帯域を測定した場合の、空き帯域の測定誤差について説明する。
例えばネットワークで同じ負荷をかける意味で、観測時間を個別のＶＮＦが短い時間で空き帯域を測定するだけでは、正しい空き帯域を得ることができない。ここで、全測定時間が４０秒、ＶＮＦの数が１０個、通信経路の最大帯域が１Ｇｂｐｓ、空き帯域が４８０Ｍｂｐｓである場合が想定する。この場合、１つのＶＮＦについての空き帯域の測定に使用できる時間は、平均４秒である。例えば「Ｐａｔｈｌｏａｄ」と呼ばれるソフトウェアを用いると、１回の受信レートの測定にかかる時間は２秒である。二分探索では、送信レートを代えながらデータ送信を繰り返し、その都度、受信レートが測定される。個別のＶＮＦが空き帯域の測定を行う場合、そのＶＮＦが測定に使用できる４秒の時間では、２種類の送信レートで送信した場合しか、受信レートを測定できない。例えば送信レート「５００Ｍｂｐｓ→２５０Ｍｂｐｓ」と変更して、そのＶＮＦ用の空き帯域の測定時間が終了する。すると、実際の空き帯域は４８０Ｍｂｐｓであっても測定結果、２５０Ｍｂｐｓとなる。このときの測定誤差は、「４８０−２５０＝２３０Ｍｂｐｓ」である。
【０２４２】
このように、各ＶＮＦが独自に空き帯域を測定すると、測定誤差が大きくなる。なお、空き帯域の測定時間を長くすれば、正確な測定が可能であるが、その場合、空き帯域測定用のパケットが長時間送信され続けることになり、ネットワーク余分な負荷がかかる。その結果、システムの利用効率が低下する。
【０２４３】
それに対して、第２の実施の形態では、例えば最初のタイムスロットにおいて、十分に時間をかけて、正確な空き領域探索を行う。例えば送信レートを「５００Ｍｂｐｓ→２５０Ｍｂｐｓ→３７５Ｍｂｐｓ→４３７．５Ｍｂｐｓ→４６８．７５Ｍｂｐｓ→４８４．３７５Ｍｂｐｓ→４７６．５７５Ｍｂｐｓ→４７６．５７５Ｍｂｐｓ→４８０．４７５Ｍｂｐｓ→…→４８０．０Ｍｂｐｓ」としたデータ送信が行われる。これにより、誤差「０」の正確な空き領域の測定結果が得られる。
【０２４４】
２番目以降のタイムスロットでは、送信レート「４８０．０Ｍｂｐｓ」から空き領域探索を開始することで、短時間で探索結果を得ることができる。その結果、複数のＶＮＦの空き領域の高精度の測定を効率的に行うことができる。
【０２４５】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０２４６】
１  ネットワーク
２  物理ノード
１０  空き帯域測定装置
１１〜１３  ＶＭ
１４  分類手段
１５  測定手段
１６  決定手段
【図１】
2018029230.tif 000003
【図２】
2018029230.tif 000004
【図３】
2018029230.tif 000005
【図４】
2018029230.tif 000006
【図５】
2018029230.tif 000007
【図６】
2018029230.tif 000008
【図７】
2018029230.tif 000009
【図８】
2018029230.tif 000010
【図９】
2018029230.tif 000011
【図１０】
2018029230.tif 000012
【図１１】
2018029230.tif 000013
【図１２】
2018029230.tif 000014
【図１３】
2018029230.tif 000015
【図１４】
2018029230.tif 000016
【図１５】
2018029230.tif 000017
【図１６】
2018029230.tif 000018
【図１７】
2018029230.tif 000019
【図１８】
2018029230.tif 000020
【図１９】
2018029230.tif 000021
【図２０】
2018029230.tif 000022
【図２１】
2018029230.tif 000023
【図２２】
2018029230.tif 000024
【図２３】
2018029230.tif 000025
【図２４】
2018029230.tif 000026
【図２５】
2018029230.tif 000027
【図２６】
2018029230.tif 000028
【図２７】
2018029230.tif 000029
【図２８】
2018029230.tif 000030
【図２９】
2018029230.tif 000031
【図３０】
2018029230.tif 000032
【図３１】
2018029230.tif 000033
【図３２】
2018029230.tif 000034
【図３３】
2018029230.tif 000035
【図３４】
2018029230.tif 000036
【図３５】
2018029230.tif 000037
【図３６】
2018029230.tif 000038
【図３７】
2018029230.tif 000039
【図３８】
2018029230.tif 000040
【図３９】
2018029230.tif 000041