JP6810339B2 - 空き帯域測定プログラム、空き帯域測定方法、および空き帯域測定装置 - Google Patents

空き帯域測定プログラム、空き帯域測定方法、および空き帯域測定装置 Download PDF

Info

Publication number
JP6810339B2
JP6810339B2 JP2016159276A JP2016159276A JP6810339B2 JP 6810339 B2 JP6810339 B2 JP 6810339B2 JP 2016159276 A JP2016159276 A JP 2016159276A JP 2016159276 A JP2016159276 A JP 2016159276A JP 6810339 B2 JP6810339 B2 JP 6810339B2
Authority
JP
Japan
Prior art keywords
band
vnf
free band
free
physical node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016159276A
Other languages
English (en)
Other versions
JP2018029230A (ja
Inventor
忠翰 李
忠翰 李
直樹 小口
直樹 小口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016159276A priority Critical patent/JP6810339B2/ja
Priority to US15/654,761 priority patent/US10469352B2/en
Publication of JP2018029230A publication Critical patent/JP2018029230A/ja
Application granted granted Critical
Publication of JP6810339B2 publication Critical patent/JP6810339B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • H04L47/787Bandwidth trade among domains
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、空き帯域測定プログラム、空き帯域測定方法、および空き帯域測定装置に関する。
近年は、仮想化技術を使ってネットワーク機能が汎用コンピュータ上で実現されている。このような技術は、NFV(Network Functions Virtualization)と呼ばれる。NFVでは、ネットワーク機能(ファイアウォール、ロードバランサなど)が仮想化される。ネットワーク機能を仮想化した仮想マシンは、VNF(Virtualized Network Function)と呼ばれる。
複数のVNFを有する物理ノードがWAN(Wide Area Network)に接続されている場合、複数のVNFそれぞれがWANを介した通信を行う。WANは、例えば複数の国を跨がったネットワークであり、複数の通信キャリアによって構成される。WAN内のネットワークには、有線網も無線網も含まれる。
VNFがWANを介した通信を行う場合、通信経路の帯域が分かれば、通信効率を高めることができる。例えばVNFは、通信経路上のボトルネックとなる部分の帯域に合わせた通信速度でデータを送信することで、空き帯域を効率的に利用した通信を行うことができる。そこで、各VNFは、WANを介した通信の伝送効率を高めるために、空き帯域を測定する。WANを介した通信の空き帯域は、WANを経由した通信経路上の、通信余力が最も少ない部分における通信余力である。通信経路における通信余力は、例えば機器間を接続するリンクの最大の通信速度と、通信しているデータの通信速度との差分である。空き帯域の測定では、例えば、データ送信速度(送信レート)を変えながら、通信が繰り返し行われる。そして、送信レートと同程度の速度でデータを受信することができる最大の送信レートが、空き帯域と判定される。
仮想ネットワークの状態を把握するのに有用な技術としては、例えば、網の制御機能が利用可能な資源を絞るというような運用がなされる仮想網でも正しく網の状態を把握できるようにする網状態推定装置がある。また、無用な帯域測定動作を削減して帯域測定動作が通信網に与える負荷を軽減するパケット通信網の帯域測定方法が考えられている。さらに通信セッションの監視に必要な計算機資源を低減しつつ、実際の利用状況に応じて帯域を制御し、帯域の利用効率を向上する帯域制御装置も考えられている。
特開2013−074494号公報 特開2008−131100号公報 国際公開第2015/162753号
同一の物理ノード上に、他の特定の物理ノードと通信を行う複数のVNFがある場合、複数のVNFそれぞれが空き帯域の測定を行うと、複数のVNFが互いの空き帯域の測定結果の情報を共有できず、余計な通信負荷が生じる。
1つの側面では、本件は、空き帯域を効率的に測定することを目的とする。
1つの案では、コンピュータに以下の処理を実効させる空き帯域測定プログラムが提供される。
コンピュータは、空き帯域測定プログラムに基づいて、コンピュータにネットワークを介して接続された物理ノードと通信を行う、コンピュータ上に生成された複数の仮想マシンを1つのグループに分類する。次にコンピュータは、グループに属する複数の仮想マシンそれぞれを模倣した測定用パケットを物理ノードに送信することで、複数の仮想マシンそれぞれが異なる時間帯に物理ノードへのデータ送信を行ったときの、物理ノードとの間の通信経路の空き帯域を、複数の仮想マシンそれぞれについて測定する。さらにコンピュータは、複数の仮想マシンそれぞれの空き帯域に基づいて、複数の仮想マシンが同じ時間帯に物理ノードへのデータ送信を行うときの、複数の仮想マシンそれぞれの実効帯域を決定する。そしてコンピュータは、複数の仮想マシンそれぞれに実効帯域を通知する。
1態様によれば、空き帯域を効率的に測定することができる。
第1の実施の形態のシステムの構成例を示す図である。 第2の実施の形態のシステムの構成例を示す図である。 第2の実施の形態に用いる物理ノードのハードウェアの一構成例を示す図である。 各VNFが空き帯域を測定する場合の通信状況の一例を示す図である。 帯域制限機構の一例を示す図である。 各ノードの機能を示すブロック図である。 空き帯域探索方法の一例を示す図である。 前の測定結果の有効利用の一例を示す図である。 VNFからの依頼に応じた空き帯域の判定処理の一例を示すシーケンス図である。 周期的に空き帯域の判定処理を行う例を示すシーケンス図である。 物理ノードのソフトウェアの実装例を示す図である。 各ノード内の要素間で送受信される情報を示す図である。 管理ノードのコントローラの機能を示すブロック図である。 送信側のVNF帯域制御部の機能を示すブロック図である。 送信側の代表測定部の機能を示すブロック図である。 受信側のVNF帯域制御部の機能を示すブロック図である。 受信側の代表測定部の機能を示すブロック図である。 ノード管理テーブルの一例を示す図である。 物理フローテーブルの一例を示す図である。 グループ管理テーブルの一例を示す図である。 帯域観測テーブルの一例を示す図である。 物理ノードが通信情報を送信するときのパケットフォーマットの一例を示す図である。 管理ノードが通信情報を送信するときのパケットフォーマットの一例を示す図である。 伝送スケジュールの一例を示す図である。 伝送スケジュール送信用のパケットフォーマットの一例を示す図である。 空き帯域測定用パケットの一例を示す図である。 空き帯域測定用のパケットであることを示す識別値をCoSに設定する例を示す図である。 すべてのVNFが帯域制限を受けていない場合の空き帯域の測定結果を示す図である。 すべてのVNFが帯域制限を受けていない場合の空き帯域の測定手順を示すシーケンス図である。 一部のVNFが帯域制限を受けている場合の空き帯域の測定結果を示す図である。 一部のVNFが帯域制限を受けている場合の空き帯域の測定手順を示すシーケンス図である。 物理ノードにおける最新の通信情報の送信手順の一例を示すフローチャートである。 コントローラの通信情報管理処理の手順を示すフローチャートである。 調査依頼による伝送スケジュール決定処理の手順の一例を示すフローチャートである。 定期的に伝送スケジュール決定を行う処理の手順の一例を示すフローチャートである。 伝送スケジュールのチェック処理の手順の一例を示すフローチャートである。 VNFを模倣したデータ送信処理の手順の一例を示すフローチャートである。 空き帯域測定時のデータ受信処理の手順の一例を示すフローチャートである。 実効帯域決定処理の手順の一例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。
図1は、第1の実施の形態のシステムの構成例を示す図である。第1の実施の形態では、空き帯域測定装置10が、ネットワーク1を介して物理ノード2に接続されている。ネットワーク1は、例えば複数の通信キャリアによって構成されるWANである。空き帯域測定装置10は、例えば物理ノード2との間の通信経路の空き帯域測定機能を有する物理ノードである。
空き帯域測定装置10は、複数の仮想マシン(VM:Virtual Machine)11〜13、分類手段14、測定手段15、および決定手段16を有する。
VM11〜13は、例えばハイパーバイザによって空き帯域測定装置10上に生成されている。VM11〜13は、物理ノード2との間の通信の実効帯域の通知を受けた場合、その実効帯域を超えない範囲で、物理ノード2との効率的な通信を行う。またVM11〜13は、測定手段15により、いずれかのVM11〜13についての空き帯域の測定が行われている間は、物理ノード2との通信は行わない。これにより、VM11〜13自身の通信が、測定手段15による空き帯域の測定結果に影響をおよぼすことを抑止できる。
分類手段14は、物理ノード2相手に通信を行う複数のVM11〜13を1つのグループに分類する。
測定手段15は、同じグループに属する複数のVM11〜13それぞれを模倣した測定用パケットを物理ノード2に送信する。そして測定手段15は、物理ノード2における測定用パケットの受信状況に基づいて、複数のVM11〜13それぞれが異なる時間帯に物理ノード2へのデータ送信を行ったときの、物理ノード2との間の通信経路の空き帯域を測定する。空き帯域は、複数のVM11〜13それぞれについて測定される。例えば測定手段15は、物理ノード2での受信レート(単位時間当たりの受信データ量)を、受信状況として物理ノード2から取得する。そして測定手段15は、受信状況に基づいて、複数のVM11〜13それぞれが異なる時間帯に通信したときの物理ノード2との間の通信経路の空き帯域を測定する。例えば測定手段15は、二分探索によって、空き帯域を測定する。二分探索の詳細は後述する(図7参照)。
測定手段15は、空き帯域を測定する際、すでに測定されているVMの空き帯域の情報を利用して、他のVMを模倣した物理ノードとの間の通信経路の空き帯域を、効率的に測定することができる。例えば測定手段15は、特定のVMの空き帯域を、他のVMの空き帯域を二分探索で測定する際の、送信レートの初期値とする。
決定手段16は、複数のVM11〜13それぞれの空き帯域に基づいて、複数のVM11〜13が同じ時間帯に物理ノード2へのデータ送信を行うときの、複数のVM11〜13それぞれの実効帯域を決定する。そして決定手段16は、複数のVM11〜13それぞれに実効帯域を通知する。例えば決定手段16は、複数のVM11〜13の空き帯域が同じ場合、空き帯域をVM数で除算した値を、複数のVM11〜13それぞれの実効帯域とする。また複数のVM11〜13それぞれの空き帯域のうちの最大値をVM数で除算した値よりも、空き帯域が狭い低帯域VMがある場合もある。この場合、決定手段16は、低帯域VMの空き帯域を、その低帯域VMの実効帯域とする。そして決定手段16は、最大値から、低帯域VMの空き帯域を減算した残りを、低帯域VM以外のVM数で除算する。決定手段16は、除算結果を、低帯域VM以外のVMそれぞれの実効帯域とする。
このようなシステムによれば、空き帯域測定装置10では、複数のVM11〜13それぞれが個別に物理ノード2と通信した場合の空き帯域が、測定手段15によって測定される。これにより、先の測定したVMの空き帯域を有効に利用して、他のVMの空き帯域の測定を効率的に行うことができる。
なお、その複数のVNFのうちの1つが空き帯域測定を実施し、その結果を他のVNFと共有すれば、空き帯域の測定の負荷を軽減することができる。しかし、WANを構成する通信キャリアの中には、VMごとの帯域制限を行っている場合がある。そのため、1つのVMが測定して得られた空き帯域分の帯域を、他のVMが使用できるとは限らない。すなわち、特定のVMに対する帯域制限により通信可能な通信速度が、他のVNFが測定した空き帯域より低い場合、その特定のVNFは空き帯域分の通信速度で通信を行うことはできない。そのため、VMごとの帯域制限が行われるWANを経由した通信については、複数のVMについて個別に空き帯域を測定することとなる。第1の実施の形態では、測定手段15が複数のVM11〜13それぞれの空き帯域を測定することで、帯域制限を考慮した正確な空き帯域測定を、効率的に行うことができる。
図1の例では、VM11、VM12、VM13の順で、空き帯域の測定を行っている。VM11とVM12は、ネットワーク1の伝送経路上で帯域制限を受けないが、VM13は帯域制限を受けるものとする。そしてVM11を模倣した通信により空き帯域を測定した結果、480Mbpsの空き帯域が得られている。これは送信レートが480Mbpsのとき、受信レートも480Mbpsであるが、送信レートが480Mbpsを超えると、受信レートは、送信レートより低くなることを意味する。
VM12の空き帯域を測定する場合、例えば測定手段15は、VM12を模倣した通信の送信レートの初期値を、VM11の空き帯域である480Mbpsとする。このときの受信レートが480Mbpsであれば、測定手段15は、送信レートを480Mbpsより若干増やして、VM12を模倣したデータ送信を行う。このときの送信レートの増加量は、予め設定されているものとする。480Mbpsより若干増やしたときの受信レートが送信レートより低い場合、VM12の空き帯域が480Mbpsであると判断できる。すなわち、送信レートの異なるデータ送信を2回行うだけで、VM12の空き帯域が判明する。
次にVM13の空き帯域を測定する場合、例えば測定手段15は、VM13を模倣した通信の送信レートの初期値を、VM12の空き帯域である480Mbpsとする。図1の例では、VM13は帯域制限を受けており、受信レートは480Mbps未満となる。この場合、測定手段15は、通常の二分探索と同様に、送信レートを変えながら繰り返しデータ送信を行い、VM13の空き帯域を測定する。図1の例では、VM13の空き帯域は、80Mbpsである。
このように、第1の実施の形態によれば、帯域制限を受けていないVMが複数あれば、それらのVMのうちの1台の空き帯域を測定すれば、その他のVMの空き帯域を非常に効率的に測定できる。しかも第1の実施の形態では、すべてのVM11〜13それぞれを模倣した通信により空き帯域を測定するため、帯域制限を受けるVMがあれば、そのVMの空き帯域について、帯域制限を反映した値が測定できる。
第1の実施の形態で測定される空き帯域は、VM11〜13のいずれか1台のみが通信を行い、他のVMが通信を行わない場合における、通信を行うVMについての、物理ノード2との間の伝送経路の空き帯域である。実際の運用では、VM11〜13それぞれが物理ノード2との間で通信を行う。そのため決定手段16は、測定された最大の空き帯域(帯域制限を受けない場合の空き帯域)をVM11〜13に分配することで、各VM11〜13の実効帯域を決定する。その際、決定手段16は、帯域制限を受けているVM13については、帯域制限内の実効帯域を割り当てる。これにより、帯域制限を受けていないVM11,12に対して、すべてのVM11〜13に均等に実効帯域を割り当てた場合よりも大きな実効帯域を割り当てることができる。
図1の例ではVM13は、帯域制限により、空き帯域が80Mbpsである。そこで決定手段16は、VM13の実効帯域を80Mbpsとする。そして決定手段16は、最大の空き帯域である480Mbpsから割り当て済みの帯域である80Mbpsを減算した残りの400Mbpsを、2台のVM11,12に均等に割り当てる。その結果、VM11,12の実効帯域は、共に200Mbpsとなる。この結果、ネットワーク1の性能を最大限利用して通信を行うことができる。
例えば各VM11〜13は、大量のデータを物理ノード2に送信する場合、通知された実効帯域を送信レートとしてデータ送信を行うことで、効率的な通信を実現する。すなわち、VM11〜13が実効帯域を超えた速度でデータを送信すると、パケットロスが発生する。パケットロスが発生すると、パケットの再送などの余分な処理が行われ、データ伝送効率が悪化する。それに対して、各VM11〜13が実効帯域を送信レートとしてデータ送信すれば、パケットのロスが発生しない範囲での最大の速度でデータを転送できる。
なお、分類手段14、測定手段15、および決定手段16は、例えば空き帯域測定装置10が有するプロセッサにより実現することができる。また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、NFVによって仮想化されたVNF間の通信における空き帯域の測定を、効率的に行うものである。
図2は、第2の実施の形態のシステムの構成例を示す図である。図2の例では、ネットワーク20を介して2台の物理ノード100,200が接続されている。ネットワーク20は、例えばWANであり、複数の通信キャリアのネットワークが含まれている。物理ノード100,200は、例えば、仮想化技術により内部に複数のVNFが構築されたコンピュータである。
ネットワーク20には、さらに管理ノード300が接続されている。管理ノード300は、物理ノード100,200上に設けられたVNFを管理するコンピュータである。
図3は、第2の実施の形態に用いる物理ノードのハードウェアの一構成例を示す図である。物理ノード100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、物理ノード100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェースカード(NIC)108a,108bがある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、物理ノード100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、物理ノード100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
NIC108a,108bは、ネットワーク20に接続されている。NIC108a,108bは、ネットワーク20を介して、他の物理ノード200や管理ノード300との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の物理ノード100の処理機能を実現することができる。なお物理ノード200および管理ノード300も、物理ノード100と同様のハードウェアにより実現することができる。また、第1の実施の形態に示した装置も、図3に示した物理ノード100と同様のハードウェアにより実現することができる。
物理ノード100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。物理ノード100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、物理ノード100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また物理ノード100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。同様に、物理ノード200または管理ノード300も、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現することができる。
以上のようなシステムにおいて、物理ノード100内のVNFから物理ノード200内のVNFへデータを送信する際、送信側である物理ノード100内のVNFは、空き帯域が分かれば、その空き帯域を効率的に利用したデータ送信を行うことができる。そこで、物理ノード100と物理ノード200との間で、空き帯域の測定が行われる。このとき、複数のVNFが個別に空き帯域を測定すると、空き帯域測定のための通信により、ネットワークに余分な負荷がかかってしまう。
図4は、各VNFが空き帯域を測定する場合の通信状況の一例を示す図である。NVFのWAN高速化のための、物理ノード100内のVNF111,112,・・・,11nが空き帯域を測定する場合を考える。VNF111,112,・・・,11nは、通信相手の物理ノード200内のVNF211,212,・・・,21nのいずれかに向けたデータ送信を試み、受信側でのデータの受信速度に基づいて、空き帯域を判断する。このとき、空き帯域の測定を各VNF111,112,・・・,11nが個別に実施すると、ネットワーク20に余計な負荷が生じる。
そこで、例えば1台のVNF111が代表して空き帯域を探索し、その空き帯域の情報を、物理ノード100内の全VNF111,112,・・・,11nで共有することが考えられる。しかし、ネットワーク20内では、VNFごとに使用できる帯域に制限が設けられている可能性がある。
図5は、帯域制限機構の一例を示す図である。図5の例では、VNF111に対しては使用できる帯域が制限されていないが、VNF112に対しては使用できる帯域が制限されている。
VNF111が物理ノード200内のVNF211に対して、送信レート「S(bps)」(Sは正の実数)で送信すると、VNF211において受信レート「S」で受信できるものとする。このような送信レート「S」の最大値が、VNF111により測定される空き帯域となる。
VNF112が物理ノード200内のVNF212にデータを送信する場合も、通信経路は、VNF111とVNF211との間の通信と同じであると想定できる。するとVNF112が使用できる帯域に制限がなければ、VNF112から送信レート「S」で送信したデータは、VNF212で受信レート「S」で受信できるはずである。
しかしネットワーク20内での帯域制限機構により使用できる帯域が制限されると、VNF112が送信レート「S」で送信したデータは、例えば送信レート「Sa」(Saは、Sより小さい正の実数)に速度が低下する。帯域制限が複数の箇所で行われていれば、VNF112送信したデータは、例えば送信レート「Sb」(「Sb」は、「Sa」より小さい正の実数)に、さらに速度が低下する。そして、VNF212がデータを受信する際の受信レートは「Sb」となる。この場合、VNF112にとっての空き帯域は、「Sb」となる。
このように帯域制限機構が存在する場合、VNF111で測定した空き帯域を、VNF112が使用できる空き帯域とすることができない。そこで第2の実施の形態では、各物理ノード100,200内に代表測定部を設け、代表測定部が複数のVNFを模倣した通信を行うことで、各VNFが使用できる空き帯域を測定する。このとき代表測定部は、1つのVNFを模倣して測定した空き帯域の情報を有効に利用し、他のVNFの空き帯域の測定を効率的に実施する。これにより、空き帯域測定によるネットワーク20の負荷を軽減できる。
なお帯域制限機構は、例えば伝搬するパケットの送信元アドレスまたは送信元ポート番号に基づいて、そのパケットの送信元が帯域制限対象であるか否かを判断する。そのため、VNFのIPアドレスやポート番号を送信元として用いたパケットを送信することで、VNF以外の要素であってもVNFの空き帯域を測定することができる。
図6は、各ノードの機能を示すブロック図である。物理ノード100は、複数のVNF111,112,・・・,11n、仮想スイッチ120、VNF帯域制御部130、代表測定部140、および記憶部150を有する。
複数のVNF111,112,・・・,11nは、仮想スイッチ120に接続されている。さらに仮想スイッチ120には、VNF帯域制御部130と代表測定部140とが接続されている。
VNF帯域制御部130は、代表測定部140が測定したVNF111,112,・・・,11nごとの空き帯域に基づいて、各VNF111,112,・・・,11nが使用できる最大の帯域を決定する。そしてVNF帯域制御部130は、決定した帯域を、実効帯域として、各VNF111,112,・・・,11nに通知する。
代表測定部140は、VNF111,112,・・・,11nそれぞれを模倣した通信により、VNF111,112,・・・,11nそれぞれの空き帯域を、物理ノード200内の代表測定部240と連携した処理で測定する。代表測定部140は、1つのVNFの空き帯域を測定したら、その測定結果を有効に利用し、他のVNFの空き帯域の測定を効率的に実施する。例えば代表測定部140は、1つのVNFの空き帯域の測定結果が得られたら、次のVNFの空き帯域の測定では、既に得られた測定結果に示される送信レートでデータ送信を開始する。これにより、次のVNFの空き帯域の測定では、短時間で空き帯域を測定できる。
また代表測定部140は、管理ノード300内のコントローラ310から、ネットワーク20に接続された他の物理ノード200やその物理ノード200内で動作しているVNF211,212,・・・,21nの情報を取得する。そして代表測定部140は、コントローラ310から取得した情報を、記憶部150に格納する。
記憶部150は、ネットワーク20を介したVNF間の接続関係や、空き帯域の測定結果を記憶する。記憶部150は、例えばメモリ102またはストレージ装置103内の一部の記憶領域である。
物理ノード200は、複数のVNF211,212,・・・,21n、仮想スイッチ220、VNF帯域制御部230、代表測定部240、および記憶部250を有する。物理ノード200内の各要素は、物理ノード100内の同名の要素と同じ機能を有している。
管理ノード300は、コントローラ310と記憶部320とを有する。コントローラ310は、物理ノード100,200と各物理ノード100,200で動作するVNF111,112,・・・,11n,211,212,・・・,21nの状態を管理する。そして管理ノード300は、最新の状態を、各物理ノード100,200の代表測定部140,240に通知する。記憶部320は、コントローラ310が管理している情報を記憶する。
なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図6に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
図6に示した構成のシステムにより、物理ノード100内の代表測定部140と物理ノード200内の代表測定部240とによって、空き帯域が測定される。空き帯域の測定では、例えば代表測定部140から代表測定部240へ、異なる送信レートで繰り返しデータが送信される。そして代表測定部140が、データの送信レートと受信レートとを比較することで、二分探索により空き帯域を測定する。二分探索による空き帯域の測定は、例えば「Pathload」と呼ばれるソフトウェアを利用して実施できる。
図7は、空き帯域探索方法の一例を示す図である。図7に示すように代表測定部140が送信レート「S」でデータを送信すると、そのデータはネットワーク20を介して代表測定部240で受信される。このときの代表測定部240での受信レートを「P」(Pは0以上のS以下の実数)とする。代表測定部240は、受信レート「P」を代表測定部140に通知する。代表測定部140は、取得した受信レートに基づいて、次に送信するデータの送信レート「S」を決定する。例えば代表測定部140は、二分探索により、送信レート「S」を決定する。以下、二分探索を行う場合における空き帯域探索の手順を具体的に説明する。
代表測定部140は、最初のデータ送信における送信レート「S」をランダムに決定する。そして代表測定部140は、決定したデータ送信レート「S」でデータを送信する。すると受信側の代表測定部240により受信レート「P」が測定される。代表測定部240は、測定した受信レート「P」を、送信側の代表測定部140に通知する。
代表測定部140は、送信レート「S」と受信レート「P」との大小関係を比較し、次のデータ送信における送信レートを決定する。次のデータ送信の送信レートは、二分探索範囲内の未探索の範囲から決定される。未探索範囲は、二分探索範囲のうちの、空き帯域を含まないことが未確認の範囲である。例えば二分探索範囲は、予め探索最小値と探索最大値とが決められているものとする。そして二分探索範囲内で、それまでのデータ送信で使用した送信レートのうち、「送信レート≦受信レート」となった送信レートの最大値以上で、「送信レート>受信レート」となった送信レートの最小値以下の範囲が、未探索の範囲となる。
代表測定部140は、「送信レート>受信レート」であれば、前回のデータ送信の送信レート「S」よりも低い送信レートを、次回のデータ送信の送信レートとする。例えば代表測定部140は、未探索の範囲の最大値と、前回の送信レートとの中間(平均値)を、次回の送信レートとする。
また代表測定部140は、「送信レート≦受信レート」であれば、前回のデータ送信の送信レート「S」よりも高い送信レートを、次回のデータ送信の送信レートとする。例えば代表測定部140は、未探索の範囲の最小値と、前回の送信レートとの中間(平均値)を、次回の送信レートとする。
代表測定部140は、送信レートを変えながら、データ送信を繰り返し行い、例えば、未探索の範囲の幅が探索終了閾値未満になったときに、探索を終了する。そして代表測定部140は、探索を終了したときの未探索の範囲の最小値を空き帯域と判定する。
ここで、図7のグラフの目標として示している送信レートが、空き帯域であるものとする。送信レートが空き帯域の値以下であれば、「送信レート≦受信レート」となる。また送信レートが空き帯域の値より高ければ、「送信レート>受信レート」となる。
例えば代表測定部140は、最初に二分探索範囲の最小値を送信レート「S1」としてデータ送信を行う。すると「送信レート≦受信レート」となる。次に代表測定部140は、二分探索範囲の最大値を送信レート「S2」として、データ送信を行う。すると「送信レート>受信レート」となる。次に代表測定部140は、二分探索範囲の最小値と最大値との平均値を送信レート「S3」として、データ送信を行う。すると「送信レート≦受信レート」となる。この場合、送信レート「S1」以上、送信レート「S3」未満の範囲は、空き帯域の値が含まれないことが判明する。すると未探索の範囲は、送信レート「S3」以上、送信レート「S2」未満の範囲である。
次に代表測定部140は、未探索の範囲の最小値と最大値との中間(平均値)を送信レート「S4」として、データ送信を行う。すると「送信レート>受信レート」となる。この場合、送信レート「S4」以上、送信レート「S2」以下の範囲は、空き帯域の値が含まれないことが判明する。すると未探索の範囲は、送信レート「S3」以上、送信レート「S4」未満の範囲である。
このように二分探索では、送信レートを変えてデータ送信を行うごとに、未探索の範囲が狭まっていく。そして、未探索の範囲が十分に狭くなり探索終了閾値未満になったとき、未探索の範囲内の最小値が、空き帯域と判定される。
代表測定部140は、図7に示した空き帯域探索を、物理ノード100内のVNF111,112,・・・11nを模倣して実施する。例えば代表測定部140は、VNF111を模倣する場合、送信するパケットの送信元アドレスとしてVNF111のIP(Internet Protocol)アドレスを用い、送信元ポート番号としてVNF111のポート番号を用いる。そして代表測定部140は、例えばVNF111を模倣した空き帯域測定が終了すると、VNF112を模倣した空き帯域測定を開始する。このとき代表測定部140は、VNF111を模倣した空き帯域測定の測定結果を有効に利用して、VNF112を模倣した空き帯域測定を効率的に実施する。
図8は、前の測定結果の有効利用の一例を示す図である。例えば代表測定部140は、空き帯域の全測定時間を、測定対象となるVNFの数分のタイムスロットに分ける。そして代表測定部140は、各タイムスロットにおいて、特定のVNFの通信情報(IPアドレス、ポート番号)を模倣したパケットによりデータ送信を行い、そのVNFに対応する空き帯域を測定する。
例えばn個(nは2以上の整数)のVNFの空き帯域を測定するとき、代表測定部140は、全測定時間をn個のタイムスロットに分ける。そして最初のタイムスロット「Time slot(0)」において、VNF(A)の通信情報を模倣して空き帯域を測定する。空き帯域の測定では、異なる送信レートでデータを送信することによる、そのデータの受信レートの観測と、観測結果を用いた空き帯域の結果判定とが、タイムスロット内の時間で行われる。
そして代表測定部140は、前のタイムスロットの空き帯域測定結果を有効に利用して、後のタイムスロットの空き帯域測定を行う。例えばTime slot(n)の観測の初期送信レート「S」をランダムに選択せずに、直前のTime slot(n-1)の測定結果として得られた空き帯域を、初期の送信レート「S」として選択する。これにより、ランダムに選択された送信レート「S」より、観測時間とパケット数を減らすことが可能となる。
例えば、前のタイムスロットで測定された空き帯域を初期の送信レート「S1」として最初のデータ送信を行ったときに「送信レート≦受信レート」であれば、前のタイムスロットと同じ測定結果となる可能性がある。この場合、代表測定部140は、送信レート「S1」より探索終了閾値だけ早い送信レートを、次回の送信レート「S2」としてもよい。送信レート「S2」でデータ送信を行ったときに「送信レート>受信レート」であれば、代表測定部140は、前のタイムスロットと同じ空き帯域を、今回のタイムスロットの空き帯域と判定する。
前のタイムスロットでの測定結果を有効利用する場合、2番目以降のタイムスロットの時間を、1番目のタイムスロットの時間よりも短くしてもよい。また代表測定部140は、空き帯域の測定が終了した場合には、タイムスロットの時間が余っていても、次のタイムスロットの処理に移行する。
なお、直前のTime slot(n-1)の測定結果を利用するのではなく、既に測定されている空き帯域のうちの最大値を利用してもよい。すなわち、既に測定されている空き帯域のうちの最大値は、帯域制限を受けない場合の空き帯域と考えられる。そのため、次に空き帯域の測定対象となるVNFが帯域制限を受けていなければ、既に測定されている空き帯域のうちの最大値を送信レートの初期値とすることで、測定時間の短縮が可能である。
代表測定部140,240による空き帯域の測定は、VNF帯域制御部130からの指示に従って行われる。例えばVNF帯域制御部130から代表測定部140へ、伝送スケジュールが渡される。伝送スケジュールには、空き帯域測定対象のVNFの指定と、全測定時間をどのようにタイムスロットに分けるのかが指定されている。VNF帯域制御部130は、空き帯域の調査タイミングであると判断したときに伝送スケジュールを作成し、代表測定部140にその伝送スケジュールを送信する。
なおVNF帯域制御部130が空き帯域の調査タイミングであると判断するのは、例えばいずれかのVNFから空き帯域調査依頼を受信したときである。またVNF帯域制御部130は、前回の空き帯域の調査から所定の時間が経過したら、空き帯域の調査タイミングであると判断してもよい。
図9は、VNFからの依頼に応じた空き帯域の判定処理の一例を示すシーケンス図である。空き帯域の調査に先立ち、管理ノード300のコントローラ310が、各物理ノード100,200へ、物理ノード100,200内の存在する各VNFの通信情報を送信する(ステップS101)。その後、図9の例では、物理ノード100内のVNF111,112,・・・,11nが、空き帯域調査依頼を出力する(ステップS102)。空き帯域調査依頼は、VNF帯域制御部130に送られる。VNF帯域制御部130は、例えば、最初の空き帯域調査依頼を受信すると、所定時間だけ、他の空き帯域調査依頼を待つ。そして所定時間経過後、VNF帯域制御部130は、最初に受信した空き帯域調査依頼と、待っている間に送られた空き帯域調査依頼とを処理するための伝送スケジュールを決定する(ステップS103)。伝送スケジュールには、どのVNFから順に帯域の測定を行うのかが示されている。VNF帯域制御部130は、決定した伝送スケジュールを代表測定部140に送信する(ステップS104)。代表測定部140は、受信した伝送スケジュールを物理ノード200の代表測定部240に送信する(ステップS105)。
物理ノード200では、伝送スケジュールを受信した代表測定部240が、その伝送スケジュールをVNF帯域制御部230に送信する(ステップS106)。VNF帯域制御部230は、受信した伝送スケジュールをメモリなどの記録媒体に記録する(ステップS107)。
その後、送信側の代表測定部140は、伝送スケジュールに示される最初のVNFの通信情報を模倣して、二分探索手順に沿って決めた送信レートでデータを送信する(ステップS108)。受信側の代表測定部240は、送信されたデータの受信レートを送信側の代表測定部140に通知する(ステップS109)。その後、送信側の代表測定部140によるデータ送信と、受信側の代表測定部240による受信レートの通知とが繰り返される。そして伝送スケジュールに沿った順番で、VNFごとの空き帯域が測定されていく。そして代表測定部140による、最後に測定するVNFを模倣したデータ送信(ステップS110)と、そのデータ送信に対する、代表測定部240による受信レート通知(S111)とが行われる。これによりVNF111,112,・・・,11nそれぞれの空き帯域の測定が終了する。
なお代表測定部140は、VNFを模倣したデータ送信を実施している間は、空き帯域調査依頼を送信したVNFによる物理ノード200へのデータ送信を停止させる。これによりVNFを模倣したデータ送信して空き帯域を測定している間に、VNFによるデータ送信が、空き帯域を変化させてしまうことを抑止できる。
空き帯域の測定が終了すると、代表測定部140は、測定結果をVNF帯域制御部130に通知する(ステップS113)。VNF帯域制御部130は、各VNF111,112,・・・,11nそれぞれの空き帯域の測定結果に基づいて、VNF111,112,・・・,11nそれぞれの割り当て帯域を決定する(ステップS114)。例えばVNF帯域制御部130は、すべてのVNF111,112,・・・,11nの空き帯域が同じであれば、その空き帯域のVNF数で除算した値を、VNF111,112,・・・,11nそれぞれに割り当てる帯域とする。VNF帯域制御部130は、各VNF111,112,・・・,11nそれぞれに対して、決定した割り当て帯域を、そのVNFが使用できる空き帯域として通知する(ステップS115)。通知を受けた各VNF111,112,・・・,11nは、以後、通知された空き帯域を上限とした送信レートで、データ送信を行う。
図10は、周期的に空き帯域の判定処理を行う例を示すシーケンス図である。図10に示す処理のうち、図9と同じ処理には同じステップ番号を付与している。以下、図10の処理では、図9のステップS102の処理に代えて、VNF帯域制御部130が、周期的に空き帯域の調査開始を決定する(ステップS102a)。この場合、VNF帯域制御部130は、空き帯域調査開始タイミングになると、物理ノード100内のすべてのVNF111,112,・・・,11nを対象とした空き帯域の測定を開始する。
なお代表測定部140は、VNFを模倣したデータ送信を実施している間は、すべてのVNFによる物理ノード200へのデータ送信を停止させる。
このように、空き帯域の測定は、送信側と受信側の物理ノード100,200それぞれのVNF帯域制御部130,230と代表測定部140,240との連携処理で実現される。VNF帯域制御部130,230と代表測定部140,240とは、例えば物理ノード100,200のホストOS内に設けられる。
図11は、物理ノードのソフトウェアの実装例を示す図である。VNFを動作させる物理ノード100に実装されるソフトウェアは、物理ノード100のハードウェアを制御するOS側と、OS上で管理されるソフトウェアを含むユーザ側とに分かれる。
OS側のソフトウェアにより、仮想スイッチ120、VNF帯域制御部130、代表測定部140、およびOSモジュール170が実現される。OS側のソフトウェアは、NIC108a,108bを利用して、ネットワーク20経由の通信を行う。
ユーザ側のソフトウェアは、ホスト側とゲスト側とに分かれる。ホスト側には、複数のアプリケーション(App.)161,162,・・・,16nが含まれる。ゲスト側で動作するソフトウェアにより、複数のOS181,182,・・・,18nと、各OS181,182,・・・,18n上で動作するVNF111,112,・・・,11nとの機能が実現される。
図11には物理ノード100のソフトウェアの実装例を示したが、物理ノード200にも同様の構成でソフトウェアが実装されている。
次に物理ノード100内のVNF111,112,・・・,11nの帯域制御を行うために、各ノード内の要素間で送受信される情報について説明する。
図12は、各ノード内の要素間で送受信される情報を示す図である。なお図12は、要素間で送受信される情報の一部を示すものであり、図12に示した情報以外にも送受信される情報は存在する。
管理ノード300の記憶部320(図6参照)には、ノード管理テーブル321が格納されている。ノード管理テーブル321は、システム内で通信を行う各要素の通信情報を記憶するデータテーブルである。ノード管理テーブル321には、システム内のすべての物理ノード100,200それぞれが通信のために使用する情報が、通信情報として記憶される。ノード管理テーブル321に記憶される通信情報には、物理ノード100,200自身が通信するための通信情報と、物理ノード100,200内のVNFが通信するための通信情報とが含まれる。
物理ノード100内の記憶部110(図6参照)には、物理フローテーブル151、グループ管理テーブル152、および帯域観測テーブル153が格納されている。
物理フローテーブル151は、各物理ノード100,200内の仮想スイッチ120,220間の通信接続(物理フロー)に関する情報を記憶するデータテーブルである。
グループ管理テーブル152は、同じ物理ノード内のVNFを通信相手とする物理ノード100内のVNFのグループを記憶するデータテーブルである。VNFのグループは、VNFの通信情報を基に生成される。
帯域観測テーブル153は、各VNFが利用可能な帯域(利用可能帯域)を記憶するデータテーブルである。各VNFの利用可能帯域は、空き帯域の測定結果から算出される。
物理ノード200内の記憶部210(図6参照)にも、物理フローテーブル251、グループ管理テーブル252、および帯域観測テーブル253が格納されている。これらのテーブルには、それぞれ物理フローテーブル151、グループ管理テーブル152、および帯域観測テーブル153と同種の情報が格納される。
物理ノード100が有するNIC108a,108bは、観測用と管理用とに用途が分けられている。観測用のNIC108aは、空き帯域測定のためのパケット送信に使用される。管理用のNIC108bは、伝送スケジュールの送信や受信レートの受信など、VNF帯域制御のための物理ノード200との連携に利用する情報の送受信に使用される。
物理ノード200が有するNIC208a,208bも同様に、観測用と管理用とに用途が分けられている。観測用のNIC208aは、空き帯域測定のためのパケット受信に使用される。管理用のNIC208bは、伝送スケジュールの受信や受信レートの送信など、VNF帯域制御のための物理ノード100との連携に利用する情報の送受信に使用される。
管理ノード300内のコントローラ310は、ノード管理テーブル321から通信情報を取得し、その通信情報を物理ノード100,200に送信する。通信情報は、管理用のNIC108b,208bで受信される。受信された通信情報は、代表測定部140,240を経由して、VNF帯域制御部130,230に転送される。VNF帯域制御部130,230は受信した通信情報の少なくとも一部を、物理フローテーブル151,251またはグループ管理テーブル152,252に格納する。
物理ノード100のVNF帯域制御部130は、伝送スケジュールを決定した際には、その伝送スケジュールを代表測定部140に送信する。代表測定部140は、グループ管理テーブル152からグループ情報を収集し、伝送スケジュールによる空き帯域測定対象のVNFが同一グループに属することを確認する。また代表測定部140は、NIC108bを介して、伝送スケジュールを物理ノード200に送信する。送信された伝送スケジュールは物理ノード200のNIC208bを介して、代表測定部240で受信される。代表測定部240は、受信した伝送スケジュールをVNF帯域制御部230に送信する。VNF帯域制御部230は、伝送スケジュールを受信すると、例えば伝送スケジュールに示される通信の相手が、物理ノード200内のVNFであることを確認する。
伝送スケジュールを受信した代表測定部140は、空き帯域測定の時間帯を複数のタイムスロットに分けて、タイムスロットごとに、VNF111,112,・・・,11nのいずれかの通信情報を模倣したパケットを、NIC108aを介して送信する。パケットは、ネットワーク20を介して物理ノード200に伝送される。そしてパケットは物理ノード200の代表測定部240で受信される。代表測定部240は、受信したパケットに基づいてパケットの受信レートを測定する。代表測定部240は、測定した受信レートを、NIC208bを介して物理ノード100に送信する。受信レートは、物理ノード100の代表測定部140で受信される。代表測定部140は、取得した受信レートに基づいてVNF111,112,・・・,11nそれぞれを模倣したときの空き帯域を測定し、帯域観測テーブル153に格納する。
空き帯域の測定が終了すると、代表測定部140は、測定結果をVNF帯域制御部130に通知する。VNF帯域制御部130は、測定結果に基づいて、各VNF111,112,・・・,11nそれぞれが利用可能な帯域幅(実効帯域)を決定する。なおVNF帯域制御部130は、測定結果の詳細情報は、例えば帯域観測テーブル153から収集することができる。VNF帯域制御部130は、決定した実効帯域を、各VNF111,112,・・・,11nに通知する。
次に、各ノードが有する機能を、さらに詳細に説明する。まず管理ノード300内のコントローラ310の機能について詳細に説明する。
図13は、管理ノードのコントローラの機能を示すブロック図である。コントローラ310は、通信部311、ノードテーブル操作部312、メッセージ生成部313、およびレコード削除部314を有する。
通信部311は、物理ノード100,200とコントローラ310との間の通信メッセージの送受信を行う。例えば通信部311は、ネットワーク20を介してVNFや物理ノードに関する最新情報を受信する。例えば通信部311は、現在動作中の物理ノード100,200の通信情報や、物理ノード100,200で動作中のVNFの通信情報を受信する。通信部311は、受信した最新情報を、ノードテーブル操作部312に送信する。
ノードテーブル操作部312は、物理ノード100,200からのメッセージ内のフラグをみて、ノード管理テーブル321を用いて、物理ノードおよびVNFを管理する。物理ノード100,200から受信したVNFに関するメッセージには、例えば、「D(Delete)」、「U(Update)」、「I(Insert)」のいずれかの値のフラグが含まれる。「D」は、対応するVNFが削除されたことを意味する。「U」は、対応するVNFに関する情報が更新されたことを意味する。「I」は、対応するVNFが追加されたことを意味する。例えばノードテーブル操作部312は、受信した最新情報を、ノード管理テーブル321に格納する。またノードテーブル操作部312は、ノード管理テーブル321を更新したとき、更新されたことをメッセージ生成部313に通知する。
メッセージ生成部313は、ノードテーブル操作部312から情報更新の通知を受けると、更新された情報を各物理ノード100,200に渡すためのメッセージを生成して、そのメッセージを通信部311に渡す。例えばメッセージ生成部313は、ノード管理テーブル321が更新されると、最新情報をノード管理テーブル321から取得する。メッセージ生成部313は、取得した情報に基づいて、最新の物理ノードおよびVNFに関する通信情報を各物理ノード100,200に送信するメッセージを生成する。そしてメッセージ生成部313は、生成したメッセージを、通信部311を介して物理ノード100,200に送信する。また、メッセージ生成部313は、メッセージ生成が終了すると、メッセージの生成が終了したことをレコード削除部314に通知する。
レコード削除部314は、メッセージ生成部313によるメッセージの生成が終了すると、最新情報では存在していないVNFに関する情報を、ノード管理テーブル321から削除する。例えばレコード削除部314は、フラグが「D」のレコードを、ノード管理テーブル321から削除する。
次に、送信側の物理ノード100内のVNF帯域制御部130の機能について詳細に説明する。
図14は、送信側のVNF帯域制御部の機能を示すブロック図である。VNF帯域制御部130は、VNF情報収集部131、VNFインタフェース132、VNFグループ管理部133、空き帯域測定タイマ134、伝送スケジュール決定部135、レート制限判断部136、およびVNF帯域通知部137を有する。
VNF情報収集部131は、VNF111,112,・・・,11nの状態を監視する。VNF情報収集部131は、いずれかのVNFの状態が更新されると、更新情報のパケットを生成する。生成するパケットには、更新後のVNFの状態を示すフラグが含まれる。例えばVNF情報収集部131は、VNFが削除されたのであれば、フラグの値を「D(Delete)」とする。またVNF情報収集部131は、VNFの状態が更新されたのであれば、フラグの値を「U(Update)」とする。またVNF情報収集部131は、VNFが追加されたのであれば、フラグの値を「I(Insert)」とする。VNF情報収集部131は、生成したメッセージを、VNFインタフェース132経由でコントローラ310に送信する。
VNFインタフェース132は、代表測定部140との間のメッセージの送受信を行う。例えばVNFインタフェース132は、代表測定部140に伝送スケジュールを送信する。またVNFインタフェース132は、代表測定部140から帯域測定結果を受信する。
VNFグループ管理部133は、コントローラ310から送られるVNFの通信情報を取得し、同じ物理フローを使用するVNF同士を同じグループにグループ化する。そしてVNFグループ管理部133は、生成したグループと、そのグループに属するVNFの情報を、グループ管理テーブル152に格納する。
空き帯域測定タイマ134は、周期的に空き帯域を測定する場合の、空き帯域の測定タイミングを計るタイマである。例えば空き帯域測定タイマ134は、空き帯域の測定が実施されると時間の計測を開始し、計測時間が所定の値に達すると、空き帯域の測定タイミングになったことを、伝送スケジュール決定部135に通知する。
伝送スケジュール決定部135は、同じグループに属するVNFの通信情報を基に、タイムスロット単位でどの順番でVNFの空き帯域探索を行うのかを決定する。そして伝送スケジュール決定部135は、決定した順番を伝送スケジュールとして、VNFインタフェース132を介して代表測定部140に送信する。
レート制限判断部136は、空き帯域の測定結果から、帯域制限機構で制限を受けるVNFのフローを検出する。レート制限判断部136は、帯域制限を受けているVNFを示す情報を、VNF帯域通知部137に送信する。
VNF帯域通知部137は、空き帯域の測定結果に基づいて、各VNF111,112,・・・,11nの利用可能な帯域を、そのVNFの実効帯域として決定する。そしてVNF帯域通知部137は、VNFインタフェース132を介して、各VNF111,112,・・・,11nそれぞれに対して、実効帯域を通知する。
次に送信側の物理ノード100内の代表測定部140の機能について詳細に説明する。
図15は、送信側の代表測定部の機能を示すブロック図である。代表測定部140は、通信部141、帯域結果操作部142、送信レート決定部143、通信情報模倣部144、観測タイマ145、パケット生成部146、パケット識別値設定部147、および測定用パケット送信部148を有する。
通信部141は、受信側の物理ノード200の代表測定部240と通信をする。例えば通信部141は、VNF帯域制御部130から送られた伝送スケジュールを、NIC108bを介して代表測定部240に送信する。また通信部141は、伝送スケジュールを送信レート決定部143に送信する。通信部141は、受信側の代表測定部240から受信レートを受信すると、その受信レートを帯域結果操作部142に送信する。
帯域結果操作部142は、受信側の物理ノード200から送られた受信レートに基づいて空き帯域を測定し、空き帯域の測定結果を帯域観測テーブル153に格納する。また帯域結果操作部142は、受信レートを送信レート決定部143に送信する。さらに帯域結果操作部142は、測定対象のすべてのVNFの空き帯域の測定が終了すると、測定結果をVNF帯域制御部130に送信する。
送信レート決定部143は、帯域結果操作部142から送られた受信レートに基づいて、次のデータ送信の送信レートを決定する。送信レート決定部143は、決定した送信レートを通信情報模倣部144に送信する。
通信情報模倣部144は、パケットに設定する通信情報を、空き帯域の測定対象となるVNFの通信情報に変換する。通信情報模倣部144は、パケットに設定する通信情報と送信レートの指定情報とを、観測タイマ145に送信する。
観測タイマ145は、時分割したタイムスロット用のタイマである。観測タイマ145は、空き帯域を測定中のVNFに与えられたタイムスロットの時間を計測し、タイムスロットの時間が伝送スケジュールで定めた時間に達すると、そのVNFの空き帯域の測定を終了させる。
パケット生成部146は、通信情報を模倣したパケットを生成する。パケット生成部146は、生成したパケットをパケット識別値設定部147に送信する。
パケット識別値設定部147は、空き帯域測定用のパケットであることを示す識別値を、パケットに設定する。例えばパケット識別値設定部147は、パケットのDSCP(Differentiated Services Code Point)またはCoS(Class of Service)に、所定の識別値を設定する。
測定用パケット送信部148は、空き帯域測定用のパケットを、送信レート決定部143で決定された送信レートで送信する。
次に受信側の物理ノード200のVNF帯域制御部230の機能について説明する。
図16は、受信側のVNF帯域制御部の機能を示すブロック図である。VNF帯域制御部230は、VNF情報収集部231、VNFインタフェース232、およびVNFグループ管理部233を有する。VNF帯域制御部230内の各要素は、送信側のVNF帯域制御部130内の同名の要素と同じ機能を有している。
次に受信側の物理ノード200の代表測定部240の機能について説明する。
図17は、受信側の代表測定部の機能を示すブロック図である。代表測定部240は、パケット識別部241、受信レート計算部242、帯域結果操作部243、および通信部244を有する。
パケット識別部241は、空き帯域測定用のパケットを識別する。例えばパケット識別部241は、受信したパケットのDSCPまたはCoSに、空き帯域測定用のパケットであることを示す識別値が設定されているかどうかにより、空き帯域測定用のパケットを識別する。
受信レート計算部242は、単位時間内に受信したパケット数を数えて、受信レートを計算する。受信レート計算部242は、計算した受信レートを帯域結果操作部243と通信部244とに通知する。
帯域結果操作部243は、取得した受信レートに基づいて空き帯域を測定し、空き帯域の測定結果を帯域観測テーブル253に格納する。受信側で空き帯域を測定する場合、例えば帯域結果操作部243は、同じタイムスロットで受信したデータの受信レートの最大値を、そのタイムスロットでの測定対象のVNFの空き帯域とする。
通信部244は、受信レート計算部242から取得した受信レートを、物理ノード100に送信する。また通信部244は、受信側で空き帯域を測定した場合、その測定結果を帯域観測テーブル253から読み込み、測定結果を物理ノード100に送信する。また通信部244は、送信側から送られた伝送スケジュールを受信すると、その伝送スケジュールをVNF帯域制御部230に送信する。
なお、図13〜図17に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図13〜図17に示した各要素は、その要素に対応するプログラムモジュールを物理ノード100,200または管理ノード300に実行させることで実現することができる。
次に図18〜図21を参照して、各ノードが有するデータテーブルについて、具体的に説明する。
図18は、ノード管理テーブルの一例を示す図である。ノード管理テーブル321には、各仮想スイッチ間の通信における接続ポートの情報が、通信情報として記憶されている。例えばノード管理テーブル321には、物理ノードごとのテーブル321a,321b,・・・,321nが設けられている。各テーブル321a,321b,321nには、ID、TYPE、S_IP、R_IP、S_PORT、R_PORT、PROTOCOL、およびFLAGの欄が設けられている。
IDの欄には、通信情報の識別子(ID)が設定される。
TYPEの欄には、物理インタフェースの通信を示す通信情報なのか、VNFの通信を示す通信情報なのかが設定される。物理インタフェースの通信であれば、TYPEの欄に「PHY」と設定される。VNFの通信であれば、TYPEの欄に「VNF」と設定される。
S_IPの欄には、送信側のIPアドレスが設定される。R_IPの欄には、受信側のIPアドレスが設定される。
S_PORTの欄には、送信側のポート番号が設定される。R_PORTの欄には、受信側のポート番号が設定される。
PROTOCOLの欄には、通信に利用される通信プロトコルを示す値が設定される。例えばUDPが利用される場合、PROTOCOLの欄にUDPを示す値「17」が設定される。
FLAGの欄には、レコードに示される通信情報の最新状態を示すフラグが設定される。例えば通信情報の対象となっているVNFが存在しなくなった場合、FLAGの欄に「D」が設定される。また通信情報の対象となっているVNFの通信情報が更新された場合、FLAGの欄に「U」が設定される。また通信情報の対象となっているVNFが新たに追加された場合、FLAGの欄に「I」が設定される。
S_IP、R_IP、S_PORT、R_PORT、PROTOCOL、およびFLAGの欄に設定された値の組が、IDで示される通信の通信情報である。
図19は、物理フローテーブルの一例を示す図である。物理フローテーブル151には、各仮想スイッチ間の通信で使用する物理的な接続ポートの情報が、通信情報として記憶されている。物理フローテーブル151には、PHY_ID、PHY_S_IP、PHY_R_IP、PHY_S_PORT、PHY_R_PORT、およびPHY_PROTOCOLの欄が設けられている。
PHY_IDの欄には、仮想スイッチが物理ポート間の通信情報を利用するためのIDが設定される。
PHY_S_IPの欄には、送信側のIPアドレスが設定される。PHY_R_IPの欄には、受信側のIPアドレスが設定される。
PHY_S_PORTの欄には、送信側のポート番号が設定される。
PHY_R_PORTの欄には、受信側のポート番号が設定される。
PHY_PROTOCOLの欄には、通信に利用される通信プロトコルを示す値が設定される。例えばUDPが利用される場合、PROTOCOLの欄にUDPを示す値「17」が設定される。
PHY_S_IP、PHY_R_IP、PHY_S_PORT、PHY_R_PORT、およびPHY_PROTOCOLの欄に設定された値の組が、IDで示される物理ポート間の通信の通信情報(物理通信情報)である。
図20は、グループ管理テーブルの一例を示す図である。グループ管理テーブル152には、VNF間の通信フローを示す通信情報と、その通信フローが属するグループの情報が記憶される。グループ管理テーブル152には、Group_ID、VNF_ID、PHY_ID、Actual_BW、VNF_S_IP、VNF_R_IP、VNF_S_PORT、VNF_R_PORT、およびVNF_PROTOCOLの欄が設けられている。
Group_IDの欄には、同じ物理フローを利用するVNFを識別するためのグループを識別するグループIDが設定される。図20の例では、上から2つ目と3つ目の通信情報が、同じグループに属している。同じグループに属する通信情報は、利用する物理フローが共通であり、PHY_IDの欄に設定されている値が同じである。
VNF_IDの欄には、各VNFに割り当てたIDが設定される。
PHY_IDの欄には、物理フローテーブル151にある通信情報を利用するためのIDが設定される。
Actual_BWの欄には、VNFに通知する実効帯域が設定される。
VNF_S_IPの欄には、送信側のIPアドレスが設定される。
VNF_R_IPの欄には、受信側のIPアドレスが設定される。
VNF_S_PORTの欄には、送信側のポート番号が設定される。
VNF_R_PORTの欄には、受信側のポート番号が設定される。
VNF_PROTOCOLの欄には、通信に利用される通信プロトコルを示す値が設定される。例えばUDPが利用される場合、PROTOCOLの欄にUDPを示す値「17」が設定される。
VNF_S_IP、VNF_R_IP、VNF_S_PORT、VNF_R_PORT、およびVNF_PROTOCOLに設定された値の組が、VNF間の通信フローを示す通信情報である。
図21は、帯域観測テーブルの一例を示す図である。帯域観測テーブル153には、各VNFのフローの空き帯域の測定結果が記憶される。帯域観測テーブル153には、Time slot、Time、FLOW_ID、PACKET_ID、およびABWの欄が設けられている。
Time slotの欄には、タイムスロットの識別番号が設定される。
Timeの欄には、マイクロ秒単位までの観測日時が設定される。
FLOW_IDの欄には、フローを識別するためのVNF_IDが設定される。
PACKET_IDの欄には、各タイムスロットに割り当てたDSCPまたはCoSの値が設定される。
ABWの欄には、VNFのフローに対する空き帯域の測定結果が設定される。
図18〜図21に示した各データテーブルを用いて、VNFの空き帯域の測定と、測定結果に基づく各VNFの実効帯域の決定が行われる。
なお、各物理ノード100,200が実施する通信に関する通信情報は、まず管理ノード300に集約される。例えば各物理ノード100,200から管理ノード300へ、最新の通信情報を含むパケットが送信される。
図22は、物理ノードが通信情報を送信するときのパケットフォーマットの一例を示す図である。パケットには、宛先アドレス(Destination Address)、送信元アドレス(Source Address)、パケット長(Length)、BPDU(Bridge Protocol Data Unit)、およびフレームチェックシーケンス(Frame Check Sequence)のフィールドが設けられている。物理ノード100,200は、例えばBPDUのフィールドに、通信のTYPE(PHYまたはVNF)、通信情報、およびFLAGを設定したパケットを、管理ノード300に送信する。
管理ノード300で収集した通信情報が、図18に示したノード管理テーブル321で管理される。そして管理ノード300から各物理ノード100,200に通信情報が配布される。
図23は、管理ノードが通信情報を送信するときのパケットフォーマットの一例を示す図である。管理ノードが通信情報を送信するときのパケットフォーマットの構成は、図22と同様である。管理ノード300は、例えばBPDUのフィールドに、通信のTYPE(PHYまたはVNF)と通信情報を設定したパケットを、物理ノード100,200に送信する。
通信情報を物理ノード100,200に配布することで、各物理ノード100,200において最新の通信情報を保持することができる。そして、物理ノード100,200は、所定のタイミングで、VNFの通信情報を模倣して、空き帯域を測定する。
空き帯域の測定は伝送スケジュールに従って実施される。伝送スケジュールは、送信側の物理ノード100で生成され受信側の物理ノード200に送られる。これにより、空き帯域の測定を行う双方の物理ノード100,200で、伝送スケジュールが共有される。
図24は、伝送スケジュールの一例を示す図である。伝送スケジュール31には、測定対象のVNFごとに、Group_ID、DSCP(またはCoP)、VNF_S_IP、VNF_R_IP、VNF_S_PORT、VNF_R_PORT、およびVNF_PROTOCOLが設定されている。
Group_IDは、測定対象のVNFが属するグループのグループIDである。DSCPは、各VNFの空き帯域測定のために送信するパケットのDSCPの値である。VNF_S_IPは、送信側のVNFのIPアドレスである。VNF_R_IPは、受信側のVNFのIPアドレスである。VNF_S_PORTは、送信側のVNFのポート番号である。VNF_R_PORTは、受信側のVNFのポート番号である。VNF_PROTOCOLは、VNFが通信に使用する通信プロトコルを示す値である。
物理ノード100は、図24に示したような伝送スケジュールを含むパケットを、物理ノード200に送信する。
図25は、伝送スケジュール送信用のパケットフォーマットの一例を示す図である。伝送スケジュール送信用のパケットフォーマットの構成は、図22と同様である。送信側の物理ノード100は、例えばBPDUのフィールドに伝送スケジュールを設定したパケットを、受信側の物理ノード200に送信する。
伝送スケジュールの送信後、物理ノード100は、空き帯域測定のため、VNFの通信情報を模倣したパケットを送信する。
図26は、空き帯域測定用パケットの一例を示す図である。空き帯域測定用のパケットは、TCPヘッダとIPヘッダを含んでいる。TCPヘッダの送信元ポート番号のフィールドには、測定対象のVNFのポート番号が設定される。IPヘッダのDSCPのフィールドには、測定対象のVNF用の、空き帯域測定を示す識別値が設定される。IPヘッダのプロトコルのフィールドには、測定対象のVNFが通信に使用するプロトコルの番号が設定される。IPヘッダの送信元IPアドレスのフィールドには、測定対象のVNFのIPアドレスが設定される。
物理ノード100において、代表測定部140が図26に示したパケットを生成することで、測定対象のVNFを模倣した通信を行うことができる。その結果、そのVNFがネットワーク20上で帯域制限を受ける場合、模倣した通信についても帯域が制限される。
なお空き帯域測定用のパケットであることを示す識別値は、DSCPではなく、CoSに設定することもできる。
図27は、空き帯域測定用のパケットであることを示す識別値をCoSに設定する例を示す図である。例えばタグVLANを使用する場合、パケットを送信するフレームにVLAN Tagのフィールドが設けられる。そのフィールドにはCoSビット(3ビット)が含まれる。このCoSビットに空き帯域測定を示す識別値が設定される。
物理ノード100は、例えば図26に示すようなパケットを、送信レートを変えながら繰り返し送信する。そして受信側の物理ノード200において受信レートを計算し、物理ノード100が送信レートと受信レートとを比較することで、空き帯域が判定される。
以下、図28と図29に、すべてのVNFが帯域制限を受けていない場合の空き帯域の測定例を示す。
図28は、すべてのVNFが帯域制限を受けていない場合の空き帯域の測定結果を示す図である。図28の例では、VNF帯域制御部130は、VNF(A)(B)(C)(D)から空き帯域調査依頼を受けているものとする。また、VNF(A)(B)(C)(D)は、同じ物理ノード200内のVNFを宛先とする通信を行うものとする。この場合、VNF帯域制御部130のVNFグループ管理部133は、VNF(A)(B)(C)(D)を同じグループとする。そして伝送スケジュール決定部135が、VNF(A)(B)(C)(D)それぞれにタイムスロット(Time slot(0)〜Time slot(3))を割り当て、伝送スケジュールを決定する。図28の例では、全体の測定時間40秒とし、この時間を4つに分割して伝送スケジュールを決めている。
そして伝送スケジュールに従って、複数のVNFそれぞれを模倣した通信が行われ、空き帯域が測定される。図28の例では、すべてのVNFについて480Mbpsの空き帯域が検出されている。
図29は、すべてのVNFが帯域制限を受けていない場合の空き帯域の測定手順を示すシーケンス図である。なお図29では、空き帯域判定処理開以前の処理は、図9または図10のステップS101〜S107の処理と同じであるため省略している。
代表測定部140は、伝送スケジュールに従って通信情報を模倣して空き帯域を測定する。図29の例では、最初のタイムスロット「Time slot(0)」において、代表測定部140がVNF(A)の通信情報を模倣したパケットを物理ノード200に送信する(ステップS121)。そして物理ノード200の代表測定部240が、受信レートを物理ノード100に送信する(ステップS122)。この処理を繰り返すことで、二分探索によりVNF(A)の空き帯域(480Mbps)が測定される。
次にタイムスロット「Time slot(1)」において、代表測定部140がVNF(B)の通信情報を模倣したパケットを物理ノード200に送信する(ステップS123)。そして物理ノード200の代表測定部240が、受信レートを物理ノード100に送信する(ステップS124)。この処理を繰り返すことで、二分探索によりVNF(B)の空き帯域(480Mbps)が測定される。
次にタイムスロット「Time slot(2)」において、代表測定部140がVNF(C)の通信情報を模倣したパケットを物理ノード200に送信する(ステップS125)。そして物理ノード200の代表測定部240が、受信レートを物理ノード100に送信する(ステップS126)。この処理を繰り返すことで、二分探索によりVNF(C)の空き帯域(480Mbps)が測定される。
最後にタイムスロット「Time slot(3)」において、代表測定部140がVNF(D)の通信情報を模倣したパケットを物理ノード200に送信する(ステップS127)。そして物理ノード200の代表測定部240が、受信レートを物理ノード100に送信する(ステップS128)。この処理を繰り返すことで、二分探索によりVNF(D)の空き帯域(480Mbps)が測定される。
代表測定部140は、各VNF(A)(B)(C)(D)の空き帯域の測定結果を、VNF帯域制御部130に通知する(ステップS129)。VNF帯域制御部130は、測定結果を基に、VNF(A)(B)(C)(D)それぞれの実効帯域を決定する(ステップS130)。図29の例では、いずれのVNFも同じ空き帯域であることから、VNF帯域制御部130は、空き帯域を4台のVNF(A)(B)(C)(D)に均等に割り当て、それぞれの実効帯域を「120Mbps」に決定している。
そして、VNF帯域制御部130は、各VNF(A)(B)(C)(D)に対して、実効帯域「120Mbps」を通知する(ステップS131)。
このようにして、VNF(A)(B)(C)(D)それぞれの空き帯域が測定され、その測定結果に応じて実効帯域が決定される。以後、VNF(A)(B)(C)(D)が決定された実効帯域内の通信速度でデータ送信を行うことで、効率的な通信が可能となる。
次に図30と図31に、一部のVNFが帯域制限を受けている場合の空き帯域の測定例を示す。
図30は、一部のVNFが帯域制限を受けている場合の空き帯域の測定結果を示す図である。図30の例では、空き帯域測定対象のVNF(A)(B)(C)(D)のうち、VNF(C)について、ネットワーク20上のどこかで帯域制限機構によって、使用できる帯域が80Mbpsに制限されているものとする。他のVNF(A)(B)(D)は、図28、図29の例と同様に帯域制限はされていないものとする。図30の例では、VNF()については80Mbpsの空き帯域が検出され、VNF(A)(B)(D)について480Mbpsの空き帯域が検出されている。
図31は、一部のVNFが帯域制限を受けている場合の空き帯域の測定手順を示すシーケンス図である。なお図31では、空き帯域判定処理開以前の処理は、図9または図10のステップS101〜S107の処理と同じであるため省略している。
代表測定部140は、伝送スケジュールに従って通信情報を模倣して空き帯域を測定する。図31の例では、最初のタイムスロット「Time slot(0)」において、代表測定部140がVNF(A)の通信情報を模倣したパケットを物理ノード200に送信する(ステップS141)。そして物理ノード200の代表測定部240が、受信レートを物理ノード100に送信する(ステップS142)。この処理を繰り返すことで、二分探索によりVNF(A)の空き帯域(480Mbps)が測定される。
次にタイムスロット「Time slot(1)」において、代表測定部140がVNF(B)の通信情報を模倣したパケットを物理ノード200に送信する(ステップS143)。そして物理ノード200の代表測定部240が、受信レートを物理ノード100に送信する(ステップS144)。この処理を繰り返すことで、二分探索によりVNF(B)の空き帯域(480Mbps)が測定される。
次にタイムスロット「Time slot(2)」において、代表測定部140がVNF(C)の通信情報を模倣したパケットを物理ノード200に送信する(ステップS145)。このパケットの送信では、帯域制限により、受信レートが80Mbpsを超えることはない。そして物理ノード200の代表測定部240が、受信レートを物理ノード100に送信する(ステップS146)。この処理を繰り返すことで、二分探索によりVNF(C)の空き帯域(80Mbps)が測定される。
最後にタイムスロット「Time slot(3)」において、代表測定部140がVNF(D)の通信情報を模倣したパケットを物理ノード200に送信する(ステップS147)。そして物理ノード200の代表測定部240が、受信レートを物理ノード100に送信する(ステップS148)。この処理を繰り返すことで、二分探索によりVNF(D)の空き帯域(480Mbps)が測定される。
代表測定部140は、各VNF(A)(B)(C)(D)の空き帯域の測定結果を、VNF帯域制御部130に通知する(ステップS149)。VNF帯域制御部130は、測定結果を基に、VNF(A)(B)(C)(D)それぞれの実効帯域を決定する(ステップS150)。図31の例では、VNF(C)が帯域制限を受けていることから、VNF帯域制御部130VNF(C)に80Mbpsの帯域を割り当てる。そしてVNF帯域制御部130は、帯域制限を受けないときの空き帯域(480Mbps)からVNF(C)に割り当てた分を減算した残りの帯域(400Mbps)を、3台のVNF(A)(B)(D)に均等に割り当てる。その結果、VNF(A)(B)(D)の実効帯域は「133Mbps」に決定される。
そして、VNF帯域制御部130は、各VNF(C)に実効帯域「80Mbps」を通知すると共に、VNF(A)(B)(D)に実効帯域「133Mbps」を通知する(ステップS151)。
これにより、VNF(C)については空き帯域が正しく測定され、使用可能な帯域内での効率的な通信を行うことができる。またVNF(A)(B)(D)は、VNF(C)が使用できない分の帯域を有効に利用し、図28、図29の場合よりも高速な通信が可能となる。
次に、VNFの帯域管理のために、各ノードが実行する処理について、詳細に説明する。まず、通信情報の管理処理について説明する。通信情報の管理処理には、物理ノード100,200から管理ノード300への最新の通信情報の送信処理と、管理ノード300内のコントローラ310から各物理ノード100,200への通信情報の配信処理がある。
図32は、物理ノードにおける最新の通信情報の送信手順の一例を示すフローチャートである。以下、物理ノード100が最新の通信情報を送信する場合を想定し、図32に示す処理をステップ番号に沿って説明する。なお物理ノード200も、物理ノード100と同様の手順で最新の通信情報を送信する。
[ステップS201]VNF情報収集部131は、VNF111,112,・・・,11nの状態を監視する。
[ステップS202]VNF情報収集部131は、すくなくとも1つのVNFの設定が更新されたか否かを判断する。設定が更新されたVNFがある場合、処理がステップS203に進められる。設定が更新されたVNFがない場合、処理がステップS201に進められる。
[ステップS203]VNF情報収集部131は、設定が更新されたVNFの通信情報を、該当するVNFから収集する。
[ステップS204]VNF情報収集部131は、更新されたすべての通信情報について、その通信情報を含むメッセージを生成したか否かを判断する。すべての通信情報についてメッセージを生成し終わった場合、処理がステップS209に進められる。メッセージが未生成の通信情報がある場合、処理がステップS205に進められる。
[ステップS205]VNF情報収集部131は、通信情報の更新タイプを判断する。更新タイプが生成「I」であれば、処理がステップS206に進められる。更新タイプが削除「D」であれば、処理がステップS207に進められる。更新タイプが更新「U」であれば、処理がステップS208に進められる。
[ステップS206]VNF情報収集部131は、通信情報にFLAG「I」を追加したメッセージを生成する。その後、処理がステップS204に進められる。
[ステップS207]VNF情報収集部131は、通信情報にFLAG「D」を追加したメッセージを生成する。その後、処理がステップS204に進められる。
[ステップS208]VNF情報収集部131は、通信情報にFLAG「U」を追加したメッセージを生成する。その後、処理がステップS204に進められる。
[ステップS209]VNF情報収集部131は、生成したメッセージを、VNFインタフェース132を介してコントローラ310に送信する。
このようにして、物理ノード100からコントローラ310に、最新の通信情報が送信される。同様に、物理ノード200からコントローラ310へも、最新の通信情報が送信される。これにより、管理ノード300において、最新の通信情報が保持される。
次に、各コントローラが実行する通信情報の管理処理について、詳細に説明する。
図33は、コントローラの通信情報管理処理の手順を示すフローチャートである。以下、図33に示す処理をステップ番号に沿って説明する。
[ステップS211]通信部311は、物理ノード100,200からのメッセージを受信する。
[ステップS212]通信部311は、受信したメッセージがVNFまたは物理ノードの最新の通信情報か否かを判断する。例えば通信部311は、パケットのBPDUにFLAGとして「U」、「I」、または「D」が設定された通信情報が含まれている場合、最新の通信情報であると判断する。最新の通信情報であれば、処理がステップS213に進められる。最新の通信情報でなければ、処理が終了する。
[ステップS213]通信部311は、ノードテーブル操作部312に通信情報を転送する。
[ステップS214]ノードテーブル操作部312は、取得した通信情報に対応するレコードを、ノード管理テーブル321から検索する。
[ステップS215]ノードテーブル操作部312は、受信したすべての通信情報に関して、ノード管理テーブル321内の対応するレコードを更新したか否かを判断する。更新を行っていない通信情報があれば、処理がステップS216に進められる。すべての通信情報に関して更新が終了していれば、処理がステップS220に進められる。
[ステップS216]ノードテーブル操作部312は、未処理の通信情報の1つを選択し、その通信情報に付与されているFLAGの値を識別する。FLAGが「D」であれば、処理がステップS217に進められる。FLAGが「U」であれば、処理がステップS218に進められる。FLAGが「I」であれば、処理がステップS219に進められる。
[ステップS217]ノードテーブル操作部312は、選択した通信情報に対応するノード管理テーブル321内のレコードのFLAGの欄に「D」を設定する。その後、処理がステップS215に進められる。
[ステップS218]ノードテーブル操作部312は、選択した通信情報に対応するノード管理テーブル321内のレコードの通信情報を、選択した通信情報に更新する。そしてノードテーブル操作部312は、そのレコードのFLAGの欄に「U」を設定する。その後、処理がステップS215に進められる。
[ステップS219]ノードテーブル操作部312は、選択した通信情報を含むレコードを、ノード管理テーブル321に追加する。そしてノードテーブル操作部312は、追加したレコードのFLAGの欄に「I」を設定する。その後、処理がステップS215に進められる。
[ステップS220]ノードテーブル操作部312は、メッセージ生成部313にノード管理テーブル321が更新されたことを通知する。
[ステップS221]メッセージ生成部313は、物理ノード100,200に送信する最新の通信情報を含むメッセージを生成する。
[ステップS222]レコード削除部314は、ノード管理テーブル321内に、FLAGが「D」のレコードが存在するか否かを判断する。該当するレコードがある場合、処理がステップS223に進められる。該当するレコードがない場合、処理がステップS224に進められる。
[ステップS223]レコード削除部314は、ノード管理テーブル321からFLAGが「D」のレコードを削除する。
[ステップS224]レコード削除部314は、ノード管理テーブル321内のすべてのレコードのFLAGの欄の値をブランクにする。
[ステップS225]メッセージ生成部313は、通信部311を介して、生成したメッセージを各物理ノード100,200に送信する。
このようにして、コントローラ310によって、最新の通信情報が物理ノード100,200に配信される。
次に、物理ノード100,200による伝送スケジュール決定処理について説明する。伝送スケジュールの決定は、VNFからの依頼に起因する場合と、定期的なVNF測定タイミングになったと判定された場合とに実施される。
図34は、調査依頼による伝送スケジュール決定処理の手順の一例を示すフローチャートである。以下、図34に示す処理をステップ番号に沿って説明する。
[ステップS241]VNFインタフェース132は、いずれかのVNFから、空き帯域の調査依頼を受信したか否かを判断する。調査依頼を受信した場合、処理がステップS242に進められる。調査依頼を受信していなければ、ステップS241の処理が繰り返される。
[ステップS242]VNFインタフェース132は、伝送スケジュール決定部135に調査依頼を通知する。この通知には、調査依頼を送信したVNFの識別情報が含まれる。
[ステップS243]伝送スケジュール決定部135は、伝送スケジュールを決定するため、VNFグループ管理部133にVNFのグループの情報を要求する。
[ステップS244]VNFグループ管理部133は、物理フローテーブル151とグループ管理テーブル152とから、調査依頼を送信したVNFに関連する通信情報を取り出す。
[ステップS245]VNFグループ管理部133は、取り出した通信情報を、伝送スケジュール決定部135に送信する。
[ステップS246]伝送スケジュール決定部135は、空き帯域の全体の測定時間を、測定対象のVNFの数分のタイムスロットに分割し、伝送スケジュールを決定する。
このような手順で伝送スケジュールが決定される。
図35は、定期的に伝送スケジュール決定を行う処理の手順の一例を示すフローチャートである。以下、図35に示す処理をステップ番号に沿って説明する。
[ステップS251]空き帯域測定タイマ134は、値が0になったかを判断する。空き帯域測定タイマ134はカウントダウンタイマであり、初期値の設定時刻からの経過時間を、初期値から減算した値が、空き帯域測定タイマ134の値となる。空き帯域測定タイマ134の値が0になった場合、処理がステップS252に進められる。空き帯域測定タイマ134の値が0でなければ、ステップS251の処理が繰り返される。
[ステップS252]空き帯域測定タイマ134は、伝送スケジュール決定部135に空き帯域の測定タイミングになったことを通知する。
[ステップS253]伝送スケジュール決定部135は、伝送スケジュールを決定するため、VNFグループ管理部133にVNFのグループの情報を要求する。
[ステップS254]VNFグループ管理部133は、物理フローテーブル151とグループ管理テーブル152とから、全VNFに関連する通信情報を取り出す。
[ステップS255]VNFグループ管理部133は、取り出した通信情報を、伝送スケジュール決定部135に送信する。
[ステップS256]伝送スケジュール決定部135は、すべてのVNF111,112,・・・,VNF11nを測定対象として、空き帯域の全体の測定時間をVNF数分のタイムスロットに分割し、伝送スケジュールを決定する。
[ステップS257]空き帯域測定タイマ134は、タイマの値に所定の初期値を設定する。
このようにして、定期的に伝送スケジュールを決定し、空き帯域の測定を行うことができる。決定された伝送スケジュールは、受信側の物理ノード200に送信される。伝送スケジュールを受信した物理ノード200は、伝送スケジュールの内容が正しいかをチェックする。
図36は、伝送スケジュールのチェック処理の手順の一例を示すフローチャートである。以下、図36に示す処理をステップ番号に沿って説明する。
[ステップS261]代表測定部240内の通信部244は、伝送スケジュールを受信する。
[ステップS262]通信部244は、受信した伝送スケジュールをVNF帯域制御部230に送信する。
[ステップS263]VNF帯域制御部230において、VNFインタフェース232は、送信された伝送スケジュールを受信する。VNFインタフェース232は、受信した伝送スケジュールをVNFグループ管理部233に渡す。
[ステップS264]VNFグループ管理部233は、伝送スケジュールに示されるVNFに対応する通信情報が、グループ管理テーブル152に存在することを確認する。
[ステップS265]VNFグループ管理部233は、伝送スケジュールに示されるすべてのVNFが、同じグループに属しているかどうかを判断する。同じグループに属していれば、処理がステップS266に進められる。伝送スケジュールに示されるVNFのうち、グループ管理テーブル152に対応する通信情報が存在しないVNFが少なくとも1つある場合、または伝送スケジュールに示されるVNFのグループが完全同一ではない場合、処理がステップS267に進められる。
[ステップS266]VNFグループ管理部233は、帯域観測テーブル253に、伝送スケジュールに示される各VNFの通信情報と識別値(DSCPまたはCoSの値)を格納する。その後、処理が終了する。
[ステップS267]VNFグループ管理部233は、伝送スケジュールに誤りがあることを、代表測定部240に通知する。すると代表測定部240は、誤りがあることを示すメッセージを、送信側の物理ノード100に送信する。
送信側の物理ノード100では、伝送スケジュールを送信後、その伝送スケジュールに誤りがあることを示すメッセージが返されなければ、伝送スケジュールに従って、VNFを模倣したデータ送信を開始する。
図37は、VNFを模倣したデータ送信処理の手順の一例を示すフローチャートである。以下、図37に示す処理をステップ番号に沿って説明する。
[ステップS271]代表測定部140の通信部141は、VNF帯域制御部130から伝送スケジュールを受信する。
[ステップS272]通信部141は、送信レート決定部143を介して、受信した伝送スケジュールを通信情報模倣部144に送信する。
[ステップS273]通信情報模倣部144は、伝送スケジュールに基づいて、各タイムスロットにおいて空き帯域を測定する対象のVNFを確認する。
[ステップS274]帯域結果操作部142は、処理対象のタイムスロットの番号(0,1,・・・)を示す変数「Time slot」の値が、タイムスロットの数(Max time slot)と一致するか否かを判断する。一致する場合、処理がステップS275に進められる。一致しない場合、処理がステップS276に進められる。
[ステップS275]帯域結果操作部142は、空き帯域の測定結果を、VNF帯域制御部130に通知する。その後、処理が終了する。
[ステップS276]観測タイマ145は、観測タイマをスタートさせる。観測タイマは、測定を行うタイムスロットの時間が初期値として設定され、その初期値からの経過時間の分だけカウントダウンされる。この際、送信レート決定部143により、送信レートの初期値が設定される。2つ目以降のタイムスロットの測定を行う場合、送信レート決定部143は、例えば直前のタイムスロットで測定した空き帯域の値を、送信レートの初期値とする。
[ステップS277]観測タイマ145は、観測タイマの値が「0」か否かを判断する。観測タイマの値が「0」であれば、処理がステップS283に進められる。観測タイマの値が「0」でなければ、処理がステップS278に進められる。
[ステップS278]帯域結果操作部142は、送信レート決定部143に観測結果(送信レートと受信レートとの比較結果)を通知する。
[ステップS279]送信レート決定部143は、次にパケットを送信する際の送信レートを、二分探索のアルゴリズムに従って決定する。
[ステップS280]パケット生成部146は、変数「Time slot」で示される順番のタイムスロットに対応するVNFの通信情報を模倣したパケットを生成する。
[ステップS281]パケット識別値設定部147は、生成したパケットのDSCPまたはCoSに、測定対象のVNFに対応する識別値を設定する。
[ステップS282]測定用パケット送信部148は、送信レート決定部143が決定した送信レートで、生成したパケットを送信する。その後、処理がステップS277に進められる。
[ステップS283]帯域結果操作部142は、繰り返し送信したパケットの送信レートおよび受信レートに基づいて空き帯域を判定する。例えば帯域結果操作部142は、異なる送信レートで繰り返し送信した場合において、「送信レート≦受信レート」となることが確認できた最も高い送信レートを空き帯域と判定する。
[ステップS284]帯域結果操作部142は、帯域観測テーブル153に測定した空き帯域の値を記録する。
[ステップS285]通信情報模倣部144は、伝送スケジュールに基づいて、次に模倣するフローを決定する。
[ステップS286]帯域結果操作部142は、変数「Time slot」の値を1だけカウントアップする。その後、処理がステップS274に進められる。
このような手順で、複数のVNFそれぞれも模倣した通信における空き帯域を測定することができる。なお空き帯域の測定は、受信側の物理ノード200における代表測定部240が連携した処理を実行することで実現されている。
図38は、空き帯域測定時のデータ受信処理の手順の一例を示すフローチャートである。以下、図38に示す処理をステップ番号に沿って説明する。
[ステップS291]代表測定部240のパケット識別部241は、処理対象のタイムスロットの番号(0,1,・・・)を示す変数「Time slot」の値が、タイムスロットの数(Max time slot)と一致するか否かを判断する。一致する場合、処理がステップS292に進められる。一致しない場合、処理がステップS293に進められる。
[ステップS292]通信部275は、物理ノード100に測定が終了したことを通知する。
[ステップS293]パケット識別部241は、受信したパケットが空き帯域測定用のパケットか否かを判断する。例えばパケット識別部241は、パケットのDSCPとして所定の値が設定されている場合、空き帯域測定用のパケットであると判断する。空き帯域測定用のパケットでなければ、処理がステップS294に進められる。空き帯域測定用のパケットであれば、処理がステップS295に進められる。
[ステップS294]パケット識別部241は、仮想スイッチ220にパケットを送信する。その後、処理がステップS291に進められる。
[ステップS295]受信レート計算部242は、同一レートで送信された一連のパケットのすべてを受信したか否かを判断する。例えば所定のデータ量のメッセージが複数のパケットに分割して、所定の送信レートで送信された場合、そのメッセージの受信が完了することで、同一レートで送信された一連のパケットのすべてを受信したと判断できる。すべてのパケットを受信した場合、処理がステップS297に進められる。未受信のパケットがあれば、処理がステップS296に進められる。
[ステップS296]受信レート計算部242は、受信したパケットのデータ量を積算する。その後、処理がステップS295に進められる。
[ステップS297]受信レート計算部242は、同一レートで送信された全パケットのデータ量を受信時間で除算し、受信レートを計算する。
[ステップS298]通信部244は、計算した受信レートを物理ノード100に通知する。
[ステップS299]パケット識別部241は、次のパケットを受信すると、そのパケットが、現在の変数「Time slot」の値で示される現タイムスロットの空き帯域測定用のパケットか否かを判断する。現タイムスロットの空き帯域測定用のパケットであれば、処理がステップS291に進められる。現タイムスロットの空き帯域測定用のパケットでなければ、処理がステップS230に進められる。
[ステップS230]パケット識別部241は、変数「Time slot」の値を1だけカウントアップする。その後、処理がステップS291に進められる。
このように受信側の物理ノード200では、空き帯域測定用のパケットを受信すると、そのパケットの受信レートを送信側の物理ノード100に通知する。これにより、送信側の物理ノード100では、二分探索により空き帯域探索することができる。
VNFごとの空き帯域が判明すると、送信側の物理ノード100のVNF帯域制御部130により、各VNFに通知する実効帯域が決定される。
図39は、実効帯域決定処理の手順の一例を示すフローチャートである。以下、図39に示す処理をステップ番号に沿って説明する。
[ステップS311]VNF帯域制御部130のVNFインタフェース132は、代表測定部140から測定結果を受信したか否かを判断する。測定結果を受信した場合、処理がステップS312に進められる。測定結果を受信していなければ、ステップS311の処理が繰り返される。
[ステップS312]VNFインタフェース132は、測定結果をレート制限判断部136に通知する。
[ステップS313]レート制限判断部136は、帯域観測テーブル153から、観測結果を示すレコードを取得する。
[ステップS314]レート制限判断部136は、帯域制限機構によって帯域が制限されているVNFが存在するか否かを判断する。例えばレート制限判断部136は、同じグループに属するVNFの空き帯域を比較し、他のVNFより空き帯域が少なく測定されたVNFは、帯域の制限を受けていると判断する。帯域が制限されているVNFがある場合、処理がステップS315に進められる。帯域が制限されているVNFがない場合、処理がステップS317に進められる。
[ステップS315]VNF帯域通知部137は、グループ管理テーブル152内の、帯域が制限されているVNFの通信情報に、そのVNFの空き帯域の値を、実効帯域として設定する。
[ステップS316]VNF帯域通知部137は、グループ管理テーブル152内の、帯域が制限されていないVNFの通信情報に、残りの空き帯域を均等に分けた値を、そのVNFの実効帯域として設定する。その後、処理がステップS318に進められる。なお、残りの空き帯域とは、帯域が制限されていないVNFで測定された空き帯域から、帯域が制限されているVNFの実効帯域を減算した値である。
[ステップS317]VNF帯域通知部137は、グループ管理テーブル152内の同一グループのすべてのVNFの通信情報に、空き帯域を均等に分けた値を、すべてのVNFの実効帯域として設定する。
[ステップS318]VNF帯域通知部137は、同一グループのVNFそれぞれに設定された実効帯域の値を、レート制限判断部136を介して取得する。そしてVNF帯域通知部137は、VNFインタフェース132を介して、各VNFに、そのVNFの実効帯域を通知する。
このようにして、複数のVNFそれぞれに対応する空き帯域を効率的に測定し、その測定結果に基づいて、各VNFに適切な実効帯域を通知することができる。各VNFは、データを送信する場合、通知された実効帯域以下の送信レートでデータを送信する。これにより、VNFは、効率的なデータ送信を行うことができる。
ここで、所定の測定時間内で、VNFそれぞれが独自に空き帯域を測定した場合の、空き帯域の測定誤差について説明する。
例えばネットワークで同じ負荷をかける意味で、観測時間を個別のVNFが短い時間で空き帯域を測定するだけでは、正しい空き帯域を得ることができない。ここで、全測定時間が40秒、VNFの数が10個、通信経路の最大帯域が1Gbps、空き帯域が480Mbpsである場合が想定する。この場合、1つのVNFについての空き帯域の測定に使用できる時間は、平均4秒である。例えば「Pathload」と呼ばれるソフトウェアを用いると、1回の受信レートの測定にかかる時間は2秒である。二分探索では、送信レートを代えながらデータ送信を繰り返し、その都度、受信レートが測定される。個別のVNFが空き帯域の測定を行う場合、そのVNFが測定に使用できる4秒の時間では、2種類の送信レートで送信した場合しか、受信レートを測定できない。例えば送信レート「500Mbps→250Mbps」と変更して、そのVNF用の空き帯域の測定時間が終了する。すると、実際の空き帯域は480Mbpsであっても測定結果、250Mbpsとなる。このときの測定誤差は、「480−250=230Mbps」である。
このように、各VNFが独自に空き帯域を測定すると、測定誤差が大きくなる。なお、空き帯域の測定時間を長くすれば、正確な測定が可能であるが、その場合、空き帯域測定用のパケットが長時間送信され続けることになり、ネットワーク余分な負荷がかかる。その結果、システムの利用効率が低下する。
それに対して、第2の実施の形態では、例えば最初のタイムスロットにおいて、十分に時間をかけて、正確な空き帯域探索を行う。例えば送信レートを「500Mbps→250Mbps→375Mbps→437.5Mbps→468.75Mbps→484.375Mbps→476.575Mbps→480.475Mbps→…→480.0Mbps」としたデータ送信が行われる。これにより、誤差「0」の正確な空き帯域の測定結果が得られる。
2番目以降のタイムスロットでは、送信レート「480.0Mbps」から空き帯域探索を開始することで、短時間で探索結果を得ることができる。その結果、複数のVNFの空き帯域の高精度の測定を効率的に行うことができる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 ネットワーク
2 物理ノード
10 空き帯域測定装置
11〜13 VM
14 分類手段
15 測定手段
16 決定手段

Claims (7)

  1. コンピュータに、
    前記コンピュータにネットワークを介して接続された物理ノードと通信を行う、前記コンピュータ上に生成された複数の仮想マシンを1つのグループに分類し、
    前記グループに属する前記複数の仮想マシンそれぞれが通信に使用する通信情報を用いた測定用パケットを前記物理ノードに送信することで、前記複数の仮想マシンそれぞれが異なる時間帯に前記物理ノードへのデータ送信を行ったときの、前記物理ノードとの間の通信経路の空き帯域を、前記複数の仮想マシンそれぞれについて測定し、
    前記複数の仮想マシンそれぞれの前記空き帯域に基づいて、前記複数の仮想マシンが同じ時間帯に前記物理ノードへのデータ送信を行うときの、前記複数の仮想マシンそれぞれの実効帯域を決定し、
    前記複数の仮想マシンそれぞれに前記実効帯域を通知する、
    処理を実行させる空き帯域測定プログラム。
  2. 前記測定では、第1仮想マシンについてのすでに測定されている第1空き帯域の情報を利用して、第2仮想マシンが通信に使用する通信情報を用いた前記測定用パケットを前記物理ノードに送信することで、前記物理ノードとの間の通信経路の第2空き帯域を測定する、
    請求項1記載の空き帯域測定プログラム。
  3. 前記測定では、前記第1空き帯域を、前記第2仮想マシンの前記第2空き帯域を二分探索で測定する際の送信レートの初期値とする、
    請求項2記載の空き帯域測定プログラム。
  4. 前記決定では、前記複数の仮想マシンの前記空き帯域が同じ場合、前記空き帯域を仮想マシン数で除算した値を、前記複数の仮想マシンそれぞれの前記実効帯域とする、
    請求項1乃至3のいずれかに記載の空き帯域測定プログラム。
  5. 前記決定では、第3仮想マシンの第3空き帯域が、前記複数の仮想マシンそれぞれの前記空き帯域のうちの最大値を仮想マシン数で除算した値よりも狭い場合、前記第3仮想マシンの前記第3空き帯域を前記第3仮想マシンの前記実効帯域とし、前記最大値から前記第3空き帯域を減算した残りを、前記第3仮想マシン以外の仮想マシン数で除算し、除算結果を、前記第3仮想マシン以外の仮想マシンそれぞれの前記実効帯域とする、
    請求項1乃至4のいずれかに記載の空き帯域測定プログラム。
  6. コンピュータが、
    前記コンピュータにネットワークを介して接続された物理ノードと通信を行う、前記コンピュータ上に生成された複数の仮想マシンを1つのグループに分類し、
    前記グループに属する前記複数の仮想マシンそれぞれが通信に使用する通信情報を用いた測定用パケットを前記物理ノードに送信することで、前記複数の仮想マシンそれぞれが異なる時間帯に前記物理ノードへのデータ送信を行ったときの、前記物理ノードとの間の通信経路の空き帯域を、前記複数の仮想マシンそれぞれについて測定し、
    前記複数の仮想マシンそれぞれの前記空き帯域に基づいて、前記複数の仮想マシンが同じ時間帯に前記物理ノードへのデータ送信を行うときの、前記複数の仮想マシンそれぞれの実効帯域を決定し、
    前記複数の仮想マシンそれぞれに前記実効帯域を通知する、
    空き帯域測定方法。
  7. 通信経路上の空き帯域を測定する空き帯域測定装置であって、
    前記空き帯域測定装置にネットワークを介して接続された物理ノードと通信を行う、前記空き帯域測定装置上に生成された複数の仮想マシンを1つのグループに分類する分類手段と、
    前記グループに属する前記複数の仮想マシンそれぞれが通信に使用する通信情報を用いた測定用パケットを前記物理ノードに送信することで、前記複数の仮想マシンそれぞれが異なる時間帯に前記物理ノードへのデータ送信を行ったときの、前記物理ノードとの間の通信経路の空き帯域を、前記複数の仮想マシンそれぞれについて測定する測定手段と、
    前記複数の仮想マシンそれぞれの前記空き帯域に基づいて、前記複数の仮想マシンが同じ時間帯に前記物理ノードへのデータ送信を行うときの、前記複数の仮想マシンそれぞれの実効帯域を決定し、前記複数の仮想マシンそれぞれに前記実効帯域を通知する決定手段と、
    を有する空き帯域測定装置。
JP2016159276A 2016-08-15 2016-08-15 空き帯域測定プログラム、空き帯域測定方法、および空き帯域測定装置 Active JP6810339B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016159276A JP6810339B2 (ja) 2016-08-15 2016-08-15 空き帯域測定プログラム、空き帯域測定方法、および空き帯域測定装置
US15/654,761 US10469352B2 (en) 2016-08-15 2017-07-20 Method and apparatus for available bandwidth measurement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016159276A JP6810339B2 (ja) 2016-08-15 2016-08-15 空き帯域測定プログラム、空き帯域測定方法、および空き帯域測定装置

Publications (2)

Publication Number Publication Date
JP2018029230A JP2018029230A (ja) 2018-02-22
JP6810339B2 true JP6810339B2 (ja) 2021-01-06

Family

ID=61159602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016159276A Active JP6810339B2 (ja) 2016-08-15 2016-08-15 空き帯域測定プログラム、空き帯域測定方法、および空き帯域測定装置

Country Status (2)

Country Link
US (1) US10469352B2 (ja)
JP (1) JP6810339B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467120B2 (en) * 2016-11-11 2019-11-05 Silexica GmbH Software optimization for multicore systems
US11528328B2 (en) * 2017-12-15 2022-12-13 Nokia Technologies Oy Stateless network function support in the core network
KR102112270B1 (ko) * 2018-10-19 2020-05-19 주식회사 구버넷 다중계층 네트워크 환경에서 패킷을 처리하는 방법 및 그 장치
US10992601B2 (en) 2018-10-19 2021-04-27 Gubernet Inc. Packet processing method and apparatus in multi-layered network environment
CN110740100B (zh) * 2019-10-22 2022-04-22 新华三信息安全技术有限公司 一种传输速率确定方法、装置、网络设备及存储介质
JP2021182689A (ja) * 2020-05-19 2021-11-25 富士通株式会社 スイッチ特定方法、及びスイッチ特定プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131100A (ja) 2006-11-16 2008-06-05 Yamaha Corp パケット通信網の帯域測定方法、帯域測定装置、帯域測定プログラム並びにパケットの送出速度制御方法、送出速度制御装置、送出速度制御プログラム
JP5923914B2 (ja) 2011-09-28 2016-05-25 沖電気工業株式会社 網状態推定装置及び網状態推定プログラム
JP2015149577A (ja) * 2014-02-06 2015-08-20 株式会社日立製作所 帯域制御装置
WO2015162753A1 (ja) 2014-04-24 2015-10-29 株式会社日立製作所 帯域制御装置、ネットワークシステム、帯域制御方法、及び計算機読み取り可能な非一時的な記憶媒体

Also Published As

Publication number Publication date
US20180048551A1 (en) 2018-02-15
JP2018029230A (ja) 2018-02-22
US10469352B2 (en) 2019-11-05

Similar Documents

Publication Publication Date Title
JP6810339B2 (ja) 空き帯域測定プログラム、空き帯域測定方法、および空き帯域測定装置
US20220253397A1 (en) Methods for intelligent load balancing and high speed intelligent network recorders
US10895984B2 (en) Fabric attached storage
US11310155B1 (en) Virtual router workload offloading
JP4343983B2 (ja) ネットワーク管理装置およびネットワークの管理方法
US8843613B2 (en) Information processing system, and management method for storage monitoring server
JP2011243112A (ja) システム管理方法、及び管理装置
CN104426799A (zh) 通信量和负载感知动态队列管理
US8892728B2 (en) Automatic zone-based management of a data center
CN106020926B (zh) 一种用于虚拟交换机技术中数据传输的方法及装置
US11601365B2 (en) Wide area networking service using provider network backbone network
JP5285083B2 (ja) 並行してトポロジを発見する方法および装置
US20140201356A1 (en) Monitoring system of managing cloud-based hosts and monitoring method using for the same
US11315044B2 (en) Multi dimensional scale analysis using machine learning
US11824773B2 (en) Dynamic routing for peered virtual routers
US10073805B2 (en) Virtual expansion ROM in a PCIe environment
CN102546652B (zh) 一种服务器负载平衡系统及方法
US20150304200A1 (en) Traffic information collection system and collection control node
CN112751717A (zh) 一种业务流量的管理系统以及方法
JP2011113441A (ja) メッセージ分類用属性選択装置,メッセージ分類用属性選択プログラムおよびメッセージ分類用属性選択方法
US20240031292A1 (en) Network flow based load balancing
US20240073110A1 (en) Multi-cloud recommendation engine for customer workloads
WO2023207827A1 (zh) 地址分组方法及相关装置
JP2001209625A (ja) 並列計算機システムにおけるネットワークインタフェース選択方法及び装置
CN111448780B (zh) 在通信网络中处置业务的方法和业务处理单元

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190513

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190517

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200515

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201123

R150 Certificate of patent or registration of utility model

Ref document number: 6810339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150