JP2015188186A - 制御装置、および、通信方法 - Google Patents

制御装置、および、通信方法 Download PDF

Info

Publication number
JP2015188186A
JP2015188186A JP2014065392A JP2014065392A JP2015188186A JP 2015188186 A JP2015188186 A JP 2015188186A JP 2014065392 A JP2014065392 A JP 2014065392A JP 2014065392 A JP2014065392 A JP 2014065392A JP 2015188186 A JP2015188186 A JP 2015188186A
Authority
JP
Japan
Prior art keywords
flow
packet
unit
transfer
information
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.)
Granted
Application number
JP2014065392A
Other languages
English (en)
Other versions
JP6237397B2 (ja
Inventor
栗田 敏彦
Toshihiko Kurita
敏彦 栗田
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 JP2014065392A priority Critical patent/JP6237397B2/ja
Priority to US14/606,461 priority patent/US9602418B2/en
Publication of JP2015188186A publication Critical patent/JP2015188186A/ja
Application granted granted Critical
Publication of JP6237397B2 publication Critical patent/JP6237397B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/127Shortest path evaluation based on intermediate node capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • H04L47/115Identifying congestion using a dedicated packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/127Avoiding congestion; Recovering from congestion by using congestion prediction
    • 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
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】輻輳の解消に用いる情報を早期かつ効率的に取得する。【解決手段】制御装置は、受信部、特定部、送信部を備える。受信部は、ネットワーク中の複数の転送装置の各々から所定の周期で処理負荷の大きさを表わす負荷情報を受信し、複数の転送装置の1つ以上を介した通信を行う複数の通信装置の各々から送信中のフローの情報を含む報告パケットを受信する。特定部は、輻輳の予兆の検出に用いる検出閾値よりも処理負荷の大きい転送装置である対象装置を介して転送されるフローを、輻輳が発生した際に経路を変更するフローの候補である候補フローとして特定する。送信部は、候補フローの情報を含む第1の報告パケットの送信周期の短縮を要求するパケットと、対象装置を経由せずにネットワーク中で転送されるフローの情報を報告する第2の報告パケットの送信周期の延長を要求するパケットとを送信する。【選択図】図1

Description

本発明は、複数の装置を含むネットワーク中での通信方法に関する。
データセンタにおいて、複数のサーバと複数のスイッチを用いてネットワークが形成されることがある。複数のサーバの各々には、1つ以上の仮想マシン(Virtual Machine、VM)が動作していても良い。複数の仮想マシンの間での通信は、スイッチを用いて中継される。複数のサーバには管理サーバも含まれる。管理サーバは、ネットワーク全体のトポロジー情報を保持し、ネットワーク中での通信経路を管理する。各スイッチは、予め決められた周期で管理サーバにスイッチ自身の状態を示す情報を通知する。また、各サーバは、そのサーバで動作している仮想マシンが送信元となっているフローに関する情報(フロー情報)を、管理サーバに通知する。管理サーバは、スイッチから得られた情報を用いて、ネットワーク中での輻輳の発生を検出する。その後、サーバから取得したフロー情報を用いて、管理サーバは、輻輳が発生したスイッチを経由しているフローの転送経路を変更するための処理を行うことにより、輻輳を解消する。
関連する技術として、システム中で発生した障害の履歴を解析して所定期間の経過後に電子機器で発生する可能性のある障害を予測する障害管理装置と、機器管理装置を含むシステムが提案されている。機器管理装置は、障害の発生が予測された電子機器からの情報取得の間隔を短くする(例えば、特許文献1)。複写機から異常状態の通知を受けると、異常状態にある複写機に対し、所定の時刻までは、初期の通信間隔よりも短い通信間隔で定期的な稼動情報通知の送信を要求するホストマシンも提案されている。このホストマシンは、異常状態にない複写機に対しては所定の時刻までは初期の通信間隔よりも長い間隔で稼動情報を通知することを要求する(例えば、特許文献2)。自ノードのMedia Access Control(MAC)アドレスを登録したループ検出パケットを送信し、自ノードのMACアドレスを含むループ検出パケットを受信すると管理装置に通知するスイッチも知られている(例えば、特許文献3)。一定時間に規定値以上のパケットが同一ホストに対して送信されていることを検出すると、その通信を攻撃フローと判断する分析装置も知られている(例えば、特許文献4)。
特開2013−61840号公報 特開2005−242564号公報 特開2011−166466号公報 特開2006−164038号公報
ネットワーク中の各スイッチは予め決められた周期でスイッチの状態を管理サーバに通知するので、ネットワーク中で輻輳が発生しても、輻輳の発生後にスイッチから情報が送られてくるまで、管理サーバは輻輳の発生を検知できない。さらに、仮想マシンが動作している各サーバから管理サーバへのフロー情報の通知も、予め設定された所定の周期ごとに行われる。管理サーバは、輻輳の発生後のフロー情報を用いて輻輳の回避のための処理を行うため、輻輳が発生しても、各サーバから新たにフロー情報が送られてくるまで、経路の変更などの輻輳を回避するための処理を行わずに待機する。従って、輻輳の回避のための処理は、輻輳の発生の検知からさらに遅れて開始することになってしまう。管理サーバがスイッチやサーバから情報を取得する周期を短くすれば、輻輳の発生から輻輳の検知までの時間を短縮できるが、管理サーバが処理する情報量が増えすぎて、管理サーバへの負荷が高くなる上に効率が悪い。
関連する技術として述べたいずれの技術を適用しても、管理サーバが輻輳を解消するための情報を早期に取得することは難しい。例えば、異常状態にある複写機からの通知の周期を短くし、他の複写機からの通知の周期を長くする技術を適用しても、輻輳の原因となるフローを送信しているサーバで問題が発生しなければ、サーバからのフロー情報の送信周期を短縮できない。
本発明は、1つの側面として、輻輳の解消に使用する情報を早期かつ効率的に取得することを目的とする。
ある実施形態にかかる制御装置は、受信部、特定部、送信部を備える。受信部は、ネットワーク中の複数の転送装置の各々から所定の周期で処理負荷の大きさを表わす負荷情報を受信する。さらに、受信部は、前記複数の転送装置のうちの1つ以上を介した通信を行う複数の通信装置の各々から、該通信装置が送信するフローの情報を報告する報告パケットを受信する。特定部は、輻輳の予兆の検出に用いる検出閾値よりも処理負荷の大きい転送装置である対象装置を介して転送されるフローを、前記輻輳が発生した際に経路を変更するフローの候補である候補フローとして、前記報告パケットを用いて特定する。送信部は、前記候補フローの情報を含む第1の報告パケットの送信周期の短縮を要求するパケットと、前記対象装置を経由せずに前記ネットワーク中で転送されるフローの情報を報告する第2の報告パケットの送信周期の延長を要求するパケットとを送信する。
1つの側面として、輻輳の解消に使用する情報を早期かつ効率的に取得できる。
実施形態にかかる方法の例を説明する図である。 転送装置の構成の例を示す図である。 フォワーディングテーブルの例を示す図である。 通信装置の構成の例を示す図である。 制御装置の構成の例を示す図である。 転送装置のハードウェア構成の例を示す図である。 通信装置および制御装置のハードウェア構成の例を示す図である。 ネットワークの接続状態の例を示す図である。 トポロジー情報の例を示す図である。 輻輳の予兆が検出される前の転送経路の例を示す図である。 各通信装置でのタイマ値と制御装置が保持するタイマ値の例を示す図である。 サンプルとするパケットの選択方法の例を示す図である。 各通信装置で得られたフロー情報と制御装置が保持するフロー情報の例を示す図である。 フロー分析データの例を示す図である。 輻輳の予兆の検出例を示す図である。 タイマ値テーブルの変更例を示す図である。 フロー情報の送信のタイミングの変更に使用されるパケットの例とフロー情報の送信タイミングの変更例を示す図である。 タイマ値テーブルの変更例を示す図である。 リンク利用率テーブルの例を示す図である。 フローごとの使用率の計算例を示す図である。 フロー分析データの例を示す図である。 フォワーディング情報テーブルの変更例を示す図である。 指示パケットの例を示す図である。 経路の変更例を示す図である。 転送装置からパケットを受信したときの制御装置の処理の例を説明するフローチャートである。 通信装置からパケットを受信したときの制御装置の処理の例を説明するフローチャートである。 第2の実施形態での報告パケットの送信周期の決定方法の例を説明する図である。 第3の実施形態での報告パケットの送信周期の決定方法の例を説明する図である。 第4の実施形態での制御装置の処理の例を説明するフローチャートである。
図1は、実施形態にかかる方法の例を説明する図である。ネットワークN1には、制御装置60、通信装置30(30a、30b)、転送装置10(10a、10b)が含まれる。制御装置60は、管理サーバとして動作し、ネットワークN1中で送受信されるフローの経路を決定できる。通信装置30aでは、VM1〜VM3の仮想マシンが動作し、通信装置30bでは、VM4〜VM6の仮想マシンが動作するものとする。図1の例では、VM4からVM3に向けてデータが送信されるフローと、VM5からVM2に向けてデータが送信されるフローは、転送装置10bを介して転送されるものとする。また、VM1からVM6に宛てたフローは、転送装置10aを介して転送されるものとする。なお、図1は一例であり、ネットワーク中の転送装置10や通信装置30の数、各通信装置30で稼動する仮想マシンの数は、任意に変更され得る。
制御装置60は、転送装置10aと転送装置10bの各々から所定の時間間隔で、転送装置10にかかる負荷の大きさを表わす負荷情報を取得することにより、輻輳の予兆を検出している。負荷情報として、バッファの使用率などの情報が使用される。ここで、「輻輳の予兆」は、輻輳が発生するおそれが高まる程度に転送レートが上昇しているが輻輳は発生していない状態を示すものとする。制御装置60は、通信装置30a、通信装置30bから送信中の各フローについての情報を取得する。ここでは、通信装置30aは、VM1から送信されているフローの情報を制御装置60に送信し、通信装置30bは、VM4とVM5の各々から送信されているフローの情報を制御装置60に送信する。フローについての情報は、送信元アドレス、宛先アドレス、データの転送レートまたは転送レートの計算に使用可能なデータなどの組合せである。ネットワークN1の例では、VM4からVM3に宛てて送信されているデータに関するフロー情報を、斜線で塗りつぶされた四角形で示す。一方、VM5からVM2に宛てて送信されているデータに関するフロー情報を、白抜きの四角形で示す。また、VM1からVM6に宛てて送信されているデータに関するフロー情報を、角の丸い四角形で示す。説明を簡単にするために、初期状態では、いずれのフローに関する情報も、同じ時間間隔で制御装置60に送信されているものとする。
制御装置60は、転送装置10bでのバッファの使用率が閾値Th1よりも大きくなると、輻輳の予兆があると判定する。そこで、制御装置60は、予め保持しているトポロジー情報と通信装置30a、30bから取得した情報を用いて、転送装置10bを経由して転送されるフローを特定する。ネットワークN1の例では、制御装置60は、VM4からVM3に宛てて送信されているフローと、VM5からVM2に宛てて送信されているフローが転送装置10bを介して転送されていることを特定する。すると、制御装置60は、輻輳が起きる可能性がある転送装置10bを経由しているフローを、輻輳が発生した際に経路を変更するフローの候補(候補フロー)とする。さらに、制御装置60は、候補フローの送信元の仮想マシンが稼動している通信装置30bに対して、特定したフローについての情報の送信間隔を短くすることを要求する。さらに、制御装置60は、輻輳が起きる可能性がある転送装置10bを経由していないフローについては、フローの情報を報告する間隔を長くする。ネットワークN1の例では、制御装置60は、VM1から送信されているフローについての情報の報告周期を長くすることを通信装置30aに要求する。
制御装置60からの要求に応じてフローに関する情報の送信周期が変更された場合の例を、ネットワークN2に示す。ネットワークN2に示す状態では、VM4から送信されたフローやVM5から送信されたフローについての情報を、通信装置30bが制御装置60に対して送信する周期は、ネットワークN1に示す状態に比べて、短くなっている。制御装置60は、輻輳の発生を早期に発見するために、フロー情報の送信周期を短くしたフローの転送レートを用いて、転送装置10bに接続されているリンクの使用率の変動を観測する。制御装置60は、転送装置10bに接続されているリンクの使用率が予め設定した値を超えると輻輳が発生したと判定できるので、短縮後のフロー情報の報告周期内で、観測対象のリンクでの輻輳の発生を検出できる。
一方、通信装置30aがVM1から送信されたフローについての情報を制御装置60に対して送信する周期は、ネットワークN2ではネットワークN1よりも長くなっている。このように、制御装置60は、輻輳が発生する可能性の高い経路を使用して転送されていないフローについては、フロー情報の送信周期を長くすることにより、制御装置60で処理する情報量の増加を抑えることができる。
さらに、制御装置60は、フロー情報から計算したリンクの使用率を用いて輻輳の発生を検出しているので、輻輳の検出に使用した情報自体を用いて、輻輳の回避のための処理を行うことができる。従って、制御装置60は、輻輳が発生する可能性の高いリンクを介して転送されるフローの情報を取得する周期を短縮化したことにより、早期に輻輳の発生を発見するだけでなく、輻輳の検出とともに輻輳を解消するための処理を開始できる。このため、制御装置60は、輻輳の発生を検出してから、比較的短時間で、フローの経路変更を行うことにより、輻輳を解消することができる。
<装置構成>
図2は、転送装置10の構成の例を示す。転送装置10は、送受信部11、通信部12、記憶部15、制御部20を備える。記憶部15は、フォワーディングテーブル16とManagement Information Base(MIB)17を保持しているものとする。また、記憶部15には、バッファ18も含まれている。制御部20は、スイッチング部21、更新部22、通知部23を備える。
送受信部11は、通信装置30やネットワーク中の他の転送装置との間でパケットの送受信を行う。送受信部11は、受信したパケットをスイッチング部21に出力する。スイッチング部21は、入力されたパケットの出力ポートを、フォワーディングテーブル16を参照することにより選択する。
図3は、フォワーディングテーブル16の例を示す。フォワーディングテーブル16は、宛先アドレスに対応付けてパケットの出力ポートの番号を記録している。図3の例では、MAC1宛てのパケットとMAC4宛てのパケットはポートPo3から出力され、MAC2宛てのパケットとMAC3宛てのパケットは、ポートPo2から出力される。
スイッチング部21は、パケットを、出力ポートの情報と共に送受信部11に出力する。送受信部11は、スイッチング部21から入力されたパケットを、指定されたポートを用いて送信する。バッファ18は、スイッチング部21での処理待ちのパケットを格納するために使用される。
通信部12は、転送装置10と制御装置60との間での通信に使用される。通信部12は、制御装置60から指示パケットを受信すると、指示パケットを更新部22に出力する。更新部22は、指示パケットを用いて、フォワーディングテーブル16を更新する。ここで、指示パケットには、フォワーディングテーブル16の書き換えを要求する情報が含まれているものとする。指示パケットのフォーマットの例や指示パケットを用いた処理の例については、後述する。通知部23は、予め設定された周期で、MIB17に記録されている情報を制御装置60に通知するための通知パケットを生成する。
図4は、通信装置30の構成の例を示す図である。通信装置30は、送信部31、受信部32、通信部33、パケット処理部34、制御部40、記憶部50を備える。制御部40は、生成部41と制御パケット処理部42を備える。記憶部50は、フロー情報51とタイマ値テーブル52を格納する。フロー情報51には、通信装置30で稼動している仮想マシンから送信されているフローについて、フローごとに送信元アドレス、宛先アドレス、転送レートの算出に用いるデータなどの情報が記録されている。タイマ値テーブル52は、通信装置30が制御装置60にフロー情報を報告するときの時間間隔などの情報が含まれている。フロー情報51とタイマ値テーブル52の例については後述する。
送信部31および受信部32は、通信装置30と制御装置60の間の通信に使用される。通信部33は、通信装置30とネットワーク中の他の通信装置との間の通信に使用される。パケット処理部34は、任意の数の仮想マシンとして動作し、アプリケーションを用いたパケットの処理を行うものとする。なお、パケット処理部34が複数の仮想マシンとして動作する場合、パケット処理部34は、仮想スイッチとしても動作する。
生成部41は、タイマ値テーブル52に記録されている周期ごとに、フロー情報51中の情報を制御装置60に報告するための報告パケットを生成する。従って、生成部41は、NetFlowなどのフロー計測技術でのエクスポータと同様の処理を行うといえる。制御パケット処理部42は、受信部32から入力された制御パケットを処理することにより、タイマ値テーブル52の設定値を変更する。
図5は、制御装置60の構成の例を示す図である。制御装置60は、受信部61、送信部62、制御部70、記憶部90を備える。制御部70は、検出部71、特定部72、計算部73、フロー制御部80を含む。フロー制御部80は、決定部81、選択部82、指示パケット生成部83を有する。記憶部90は、トポロジー情報91、フロー情報92、タイマ値テーブル93、フロー分析データ94、リンク利用率テーブル95、フォワーディング情報テーブル96を保持する。
トポロジー情報91は、ネットワーク中の各転送装置10について、どのポートがどの装置に接続されているかを示す情報である。フロー情報92は、ネットワーク中で送受信されている各フローの情報であり、特定部72と計算部73によって生成、更新される。タイマ値テーブル93は、ネットワーク中の各通信装置30で、送信中のフローについての転送レートを報告するための報告パケットを生成する周期を示す。フロー分析データ94は、各通信装置30から送信されたフローについての解析結果である。リンク利用率テーブル95は、ネットワーク中の各転送装置10から送信された情報についての解析結果を含む。フォワーディング情報テーブル96は、ネットワーク中で動作している各転送装置10が使用しているフォワーディングテーブル16の情報を集約している。このため、制御装置60は、各転送装置10で行われているフローの転送経路を、トポロジー情報91とフォワーディング情報テーブル96を用いて解析することができる。
受信部61は、転送装置10や通信装置30からパケットを受信する。受信部61は、転送装置10から受信したパケットを検出部71に出力し、通信装置30から受信したパケットを特定部72と計算部73に出力する。
検出部71は、転送装置10から送信されてきた情報を用いて、ネットワーク中で輻輳の予兆が発生した箇所を特定する。検出部71は、閾値Th1と閾値Th2の2つの閾値を保持するものとする。閾値Th1は、輻輳の予兆があるかの判定に使用される値であり、閾値Th2は、輻輳の発生の検出に使用される値であるものとする。例えば、転送装置10bでのバッファの使用率が閾値Th1を超えると、検出部71は、転送装置10bを経由する経路で輻輳の予兆があると判定する。閾値Th1を超えても転送装置10bのバッファの使用率がさらに増加し、閾値Th2に達すると、検出部71は、転送装置10bにおいて輻輳が発生していると判定する。換言すると、検出部71は、NetFlowなどのフロー計測技術でのコレクタと同様の処理を行うといえる。検出部71は、バッファの使用率が閾値Th1を超えた転送装置10を特定部72に通知する。
検出部71は、さらに、経路の変更などの処理が行われたことにより、いずれの転送装置10でも輻輳の予兆が消失すると、報告パケットの送信周期をデフォルトの状態に戻すことができると判定する。検出部71は、輻輳の予兆がいずれの転送装置10でも消失したことを検出したときは、輻輳の予兆の消失を決定部81に通知する。
特定部72は、通信装置30から通知されたフロー情報をフロー情報92に格納する。さらに、特定部72は、トポロジー情報91とフロー情報92を用いて、各フローについての転送経路を特定する。特定部72は、特定した経路を、フロー分析データ94として記録する。特定部72は、検出部71からバッファの使用率が閾値Th1を超えた転送装置10を通知されると、通知された転送装置10を経由するフローを識別する情報を決定部81に出力する。
計算部73は、得られた分析結果を用いて、各リンクの利用率を計算する。計算部73は、計算結果をリンク利用率テーブル95に記録する。計算部73は、リンクの利用率が予め決められた所定の値(閾値Th3)を超えると、そのリンクでの輻輳を防止するための経路変更を行うことを決定する。計算部73は、利用率が閾値Th3を超えたリンクを特定する情報を選択部82に出力する。
決定部81は、特定部72から通知されたフローについての送信周期を決定する。また、送信周期を変更したフローの送信元の通信装置30に変更後の送信周期を通知するための通知パケットを生成する。
さらに、決定部81は、輻輳の予兆の解消が検出部71から通知されると、報告パケットの生成周期を変更したフローの各々について、報告パケットの生成周期をデフォルト値に戻すことを決定する。なお、決定部81は、予め、各フローについての報告パケットの生成周期のデフォルト値を記憶しているものとする。
選択部82は、計算部73から利用率が閾値Th3を上回っていることが通知されたリンクを使用して転送されているフローの各々について、推定される転送レートや、そのフローについてのリンクの使用率などの値を求める。選択部82は、計算部73から通知されたリンクの使用率を引き下げるために転送経路を変更するフローを選択する。選択部82は、選択したフローの情報と、変更後の経路を指示パケット生成部83に出力する。指示パケット生成部83は、選択部82から指定されたフローの経路を変更するために、転送装置10宛の指示パケットを生成する。指示パケットは、宛先の転送装置10に、フォワーディングテーブル16の書き換えを要求するための制御パケットである。
図6は、転送装置10のハードウェア構成の例を示す図である。転送装置10は、プロセッサ101、スイッチング回路102、メモリ103、ネットワークインタフェース104(104a〜104e)、バス105を備える。転送装置10は、スイッチやルータとして実現され得る。プロセッサ101は、Central Processing Unit(CPU)を含む任意の処理回路とすることができる。転送装置10では、プロセッサ101は更新部22および通知部23として動作し、メモリ103は記憶部15として動作する。また、スイッチング部21は、スイッチング回路102とプロセッサ101により実現される。また、データ通信用のネットワークに接続されたネットワークインタフェース104(104a〜104d)は、送受信部11として動作する。一方、制御用のネットワークに接続されたネットワークインタフェース104eは、通信部12として動作する。
図7は、通信装置30および制御装置60のハードウェア構成の例を示す図である。通信装置30と制御装置60のいずれも、プロセッサ101、メモリ103、ネットワークインタフェース104、バス105、記憶装置106を備える。通信装置30および制御装置60は、いずれも、コンピュータとして実現されうる。バス105は、プロセッサ101、メモリ103、ネットワークインタフェース104(104a、104b)、記憶装置106を、相互にデータの送受信が可能になるように接続する。なお、プロセッサ101は、例えば、記憶装置106に記憶されたプログラムを実行することができる。メモリ103は、プロセッサ101の動作により得られたデータや、プロセッサ101の処理に用いられるデータも、適宜、記憶する。
通信装置30において、プロセッサ101はパケット処理部34および制御部40として動作し、メモリ103は記憶部50として動作する。通信装置30において、データ通信用のネットワークに接続されたネットワークインタフェース104aは通信部33として動作する。一方、ネットワークインタフェース104bは、制御用のネットワークに接続されているので、送信部31および受信部32として動作する。
制御装置60において、プロセッサ101は制御部70として動作し、メモリ103は記憶部90として動作する。制御装置60において、受信部61と送信部62は、制御用のネットワークに接続されたネットワークインタフェース104aと、プロセッサ101によって実現される。制御装置60においては、ネットワークインタフェース104bは、オプションであり、制御装置60がユーザデータの送受信を行わない場合は、制御装置60に含まれていなくても良い。
<第1の実施形態>
以下の説明では、処理を行っている通信装置を区別し易くするために、符号の後に動作を行っている通信装置に割り当てられたアルファベットを記載する。例えば、制御パケット処理部42aは、通信装置30a中の制御パケット処理部42のことを示す。
図8は、ネットワークの接続状態の例を示す図である。以下、図8に示すネットワークで行われる通信処理を例として、転送装置10、通信装置30、制御装置60での処理の具体例を説明する。図8の例では、転送装置10は、スイッチ(SW1〜SW4)である。図8の太い実線は、ユーザデータの送受信に使用されるネットワークを示す。図8の例では、通信装置30aはスイッチSW2に接続され、通信装置30bはスイッチSW4に接続されているものとする。さらに、スイッチSW1は、スイッチSW2およびスイッチSW4と接続されているが、スイッチSW3とは接続されていないものとする。同様に、スイッチSW3も、スイッチSW2およびスイッチSW4と接続されているが、スイッチSW1とは接続されていない。
図8中の破線は、制御用データの送受信に使用されるネットワークを示す。スイッチSW1〜SW4の各々と、通信装置30a、通信装置30bは、いずれも、制御装置60との間で制御データの送受信ができるように接続されている。
通信装置30aでは、仮想マシンVM1、仮想マシンVM2、仮想スイッチ35aが動作している。また、仮想マシンVM1に、MAC3というアドレスが割り当てられており、仮想マシンVM2に、MAC2とMAC6の2つのアドレスが割り当てられているとする。さらに、通信装置30bでは、仮想マシンVM3、仮想マシンVM4、仮想スイッチ35bが動作している。仮想マシンVM3にはMAC4が割り当てられており、仮想マシンVM4に、MAC1とMAC5の2つのアドレスが割り当てられているとする。また、制御用のデータの送受信に使用されるアドレスは、通信装置30aではMAC12、通信装置30bではMAC11、制御装置60ではMAC10であるものとする。
なお、図8はネットワークの一例に過ぎない。ネットワーク中には、実装に応じて、任意の数の転送装置10や通信装置30が含まれるものとする。また、個々の通信装置30で動作する仮想マシンの数も、実装に応じて任意に変動しうるものとする。
図9は、トポロジー情報91の例を示す図である。トポロジー情報91は、図8に示すネットワークが形成されている場合に制御装置60が保持するトポロジー情報91である。トポロジー情報91には、転送装置10ごとに、装置の識別子、各ポートの接続先の装置の識別子、スイッチ間のリンクの容量が記録される。さらに、トポロジー情報91には、各通信装置30で動作している仮想マシンに割り当てられたアドレスも含まれる。
図9の例では、スイッチSW1において、ポートPo1は制御装置60、ポートPo2がスイッチSW2、ポートPo3がスイッチSW4に接続されている。従って、スイッチSW1のポートPo1が制御用のネットワークとの間の通信に使用されている。同様に、制御用ネットワークとの間の通信に、スイッチSW2ではポートPo3、スイッチSW3ではポートPo1、スイッチSW4ではポートPo3が使用される。スイッチSW2において、ポートPo1はスイッチSW3、ポートPo2はスイッチSW1、ポートPo4は通信装置30bに接続されており、ユーザデータの送受信に使用されている。スイッチSW3において、ポートPo2はスイッチSW2、ポートPo3はスイッチSW4に接続されている。さらに、スイッチSW4においては、ポートPo1はスイッチSW3、ポートPo2はスイッチSW1、ポートPo4は通信装置30aに接続されている。
スイッチ間のリンクの容量は、装置の欄に記録されているスイッチとポートの接続先のスイッチとの間で使用可能な転送レートの最大値である。図9の例では、スイッチSW1とスイッチSW2の間のリンクと、スイッチSW1とスイッチSW4の間のリンクでは、160Mbpsまでの転送レートが使用可能である。また、スイッチSW2とスイッチSW3の間のリンクでは、100Mbpsまで、スイッチSW3とスイッチSW4の間のリンクでは、120Mbpsまでの転送レートが使用可能であるものとする。
さらに、トポロジー情報91には、MAC1、MAC4、MAC5、MAC11のいずれも、通信装置30bまたは通信装置30bで動作している仮想マシンに割り当てられているアドレスであることが記録されるものとする。同様に、通信装置30aについても、MAC2、MAC3、MAC6、MAC12のいずれも、通信装置30aまたは通信装置30aで動作している仮想マシンに割り当てられていることが記録されている。
なお、図9を参照しながら説明した接続関係は、物理ポートを使用して生成されたネットワークの接続関係である。従って、経路の変更が行われる場合でも、トポロジー情報91に記録されている物理ポート間の接続関係やリンクの容量は変動しないものとする。
(1)輻輳の予兆が検出される前から行われている処理
図10は、輻輳の予兆が検出される前の転送経路の例を示す図である。以下、図10を参照しながら、輻輳の予兆が検出される前に行われている処理の例を説明する。なお、図10では、図を見やすくするために、ユーザデータの送受信に使用される回線の接続関係は図示していないが、図10においても、ユーザデータの送受信用のネットワークは、図8、図9を参照しながら説明したとおりであるものとする。また、仮想スイッチ35も図を見やすくするために、図10では省略している。
図10の例では、仮想マシンVM4が、MAC1を送信元アドレスとして、仮想マシンVM2のMAC2宛てにデータを送信しているとする。また、仮想マシンVM4が、MAC5を送信元アドレスとして、仮想マシンVM2のMAC6宛てにデータを送信しており、仮想マシンVM1が、MAC3を送信元アドレスとして、仮想マシンVM3のMAC4宛てにデータを送信しているとする。輻輳の予兆が検出される前は、MAC1からMAC2宛てに送信されるデータは、太い実線の矢印で示すように、仮想マシンVM4からスイッチSW4、SW3、SW2を経由して、仮想マシンVM2に転送されているものとする。MAC3からMAC4宛てに送信されるデータは、太い破線の矢印で示すように、仮想マシンVM1からスイッチSW2、SW3、SW4を経由して、仮想マシンVM3に転送されているものとする。さらに、MAC5からMAC6宛てに送信されるデータは、細い一点鎖線の矢印で示すように、仮想マシンVM4からスイッチSW4、SW1、SW2を経由して、仮想マシンVM2に転送されているものとする。
さらに、各フローを識別するために、フローごとにフローIDが割り当てられているものとする。以下の説明では、MAC1が送信元アドレスでMAC2が宛先アドレスであるフロー(太い実線の矢印)を、フローID=1とする。同様に、MAC3が送信元アドレスでMAC4が宛先アドレスであるフロー(太い破線の矢印)のフローIDを2とし、MAC5が送信元アドレスでMAC6が宛先アドレスであるフロー(細い一点鎖線の矢印)のフローIDを3とする。
図11は、各通信装置30が保持するタイマ値テーブル52と制御装置60が保持するタイマ値テーブル93の例を示す図である。以下、通信装置30bは、図11中のタイマ値テーブル52bを保持しており、通信装置30aは、図11中のタイマ値テーブル52aを保持しているものとする。制御装置60は、ネットワーク中の全ての通信装置30において設定されているタイマ値をタイマ値テーブル93に保持しているものとする。
タイマ値テーブル52には、そのテーブルを保持している通信装置30で稼動している仮想マシンから送信されている各フローについての送信元アドレス、宛先アドレス、送信タイマ値、サンプルレートが含まれている。例えば、タイマ値テーブル52bのフローID=1のエントリでは、送信タイマ値が2秒、サンプルレートが1/2である。送信タイマ値は、報告パケットの送信周期を示す。サンプルレートは、そのフローのパケットのうちで生成部41が報告パケットを生成するために使用するパケットの割合を示す。
図12は、サンプルとするパケットの選択方法の例を示す図である。図12は、フローID=1のフローについて、生成部41bが報告パケットの生成のためのサンプルとするパケットを選択するときの様子を示している。図11のタイマ値テーブル52bに示すように、フローID=1のフローについてのサンプルレートは1/2である。このため、生成部41bは、パケット処理部34bで生成されたフローID=1のパケットを、2つに1つの割合でサンプルとする。図12の例では、生成部41bは、パケットPa1をサンプルとし、パケットPa1の次に送信されるパケットPa2をサンプルとしない。同様にパケットPa3以降も、生成部41bは、フローID=1のパケットから1つおきにサンプルとするパケットを選択する。生成部41bは、サンプルとして選択したパケットの総数と、選択したパケットで送信されるデータ量の積算値を計算して、フローIDに対応付けて記録する。このような処理により、図11に示すタイマ値テーブル52bを記憶している通信装置30bでは、生成部41bは、2秒に1回の周期で、フローID=1のフローについての情報を制御装置60に通知するためのフロー情報を生成する。なお、生成部41が計算する積算値では、制御装置60において正確に転送レートを計算することができるようにするために、パケットのヘッダとペイロードの両方の長さを、1つのパケットで送信されるデータの長さとして計算するものとする。
図11に挙げたタイマ値テーブル52a、52bに送信タイマ値が記録されている他のフローについても同様に処理される。例えば、フローID=3のフローについては、送信タイマ値が10秒に設定されているので、生成部41bは、10秒に1回の周期で、フローID=3のフローについての情報を制御装置60に通知するためのフロー情報51を生成する。このとき、フローID=3のフローでのサンプルレートは1/10であるため、生成部41bは、フローID=3のフローについて、10パケットに1つのパケットをサンプリングして、フロー情報51を生成する。通信装置30aにおいても、生成部41aは、タイマ値テーブル52a中の送信タイマ値に従って、報告パケットを生成する。このため、生成部41aは、フローID=2のフローについて転送レート等の情報を報告するためのフロー情報51を、30秒に1回の頻度で更新するが、このときに、100パケットのうちの1つのパケットをサンプルとして、パケット数などを計算する。
図13は、各通信装置30でのフロー情報51と制御装置60が保持するフロー情報92の例を示す。フロー情報51は、生成部41での処理によって、1回の送信周期において送信されたパケット数と送信されたデータの量を、フローIDやフローの送信元アドレスと宛先ドレスの組み合わせに対応付けた情報である。フロー情報51bは、通信装置30b中の生成部41bがフローID=1、3のフローについて生成した情報の例である。一方、フロー情報51aは、通信装置30a中の生成部41aがフローID=2のフローについて生成した情報の例である。
生成部41は、フロー情報51中のエントリの情報を更新し、更新したエントリに含まれている情報を、制御装置60に送信するための送信パケットを生成する。例えば、生成部41bは、2秒に1回、フロー情報51b中のフローID=1のエントリを更新し、更新後のエントリの内容をペイロードとする報告パケットを、制御装置60宛に生成する。なお、このとき、生成部41bは、制御部40に割り当てられているアドレス(MAC11)を、報告パケットの送信元のアドレスに設定する。従って、フロー情報51bが図13に示すように生成された場合、以下の情報要素を含む報告パケットが生成される。
送信元アドレス:MAC11
宛先アドレス :MAC10
フローID :1
フローの送信元アドレス:MAC1
フローの宛先アドレス :MAC2
パケットの採取数 :23
採取したパケットで送信されたデータ:23000バイト
生成部41bは、フローID=3のフローについても同様の処理を行う。従って、MAC5からMAC6に宛てたフローID=3のパケットを3パケット採取し、4500バイトのデータをサンプリングしたことを、制御装置60宛の報告パケットに書き込む。生成部41bは、報告パケットを、送信部31bを介して、制御装置60に送信する。
また、通信装置30aにおいて、生成部41aがフローID=2のフロー情報を更新すると、生成部41aも制御装置60宛の報告パケットを生成する。フロー情報51aを図13に示すように更新したとき、生成部41aは、MAC3からMAC4に宛てたフローID=2のフロー中の125パケットに150000バイトが含まれていることを示す報告パケットを生成する。このとき、生成部41aは、制御部40aに割り当てられているアドレス(MAC12)を、報告パケットの送信元のアドレスに設定する。生成部41aも、報告パケットを、送信部31aを介して、制御装置60に送信する。
次に、報告パケットを受信したときの制御装置60の処理について説明する。受信部61は、通信装置30bや通信装置30aから受信したパケットを特定部72と計算部73に出力する。なお、受信部61は、予め、各通信装置30が制御装置60との間で制御用のネットワークを用いて通信を行うときに使用するアドレスを記憶しており、受信したパケットのアドレスを用いて、出力先を決定するものとする。
特定部72は、各通信装置30から受信した報告パケット中のペイロードの情報をフロー情報92に格納する。図13のフロー情報51b中の情報を報告する報告パケットが通信装置30bから送信され、図13のフロー情報51a中の情報を報告する報告パケットが通信装置30aから送信された場合のフロー情報92を図13に示す。計算部73は、フロー情報92の情報と、タイマ値テーブル93(図11)を用いて、各フローでの転送レートを計算する。計算部73は、次式を用いて、転送レート(bps)を計算する
R=(B×8)×(1/P)×(1/T)
ここで、Rは転送レート(bps)、Bは転送レートの計算対象のフローについての送信周期で積算されたデータのバイト数、Pは計算対象のフローについてのサンプルレート、Tは計算対象のフローに関する報告パケットの送信周期を示す。なお、計算部73は、計算対象のフローについてのバイト数をフロー情報92から読み出し、サンプルレートと送信周期をタイマ値テーブル93から読み出す。
特定部72は、トポロジー情報91とフォワーディング情報テーブル96を用いて、各フローについての転送経路を求め、各フローが経由するスイッチを特定する。さらに、特定部72は、フローについての制御情報を通知するときの通知先として、報告パケットの送信元アドレスを取得する。
図14は、フロー分析データ94の例を示す。フロー分析データ94は、各フローについての転送レート、転送経路の情報、制御情報の通知先が記録されている。ここで、フロー分析データ94中の転送レートは、計算部73がフロー情報92とタイマ値テーブル93を用いて計算した値である。また、各フローの転送経路は、経由するスイッチを経由する順に示した情報であり、特定部72がトポロジー情報91とフォワーディング情報テーブル96を用いて分析した結果である。ここでは、図14に示す経路の情報は、図10を参照しながら説明した経路を示す情報であるものとする。
(2)輻輳の予兆の検出に伴う制御装置60の処理
次に、スイッチでの動作の例と、予兆の検出について説明する。
各スイッチの送受信部11は、受信パケットをスイッチング部21に出力する。スイッチング部21は、フォワーディングテーブル16を用いて出力ポートを特定し、特定した情報と共に、パケットを送受信部11に出力する。送受信部11は、指定されたポートからパケットを送信する。通知部23は、スイッチング部21での処理やバッファ18でのパケットの格納状況に合わせて、MIB17の情報を更新する。さらに、通知部23は、予め決められた周期で、処理負荷の大きさを表わす情報を制御装置60に通知するためのパケットを生成する。処理負荷の大きさを表わす情報として、各スイッチのMIB17中の情報が使用されても良い。以下、スイッチに蓄積されたデータの量が処理負荷の大きさを表わす値として使用される場合を例として説明する。通知部23は、生成したパケットを、通信部12を介して、制御装置60に送信する。
受信部61は、各スイッチから処理負荷を示す値を含むパケットを受信すると、受信パケットを、検出部71に出力する。なお、受信部61は、各スイッチが制御用ネットワークを用いて通信するときに使用するアドレスを予め記憶しており、受信パケットの送信元アドレスを用いて、受信パケットの出力先を決定する。
図15は、輻輳の予兆の検出例を示す図である。図15のグラフG1は、閾値とスイッチの状態の関係の例を示す。グラフG1の例では、閾値Th1は、そのスイッチに接続されているリンクで輻輳が発生する恐れが無視できる程度であると判定できる場合に、スイッチのバッファ18に蓄積されうるデータ量の最大値である。このため、閾値Th1よりもバッファ18に蓄積されたデータ量が少ないスイッチでは、稼動状態が正常であると判定される。閾値Th2は、スイッチに接続されているリンクで輻輳が発生する可能性が高い状況下で、そのスイッチのバッファ18に蓄積されていることが見込まれるデータ量の最小値である。従って、スイッチのバッファ18に格納されているデータ量が閾値Th2を越えると、そのスイッチやそのスイッチに接続されている1つ以上のリンクで輻輳が発生していると判定される。バッファ18中のデータ量が閾値Th1から閾値Th2までの間に入っているスイッチでは、輻輳の予兆が発生していると判定されるものとする。なお、閾値Th1と閾値Th2の値は、スイッチが備えているバッファ18の大きさやスイッチの処理性能に応じて、スイッチごとに設定されるものとする。
グラフG1に示す閾値とバッファ18中のデータ量の関係を用いた判定処理は、制御装置60中の検出部71において行われる。なお、検出部71は、各スイッチについて、そのスイッチのバッファ18中に蓄積されているデータの量と比較するための閾値を保持しているものとする。図15の例では、テーブルT1に示すように、スイッチSW1についての閾値Th1は100Mバイト、閾値Th2は150Mバイトである。従って、検出部71は、スイッチSW1のバッファ18中に蓄積されたデータ量が100Mバイトになるまでは正常に動作していると判定するが、蓄積されたデータが100〜150Mバイトでは、輻輳の予兆があると判定する。他のスイッチについても、同様に閾値Th1、閾値Th2を用いた判定が行われる。
図15のテーブルT1は、各スイッチについての判定結果の例を示す。図15のテーブルT1は、バッファ18中に蓄積されたデータ量が、スイッチSW1では50Mバイト、スイッチSW2では40Mバイト、スイッチSW3では120Mバイト、スイッチSW4では70Mバイトである場合の例を示す。検出部71は、スイッチSW1に蓄積されたデータ量がスイッチSW1についての閾値Th1(100Mバイト)に満たないことから、スイッチSW1が正常に動作していると判定する。検出部71は、スイッチSW2でのデータの蓄積量がスイッチSW2での閾値Th1未満であり、スイッチSW4でのデータの蓄積量もスイッチSW4での閾値Th1未満であるため、スイッチSW2とSW4でも正常に転送処理が行われていると判定する。スイッチSW3のバッファ18に蓄積されたデータ量が120Mバイトであるのに対し、スイッチSW3についての閾値Th1は100Mバイト、閾値Th2は150Mバイトである。このため、検出部71は、スイッチSW3において、輻輳の予兆を検出したと判定する。検出部71は、スイッチSW3について輻輳の予兆を検出したことを特定部72に通知する。
特定部72は、検出部71から通知されたスイッチを介して転送されているフローを、報告パケットの送信周期を短くするフローとして特定する。検出部71からは、スイッチSW3で輻輳の予兆が発生したことが通知されているので、特定部72は、フロー分析データ94から、スイッチSW3を介して転送されるフローのフローIDを取得する。図14に示すように、フローID=1、2がスイッチSW3を介して転送されている。そこで、特定部72は、決定部81にフローID=1、2がスイッチSW3を介して転送されていることを通知する。
決定部81は、フローID=1、2のフローについての送信周期を短くし、送信周期の変動率とサンプリングされるパケットの間隔の変動率が同じになるように、サンプルレートも短くする。具体的には、決定部81は、サンプルレートを、元の送信周期に対する変更後の送信周期の比の逆数と、現在使用されているサンプルレートの積に変更する。この処理により、送信周期が第1の周期から第2の周期に変更されたとしても、第1の周期で採取されるパケット数と、第2の周期で採取されるパケット数が同数になる。決定部81は、新たに決定した送信周期を示すタイマ値と、サンプルレートをタイマ値テーブル93に格納する。
図16は、変更後のタイマ値テーブル93の例を示す。フローID=1のフローでは、変更前(図11)は送信タイマ値が2秒であるのに対し、変更後(図16)では1.5秒に短縮され、報告パケットの送信周期が3/4になっている。一方、サンプルレートについて、決定部81は、送信タイマ値を3/4倍にすることから、変更前の値(1/2)の4/3倍である2/3に変更する。フローID=2のフローについても、同様の手法により送信タイマ値とサンプルレートが変更される。図16の例では、決定部81は、フローID=2のフローについての送信タイマ値を、30秒から3秒に短縮している。また、決定部81は、送信タイマ値を1/10にしたことから、フローID=2のフローについてのサンプルレートを10倍にする。このため、フローID=2のフローについてのサンプルレートは1/10に変更される。
さらに、決定部81は、制御装置60に対する負荷の増大を防ぐために、輻輳の予兆が検出されたスイッチを経由せずに転送されているフローについては、報告パケットの送信周期を長くする。輻輳の予兆が検出されたスイッチを経由せずに転送されているフローの特定の際にも、決定部81は、フロー分析データ94を参照する。ここでは、フローID=3のフローがスイッチSW3を経由せずに転送されている。そこで、決定部81は、フローID=3のフローの報告パケットの生成に使用される送信タイマ値を長くする。図16の例では、決定部81は、フローID=3のフローについて、送信タイマ値を、図11での設定の4倍である40秒に変更している。決定部81は、送信タイマ値の変更に伴い、フローID=3のフローについてのサンプルレートを1/4倍する。このため、図16では、フローID=3のフローについてのサンプルレートは1/40に設定される。
図17は、フロー情報の送信のタイミングの変更に使用されるパケットの例とフロー情報の送信タイミングの変更例を示す。決定部81は、変更後のタイマ値テーブル93中の送信タイマ値とサンプルレートを各通信装置30に通知するための通知パケットを生成する。図17のF1は、送信タイマ値を小さい値に変更する場合に決定部81が生成する通知パケットのフォーマットの例を示す。通知パケットには、送信元アドレス、宛先アドレス、要求動作、フローID、送信タイマ値が含まれる。通知パケットでの送信元アドレスは制御装置60に設定されているアドレス(MAC10)である。宛先アドレスには、フロー分析データ94の通知先アドレスが設定される。F1はフローID=1のタイマ値を設定するためのデータであるので、フロー分析データ94(図14)より、宛先アドレスはMAC11に設定される。要求動作フィールドの値は、送信タイマ値の変更を通知する値であることを示す値であり、図17のF1では1である。送信タイマ値は、タイマ値テーブル93に新たに設定された値が記録される。フローID=2のフローについても同様に、通知パケットが生成される。このため、フローID=2のフローの送信タイマ値の変更に使用されるパケットには、以下の情報要素が含まれる。
送信元アドレス:MAC10
宛先アドレス :MAC12
要求動作 :1
フローID :2
送信タイマ値 :3
送信タイマ値を長くする場合に使用される通知パケットのフォーマットもF1と同様である。例えば、フローID=3のフローについての送信タイマ値が10秒から40秒に変更される場合、F2に示す情報要素を含むパケットが生成される。なお、フローID=3のフローも通信装置30bから送信されているので、宛先アドレスはMAC11に設定される。
図17のグラフG2は、送信タイマ値の変更による報告パケットの受信頻度の変更例を説明する模式図である。Aは、フローID=1、2のように、予兆が検出されたスイッチを介して転送されているフローの報告パケットの送信頻度の例を示す。Aに示すように、制御装置60は、予兆を検出したスイッチを介して転送されるフローについては、送信タイマ値を短くするので、予兆の発見から、新たな報告パケットの取得までの時間は、予兆の発見前の報告パケットの送信間隔より短くできる。一方、制御装置60は、予兆を検出したスイッチを介さずに転送されるフローについては、Bに示すように、予兆の発見から、新たな報告パケットの取得までの時間を、予兆の発見前の報告パケットの送信間隔より長くできる。
(3)通信装置30での送信タイマ値の更新処理
以下、制御装置60から通知パケットを受信したときの通信装置30での処理の例を説明する。受信部32は、受信したパケットを制御パケット処理部42に出力する。制御パケット処理部42は、通知パケットで送信タイマ値の変更が要求されたフローに関するタイマ値テーブル52中のエントリの情報を変更する。
図18は、タイマ値テーブル52の変更例を示す。タイマ値テーブル52b―2は、制御パケット処理部42bの処理によって得られた更新後のタイマ値テーブル52である。制御パケット処理部42bは、図17のF1に示す通知パケットを受信すると、フローID=1のフローについての送信タイマ値を、通知パケットで通知された値に設定する。さらに、現在の設定値と変更後の値の比を求め、得られた値の逆数とサンプルレートの現在の値の積を新たなサンプルレートに設定する。すなわち、制御パケット処理部42bは、図17のF1に示す通知パケットを用いて、送信タイマ値を1.5秒に短縮する。さらに、変更前の送信タイマ値が2秒であることから、制御パケット処理部42bは、報告パケットの送信周期が3/4になったと計算する。さらに、制御パケット処理部42bは、フローID=1のフローについての変更前のサンプルレートが1/2であるので、新たなサンプルレートを、変更前のサンプルレートの4/3倍である2/3にする。
さらに、制御パケット処理部42bは、受信部32を介して、図17に示す通知パケットF2も取得するので、フローID=3のフローについての送信タイマ値を40秒に延ばす。さらに、送信タイマ値を、図11での設定の4倍である40秒にしたことから、決定部81は、フローID=3のフローについての現在の設定の1/4倍である1/40に設定する。
また、通信装置30aにおいても、制御パケット処理部42aが通知パケットを処理することにより同様の処理が行われる。制御パケット処理部42aは、フローID=2のフローについての送信タイマ値を、30秒から3秒に短縮するとともに、サンプルレートを1/100から1/10に変更する。その結果、図18に示すタイマ値テーブル52a−2が得られる。
タイマ値テーブル52の更新が終わると、生成部41は、更新後の送信タイマ値に従って、フロー情報51の更新と、報告パケットの生成を行う。このため、通信装置30bでのタイマ値テーブル52b―2への更新の終了後は、生成部41bは、フローID=1のフローに関する報告パケットを1.5秒に1回、送信部31bを介して、制御装置60に送信する。さらに、生成部41bは、フローID=3のフローに関する報告パケットを40秒に1回生成し、制御装置60宛に送信する。一方、通信装置30aでは、生成部41aがフローID=2のフローに関する報告パケットを3秒に1回生成し、制御装置60宛に送信する。
(4)輻輳の発生と経路の変更
制御装置60は、送信タイマ値の変更後にネットワーク中の通信装置30から報告パケットを受信すると、輻輳の予兆を検出する前と同様の解析を行う。このため、フロー分析データ94のデータが更新される。
図19は、リンク利用率テーブル95の例を示す。予兆の検出後、計算部73は、フロー分析データ94を用いて、リンクごとの使用率を特定する。以下、リンク利用率テーブル95中のデータを更新するときの計算部73の処理の例を説明する。
計算部73は、スイッチ間の接続関係と、スイッチ間のリンクの容量を、トポロジー情報91(図9)から取得する。この処理により、リンク利用率テーブル95のリンクの欄と、容量の欄の値が特定される。
次に、計算部73は、ネットワーク中のスイッチ間を接続している各リンクについて、そのリンクを介して転送されているデータの転送レートの総和を求めるために、各リンクを経由するフローを特定する。以下の説明では、予兆の検出や送信タイマ値の変更後に制御装置60が受信した報告パケットを用いて更新した後のフロー分析データ94が図14に示す通りである場合を例とする。すると、フローID=1のフローがスイッチSW4、SW3、SW2を介して転送されていることから、計算部73は、フローID=1のフローがスイッチSW4とSW3の間のリンクとスイッチSW3とSW2の間のリンクを経由すると判定する。また、フローID=2のフローもスイッチSW4、SW3、SW2を介して転送されていることから、計算部73は、フローID=2のフローも、スイッチSW4とSW3の間のリンクとスイッチSW3とSW2の間のリンクを経由すると判定する。さらに、フローID=3のフローはスイッチSW4、SW1、SW2を介して転送されていることから、計算部73は、フローID=1のフローがスイッチSW4とSW1の間のリンクとスイッチSW1とSW2の間のリンクを経由すると判定する。
計算部73は、次に、リンクごとに、どのフローの転送処理に使用されているかを特定し、転送中のフローの転送レートの総和を求める。スイッチSW1とSW2の間のリンクと、スイッチSW1とSW4の間のリンクは、いずれも、フローID=3のフローの転送に使用されている。一方、スイッチSW2とSW3の間のリンク、および、スイッチSW3とSW4の間のリンクは、いずれも、フローID=1、3の2つのフローの転送に使用されている。ここで、各フローの転送レートは、図14より、以下のとおりである。
フローID=1:10Mbps
フローID=2:80Mbps
フローID=3:20Mbps
このため、図19の転送レートの欄に示すように、スイッチSW1とSW2の間のリンク、および、スイッチSW1とSW4の間のリンクの転送レートは、20Mbpsとなる。一方、スイッチSW2とSW3の間のリンク、および、スイッチSW3とSW4の間のリンクの転送レートは、90Mbpsとなる。
計算部73は、各リンクについて、そのリンクの容量に対する転送レートの百分率を、リンクの使用率とする。例えば、スイッチSW1とSW2の間のリンクでは、容量が160Mbpsであるのに対し、転送レートは20Mbpsであるため、使用率は12.5%である。計算部73は、同様の計算を他のリンクに対しても行う。図19の例では、スイッチSW1とSW4の間のリンクの使用率は12.5%、スイッチSW2とSW3の間のリンクの使用率は90%、スイッチSW3とSW4の間のリンクの使用率は75%であると計算される。
計算部73は、リンクの利用率が閾値Th3を超えたリンクを、輻輳を防止するために転送レートを下げる対象として、選択部82に通知する。ここで、閾値Th3は、処理負荷が輻輳の検出に用いる閾値Th2に近づいたスイッチに接続されているリンクの使用率の予測値である。すなわち、閾値Th3は、そのリンクに接続されているスイッチでのバッファ18の使用率が閾値Th2になる程度のリンクの利用率の予測値であり、経験則に基づいて設定される。例えば、閾値Th3は、リンクの利用率=85%に設定されているとする。この場合、スイッチSW3とSW2の間のリンクの利用率が85%を越えた状態で、スイッチSW3からSW2に向けてフローの送信が行われていると、スイッチSW3でのバッファ18の使用率が閾値Th2の周辺にまで上昇していることになる。図19では、スイッチSW2とSW3の間のリンクの使用率は90%であるので、計算部73は、スイッチSW2とSW3の間のリンクを、転送レートを下げる対象として選択部82に通知する。
図20は、計算部73から通知されたリンクを使用するフローについての使用率の計算例を示す。図20を参照しながら、選択部82が計算部73から通知されたリンクを使用するフローごとに、リンクの利用率を計算する方法について説明する。
選択部82は、計算部73から通知されたリンクをキーとして、フロー分析データ94(図14)を検索することにより、通知されたリンクを経由するフローを特定する。ここではスイッチSW2とSW3の間のリンクが通知されたので、選択部82は、フロー分析データ94から、スイッチSW2とSW3の両方を経由するスイッチに含むフローのフローIDを取得する。さらに、選択部82は、取得したフローIDに対応付けられた転送レートも、フロー分析データ94から読み出す。この処理により、スイッチSW2とSW3の間のリンクを経由するフローがフローID=1、2のフローであることと、フローID=1のフローの転送レートが10Mbps、フローID=2のフローの転送レートが80Mbpsであることが特定される。換言すると、これらの処理により、選択部82は、図20のうちのフローIDと転送レートの欄の値を取得する。なお、図20では、図を見やすくするために、フローの情報として、送信元アドレスと宛先アドレスの組み合わせも含めているが、送信元アドレスと宛先アドレスについては、選択部82が取得しても良く、また、取得しなくても良い。
さらに、選択部82は、トポロジー情報91(図9)を用いて、計算部73から通知されたリンクの容量も取得する。ここでは、スイッチSW2とSW3の間のリンクの容量は100Mbpsである。選択部82は、各フローの転送レートについて、リンクの容量に対する各フローの転送レートの百分率を計算する。その結果、図20に示すように、フローID=1のフローについてのスイッチSW2とSW3の間のリンクの使用率は、10%となる。同様の計算により、フローID=2のフローでは、使用率が80%となる。選択部82は、リンクの使用率を計算したフローのうち、相対的に使用率の大きいフローを、転送経路を変更するフローとして選択する。図20の例では、選択部82は、フローID=2のフローを、経路を変更するフローとして選択する。
次に選択部82は、選択したフローについて、リンクの利用率が閾値Th3を超えているリンクを経由しない転送経路を検索する。例えば、選択部82は、フローID=2のフローについて、スイッチSW2とSW3の間のリンクを経由せずに転送する経路を検索する。すなわち、選択部82は、MAC3が割り当てられた仮想マシンVM1が動作している通信装置30aから、スイッチSW2とSW3の間のリンクを経由せずに、MAC4が割り当てられた仮想マシンが動作している通信装置30bに至る経路を検索する。検索の際には、選択部82は、適宜、トポロジー情報91を参照する。検索の結果、選択部82は、通信装置30aからスイッチSW2、スイッチSW1、スイッチSW4を経由する手経路を用いると、スイッチSW2とSW3の間のリンクを経由せずにフローID=2のフローを転送できることを特定したとする。選択部82は、得られた経路を用いてフロー分析データ94を更新する。
図21は、更新されたフロー分析データの例を示す。図21ではフローID=2のフローの経路がスイッチSW2、スイッチSW1、スイッチSW4を経由することが記録されている。このため、図21の情報のうち、太線で囲んだ情報が図14とは、異なっている。選択部82は、新たに選択した経路をフロー分析データ94に書き込むと、フローID=2の経路を変更することを指示パケット生成部83に通知する。
図22は、フォワーディング情報テーブル96の変更例を示す。図22を参照しながら、フォワーディング情報テーブル96−1がフォワーディング情報テーブル96−2に変更される場合を例として、指示パケット生成部83が行う処理の例を説明する。
フォワーディング情報テーブル96−1は、経路の変更前に各スイッチで使用されているフォワーディングテーブル16の情報を集約したテーブルである。すなわち、各スイッチが宛先に指定されたアドレスごとに、そのスイッチのどのポートから出力しているかがフォワーディング情報テーブル96−1に示されている。例えば、現在、MAC4宛てのパケットはスイッチSW2のポートPo1から出力されている。スイッチSW2のポートPo1は、トポロジー情報91(図9)に示すとおり、スイッチSW3に接続されている。このため、スイッチSW2がMAC4宛てのパケットをポートPo1から出力することにより、MAC4宛てのパケット(フローID=2)は、スイッチSW2からスイッチSW3に転送されている。また、MAC4宛てのパケットはスイッチSW3のポートPo3から出力されている。スイッチSW3のポートPo3は、スイッチSW4に接続されている(図9参照)。このため、スイッチSW3がMAC4宛てのパケットをポートPo3から出力することにより、MAC4宛てのパケット(フローID=2)は、スイッチSW3からスイッチSW4に転送されている。
まず、指示パケット生成部83は、フローID=2の経路を変更後のフロー分析データ94に示されているように変更するために、経路の変更により転送先が変更になるスイッチを特定する。フローID=2についての変更前の経路がスイッチSW2→SW3→SW4であるのに対し、変更後の経路はスイッチSW2→SW1→SW4である。そこで、指示パケット生成部83は、経路の変更により、スイッチSW2において、MAC4宛てのパケットの転送先がSW3からSW1に変更されることを特定する。さらに、指示パケット生成部83は、スイッチSW1では新たにMAC4宛てのパケットの転送を開始することと、スイッチSW3ではMAC4宛てのパケットの転送を行わなくなることも特定する。このため、指示パケット生成部83は、スイッチSW1、SW2、SW3に、フォワーディングテーブル16を変更させることを決定する。
次に、指示パケット生成部83は、フォワーディング情報テーブル96−1とトポロジー情報91(図9)を用いて、新たな転送経路を使用するために設定する出力ポートの情報を決定する。例えば、スイッチSW2のポートPo2がスイッチSW1に接続されているので、指示パケット生成部83は、スイッチSW2におけるMAC4宛てのパケットの出力ポートをポートPo2に決定する。同様に、スイッチSW1のポートPo3がスイッチSW4に接続されているので、指示パケット生成部83は、スイッチSW1におけるMAC4宛てのパケットの出力ポートをポートPo3に決定する。また、指示パケット生成部83は、スイッチSW3でのMAC4宛ての出力ポートの情報をスイッチSW3のフォワーディングテーブル16から削除することも合わせて決定する。指示パケット生成部83は、決定した情報を、各スイッチに通知するための指示パケットを生成する。
図23は、指示パケットの例を示す図である。指示パケットには、送信元アドレス、宛先アドレス、スイッチへの要求動作、エントリ情報が含まれる。指示パケット生成部83は、送信元アドレスフィールドに、制御装置60に割り当てられたアドレス(MAC10)を記録する。指示パケット生成部83は、宛先アドレスフィールドに、指示パケットの宛先のスイッチに割り当てられたアドレスを記録する。要求動作フィールドには、フォワーディングテーブル16に新たなエントリの追加、現存するエントリの内容変更、エントリの削除のいずれかを示す値が記録される。図23の例では、新たなエントリの追加を示す値は11、現存するエントリの内容変更を示す値は12、エントリの削除を示す値は13である。エントリ情報フィールドには、要求動作フィールドに指定された動作の対象となるエントリの情報が記録される。エントリの情報は、そのエントリに含まれているMACアドレスと出力先のポート番号の組み合わせで表わされる。
指示パケットは、輻輳の予兆が検出されたスイッチと、輻輳の予兆が検出されたスイッチに代わって、転送経路を変更する対象となっているフローの転送を開始するスイッチに送信される。さらに、転送経路の変更対象となるフローを輻輳の予兆が検出されたスイッチに転送しているスイッチにも、指示パケットが送信される。
図23のF3は、スイッチSW1に対して、MAC4宛てのパケットをポートPo3から出力するための情報をフォワーディングテーブル16に書き込むことを指示するパケットである。なお、図23の例では、スイッチSW1のアドレスはMAC31、スイッチSW2のアドレスはMAC32、スイッチSW3のアドレスはMAC33であるものとする。同様に、図23のF4は、スイッチSW2に対して、MAC4宛てのパケットの出力先をポートPo2に変更するように、フォワーディングテーブル16を書き換えることを指示するための指示パケットである。さらに、図23のF5は、スイッチSW3に対して、MAC4宛てのパケットの出力先をポートPo3に指定しているエントリを、フォワーディングテーブル16から削除することを指示するための指示パケットである。指示パケット生成部83は、F3〜F5に示すパケットを生成すると送信部62に出力する。送信部62は、制御用のネットワークを用いて、宛先のスイッチに指示パケットを送信する。
図22に示すように、指示パケット生成部83は、フォワーディング情報テーブル96−1をフォワーディング情報テーブル96−2に更新する処理も行う。フォワーディング情報テーブル96−2は、各パケットにおいて、指示パケットに従ってフォワーディングテーブル16が書き換えられたときに、各スイッチが保持するフォワーディングテーブル16の情報を集約している。図23のF3に従って、スイッチSW1で新たなエントリの追加が行われると、変更後のスイッチSW1のフォワーディングテーブル16には、MAC4宛てのパケットの出力先がポートPo3であることが登録される。さらに、図23のF4に従って、スイッチSW2でエントリの変更が行われると、変更後のスイッチSW2のフォワーディングテーブル16では、MAC4宛てのパケットの出力先がポートPo2となる。また、図23のF5に従って、スイッチSW3でエントリの変更が行われると、変更後のスイッチSW3のフォワーディングテーブル16では、MAC4宛てのパケットの転送先のデータが削除される。図22では、フォワーディングテーブル中の変更点を太線で示す。
次に、指示パケットを受信したときの各スイッチの動作について説明する。スイッチSW1の通信部12は、制御装置60から指示パケットを受信すると、指示パケットを更新部22に出力する。更新部22は、指示パケットのエントリ情報フィールド中の情報について、要求動作フィールドに指定された動作を行うことによりフォワーディングテーブル16を書き換える。スイッチSW1の場合、図23のF3に示す指示パケットを受信するので、更新部22は、MAC4宛てのパケットをポートPo3から出力するための情報をフォワーディングテーブル16に書き込む。このため、スイッチSW1のフォワーディングテーブル16は、図22のフォワーディング情報テーブル96−2のスイッチSW1に関連付けられた情報と一致する。
スイッチSW2やスイッチSW3においても、同様に、指示パケットのエントリ情報フィールド中の情報について、要求動作フィールドに指定された処理が行われる。すなわち、スイッチSW2の更新部22は、MAC4宛てのパケットの出力ポートをPo1からPo2に変更する。このため、スイッチSW2のフォワーディングテーブル16は、図22のフォワーディング情報テーブル96−2のスイッチSW2に関連付けられた情報となる。また、スイッチSW3の更新部22は、MAC4宛てのパケットの出力ポートの情報をフォワーディングテーブル16から削除する。従って、スイッチSW3のフォワーディングテーブル16は、図22のフォワーディング情報テーブル96−2のスイッチSW3に関連付けられた情報と一致する。
図24は、経路の変更例を示す図である。スイッチSW2〜SW4の各々でフォワーディングテーブル16が書き換えられたことにより、フローID=2のフロー(太い破線の矢印)は、図24に示すように、スイッチSW2、SW1、SW4を介して転送される。フローID=1、3のフローの転送経路は変更されないため、スイッチSW2とSW3の間のリンクは、フローID=1のフローの転送のみに使用される。すると、スイッチSW2とSW3の間のリンクの転送レートは、フローID=1のフローの転送レート(10Mbps)に下がるため、スイッチSW2とSW3の間のリンクの輻輳は解消する。スイッチSW2とSW3の間のリンクの輻輳の解消に伴い、スイッチSW3でバッファ18に格納されているデータの量も減少する。
輻輳の予兆の検出以降は、制御装置60と通信装置30との間の通信を詳しく説明してきたが、輻輳の予兆が検出された後も、スイッチSW1〜SW4は、予め決められた周期で、バッファ18に蓄積されたデータ量を制御装置60に通知している。検出部71は、各スイッチから通知されたパケットを用いて、全てのスイッチでのバッファ18の使用量が閾値Th1を下回っているかを判定する。全てのスイッチでのバッファ18の使用量が閾値Th1を下回ると、検出部71は、全てのスイッチが正常に動作していると判定する。すると、検出部71は、決定部81に対して、全てのフローに関して報告パケットの送信周期をデフォルトに戻すことを要求する。決定部81は、予め、各フローについて、送信周期のデフォルト値を記憶している。そこで、決定部81は、各フローについて、送信タイマ値をデフォルトの送信周期にした通知パケットを、送信部62を介して、そのフローの送信元の通信装置30に送信する。各通信装置30の生成部41は、受信部61を介して、制御装置60からの通知パケットを取得する。生成部41は、通知パケットに従って、輻輳の予兆が検出されたときと同様に、タイマ値テーブル52を更新する。このため、全てのスイッチで動作が正常に戻ると、各フローについての報告パケットの送信周期はデフォルトの周期に戻る。
図25は、転送装置10からパケットを受信したときの制御装置60の処理の例を説明するフローチャートである。なお、図25では、制御装置60が受信している制御パケットの転送レートが所定の値(閾値Th4)に達するまでは、報告パケットの送信タイマ値を大きくしないように変形された場合を例として示している。
受信部61は、転送装置10からパケットを受信すると検出部71に出力する(ステップS1)。検出部71は、送信元の転送装置10においてバッファ18の利用率が閾値Th1未満であるかを判定する(ステップS2)。送信元の転送装置10においてバッファ18の利用率が閾値Th1以上である場合、検出部71は輻輳の予兆を検出したことを特定部72に通知する(ステップS2でNo)。特定部72は、送信元の転送装置10を通るフローを特定する(ステップS3)。決定部81は、特定部72で特定されたフローについて、報告パケットを生成するときに使用する送信タイマの値(報告パケットの生成周期)を短くし、サンプルレートを上げる(ステップS4)。検出部71は、通信装置30からの報告パケットや、各転送装置10から受信するパケットの転送レートの合計を観測する(ステップS5)。検出部71は、観測した転送レートの合計値が閾値Th4を越えているかを判定する(ステップS6)。制御装置60に送信されてくる制御用のパケットの転送レートの合計が閾値Th4以上になると、検出部71は、決定部81に、報告パケットの生成周期を長くできるフローの選択を要求する(ステップS6でYes)。決定部81は、バッファ18の利用率が閾値Th1を超えた転送装置10を経由せずに転送されているフローを選択する(ステップS7)。決定部81は、選択したフローについて、報告パケットの生成周期を長くし、サンプルレートを下げる(ステップS8)。
一方、ステップS2で、送信元の転送装置10においてバッファ18の利用率が閾値Th1未満であると判定された場合、送信元の転送装置10に関する輻輳の予兆は検出されていない(ステップS2でYes)。検出部71は、他の転送装置10でもバッファ18の利用率がTh1未満であるかを判定する(ステップS9)。ネットワーク中のいずれかの転送装置10でもバッファ18の利用率がTh1以上の場合、輻輳の予兆が検出されているので、検出部71は処理を終了する(ステップS9でNo)。一方、ネットワーク中のいずれの転送装置10でもバッファ18の利用率がTh1未満の場合、輻輳の予兆も解消しているので、検出部71は、決定部81に報告パケットの生成周期をデフォルト値に戻すことを要求する(ステップS9でYes)。決定部81は、報告パケットの生成周期を変更したフローがあるかを判定する(ステップS10)。報告パケットの生成周期を変更したフローがある場合、決定部81は、報告パケットの生成周期をデフォルト値に戻すための指示パケットを送信して処理を終了する(ステップS10でYes、ステップS11)。一方、報告パケットの生成周期を変更したフローがない場合、決定部81は処理を終了する(ステップS10でNo)。
図26は、通信装置30からパケットを受信したときの制御装置60の処理の例を説明するフローチャートである。受信部61は、通信装置30から報告パケットを受信すると、計算部73と特定部72に出力する(ステップS21)。計算部73は、報告パケットを用いて、各フローの転送レートを計算する(ステップS22)。さらに、計算部73は、転送フローの計算結果とトポロジー情報91を用いて、各リンクの使用率を計算する(ステップS23)。計算部73は、リンク使用率が閾値Th3以上のリンクがあるかを判定する(ステップS24)。リンク使用率が閾値Th3以上のリンクがある場合、選択部82は、そのリンクを用いて転送されるフローを特定する(ステップS24でYes、ステップS25)。選択部82は、輻輳を回避するための変更経路を求める(ステップS26)。指示パケット生成部83は、求められた経路変更を行うために、転送装置10に送信する指示パケットを生成し、送信部62を介して転送装置10に送信する(ステップS27)。一方、リンク使用率が閾値Th3以上のリンクがない場合、計算部73は処理を終了する(ステップS24でNo)。
このように、第1の実施形態にかかる方法では、転送装置10からの通知により、輻輳が発生し易い箇所を、輻輳の予兆が発生した段階で特定し、輻輳の原因になり得るフローの転送レートを取得する周期を短くする。このため、輻輳が発生してからリンク使用率を用いて輻輳の発生または輻輳の発生する可能性が高まっていることを検出するまでの時間を短くできる。さらに、輻輳の検出に使用したデータ自体を用いて輻輳の回避のための処理が行われるので、輻輳の検出から輻輳を解消するための経路変更などの処理が行われるまでの時間が短くてすむ。また、輻輳が発生する状態に近づいた段階で、制御装置60がネットワーク中のフローの転送経路を変更することにより、輻輳を事前に予防することができる可能性も高い。
さらに、制御装置60は、輻輳の発生に影響しづらいフローについては転送レートを取得する周期を長くすることにより、制御装置60が処理するパケットの数を減らすことができる。このため、制御装置60の負荷を高めることなく、輻輳の発生から短期間で輻輳を検出できる。さらに、制御装置60の処理負荷が大きくならないように調整されるので、転送レートの取得処理が制御装置60での変更後の転送経路の導出の妨げになりにくい。従って、制御装置60は、輻輳の検出や輻輳の回避に使用する可能性の低い情報の処理量を極力減らして、効率よく、輻輳の検出と回避を行うことができる。
<第2の実施形態>
第2の実施形態では、報告パケットの送信周期の決定方法の変形例を説明する。なお、輻輳の予兆が検出される前の処理、輻輳の予兆の検出方法、報告パケットの送信周期を短くするフローの特定方法、送信周期を表わす送信タイマ値の通知方法などは、第1の実施形態と同様である。
図27は、報告パケットの送信間隔の決定方法の例を説明する図である。図27の例では、各転送装置10について、バッファの使用量が閾値Th1未満の場合に使用される送信タイマ値In1と、バッファの使用量が閾値Th2以上の場合に使用される送信タイマ値In2が決められている。バッファの使用量が閾値Th1から閾値Th2までの間では、バッファの使用量として通知された値が大きいほど、短くなるように設定される。このとき、バッファの使用量として通知された値から閾値Th1を差し引いた値の大きさに比例して、送信タイマ値の短縮量が大きくなる。従って、報告パケットの送信周期を、バッファの使用量に対してプロットすると、図27に示すグラフで表わされる。転送装置10でのバッファ18の使用量がxのとき、送信タイマ値yは、以下の式で求められる。
y=(In1−In2)/(Th1−Th2)×(x−Th2)+In2
例えば、あるフローについては、バッファの使用量が閾値Th1未満の場合の送信タイマ値(In1)が30秒で、バッファの使用量が閾値Th2以上の場合の送信タイマ値(In2)が2秒であるとする。さらに、閾値Th1=100MB、閾値Th2=300MBであるとする。予兆が検出された転送装置10でのバッファ18の使用量がx=200MBであれば、そのフローについては、以下の式から、短縮後の報告パケットの送信周期が計算される。
y=(30−2)/(100−300)×(200−300)+2=16(秒)
決定部81は、他のフローについても同様の計算を用いて、短縮後の送信タイマ値を求めることができる。
次に、送信周期を長くするフローについての送信周期の決め方について説明する。輻輳の予兆が検出される前に単位時間当たりに制御装置60が受信するパケット数が、輻輳の予兆の検出後にも同じ値になるように、決定部81において、送信周期が決定される。例えば、予兆の検出前に、n1+n2個のフローが全てy0の周期で制御装置60に送信されていたとする。このうち、n1個のフローが輻輳の発生に関連するフローであるとし、前述の方法により、報告パケットの送信周期がy1に変更されたとする。一方、n2個のフローについては、輻輳の発生との関連が薄いため、送信周期が現在より長い値であるy2に設定されるとする。この場合、制御装置60が単位時間当たりに受信する報告パケットの総数Mは、送信周期の変更前と変更後で変わらないので、(1)式で表わせる。
M=(1/y0)×(n1+n2)
={(1/y1)×n1}+{(1/y2)×n2} ・・・(1)
(1)式を変形すると、報告パケットの送信周期を延ばすフローについての送信タイマ値y2は(2)式で表わせる。
y2={y0×y1×n2}/{y1×(n1+n2)−(y0×n1)}
・・・(2)
例えば、複数のフローについて、予兆の検出前の送信周期(y0)が30秒で、報告パケットの送信周期を短くするフローでの送信タイマの変更後の値(y1)が16秒であるとする。さらに、報告パケットの送信周期が短縮されるフローの数(n1)が2(個)で、報告パケットの送信周期が延長されるフローの数(n2)が8(個)であるとする。この場合、送信周期が延長されるフローについての送信タイマ値は以下のように求められる。
y={30×16×8}/{16×(2+8)−(30×2)}=38.4(秒)
決定部81が第2の実施形態で説明したように送信タイマ値を計算すると、制御装置60で処理するパケットの総量を変動させることなく、輻輳の原因になりやすいフローについての報告パケットの取得頻度を高めることができる。
<第3の実施形態>
第3の実施形態でも、報告パケットの送信周期の決定方法の変形例を説明する。なお、輻輳の予兆が検出される前の処理、輻輳の予兆の検出方法、報告パケットの送信周期を短くするフローの特定方法、送信周期を表わす送信タイマ値の通知方法などは、第1の実施形態と同様である。また、送信周期を長くするフローについての送信タイマ値の決定方法は第2の実施形態と同様である。
図28は、報告パケットの送信間隔の決定方法の例を説明する図である。図28の例でも、各転送装置10について、バッファの使用量が閾値Th1未満の場合に使用される送信タイマ値In1と、バッファの使用量が閾値Th2以上の場合に使用される送信タイマ値In2が決められている。図28の例では、バッファの使用量が閾値Th1から閾値Th2までの間では、バッファの使用量として通知された値が大きいほど短くなるように、送信タイマ値が、転送装置10中のバッファ量に対して2次曲線を描いて変動する。図28に示すグラフでは、転送装置10でのバッファ18の使用量がxであるとすると、送信タイマ値yは、以下の式で求められる。
y=(In1−In2)/(Th1−Th2)×(x−Th2)+In2
例えば、あるフローについては、バッファの使用量が閾値Th1未満の場合の送信タイマ値(In1)が30秒で、バッファの使用量が閾値Th2以上の場合の送信タイマ値(In2)が2秒であるとする。さらに、閾値Th1=100MB、閾値Th2=300MBであるとする。予兆が検出された転送装置10でのバッファ18の使用量がx=200MBであれば、そのフローについては、以下の式から、短縮後の報告パケットの送信周期が計算される。
y=(30−2)/(100−300)×(200−300)+2=9(秒)
決定部81が第3の実施形態で説明したように送信タイマ値を計算すると、第2の実施形態に示す方法で計算した場合に比べ、転送装置10でのバッファ18の使用量が閾値Th1を超過した量が少なくても報告パケットの送信周期を短く設定できる。このため、第3の実施形態を用いると、制御装置60での輻輳の検出のタイミングを効率的に早めることができる。
<第4の実施形態>
第4の実施形態では、輻輳の予兆が検出された転送装置10を介さずに転送されているフローについての報告パケットの送信周期を、転送レートの変動が小さいフローほど長くなるように設定する方法について説明する。なお、輻輳の予兆が検出される前の処理、輻輳の予兆の検出方法、報告パケットの送信周期を短くするフローの特定方法、送信周期を表わす送信タイマ値の通知方法などは、第1〜第3の実施形態と同様である。
計算部73は、輻輳の予兆が検出された転送装置10を介さずに転送処理が行われるフローを、そのフローの転送レートの変動量を用いて複数のクラスに分類する。変動量は、あるフローの偏差がそのフローの平均値に占める割合として表わすものとする。所定の時間中での転送レートの変動量の小さいクラスのフローは、以後も、転送レートの変動が相対的に小さいことが期待される。そこで、計算部73は、輻輳の予兆が検出された転送装置10を介さずに転送されているフローのうちで、転送レートの変動が相対的に小さいフローの識別子を、決定部81に通知する。
決定部81は、通知された報告パケットの送信周期(送信タイマ値)を長くし、輻輳の予兆が検出された転送装置10を介さずに転送されているフローであっても、転送レートの変動が大きいフローについては、送信タイマ値を変更しない。
計算部73は、送信周期を長くしたフローが原因となる輻輳の発見が遅延することを防ぐために、送信周期を長くしたフローの転送に使用されている転送装置10での予兆閾値を小さくする。このため、報告パケットの送信周期が延びたフローの転送に使用されている転送装置10では輻輳の予兆が検出されやすくなるため、報告パケットの送信周期を長くしたフローが原因となる輻輳が発生しても、輻輳の発見が遅延しない。
なお、計算部73は、フローの転送レートの変動量を2つ以上のクラスに分けてもよい。この場合、計算部73は、転送レートの変動量に応じた分類を行うために、閾値Th5とTh6の2つの閾値を用いる。ここで、閾値Th5の方が閾値Th6より小さいとする。計算部73は、転送レートの変動量が閾値Th5未満のフローと、転送レートの変動が閾値Th5から閾値Th6までのフローを、送信タイマ値を長くする対象として決定部81に通知する。このとき、計算部73は、通知するフローがいずれのクラスに分類されているかも決定部81に合わせて通知する。
決定部81は、分類されたクラスに応じて、送信タイマ値とそのフローを転送している転送装置10での閾値Th1を変更する。閾値Th5よりも変動が小さいフローについては、変動が閾値Th5からTh6までのフローよりも、送信タイマ値の変動量を大きくする。
図29は、輻輳の予兆を検出したときの制御装置60の処理の例を説明するフローチャートである。なお、図29は一例であり、フローの送信タイマ値の変更量や、転送装置10での予兆を検出するために使用される閾値Th1の変更量は、実装に応じて変更され得る。さらに、ステップS37とS38の順序は互いに変更されても良く、ステップS39とS40の順序も互いに変更されても良い。
検出部71は、輻輳の予兆を検出するまで待機する(ステップS31でNo)。検出部71が輻輳の予兆を検出すると、特定部72は、予兆が検出された転送装置10で転送されないフローを特定する(ステップS31でYes、ステップS32)。計算部73は、特定した各フローの所定時間での転送レートの変動量を算出する(ステップS33)。計算部73は、変数nを1に設定し、n番目のフローを選択する(ステップS34、S35)。計算部73は、選択したフローでの変動量を閾値と比較する(ステップS36)。選択したフローでの変動量が閾値Th5未満の場合、決定部81は、通知されたフローの送信タイマ値を20%長くすることを決定し、送信タイマ値を変更するための要求パケットを通信装置30に送信する(ステップS37)。選択したフローでの変動量が閾値Th5未満の場合、さらに、計算部73は、n番目のフローを転送し、かつ、送信タイマ値が短縮されたフローを転送していない転送装置10での閾値Th1を20%小さくする(ステップS38)。
選択したフローでの変動量が閾値Th5からTh6までの場合、決定部81は、通知されたフローの送信タイマ値を10%長くすることを決定し、送信タイマ値を変更するための要求パケットを通信装置30に送信する(ステップS39)。選択したフローでの変動量が閾値Th5からTh6までの場合、さらに、計算部73は、n番目のフローを転送し、かつ、送信タイマ値が短縮されたフローを転送していない転送装置10での閾値Th1を10%小さくする(ステップS40)。
一方、選択したフローでの変動量が閾値Th6以上の場合、計算部73は、n番目のフローについての送信タイマ値を変更しないことを決定する(ステップS36でTh6より大)。
その後、計算部73は、nの値が定数N未満であるかを判定する(ステップS41)。ここで、定数Nは、予兆が検出された転送装置10で転送されないフローの総数であるものとする。nの値が定数N未満である場合、計算部73は、nを1つインクリメントして、ステップS35に戻る(ステップS41でYes、ステップS42)。nの値が定数N以上の場合、計算部73は処理を終了する(ステップS41でNo)。
このように、第4の実施形態では、報告パケットの送信タイマを長くするフローを輻輳の予兆が検出された転送装置10中で、転送レートの変動が相対的に小さいフローに限定している。このため、報告パケットの送信間隔が長くなっているフローで輻輳が発生することにより、輻輳の発生を見落とす恐れが低くなっている。さらに、第4の実施形態では、計算部73がフロー転送の予兆を検出するときに使用する閾値を小さくするので、輻輳の予兆を見落とす恐れも低くなっている。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
輻輳の検出や輻輳が発生する可能性があるかの判定に使用するためのパラメータは、転送装置10のバッファの使用率に限られない。すなわち、実装に応じて、転送装置10の処理負荷を評価するために使用可能な任意のパラメータを用いて、輻輳の検出や輻輳が発生する可能性があるかの判定が行われうる。
図17に示す通知パケットのフォーマットは一例であり、実装に応じて他の情報要素が含められても良い。例えば、通知パケットにサンプルレートが含められる場合、スイッチ(転送装置10)ではサンプルレートを計算しなくてもよいので、スイッチでの処理負担が軽減される。
なお、本明細書中では、読みやすくするための便宜上、ネットワーク中で送受信される情報の単位を表現する際に使用する文言を「パケット」に統一しているにすぎない。このため、実装に応じて、適宜、「パケット」という文言を「フレーム」に読み替えることができるものとする。
以上の説明で述べたテーブルやパケット中の情報要素は一例であり、実装に応じて、情報要素が変更される場合がある。
10 転送装置
11 送受信部
12、33 通信部
15、50、90 記憶部
16 フォワーディングテーブル
17 MIB
18 バッファ
20、40、70 制御部
21 スイッチング部
22 更新部
23 通知部
30 通信装置
31、62 送信部
32、61 受信部
34 パケット処理部
35 仮想スイッチ
41 生成部
42 制御パケット処理部
51 フロー情報
52、93 タイマ値テーブル
60 制御装置
71 検出部
72 分析部
80 フロー制御部
81 要求部
82 選択部
83 指示パケット生成部
91 トポロジー情報
92 フロー情報
94 フロー分析データ
95 リンク利用率テーブル
96 フォワーディング情報テーブル
101 プロセッサ
102 スイッチング回路
103 メモリ
104 ネットワークインタフェース
105 バス
106 記憶装置

Claims (7)

  1. ネットワーク中の複数の転送装置の各々から所定の周期で処理負荷の大きさを表わす負荷情報を受信するとともに、前記複数の転送装置のうちの1つ以上を介した通信を行う複数の通信装置の各々から、該通信装置が送信するフローの情報を報告する報告パケットを受信する受信部と、
    輻輳の予兆の検出に用いる検出閾値よりも処理負荷の大きい転送装置である対象装置を介して転送されるフローを、前記輻輳が発生した際に経路を変更するフローの候補である候補フローとして、前記報告パケットを用いて特定する特定部と、
    前記候補フローの情報を含む第1の報告パケットの送信周期の短縮を要求するパケットと、前記対象装置を経由せずに前記ネットワーク中で転送されるフローの情報を報告する第2の報告パケットの送信周期の延長を要求するパケットとを送信する送信部
    を備えることを特徴とする制御装置。
  2. 前記第1および第2の報告パケットから前記複数の通信装置の間で送受信されるフローの転送レートを取得して、前記複数の転送装置の間を結ぶリンクの各々でのリンク使用率を計算する計算部と、
    前記対象装置に接続されているリンクの使用率が、前記対象装置での輻輳の発生が予測されるときの使用率である予測値まで上昇すると、前記候補フローから転送経路を変更する対象となる対象フローを選択する選択部と、
    前記対象フローに対する転送経路の変更を指示する指示パケットを生成する生成部
    を備え、
    前記送信部は、前記対象装置と、前記対象装置に代わって前記対象フローの転送を開始する転送装置に、前記指示パケットを送信する
    ことを特徴とする請求項1に記載の制御装置。
  3. 前記対象装置の処理負荷と前記検出閾値との差が大きいほど前記第1の報告パケットの送信周期が短くなるように、前記第1の報告パケットの送信周期を決定すると共に、前記制御装置が所定の時間中に受信するパケット数が変動しないように、前記第2の報告パケットの送信周期を決定する決定部
    をさらに備えることを特徴とする請求項1または2に記載の制御装置。
  4. 前記第1の報告パケットは、前記候補フローの送信元、前記候補フローの宛先、および、前記候補フローに対して決定されたサンプルレートで前記候補フロー中のパケットを採取することにより、前記第1の報告パケットの送信周期で得られるデータ量を含み、
    前記決定部は、前記第1の報告パケットの送信周期を第1の周期から前記第1の周期よりも短い第2の周期に変更する場合、前記第1の周期で採取されるパケット数と、前記第2の周期で採取されるパケット数が同数になるように、前記第2の周期で使用するサンプルレートを決定する
    ことを特徴とする請求項3に記載の制御装置。
  5. 前記計算部は、前記第2の報告パケットで情報が通知されるフローを転送しており、かつ、前記候補フローを転送していない転送装置について、前記検出閾値を、前記第2の報告パケットの送信周期の延長量が大きいほど小さくなるように設定された値で置き換える
    ことを特徴とする請求項2〜4のいずれか1項に記載の制御装置。
  6. ネットワーク中の経路を制御する制御装置に、
    前記ネットワーク中の複数の転送装置の各々から所定の周期で処理負荷の大きさを表わす負荷情報を受信し、
    前記複数の転送装置のうちの1つ以上を介した通信を行う複数の通信装置の各々から、該通信装置が送信するフローの情報を報告する報告パケットを受信し、
    前記処理負荷の大きさが前記ネットワークでの輻輳の予兆の検出に用いる検出閾値を超えた転送装置である対象装置を介して転送されるフローを、前記輻輳が発生した際に経路を変更するフローの候補である候補フローとして、前記報告パケットを用いて特定し、
    前記候補フローの情報を含む第1の報告パケットの送信周期の短縮と、前記対象装置を経由せずに前記ネットワーク中で転送されるフローの情報を報告する第2の報告パケットの送信周期の延長を前記複数の通信装置に要求する
    処理を行わせることを特徴とする通信方法。
  7. 前記第1および第2の報告パケットから前記複数の通信装置の間で送受信されるフローの転送レートを取得し、
    前記複数の転送装置の間を結ぶリンクの各々でのリンク使用率を計算し、
    前記対象装置に接続されているリンクの使用率が、前記対象装置での輻輳の発生が予測されるときの使用率である予測値まで上昇すると、前記候補フローから転送経路を変更する対象となる対象フローを選択し、
    前記対象フローに対する転送経路の変更を指示する指示パケットを生成し
    前記対象装置と、前記対象装置に代わって前記対象フローの転送を開始する転送装置に、前記指示パケットを送信する
    処理を前記制御装置に行わせることを特徴とする請求項6に記載の通信方法。
JP2014065392A 2014-03-27 2014-03-27 制御装置、および、通信方法 Expired - Fee Related JP6237397B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014065392A JP6237397B2 (ja) 2014-03-27 2014-03-27 制御装置、および、通信方法
US14/606,461 US9602418B2 (en) 2014-03-27 2015-01-27 Apparatus and method for selecting a flow to be changed upon congestion occurrence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014065392A JP6237397B2 (ja) 2014-03-27 2014-03-27 制御装置、および、通信方法

Publications (2)

Publication Number Publication Date
JP2015188186A true JP2015188186A (ja) 2015-10-29
JP6237397B2 JP6237397B2 (ja) 2017-11-29

Family

ID=54191953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014065392A Expired - Fee Related JP6237397B2 (ja) 2014-03-27 2014-03-27 制御装置、および、通信方法

Country Status (2)

Country Link
US (1) US9602418B2 (ja)
JP (1) JP6237397B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3258630A1 (en) 2016-06-15 2017-12-20 Fujitsu Limited Communication control program, communication control method, and communication control apparatus
JP2019047254A (ja) * 2017-08-31 2019-03-22 富士通株式会社 情報処理システム、情報処理装置及び情報処理プログラム
CN109615852A (zh) * 2018-11-20 2019-04-12 上海海事大学 一种突发事故下路段交通流分配快速预测的方法
WO2020204072A1 (ja) * 2019-04-03 2020-10-08 Telexistence株式会社 制御装置、ネットワーク制御方法、及びプログラム
JPWO2021024315A1 (ja) * 2019-08-02 2021-02-11
WO2024013886A1 (ja) * 2022-07-13 2024-01-18 日本電信電話株式会社 トラフィック統計情報取得システムおよび方法
US11997171B2 (en) 2019-08-02 2024-05-28 Nippon Telegraph And Telephone Corporation Communication apparatus and communication method

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2537338A (en) 2014-11-28 2016-10-19 Aria Networks Ltd Modeling a border gateway protocol network
US9985890B2 (en) 2016-03-14 2018-05-29 International Business Machines Corporation Identifying a local congestion control algorithm of a virtual machine
US10045252B2 (en) * 2016-06-02 2018-08-07 International Business Machines Corporation Virtual switch-based congestion control for multiple TCP flows
ES2882074T3 (es) * 2018-03-19 2021-12-01 Deutsche Telekom Ag Técnicas para la planificación de tráfico de datos de ruta múltiple
CN110365667B (zh) * 2019-07-03 2021-11-23 杭州迪普科技股份有限公司 攻击报文防护方法、装置、电子设备
US11533265B2 (en) 2020-07-23 2022-12-20 Vmware, Inc. Alleviating flow congestion at forwarding elements
CN115550153A (zh) * 2021-06-29 2022-12-30 中兴通讯股份有限公司 报文处理方法、网络处理器及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000049940A (ja) * 1998-07-31 2000-02-18 Nippon Telegr & Teleph Corp <Ntt> トラヒック測定方法
JP2005086803A (ja) * 2003-09-08 2005-03-31 Fujitsu Ltd リソース負荷測定方法、ネットワーク制御装置、通信ノード及び記憶媒体
US20080028467A1 (en) * 2006-01-17 2008-01-31 Chris Kommareddy Detection of Distributed Denial of Service Attacks in Autonomous System Domains
US7944836B2 (en) * 2007-08-29 2011-05-17 Ericsson Ab Adaptive method and apparatus for adjusting network traffic volume reporting
JP2013175912A (ja) * 2012-02-24 2013-09-05 Ntt Comware Corp 通信システム、経路制御装置、経路制御方法及び経路制御プログラム
WO2014024620A1 (ja) * 2012-08-06 2014-02-13 日本電気株式会社 負荷制御システム、負荷制御サーバ、情報処理システム、負荷制御方法および記録媒体

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195680B1 (en) * 1998-07-23 2001-02-27 International Business Machines Corporation Client-based dynamic switching of streaming servers for fault-tolerance and load balancing
JP4150159B2 (ja) * 2000-03-01 2008-09-17 富士通株式会社 伝送経路制御装置及び伝送経路制御方法並びに伝送経路制御プログラムを記録した媒体
US7499453B2 (en) * 2000-05-19 2009-03-03 Cisco Technology, Inc. Apparatus and methods for incorporating bandwidth forecasting and dynamic bandwidth allocation into a broadband communication system
US7296083B2 (en) * 2002-06-28 2007-11-13 Microsoft Corporation Method and system for measuring load and capacity on a variable capacity channel
US8838772B2 (en) * 2003-08-29 2014-09-16 Ineoquest Technologies, Inc. System and method for analyzing the performance of multiple transportation streams of streaming media in packet-based networks
US20050108444A1 (en) * 2003-11-19 2005-05-19 Flauaus Gary R. Method of detecting and monitoring fabric congestion
JP2005242564A (ja) 2004-02-25 2005-09-08 Canon Inc 管理装置、ネットワークシステム、通信間隔制御方法、及びプログラム
US8125910B2 (en) * 2004-06-25 2012-02-28 Nec Corporation Communication system
JP2006164038A (ja) 2004-12-09 2006-06-22 Nippon Telegr & Teleph Corp <Ntt> DoS攻撃あるいはDDoS攻撃に対処する方法、ネットワーク装置、および分析装置
US7782768B2 (en) * 2005-09-16 2010-08-24 Samsung Electronics Co., Ltd. Wireless network apparatus and method for controlling transmission rate using the same
WO2010099338A2 (en) * 2009-02-25 2010-09-02 Chaz Immendorf Autonomously determining network capacity and load balancing amongst multiple network cells
JP2011166466A (ja) 2010-02-10 2011-08-25 Mitsubishi Electric Corp ネットワークシステム、ループ発生スイッチ特定方法、ネットワーク管理装置およびスイッチ装置
US9203722B2 (en) * 2011-03-31 2015-12-01 Verizon Patent And Licensing Inc. Identifying and forecasting network conditions using real-time radio access network (RAN) modeling
JP5794063B2 (ja) 2011-09-14 2015-10-14 株式会社リコー 機器管理システム、障害管理装置、機器管理装置、障害管理プログラム、及び機器管理プログラム
US8850008B2 (en) * 2011-11-22 2014-09-30 Verizon Patent And Licensing Inc. User device application monitoring and control
US9112809B2 (en) * 2012-11-21 2015-08-18 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for controlling utilization in a horizontally scaled software application
US9363151B2 (en) * 2013-01-17 2016-06-07 International Business Machines Corporation Dynamically determining packet sampling rates
US9509583B2 (en) * 2013-01-24 2016-11-29 InMon Corp. Method for asynchronous calculation of network traffic rates based on randomly sampled packets
EP2843886A1 (en) * 2013-08-30 2015-03-04 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Load balancing among alternative paths

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000049940A (ja) * 1998-07-31 2000-02-18 Nippon Telegr & Teleph Corp <Ntt> トラヒック測定方法
JP2005086803A (ja) * 2003-09-08 2005-03-31 Fujitsu Ltd リソース負荷測定方法、ネットワーク制御装置、通信ノード及び記憶媒体
US20080028467A1 (en) * 2006-01-17 2008-01-31 Chris Kommareddy Detection of Distributed Denial of Service Attacks in Autonomous System Domains
US7944836B2 (en) * 2007-08-29 2011-05-17 Ericsson Ab Adaptive method and apparatus for adjusting network traffic volume reporting
JP2013175912A (ja) * 2012-02-24 2013-09-05 Ntt Comware Corp 通信システム、経路制御装置、経路制御方法及び経路制御プログラム
WO2014024620A1 (ja) * 2012-08-06 2014-02-13 日本電気株式会社 負荷制御システム、負荷制御サーバ、情報処理システム、負荷制御方法および記録媒体

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3258630A1 (en) 2016-06-15 2017-12-20 Fujitsu Limited Communication control program, communication control method, and communication control apparatus
JP2019047254A (ja) * 2017-08-31 2019-03-22 富士通株式会社 情報処理システム、情報処理装置及び情報処理プログラム
CN109615852A (zh) * 2018-11-20 2019-04-12 上海海事大学 一种突发事故下路段交通流分配快速预测的方法
CN109615852B (zh) * 2018-11-20 2021-03-30 上海海事大学 一种突发事故下路段交通流分配快速预测的方法
WO2020204072A1 (ja) * 2019-04-03 2020-10-08 Telexistence株式会社 制御装置、ネットワーク制御方法、及びプログラム
JPWO2021024315A1 (ja) * 2019-08-02 2021-02-11
WO2021024315A1 (ja) * 2019-08-02 2021-02-11 日本電信電話株式会社 通信装置、及び通信方法
JP7393677B2 (ja) 2019-08-02 2023-12-07 日本電信電話株式会社 通信装置、及び通信方法
US11997171B2 (en) 2019-08-02 2024-05-28 Nippon Telegraph And Telephone Corporation Communication apparatus and communication method
WO2024013886A1 (ja) * 2022-07-13 2024-01-18 日本電信電話株式会社 トラフィック統計情報取得システムおよび方法

Also Published As

Publication number Publication date
JP6237397B2 (ja) 2017-11-29
US9602418B2 (en) 2017-03-21
US20150281100A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
JP6237397B2 (ja) 制御装置、および、通信方法
US9479423B2 (en) Information processing system, relay device, information processing device, and information processing method
US8601499B2 (en) Systems, methods and computer readable media for routing requests from an application
US8321561B2 (en) Information sharing method between neighboring nodes, node and information sharing program
JP6277853B2 (ja) 制御装置、通信装置、および、通信方法
US9178794B2 (en) Communication quality monitoring system, communication quality monitoring method and recording medium
JP5609730B2 (ja) 情報処理プログラム及び方法、転送処理装置
JP2016517240A (ja) サーバ管理されたルーティングシステム
JP2016149698A (ja) パケット通信装置およびパケット受信処理方法
US9973440B2 (en) Resource notification method, device and system
EP3136666B1 (en) Flow switch, controller and relay apparatus
JP5765427B2 (ja) 仮想マシン管理装置、仮想マシン移動制御プログラムおよび仮想マシン移動制御方法
JP2015194899A (ja) 制御プログラム、制御方法および制御装置
JP6325348B2 (ja) 仮想マシン配置装置
JP2016010124A (ja) 管理装置、管理プログラム及び情報処理システム
JPWO2012160641A1 (ja) 管理装置、情報処理装置、情報処理システム及びデータ転送方法
JP2019009610A (ja) エッジ装置、データ処理システム、データ送信方法、及びプログラム
JP6813773B2 (ja) データ収集プログラム、データ収集システム及びデータ収集方法
JP5287373B2 (ja) 通信装置及び通信処理方法
JP2017201756A (ja) 制御装置、レート制御方法、および、ネットワークシステム
JP2008066914A (ja) ネットワーク機器、ネットワークシステム、通信コスト算出プログラム及び通信コスト算出方法
JP7414149B2 (ja) コネクション数計測装置、方法、およびプログラム
WO2015165229A1 (zh) 一种识别异常ip数据流的方法、装置和系统
US20170063725A1 (en) Control method, control device, and storage medium
US9647931B2 (en) Systems, and methods for rerouting electronic communications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170907

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: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171016

R150 Certificate of patent or registration of utility model

Ref document number: 6237397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees