JP6233193B2 - 経路決定装置および転送経路決定方法 - Google Patents

経路決定装置および転送経路決定方法 Download PDF

Info

Publication number
JP6233193B2
JP6233193B2 JP2014112361A JP2014112361A JP6233193B2 JP 6233193 B2 JP6233193 B2 JP 6233193B2 JP 2014112361 A JP2014112361 A JP 2014112361A JP 2014112361 A JP2014112361 A JP 2014112361A JP 6233193 B2 JP6233193 B2 JP 6233193B2
Authority
JP
Japan
Prior art keywords
processing
transfer
flow
congestion
control message
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.)
Expired - Fee Related
Application number
JP2014112361A
Other languages
English (en)
Other versions
JP2015228538A (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 JP2014112361A priority Critical patent/JP6233193B2/ja
Priority to US14/665,324 priority patent/US9559932B2/en
Publication of JP2015228538A publication Critical patent/JP2015228538A/ja
Application granted granted Critical
Publication of JP6233193B2 publication Critical patent/JP6233193B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • 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/0852Delays
    • 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/125Shortest path evaluation based on throughput or bandwidth
    • 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
    • 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
    • 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/29Flow control; Congestion control using a combination of thresholds

Landscapes

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

Description

本発明は、複数の装置を含むネットワーク中でのパケットの転送方法に関する。
近年、ソフトウェアを用いた仮想的なネットワークの構築に用いられる技術であるSoftware Defined Networking(SDN)が注目されてきている。SDNでは、コントローラと呼ばれる装置がネットワーク中のデータを転送する装置(ノード)を制御する。例えば、ネットワーク中のスイッチなどのノードは、コントローラから取得した転送ルールを使用して、受信したパケットの転送処理を行う。転送ルールを使用しても処理できない未定義パケットを受信した場合、ノードは受信したパケットの情報をコントローラに通知することにより、コントローラからそのパケットの処理方法を特定するための情報を取得する。このように、コントローラがネットワーク中での転送処理を一括して制御するため、コントローラでの処理がボトルネックとなることがある。そこで、ネットワーク中に複数のコントローラを含めつつ、複数のコントローラを論理的には1つのコントローラとして処理するコントローラシステムが提案されている(例えば、非特許文献1、2など)。
図1にコントローラシステムの例を示す。広域ネットワーク3に含まれている個々のノード6(6a〜6i)は、コントローラシステム1から取得した転送ルールに従って、パケットの転送処理を行う。広域ネットワーク3は、適宜、Local Area Network(LAN)4a、4bなどの任意の数のLANに接続される。コントローラシステム1には、コントローラクラスタ8、メッセージングシステム5、アプリケーションクラスタ15が含まれている。制御装置(2a〜2d)は、ノード6から受信した未定義パケットをコントローラシステム1中で用いる制御メッセージに含め、メッセージングシステム5中のいずれかの装置にメッセージ転送する。図1の例では、メッセージングシステム5は転送装置10(10a〜10c)を含む。個々の転送装置10は、制御装置2から受信したメッセージをアプリケーションクラスタ15中の処理装置20(20a〜20d)に転送する。処理装置20は、制御メッセージを処理し、処理結果を転送装置10および制御装置2に送信し、制御装置は処理内容に応じて、ノード6を制御する。なお、図1では、図を見やすくするために、コントローラクラスタ2をメッセージングシステム5に接続しているが、各制御装置(2a〜2d)はメッセージングシステム5中の任意の転送装置10にアクセスできるものとする。同様に、各転送装置10は、アプリケーションクラスタ15中の任意の処理装置20にアクセスできるものとする。例えば、ノード6aが未定義パケットを制御装置2aに送信したとする。すると、制御装置2aは受信した未定義パケットを内部処理用の制御メッセージに含め、転送装置10aを介して、制御メッセージの処理を処理装置20bに要求し、処理装置20bは、転送装置10bを介して処理結果を制御装置2aに送信する。制御装置2aは、取得した処理結果に基づきノード6aを制御し、ノード6aは制御内容に基づきパケットの転送処理を行う。
なお、図1に示すコントローラシステム1は一例であり、コントローラシステム1中に含まれる制御装置、転送装置、処理装置の数は、実装に応じて任意に変更され得る。
清水翔、山田亜紀子、宗宮利夫、"SDNにおける分散型ネットワークコントローラの検討および性能評価ツールの開発"、電子情報通信学会 総合大会、社団法人電子情報通信学会、BS-2-4、p.S130-131、2013年3月 清水翔、山田亜紀子、宗宮利夫、"分散SDNコントローラにおけるメッセージ処理拡張手法に関する検討"、信学技報、社団法人電子情報通信学会、vol. 113、no. 472、NS2013-212、pp. 207-212、2014年4月
分散ネットワークコントローラを用いるコントローラシステムでは、分散ネットワークコントローラに含まれている処理装置や転送装置で輻輳が起こった場合に、メッセージの転送経路やメッセージを処理する処理装置を変更することになる。しかし、輻輳が発生している箇所を特定する方法がないため、効率的に輻輳を解消できない。
本発明は、分散ネットワークコントローラを用いるシステムでの輻輳の解消を効率化することを目的とする。
ある実施形態にかかる経路決定装置は、複数の転送装置、複数の処理装置、制御装置を含む通信システム中の装置であり、取得部、判定部、送信部を備える。取得部は、制御装置が、前記複数の処理装置から選択された対象処理装置に処理対象のパケットを含む制御メッセージの処理を要求する場合に、前記制御メッセージの処理にかかる時間である処理時間を取得する。判定部は、前記処理時間が第1の閾値を越えると、前記処理時間が前記第1の閾値よりも大きい第2の閾値を超えているかにより、前記制御装置と前記対象処理装置の間の通信に使用される転送装置と、前記対象処理装置のいずれで輻輳が発生したかを判定する。送信部は、前記輻輳が発生した装置で前記制御メッセージが処理されないように決定した転送経路の設定を要求する要求メッセージを送信する。
分散ネットワークコントローラを用いるシステムでの輻輳の解消が効率化される。
コントローラシステムの例を示す図である。 輻輳の発生箇所を決定するための処理の例を説明する図である。 ネットワークの例を示す図である。 制御装置の構成の例を示す図である。 調整装置の構成の例を示す図である。 ハードウェア構成の例を示す図である。 制御メッセージの処理の具体例を説明する図である。 転送経路テーブルの例を示す図である。 各装置が保持する転送先の情報の例を示す図である。 処理時間の分布の例を説明する図である。 閾値情報テーブルの例を示す図である。 判定部が保持する情報の例を示すテーブルである。 処理装置で輻輳が発生したときの経路情報の変更例を示す図である。 処理装置で輻輳が発生したときの転送経路の変更例を示す図である。 判定部が保持する情報の例を示すテーブルである。 転送装置で輻輳が発生したときの経路情報の変更例を示す図である。 転送装置で輻輳が発生したときの転送経路の変更例を示す図である。 調整装置で行われる処理の例を説明するフローチャートである。 障害判定処理の例を説明するフローチャートである。 処理装置での輻輳の発生を判定する方法の例を説明するフローチャートである。 転送装置での輻輳の発生を判定する方法の例を説明するフローチャートである。 輻輳の解除処理の例を説明するフローチャートである。
図2は、輻輳の発生箇所を決定するための処理の例を説明する図である。以下の説明では、制御装置30がノード6から未定義パケット等を含む問い合わせパケットを受信し、内部処理用の制御メッセージに未定義パケット等を含めるものとする。さらに、コントローラシステム1には、制御メッセージなどの転送経路を決定するための調整装置50(図3などを参照)が含まれているものとする。制御装置30は、ノード6から受信した制御メッセージの処理を処理装置20に要求してから、制御メッセージの処理結果を取得するまでの時間を計測する。ここで、制御装置30が制御メッセージの処理を要求してから処理結果を取得するまでの時間の長さは、コントローラシステム1中での制御メッセージの処理にかかる時間であるといえる。そこで、以下の記載では、制御装置30が制御メッセージの処理を要求してから処理結果を取得するまでの時間の長さのことを「処理時間」と記載することがある。制御装置30は、処理時間を調整装置50に通知する。
図2のケースC1〜C3では、図を見やすくするために、あるノード6から問い合わせパケットを受信した制御装置30aが、問い合わせパケットを含んだ制御メッセージの処理を処理装置20aに要求する場合に、制御メッセージが転送される経路と制御メッセージの処理結果が転送される経路を示している。ケースC1に示すように、制御装置30aは、転送装置10aを介して、処理装置20aに制御メッセージの処理を要求する。また、処理装置20aは、制御メッセージの処理結果を、転送装置10bを介して制御装置30aに送信する。転送装置10a、10b、処理装置20aのいずれでも輻輳が発生していない場合、制御装置30aは、処理装置20aに制御メッセージの処理を要求してから範囲R1に示す時間の範囲内で処理結果を取得できる。
一方、ケースC2に示すように、転送装置10aで輻輳が発生すると、ケースC1に比べて転送装置10aでの転送処理に時間がかかるため、処理時間が長くなる。ケースC2では、転送装置10aで輻輳が発生した場合の例を示しているが、転送装置10bで輻輳が発生した場合も、同様に、ケースC1の場合よりも、処理時間が長くなる。転送装置10aまたは転送装置10bで輻輳が発生しているが処理装置20aでは輻輳が発生していない場合に、制御装置30aが制御メッセージの処理を処理装置20aに要求してから処理結果を取得するまでの時間の分布の例を範囲R2に示す。
次に、ケースC3に示すように、処理装置20aで輻輳が発生した場合について述べる。処理装置20aで輻輳が発生した場合に起こる遅延は、転送装置10aや転送装置10bなどの転送装置で輻輳が発生した場合の遅延に比べて長い。このため、処理装置20aで輻輳が発生すると、処理時間は、ケースC1やケースC2の場合よりも長くなる。図2の例では、処理装置20aで輻輳が発生した場合、制御装置30aが処理装置20aに制御メッセージの処理を要求してから処理結果を受け取るまでの時間の分布は、範囲R3に示すとおりであるとする。
調整装置50は、閾値D_mqと閾値D_appを保持している。ここで、閾値D_mqは、転送装置10a、転送装置10b、処理装置20aのいずれでも輻輳が発生していない場合の処理時間の最大値以上に設定される。閾値D_appは、転送装置10aか転送装置10bで輻輳が発生しているときの処理時間の最大値以上の値であり、かつ、処理装置20aで輻輳が発生しているときの処理時間の最小値未満の値である。調整装置50は、コントローラシステム1中の装置の接続トポロジー情報を保持しており、さらに、各制御装置30が受信した制御メッセージの転送経路や処理結果の転送経路も保持している。
調整装置50は、制御装置30aから通知された処理時間を用いて、制御装置30aが受信した制御メッセージが転送される装置のうちのいずれで輻輳が発生しているかを判定する。すなわち、処理時間が閾値D_mqを超えると、調整装置50は、制御メッセージが転送される装置のいずれかに輻輳が発生したと判定する。さらに、調整装置50は、処理時間が閾値D_appを超えているかにより、転送装置10(10a、10b)と処理装置20のいずれで輻輳が発生したかを判定する。処理時間が閾値D_app以下の場合、調整装置50は、転送装置10aか転送装置10bのいずれかで輻輳が発生している可能性が高いと判定する。一方、処理時間が閾値D_appを超えている場合、調整装置50は、処理装置20で輻輳が発生している可能性が高いと判定する。調整装置50は、輻輳が発生している可能性が高いと判定された装置を含まないように、制御装置30aが受信した制御メッセージの転送経路と、処理結果の転送経路を決定する。例えば、ケースC2に示すように、転送装置10aで輻輳が発生している可能性が高いと判定すると、調整装置50は、制御装置30aが転送装置10cを介して処理装置20aと通信するための転送経路を計算する。一方、ケースC3に示すように、処理装置20aで輻輳が発生している可能性が高いと判定すると、調整装置50は、制御装置30aが処理装置20aの代わりに処理装置20bに制御メッセージの処理を要求するように、転送経路や処理結果の転送経路を求める。調整装置50は、求めた経路を用いて通信が行われるように、コントローラシステム1中の装置に対して、適宜、設定処理を行う。
このように、調整装置50が、制御メッセージについての処理時間を用いて、輻輳の発生箇所を予測し、輻輳が発生した箇所を用いない転送経路を設定すると、効率的に輻輳が解消され、コントローラシステム1を安定的に運用することができる。
なお、図2を参照しながら実施形態では、制御装置30で計測された処理時間が1回遅延した時点で輻輳の発生を特定する場合の例を説明したが、検出精度を高めるために複数回の遅延が検出されたときに、輻輳が発生していると判定するように変形されても良い。また、調整装置50は、処理時間が閾値D_mq以上のときに輻輳が発生したと判定しても良い。同様に、調整装置50は、処理時間が閾値D_app以上のときに処理装置20で輻輳が発生したと判定しても良い。
<装置構成>
図3は、ネットワークの例を示す図である。図3のネットワーク中で、ノード6(6a〜6k)以外の装置はコントローラシステム1に含まれている。図3の例では、コントローラシステム1は、調整システム(Coordination System)25、アプリケーションクラスタ15(15a、15b)、メッセージングシステム5、コントローラクラスタ7を含む。ここで、アプリケーションクラスタ15aとアプリケーションクラスタ15bは異なる種類のアプリケーションを用いた処理を行うものとする。例えば、アプリケーションクラスタ15aでは、ネットワークの状況のモニタリングに関する処理が行われ、アプリケーションクラスタ15bでは経路計算が行われるものとする。さらに、メッセージングシステム5、コントローラクラスタ7、調整システム25、アプリケーション処理クラスタ15中の各装置は、適宜、通信できるように接続されているものとする。
図3の例では、コントローラクラスタ7は、制御装置30(30a〜30f)を含んでいる。メッセージングシステム5は、転送装置10(10a〜10c)を備え、調整システム25は調整装置50(50a〜50c)を備える。さらに、アプリケーションクラスタ15aは処理装置20aと処理装置20bを有し、アプリケーションクラスタ15bは、処理装置20c〜20fを含むものとする。制御装置30、転送装置10、調整装置50、処理装置20は、物理マシンと仮想マシンのいずれによって実現されても良いものとする。また、コントローラシステム1を形成するために使用される仮想マシンと物理マシンのいずれも、1つ以上の制御装置30や処理装置20などを実現できるものとする。図3の例では、1つの物理マシンが制御装置30aを実現しているのに対し、制御装置30cと制御装置30dは制御装置30aを実現している物理マシンとは異なる物理マシンで実現されている。一方、制御装置30bは1つの仮想マシンで実現され、制御装置30eと制御装置30fとが1つの仮想マシンで実現されている。また、調整装置50a〜50c、転送装置10a〜10cは、いずれも、1つの物理マシンで実現されている。なお、図3は、一例であり、コントローラシステム1中に含まれる転送装置10、処理装置20、制御装置30、調整装置50の数は任意に変更されうる。また、1つの物理マシンは、実装に応じて、転送装置10、処理装置20、制御装置30、調整装置50の1つ以上を実現することもできるものとする。
ノード6a〜6kは、いずれも、制御装置30a〜30fのうちのいずれか1つ以上と通信するものとする。また、ノード6a〜6kは、いずれも、通信中の制御装置30のうちの1つの制御装置30をマスターの制御装置30とし、通信中の他の制御装置30をスレーブに設定する。各ノード6は、マスターに設定されている制御装置30に対して、問い合わせパケットを送信し、マスターの制御装置30からOpenflowプロトコルを用いて制御される。図3では、図を見やすくするために、各ノード6と、そのスレーブの制御装置30との間の経路は図示していない。
図4は、制御装置30の構成の例を示す図である。制御装置30は、送信部31、受信部32、制御部35、記憶部40、ノード制御部33を備える。制御部35は、計測部36、通知処理部37、転送処理部38を有する。記憶部40は要求先テーブル41を記憶しており、バッファ42としても動作する。
送信部31は、コントローラシステム1中の他の装置に対して、制御部35から入力されたメッセージを送信する。受信部32は、コントローラシステム1中の他の装置からメッセージを受信する。受信部32は、受信メッセージを、適宜、バッファ42に格納する。転送処理部38は、ノード6から受信した問い合わせパケットを、パケットの種類に応じて決められた転送先の処理装置20に送信するための処理を行う。このとき、転送処理部38は、要求先テーブル41を参照する。要求先テーブル41の例と転送処理部38の処理の具体例については後述する。転送処理部38は、制御メッセージを処理装置20に転送するタイミングを計測部36に通知する。また、計測部36は、制御メッセージの処理結果を制御装置30が受信するタイミングをモニタすることにより、各制御メッセージについての処理時間を計測する。通知処理部37は、定期的に、処理時間を通知するための通知メッセージを生成し、送信部31を介して、調整装置50に通知する。なお、通知処理部37は、制御装置30が処理時間を通知する調整装置50の識別子を保持しているものとする。ノード制御部33は、ノード6からの問い合わせパケットの受信、および処理装置20から送信された情報に基づき、各ノードの制御を、Openflowプロトコル等を用いて行う。
図5は、調整装置50の構成の例を示す。調整装置50は、送信部51、受信部52、制御部60、記憶部70を備える。制御部60は、取得部61、判定部62、経路計算部63、生成部64を有する。さらに、記憶部70は、転送経路テーブル71、トポロジー情報72、閾値情報テーブル73を有する。
送信部51は、コントローラシステム1中の他の装置に制御メッセージを送信する。受信部52は、コントローラシステム1中の他の装置から制御メッセージを受信する。例えば、受信部52は制御装置30から制御メッセージを受信すると、制御メッセージを取得部61に出力する。
取得部61は、制御メッセージを用いて、各制御装置30において計測された処理時間を取得する。判定部62は、処理時間を閾値D_mqと比較することにより、制御メッセージの処理が正常に行われているかを判定する。また、処理時間が閾値D_mqを超えると、判定部62は、処理時間を閾値D_appと比較した結果を用いて、輻輳が発生している可能性のある箇所を判定する。なお、これらの閾値は、閾値情報テーブル73に記録されている。閾値情報テーブル73の例については後述する。
経路計算部63は、判定部62で行われた判定結果を用いて、輻輳の発生していない経路を用いて制御メッセージの転送や処理結果の転送を行うための経路計算を行う。このとき、経路計算部63は、適宜、転送経路テーブル71やトポロジー情報72を用いることができる。転送経路テーブル71は、現在使用されている転送経路を表わす情報を格納し、トポロジー情報72は制御ネットワークなどのトポロジーを表わす情報などを格納している。転送経路テーブル71の例は後述する。生成部64は、経路計算部63で得られた経路計算の結果を制御装置30などに通知するための制御メッセージを生成する。
図6は、制御装置30および調整装置50のハードウェア構成の例を示す。なお、転送装置10や処理装置20のハードウェア構成も、図6に示すとおりである。制御装置30および調整装置50のいずれも、プロセッサ101、メモリ102、バス103、ネットワーク接続装置104を備える。バス103は、プロセッサ101、メモリ102、ネットワーク接続装置104を、相互にデータの送受信が可能になるように接続する。ネットワーク接続装置104は、ネットワーク105との通信を行う。
制御装置30では、プロセッサ101は、制御部35として動作し、メモリ102は、記憶部40として動作する。ネットワーク接続装置104は、送信部31と受信部32を実現する。ノード制御部33は、プロセッサ101とネットワーク接続装置104により実現される。調整装置50では、プロセッサ101は、制御部60を実現する。メモリ102は、記憶部70として動作する。ネットワーク接続装置104は、送信部51と受信部52を実現する。
<実施形態>
図7は、制御メッセージの処理の具体例を説明する図である。図7は、図3に示すネットワークのうち、フローA〜Dに関する制御メッセージを処理する装置を詳しく表わしたものである。以下の説明では、フローは、ノード装置間を流れるデータフローではなく、コントローラシステム1の制御を行うための制御メッセージのフローであり、ノードと制御装置間の問い合わせパケットも含んでいる。以下の例では、フローA、Bは、ノード6aから制御装置30aに未定義パケット等の処理を問合わせるための制御メッセージのフローであるものとする。一方、フローC、Dは、ノード6bから制御装置30aに未定義パケット等の処理を問合わせるための制御メッセージのフローであるものとする。なお、以下の説明では、フローA、Dは音声パケットの処理内容を問合わせるための制御メッセージのフローであり、フローB、Cは映像パケットの処理内容を問合わせるための制御メッセージのフローである場合を例とする。なお、未定義パケット等の処理内容の問合せのための制御メッセージとして、OpenflowのPacket−inメッセージを含む任意のメッセージが使用され得る。
図7の例では、制御装置30a、転送装置10a、転送装置10b、処理装置20d、処理装置20eにより、フローA〜Dが処理されるものとする。なお、以下の説明では、調整装置50bが、制御装置30aから処理が要求される制御メッセージの転送経路を調整する場合を例として説明する。図7中の点線は、調整装置50bと各装置の間での通信に用いられる制御ネットワークの一部を示す。また、以下の説明では、転送が行われる方向を明確にするために、処理装置20に制御メッセージを転送する方向を「上り方向」、制御メッセージに対する処理結果を制御装置30に転送する方向を「下り方向」と記載することがある。各転送装置10において、上り方向の転送処理に使用されるキューは、転送先の処理装置20および処理に使用されるアプリケーションの組み合わせと一意に対応付けられている。同様に、下り方向の転送処理に使用されるキューは、処理結果の転送先の制御装置30と一意に対応付けられているものとする。
図8は、転送経路テーブル71の例を示す図である。図8は、調整装置50bが、図7に示す転送経路をフローA〜Dに対して設定する場合に、調整装置50bが保持している転送経路テーブル71の例である。なお、転送経路テーブル71は経路計算部63により生成される。
図7、図8の例では、調整装置50bは、フローAとフローDが転送装置10aのメッセージキューQ11を介して処理装置20dに転送されるように転送経路を設定している。また、調整装置50bは、フローBとフローCが転送装置10aのメッセージキューQ12を介して処理装置20eに転送されるように転送経路を設定している。さらに、処理装置20dでのフローAについての処理結果と、処理装置20eでのフローBについての処理結果は、転送装置10bのメッセージキューQ21を介して制御装置30aに転送される。また、処理装置20dでのフローDについての処理結果と、処理装置20eでのフローCについての処理結果は、転送装置10bのメッセージキューQ22を介して制御装置30aに転送される。
図9は、各装置が保持する転送先の情報の例を示す図である。図7に示すようにフローが処理される場合、調整装置50bの生成部64は、予め、制御装置30aに対して、要求先テーブル41−1の内容の設定を行うための要求メッセージを送信している。同様に、転送装置10aにはテーブルT1、転送装置10bにはテーブルT2、処理装置20dにはテーブルT3、処理装置20eにはテーブルT4の内容を示す要求メッセージが、予め、調整装置50bから送信されているものとする。
以下、各装置が保持する転送先の情報が図9に示す場合に行われる処理の例を、各フローの処理と処理時間の計測、調整装置50が保持する情報、処理装置20で発生した輻輳の検出と回避、転送装置10で発生した輻輳の検出と回避に分けて説明する。
(1)各フローの処理と処理時間の計測
ノード6a、6bは、音声パケットや映像パケットに対する処理内容を問合わせるパケットを、制御装置30aに送信する。このため、図7に示すように、ノード6aからフローAとフローB、ノード6bからフローCとフローDが制御装置30aに送信される。以下、フローAに含まれる制御メッセージがノード6aから制御装置30aに送信された場合を例として各フローの処理の例を説明する。
図7のAR1に示すように、制御装置30aはノード6aから未定義パケット等の問い合わせパケットを受信する。ノード制御部33は、受信した問い合わせパケットを内部制御用の制御メッセージに含めて、バッファ42aに格納する。転送処理部38は、バッファ42aから制御メッセージを読み出し、読み出した制御メッセージがいずれのフローに属するかを判定する。例えば、転送処理部38は、制御メッセージがPacket−inメッセージである場合、処理内容の問い合わせの種類を判定する。Packet−inメッセージには、処理内容の問い合わせ対象となっているパケットの少なくともヘッダなどの一部が含まれているので、転送処理部38はパケットの問い合わせの種類を判定できる。従って、転送処理部38は、制御メッセージに含まれる問い合わせパケットと問合わせの種類の組み合わせから、どの処理装置に送信すれば良いかを判定し、それに対応するフローA〜Dのいずれを使用したら良いかを判定する。次に、転送処理部38は、要求先テーブル41を参照することにより、転送先の転送装置10を特定する。
図9の要求先テーブル41−1に示すように、要求先テーブル41には、フローの識別子に対応付けて、アプリケーション種別、転送先の転送装置10の識別情報、上り方向のメッセージキューの識別情報が記録されている。アプリケーション種別は、対応付けられたフローに含まれる制御メッセージを処理するアプリケーションの種類を表わす情報である。以下の例では、制御装置30aは図9の要求先テーブル41−1を保持しており、フローAまたはフローDに含まれる制御メッセージは、アプリケーションAP1(処理装置20d)で処理されるものとする。同様に、フローBまたはフローCに含まれる制御メッセージは、アプリケーションAP2(処理装置20e)で処理される。さらに、要求先テーブル41−1により、フローAまたはフローDに含まれている制御メッセージの転送先は、転送装置10aのキューQ11に指定されている。同様に、フローBまたはフローCからに含まれている制御メッセージの転送先は、転送装置10aのキューQ12に指定されている。
転送処理部38は、フローの種類を特定すると、要求先テーブル41−1を参照して転送先を特定する。ここで、転送処理部38は、バッファ42aから読み出した制御メッセージがフローAに含まれていると判定したとする。すると、転送処理部38は、要求先テーブル41−1を用いて、フローAに含まれる制御メッセージの転送先を、転送装置10aのキューQ11に決定し、転送先が転送装置10aであることを示す情報と共に、読み出した制御メッセージを、送信部31に出力する。このとき、転送処理部38は、入力された制御メッセージを一意に特定するための識別情報(メッセージ識別情報)を付しても良い。さらに、転送処理部38は、計測部36に制御メッセージとその制御メッセージが含まれているフローの識別情報を出力することにより、制御メッセージの送信を計測部36に通知する。
計測部36は、制御メッセージが入力されると、メッセージ識別情報を制御メッセージから抽出する。ここで、メッセージ識別情報は、制御メッセージを一意に特定可能な任意の情報である。例えば、計測部36は、制御メッセージのヘッダに含まれているシーケンス番号やメッセージIDなどをメッセージ識別情報として使用することができる。計測部36は、取得したメッセージ識別情報と、制御メッセージを含むフローの識別情報に対応付けて、その制御メッセージが転送装置10に転送されることが通知された時刻からの経過時間の計測を開始する。
図7のAR2に示すように、送信部31は、入力された制御メッセージを、指定された転送先である転送装置10aに送信する。転送装置10aは、制御装置30aから受信した制御メッセージに含まれている格納先の情報を取得する。ここでは、転送装置10aが受信した制御メッセージには、格納先がキューQ11であることを示す情報が含まれている。そこで、転送装置10aは、受信した制御メッセージをキューQ11に格納する。
図9のテーブルT1は、転送装置10aが上り方向の制御メッセージの保持に使用するキューごとに、転送元の制御装置、アプリケーション種別、転送先の処理装置を対応付けている。転送元の制御装置の欄には、そのキューを格納先に指定している制御メッセージの転送元となっている制御装置30の情報が格納される。アプリケーション種別は、そのキューに格納される制御メッセージの処理に使用されるアプリケーションの種類を示す。転送先の処理装置は、そのキューに格納された制御メッセージの転送先である。例えば、転送装置10a中のキューQ11は、処理装置20dでのアプリケーションAP1を用いた処理に対応付けられており、転送元は制御装置30aに設定されている。すなわち、転送装置10aは、キューQ11を、アプリケーションAP1で処理される制御メッセージを制御装置30aから処理装置20dに中継するために使用している。同様に、転送装置10aは、キューQ12を、アプリケーションAP2で処理される制御メッセージを制御装置30aから処理装置20eに中継するために使用している。転送装置10aは、テーブルT1の情報を用いて、キューQ11に格納されている制御メッセージを処理装置20dに転送する。
図7のAR3に示すように処理装置20dにフローAの制御メッセージが送信されてくるため、処理装置20dは、制御メッセージを受信する。ここで、処理装置20dは、転送装置10aのキューQ11に格納されていた制御メッセージをアプリケーションAP1で処理するように設定されているものとする。制御装置20dが受信した制御メッセージには、制御メッセージがキューQ11に格納されていたことを示す情報が含まれているので、制御メッセージはアプリケーションAP1で処理される。なお、処理装置20dは、制御メッセージを処理する際に、処理対象の制御メッセージがいずれのフローに含まれているかも判定するものとする。処理装置20dにおいても、制御メッセージが属するフローの判定方法は、制御装置30aでの判定方法と同様である。
図9のテーブルT3に、処理装置20dが保持する転送情報の例を示す。テーブルT3には、フローごとに、制御メッセージの処理結果の転送経路が記録されている。各エントリは、通知先の制御装置、処理結果の転送先となる転送装置、下り方向のメッセージキューの情報を含む。なお、下り方向のメッセージキューは、処理結果の通知先となっている制御装置30に処理結果を通知するために使用されるメッセージキューの識別子である。例えば、フローDに含まれる制御メッセージを処理した場合、処理装置20dは、制御装置30aに結果を通知するために、転送装置10bのキューQ22を転送先に指定する。一方、フローAに含まれる制御メッセージを処理した場合、処理装置20dは、制御装置30aに結果を通知するために、転送装置10bのキューQ21を転送先に指定する。ここでは、処理装置20dは、フローAに含まれている制御メッセージを処理したので、処理装置20dは、処理結果を示す制御メッセージに、転送先での格納に使用されるキューがQ21であることを示す情報を付して、転送装置10bに送信する。なお、処理結果を示す制御メッセージには、処理対象となった制御メッセージを識別する制御メッセージ識別情報や、処理対象となった制御メッセージが属するフローの識別情報が含まれているものとする。
図7のAR4に示すように、転送装置10bは処理装置20dから処理結果を含む制御メッセージを受信する。転送装置10bは、受信した制御メッセージに含まれている格納先の情報を取得する。ここでは、転送装置10bが受信した制御メッセージには、格納先がキューQ21であることを示す情報が含まれているので、転送装置10bは、受信した制御メッセージをキューQ21に格納する。
図9のテーブルT2は、転送装置10bが下り方向の制御メッセージの保持に使用するキューごとに、転送元の処理装置20と転送先の制御装置30を対応付けている。転送元の処理装置20の欄には、そのキューを格納先に指定している制御メッセージの転送元となっている処理装置20の情報が格納される。転送先の制御装置30は、そのキューに格納された制御メッセージの転送先である。例えば、転送装置10b中のキューQ21は、処理装置20dか処理装置20eから入力された制御装置30a宛の制御メッセージを格納する。同様に、転送装置10bは、キューQ22を、処理装置20dか処理装置20eから入力された制御装置30a宛の制御メッセージの格納に使用する。従って、テーブルT2の例では、転送装置10bは、キューQ21とキューQ22のいずれに格納した制御メッセージも制御装置30aに転送する。
図7のAR5に示すように、制御装置30aは転送装置10bから処理結果を含む制御メッセージを受信する。制御装置30aの受信部32は、受信した制御メッセージを転送処理部38に出力する。転送処理部38は、処理結果を含む制御メッセージから、処理対象となった制御メッセージのフローを特定する情報を抽出し、抽出した情報に基づいて制御装置は、送信元のノード6の制御を行う。例えば、制御装置30aはフローAの問い合わせパケットをノード6aから取得しているので、転送処理部38は、フローAについての処理結果の制御メッセージを受信すると、制御装置は処理結果に応じてノード6aをOpenflowプロトコルを用いて制御する(図7のAR6)。
転送処理部38は、処理結果を取得すると共に、処理結果を含む制御メッセージの受信時刻を計測部36に通知する。このとき、転送処理部38は、受信制御メッセージに含まれている制御メッセージ識別情報に対応付けて処理結果の取得を計測部36に通知する。計測部36は、転送処理部38から入力された制御メッセージ識別情報に対応付けて記憶している送信時刻と、その制御メッセージ識別情報に対応付けられた受信時刻の差を求め、得られた値を、制御メッセージ識別情報で識別される制御メッセージの処理時間とする。計測部36は、得られた処理時間と処理時間を求めた制御メッセージが含まれているフローの種類の組み合わせを、通知処理部37に出力する。例えば、フローAの制御メッセージPa1に対する処理時間がT1かかったとすると、計測部36は、フローAの制御メッセージの処理時間がT1であることを通知処理部37に通知する。通知処理部37は、予め、通信先の調整装置50bの識別子を保持しており、フローごとの処理時間を調整装置50bに送信する。
以上の説明では、フローAの制御メッセージを例として、制御メッセージの処理、処理時間の取得、処理時間の調整装置50bへの通知を説明したが、他のフローについても同様に処理が行われる。処理装置20eで制御メッセージが処理される場合も同様である。
テーブルT4(図9)は、処理装置20eに設定されている転送情報を示す。テーフルT4に含まれている情報要素もテーブルT3の情報要素と同様である。このため、処理装置20eは、フローBに含まれる制御メッセージを処理した場合、制御装置30aに結果を通知するために、転送装置10bのキューQ21を転送先に指定する。さらに、処理装置20eは、フローCに含まれる制御メッセージを処理した場合、制御装置30aに結果を通知するために、転送装置10bのキューQ22を転送先に指定する。
なお、図9に示すテーブルの例は一例であり、実装に応じて変更されうる。例えば、1台の転送装置10が上り方向の制御メッセージの転送処理と下り方向の制御メッセージの転送処理の両方に使用される場合、転送装置10は、上り方向の転送に用いられる情報と下り方向の転送に用いられる情報を保持している。なお、この場合も、上り方向の転送に使用される情報はテーブルT1と同様の情報とすることができ、下り方向の転送に使用される情報はテーブルT2と同様の情報とすることができる。
(2)調整装置50が保持する情報
輻輳の検出と輻輳の回避を行うための処理の例を説明する前に、調整装置50が輻輳の検出に使用する情報について説明する。
図10は、処理時間の分布の例を説明する図である。図10では、経験的に得られた処理時間ごとの報告頻度を、コントローラシステム1中で輻輳が発生していない場合、転送装置10で輻輳が発生している場合、処理装置20で輻輳が発生している場合に分けて表わしている。以下の説明では、t1<t2<t3の順に時間が長くなるものとする。図10中のAは、コントローラシステム1中に輻輳が発生していない場合に得られる処理時間の分布の例である。図10のBは、制御メッセージの処理を要求する制御装置30と処理装置20との間の通信を中継している転送装置10のいずれか1つ以上で輻輳が発生した場合に得られる処理時間の分布の例である。図10のCは、制御メッセージの処理が要求された処理装置20において輻輳が発生しているときに得られる処理時間の分布の例である。コントローラシステム1中に輻輳が発生していない場合の処理時間の最頻値は、Aで示されているように、t1である。一方、転送装置10で輻輳が発生すると、Bに示すように、処理時間の最頻値はt2になり、輻輳が発生していない場合(A)に比べて、処理時間は長くなる。しかし、転送装置10での輻輳による遅延量は、処理装置20での輻輳による遅延よりも短いことが多い。そのため、転送装置10での輻輳が発生している場合の処理時間の最頻値t1は、処理装置20で輻輳が発生している場合(C)の処理時間の最頻値t2よりも短くなっている。
図10に示す処理時間の分布に基づいて、閾値D_mq(メッセージキュー輻輳判定閾値)と、閾値D_app(アプリケーション輻輳判定閾値)が決定される。ここで、閾値D_mqは、通信の中継に使用されている転送装置10中のメッセージキューでの輻輳が発生しているかを判定するための閾値である。閾値D_appは、制御メッセージの処理が要求された処理装置20での輻輳が発生しているかを判定するための閾値である。例えば、閾値D_mqは、輻輳が発生していない場合の処理時間の最頻値t1より大きく、転送装置10で輻輳が発生した場合の処理時間の最頻値t2以下の値に設定される。また、閾値D_appは、転送装置10で輻輳が発生した場合の処理時間の最頻値t2より大きく、処理装置20で輻輳が発生した場合の処理時間の最頻値t3以下の値に設定される。
図11は、閾値情報テーブル73の例を示す。閾値情報テーブル73では、各フローの識別子に対応付けて、そのフローでの輻輳の判定に使用する閾値と、輻輳状態であるという判定を解除するための閾値が記録されている。閾値情報テーブル73は判定部62での判定処理に使用される。判定部62は、制御装置30から通知された処理時間をフローごとに、閾値D_mqや閾値D_appと比較する。処理時間が閾値D_mqを越えると、判定部62は、そのフローが経由する転送装置10のメッセージキューで輻輳が発生している可能性があると判定する。一方、処理時間が閾値D_appを越えると、判定部62は、そのフローを処理する処理装置20で輻輳が発生している可能性があると判定する。
輻輳状態の判定を解除するためには、メッセージキュー輻輳解除閾値と、アプリケーション輻輳解除閾値が使用される。転送装置10での輻輳が発生している可能性があると判定されたフローについて、処理時間がメッセージキュー輻輳解除閾値を下回ると、判定部62は、輻輳が回避されたと判定する。また、処理装置20での輻輳が発生している可能性があると判定されたフローについて、処理時間がアプリケーション輻輳解除閾値を下回ると、判定部62は、輻輳が回避されたと判定する。
(3)処理装置20で発生した輻輳の検出と回避
次に、調整装置50bが処理装置20で発生した輻輳の検出と輻輳の回避を行うための処理の例を説明する。なお、ここでは、図2を参照しながら説明したように、アプリケーション輻輳解除閾値を越えたフローが1つ以上ある場合に、輻輳の箇所の特定が行われる場合を例として説明する。
図7や図9を参照しながら説明した処理により、制御装置30aが調整装置50bに各フロー中の制御メッセージについての処理時間を通知したとする。調整装置50の受信部52は、処理時間を通知する制御メッセージ(通知メッセージ)を取得部61に出力する。取得部61は、通知メッセージからフローの識別子と処理時間を取得し、判定部62に通知する。
図12は、判定部62が保持する情報の例を示すテーブルである。判定部62は、取得部61から通知された処理時間をフローごとに閾値情報テーブル73中の閾値と比較することにより、輻輳が発生しているかの判定を行っている。図12に示すテーブルは、各フローの処理時間について、閾値情報テーブル73(図11)を用いて判定処理を行った結果の例である。図12の例では、制御メッセージの処理時間は、フローAでは220m秒、フローBとフローCではいずれも20n秒、フローDでは230m秒である。ここで、図11に示すように、フローAとフローDでは、いずれもアプリケーション輻輳判定閾値は200m秒であるため、判定部62は、フローAとフローDについては、制御メッセージを処理する処理装置20での輻輳が発生していると判定する。一方、フローBとフローCについては、処理時間が20n秒であるのに対し、アプリケーション輻輳判定閾値が300m秒、メッセージキュー輻輳判定閾値が150n秒であるため、判定部62は、輻輳が発生していないと判定する。
図12に示すテーブルでは、判定結果は0〜2のいずれかの値で表わされている。以下の説明では、判定結果=0は輻輳が発生していないと判定されたことを示し、判定結果=1はメッセージキューで輻輳が発生していると判定されたことを示すものとする。さらに、処理装置20でのアプリケーションを用いた処理での輻輳が発生している場合、判定結果=2に設定される。
処理装置20で輻輳が発生している可能性のあるフローが1つ以上ある場合、判定部62は、判定結果(図12)と転送経路テーブル71−1(図8)を用いて、輻輳が発生した箇所を特定する。図12に示す判定結果のテーブルには、フローAにおいて、処理装置20での輻輳が発生していることが記録されている。そこで、判定部62は、転送経路テーブル71−1から、フローAの制御メッセージを処理する処理装置が処理装置20dであることを特定し、処理装置20dで輻輳が発生していると判定する。判定部62は、フローDについても同様の処理を行うことにより、フローDに含まれる制御メッセージの処理時間からも、処理装置20dで輻輳が発生していると判定する。判定部62は、輻輳が発生した箇所を特定すると、特定した結果を経路計算部63に出力する。
経路計算部63は、輻輳が発生していると判定されたフローについて、判定部62から輻輳の発生が通知されていない装置を用いた転送経路と処理装置を計算する。このとき、経路計算部63は、判定部62から輻輳の発生が通知された装置を、トポロジー情報72に記録されている情報から除いて得られた情報を用いて、処理装置の決定と経路計算を行う。なお、処理装置20の決定と経路計算は、任意の方法を用いて行われ得る。
図13は、処理装置20dで輻輳が発生したときの経路情報の変更例を示す。図13は、経路計算部63の処理により、フローAとフローDのいずれも、処理装置20dの代わりに処理装置20cで処理されるように決定された場合の経路情報の例を示している。また、経路計算部63は、フローAとフローDのいずれについても、メッセージキューを変更しない経路を算出したものとする。すると、経路計算部63は、得られた経路を用いて、転送経路テーブル71−1(図8)を、図13の転送経路テーブル71−2に示すように更新する。
生成部64は、転送経路テーブル71が更新されると、転送経路を変更する装置に対して、転送経路の更新を要求するための要求メッセージを生成する。すなわち、フローの処理を開始させる処理装置20に対して、生成部64は、処理結果の送信先となる制御装置30と、処理結果のメッセージの出力先の転送装置10およびメッセージキューを特定する情報を通知する。また、制御メッセージの処理を開始する処理装置20と制御装置30の間を接続する転送装置10に対しても、転送先または転送元の処理装置20の情報の変更を要求する。
図13に示す例では生成部64は、処理装置20cにフローAとフローDの処理の開始を要求すると共に、転送装置10aには、メッセージキューQ11に格納した制御メッセージを処理装置20cに転送することを要求する。さらに、転送装置10bには、処理装置20cおよび処理装置20eと制御装置30aとの間の通信の中継を行うことも要求する。そこで、生成部64は、処理装置20c宛の要求メッセージのペイロード中に、転送経路の追加を要求することを示す情報と共に、テーブルT3(図9)に示す情報を含める。生成部64は、転送装置10a宛ての要求メッセージのペイロードには、転送先の変更の要求と共に、図13のテーブルT5に示す情報を含める。さらに、生成部64は、転送装置10b宛ての要求メッセージのペイロードには、転送先の変更の要求と共に、図13のテーブルT6に示す情報を含める。生成部64は、生成した要求メッセージを、送信部51を介して、各要求メッセージの宛先に送信する。
処理装置20cは、要求メッセージを受信すると、フローAとフローDの制御メッセージをアプリケーションAP1によって処理することが要求されたと認識する。処理装置20cは、要求メッセージに含まれている転送情報を記憶するので、フローAとフローDに関しては、処理装置20cは図9のテーブルT3に示す情報を保持する。転送装置10aは、要求メッセージを受信すると、転送処理に使用する情報を、テーブルT1(図9)からテーブルT5(図13)に更新する。このため、転送装置10aは、要求メッセージの受信以降、キューQ11に格納したメッセージを処理装置20cに転送する。さらに、転送装置10bも、要求メッセージの受信により、転送処理に使用する情報を、テーブルT2(図9)からテーブルT6(図13)に更新する。このため、要求メッセージの受信以降、処理装置20cと処理装置20eから受信したメッセージを制御装置30aに転送する。
図14は、処理装置20dで輻輳が発生したときの転送経路の変更例を示す図である。図14は、図13に示すように経路情報が変更されたときに使用される転送経路を示している。このため、図14では、フローAとフローDが転送装置10aのメッセージキューQ11を介して処理装置20cに転送されている。一方、フローBとフローCの転送経路は図7に示した経路から変更されていないので、フローBとフローCは、転送装置10aのメッセージキューQ12を介して処理装置20eに転送される。処理装置20cでのフローAについての処理結果と、処理装置20eでのフローBについての処理結果は、転送装置10bのメッセージキューQ21を介して制御装置30aに転送される。また、処理装置20cでのフローDについての処理結果と、処理装置20eでのフローCについての処理結果は、転送装置10bのメッセージキューQ22を介して制御装置30aに転送される。
このように、調整装置50は、処理時間と転送経路テーブル71を用いて、輻輳が発生している処理装置20を特定できる。また、調整装置50は、処理装置20dを輻輳箇所として特定すると、輻輳箇所である処理装置20dを避けた転送経路を設定することができる。図14に示す転送経路を用いた運用が開始された後も、制御装置30aでは、フローA〜Dの各フローについて、制御メッセージの処理時間が計測される。制御装置30aの通知処理部37は、転送経路の変更後も、得られた処理時間の値をフローの識別子に対応付けて調整装置50に通知する。
通知メッセージは、同様に処理されるので、調整装置50中の判定部62による判定処理が再度行われる。判定部62は、フローAとフローDについては、図12に示すように、判定結果=2と判定されたことがあるので、輻輳が解消しているかを、アプリケーション輻輳解除閾値を用いて判定する。ここで、フローAとフローDのいずれについても処理時間として50n秒であることが、制御装置30aから調整装置50bに通知されたとする。すると、判定部62は、閾値情報テーブル73(図11)を用いて、フローAとフローDのいずれも、処理時間がアプリケーション輻輳解除閾値を下回っていることから、輻輳状態が回避されたと判定する。従って、フローAとフローDについても、判定部62は、判定結果を0に変更する。
(4)転送装置10で発生した輻輳の検出と回避
次に、調整装置50bが転送装置10で発生した輻輳の検出と輻輳の回避を行うための処理の例を説明する。なお、以下の説明では、輻輳が検出されるまでは、転送経路テーブル71−1(図8)や図9に示す情報に従って、図7に示す経路で通信処理が行われていたものとする。また、輻輳の発生の有無や、輻輳の発生箇所に関係なく、制御装置30aは、処理装置20で輻輳が発生した場合についての説明で述べた方法と同様の手順により、各フローについての処理時間を調整装置50bに通知する。また、取得部61や判定部62の処理も、処理装置20で輻輳が発生した場合についての説明で述べた処理と同様である。
図15は、判定部62が保持する情報の例を示すテーブルである。図15の例では、制御メッセージの処理時間は、フローAでは110n秒、フローBとフローCではいずれも20n秒、フローDでは130n秒である。ここで、図11に示すように、フローAではメッセージキュー輻輳判定閾値は100n秒であるため、判定部62は、フローAについては、経路中の転送装置10のいずれかのキューでの輻輳が発生していると判定する。フローBとフローCについては、処理時間が20n秒であるのに対し、メッセージキュー輻輳判定閾値が150n秒であるため、判定部62は、輻輳が発生していないと判定する。一方、フローDでは、処理時間が130n秒であるのに対し、メッセージキュー輻輳判定閾値が100n秒であるため、判定部62は、フローDが経由する転送装置10中のいずれかのキューでも、輻輳が発生していると判定する。このため、判定結果は、図15に示すように、フローAとフローDでは1、フローBとフローCでは0となる。
判定部62は、1つのフローについて、そのフローが経由するいずれかのキューで輻輳が発生していると判定した場合、輻輳が起こっているキューを特定するために、輻輳が発生しているフローと同じキューを経由するフローを検索する。例えば、フローAについて輻輳の原因となっているキューを特定する場合の処理の例を説明する。判定部62は、転送経路テーブル71−1(図8)を参照して、フローAとフローBがキューQ21を経由していることを特定する。そこで、判定部62は、キューQ21を、輻輳が起こっているかの判定対象とし、キューQ21での輻輳が発生しているかを判定する。キューQ21で輻輳が発生している場合は、フローAとフローBの両方の処理時間が長くなることが予想される。そこで、判定部62は、フローBで輻輳が発生しているかを判定する。ここでは、図15に示すように、フローBでは輻輳が発生していない。そこで、判定部62は、キューQ21では輻輳が発生していないと判定する。
次に、判定部62は、転送経路テーブル71−1を用いて、フローAがキューQ21以外に使用しているキューを特定し、そのキューを経由するフローを求める。転送経路テーブル71−1に示すように、フローAとフローDは、いずれも、キューQ11を経由している。そこで、判定部62は、キューQ11で輻輳が発生しているかを判定するために、フローDでも処理時間がメッセージキュー輻輳判定閾値を越えているかを判定する。フローDでは、フローAと同様に、メッセージキューの輻輳による処理の遅延が発生しているので、判定部62は、キューQ11で輻輳が発生していると判定する。
すなわち、判定部62は、転送装置10で輻輳が発生している可能性のあるフローが複数ある場合、輻輳が発生した箇所の特定を試みる。このとき、判定部62は、転送装置10での輻輳が発生したと判定された複数のフローで共通して使用しているキューが1箇所特定できると、特定したキューが輻輳の原因となっていると判定する。一方、転送装置10での輻輳が発生したと判定された複数のフローで共通して使用されているキューが複数である場合、判定部62は、輻輳の原因となるキューが特定できなかったと判定する。また、転送装置10での輻輳が発生したと判定された複数のフローで共通して使用されているキューが無い場合も、判定部62は、輻輳の原因をとなるキューを特定できなかったと判定する。
判定部62は、輻輳が発生した箇所を特定できた場合、特定した結果を経路計算部63に出力する。輻輳が発生している箇所が判定部62から通知されると、経路計算部63は、通知されたキューを経由しない転送経路を計算する。
図16は、転送装置10で輻輳が発生したときの経路情報の変更例を示す図である。図16は、経路計算部63の処理により、フローAとフローDのいずれも、転送装置10aの代わりに転送装置10cで処理されるように決定された場合の経路情報の例を示している。また、経路計算部63は、フローAとフローDのいずれについても、制御メッセージを処理する処理装置20を変更しない経路を算出したものとする。すると、経路計算部63は、得られた経路を用いて、転送経路テーブル71−1(図8)を、図16の転送経路テーブル71−3に示すように更新する。
転送経路テーブル71−1が転送経路テーブル71−3に更新された場合も、生成部64は、転送経路を変更する装置に対して、転送経路の更新を要求するための要求メッセージを生成する。すなわち、生成部64は、制御装置30aに対して、フローAとフローDの転送先を転送装置10cのキューQ31に変更させるための要求メッセージを生成する。さらに、生成部64は、フローAとフローDの転送処理を開始させる転送装置10cに宛てた要求メッセージにより、キューQ31を用いて制御装置30aと処理装置20dとの通信を中継することを要求する。このとき、生成部64は、転送先の処理装置20dでの処理にアプリケーションAP1が使用されることも、転送装置10c宛の要求メッセージに含める。
制御装置30aの転送処理部38は、要求メッセージを受信すると、フローAとフローDの制御メッセージの転送先を転送装置10cのキューQ31に変更することが要求されたと認識する。そこで、転送処理部38は、要求先テーブル41−1(図9)を要求先テーブル41−2(図16)に示すように更新する。転送装置10cは、要求メッセージを受信すると、転送処理に使用する情報に、テーブルT7(図16)に示す情報を追加する。
図17は、転送装置10で輻輳が発生したときの転送経路の変更例を示す図である。図17は、図16に示すように経路情報が変更されたときに使用される転送経路を示している。このため、図17では、フローAとフローDが転送装置10cのメッセージキューQ31を介して処理装置20dに転送されている。一方、フローBとフローCの転送経路は図7に示した経路から変更されていないので、転送装置10aのメッセージキューQ12を介して処理装置20eに転送される。フローA〜Dのいずれについても、処理結果の転送経路は図7から変更されていない。このため、処理装置20dでのフローAについての処理結果と、処理装置20eでのフローBについての処理結果は、転送装置10bのメッセージキューQ21を介して制御装置30aに転送される。また、処理装置20dでのフローDについての処理結果と、処理装置20eでのフローCについての処理結果は、転送装置10bのメッセージキューQ22を介して制御装置30aに転送される。
このように、調整装置50は、転送装置10中のメッセージキューを輻輳箇所として特定でき、さらに、輻輳が発生しているキューを避けた転送経路を設定することができる。図17に示す転送経路を用いた運用が開始された後も、処理装置20での輻輳が検出されたときと同様に、制御装置30aは、各フローについての制御メッセージの処理時間の計測と、処理時間の通知を行う。このため、フローAとフローDについての処理時間がメッセージキュー輻輳解除閾値を下回ると、輻輳状態である旨の設定が解除される。
以下、図18〜図21を参照しながら、調整装置50が輻輳の検出に加えて障害の検出も行う場合の処理の例を説明する。障害が検出された場合も、判定部62は経路計算部63に障害の発生箇所を通知し、経路計算部63は、障害の発生箇所を含まない転送経路を計算するものとする。また、生成部64は、障害の発生箇所を含まない転送経路を通知するために、適宜、要求メッセージを生成するものとする。なお、図18〜図21では、検出精度を高めるために同じ箇所での複数回の遅延が検出されたときに、障害や輻輳が発生していると判定する場合の処理の例を説明する。また、以下の説明では、処理時間のばらつきによって過剰に経路変更が行われることを防ぐために、輻輳の発生の判定の際には、フローごとの処理時間の平均値を用いている。
図18は、調整装置で行われる処理の例を説明するフローチャートである。なお、図18は一例であり、実装に応じて処理は変更されうる。例えば、ステップS3での平均値の計算方法は、実装に応じて変更されても良い。
調整装置50の判定部62は、制御装置30から通知された処理時間(Y)を取得部61から取得すると、障害判定閾値(D_fault)と比較する(ステップS1)。通知された処理時間Yが閾値D_fault以上の場合、判定部62は障害判定処理を行う(ステップS1でYes、ステップS2)。ここで、閾値D_faultは、処理時間としての異常値と判定される程度に大きな値であり、転送装置10か処理装置20で障害が発生した可能性があるほど長い時間に設定される。なお、判定部62は、制御装置30から処理時間の取得に失敗したことが通知された場合、処理時間が閾値D_faultを越えているとみなすものとする。
一方、処理時間Yが閾値D_fault未満の場合、判定部62は、処理時間の平均値Dを計算する(ステップS1でNo、ステップS3)。図18の例では、判定部62は、指数移動平均(Exponential Moving Average)により、次式から、平均値Dを求めている。
=α×Y+(1−α)×Dt―1
ここで、αは平滑化計数であり、0<α<1を満たす。Yは制御装置30から通知された処理時間の値であり、Dt―1は前回の算出で得られた平均値である。
判定部62は、平均値Dが閾値D_app以上であるかを判定する(ステップS4)。平均値Dが閾値D_app以上である場合、判定部62は、アプリケーション輻輳判定処理を行う(ステップS4でYes、ステップS5)。平均値Dが閾値D_app未満である場合、判定部62は、平均値Dが閾値D_mq以上であるかを判定する(ステップS4でNo、ステップS6)。判定部62は、平均値Dが閾値D_mq以上である場合、メッセージキュー輻輳判定処理を行う(ステップS6でYes、ステップS7)。一方、平均値Dが閾値D_mq未満である場合、判定部62は、ステップS1に戻る。また、ステップS2、S5、S7に示す判定処理の後も、判定部62は、新たに処理時間が通知されると、ステップS1以降の処理を繰り返す。
図19は、障害判定処理の例を説明するフローチャートである。図19は、図18のステップS2で行われる処理を詳しく示している。判定部62は、処理時間が閾値D_faultを越えているフローを処理している処理装置20とキューを特定する(ステップS11)。このとき、判定部62は、適宜、転送経路テーブル71を用いるものとする。判定部62は、特定した対象の総数Nを記憶する(ステップS12)。次に、判定部62は、変数nを1に設定する(ステップS13)。なお、変数nは、障害の発生箇所であるかを判定した対象の数を計数するために使用される。
判定部62は、n番目の対象を通過する複数のフローで処理時間が閾値D_faultを越えたかを判定する(ステップS14)。n番目の対象を通過する複数のフローにおいて、処理時間が閾値D_faultを越えている場合、判定部62は、n番目の対象を障害箇所の候補に設定する(ステップS14でYes、ステップS15)。その後、判定部62は、変数nを1つインクリメントして、変数nが定数Nを超えたかを判定する(ステップS16、S17)。判定部62は、変数nが定数N以下の場合、ステップS14以降の処理を繰り返す(ステップS17でNo)。
変数nが定数Nを超えた場合、判定部62は、障害箇所の候補があるかを判定する(ステップS17でYes、ステップS18)。障害箇所の候補がある場合、障害箇所の候補が複数あるかを判定する(ステップS18でYes、ステップS19)。障害箇所の候補が1箇所である場合、判定部62は、障害箇所の候補を障害箇所として決定し、経路計算部63、生成部64とともに障害復旧のための処理を行う(ステップS19でNo、ステップS20)。
一方、障害箇所の候補が無い場合、判定部62は、障害箇所の特定に失敗したと判定する(ステップS18でNo、ステップS21)。すると、経路計算部63は、処理時間が閾値D_faultを越えているフローについて、経路上の処理装置20とキューを変更し、管理者に通知する(ステップS22)。また、障害箇所の候補が複数ある場合も、判定部62は、障害箇所の特定に失敗したと判定する(ステップS19でYes、ステップS21)。このため、ステップS22の処理が行われる。
図20は、処理装置での輻輳の発生を判定する方法の例を説明するフローチャートである。図20は、図18のステップS5で行われる処理を詳しく示している。判定部62は、処理対象のフローが輻輳していると判定された結果、判定処理に使用しないように設定されたフローであるかを判定する(ステップS31)。このとき、判定部62は、適宜、図12などに示すようなテーブルの判定結果を用いることができる。処理対象のフローが輻輳しているため処理対象から除外されたフローである場合、判定部62は処理を終了する(ステップS31でYes)。
処理対象のフローが輻輳していると判定されたフローではない場合、判定部62はそのフローを処理している処理装置20を特定する(ステップS31でNo、ステップS32)。このとき、判定部62は、適宜、転送経路テーブル71を用いるものとする。次に、判定部62は、処理対象としているフロー以外に、処理時間の平均値が閾値D_appを越えたフローがあるかを判定する(ステップS33)。処理対象としているフロー以外に、処理時間の平均値が閾値D_appを越えたフローがある場合、ステップS32において特定した処理装置20で処理される複数のフローで輻輳が発生しているかを判定する(ステップS33でYes、ステップS34)。特定した処理装置20で処理される複数のフローで輻輳が発生している場合、判定部62は、特定した処理装置20を輻輳箇所に決定し、輻輳を解消するための処理を行う(ステップS34でYes、ステップS35)。判定部62は、輻輳箇所に決定した処理装置20で処理されるフローを、輻輳判定に使用するフローから除外して、ステップS1に戻る(ステップS36)。
一方、ステップS33において、処理時間の平均が閾値D_appを超えたフローが1つだけであると判定されると、判定部62は、輻輳箇所の特定に失敗したと判定する(ステップS33でNo、ステップS37)。判定部62は、処理時間の平均が閾値D_appを超えたフローの情報を、管理者に通知するための処理を行う(ステップS38)。さらに、ステップS34において、特定した処理装置で処理される複数のフローで輻輳が発生していないと判定された場合(ステップS34でNo)も、ステップS37、S38の処理が行われる。なお、フローの情報を管理者に通知するための処理には、例えば、管理者が使用している端末に、通知しようとするフローの識別子と、そのフローの処理時間の平均がアプリケーション輻輳判定閾値を超えていることを示す情報を送信することが含まれる。管理者が使用している端末は、調整装置50からの通知の内容を、管理者が認識できるような任意の形態で出力する。
図21は、転送装置での輻輳の発生を判定する方法の例を説明するフローチャートである。図21は、図18のステップS7で行われる処理を詳しく示している。判定部62は、処理対象のフローが輻輳していると判定された結果、判定処理に使用しないように設定されたフローであるかを判定する(ステップS41)。このとき、判定部62は、適宜、図15などに示すようなテーブルの判定結果を用いることができる。処理対象のフローが輻輳しているため処理対象から除外されたフローである場合、判定部62は処理を終了する(ステップS41でYes)。
処理対象のフローが輻輳していると判定されたフローではない場合、判定部62はそのフローが通過するキューを特定する(ステップS41でNo、ステップS42)。このとき、判定部62は、適宜、転送経路テーブル71を用いるものとする。判定部62は、特定したキューの総数Mを記憶する(ステップS43)。次に、判定部62は、変数mを1に設定する(ステップS44)。なお、変数mは、輻輳の発生箇所であるかを判定したキューの数を計数するために使用される。
判定部62は、特定したキューのうちのm番目のキューを通過する複数のフローが輻輳しているかを判定する(ステップS45)。なお、ステップS45において、判定部62は、各フローについての処理時間の平均が閾値D_mqを越えると、輻輳が発生していると判定するものとする。m番目のキューを通過する複数のフローにおいて輻輳が発生している場合、判定部62は、m番目の対象を輻輳箇所の候補に設定する(ステップS45でYes、ステップS46)。その後、判定部62は、変数mを1つインクリメントして、変数mが定数Mを超えたかを判定する(ステップS47、S48)。判定部62は、変数mが定数M以下の場合、ステップS45以降の処理を繰り返す(ステップS48でNo)。
変数mが定数Mを超えた場合、判定部62は、輻輳箇所の候補があるかを判定する(ステップS48でYes、ステップS49)。輻輳箇所の候補がある場合、輻輳箇所の候補が複数あるかを判定する(ステップS49でYes、ステップS50)。輻輳箇所の候補が1箇所である場合、判定部62は、輻輳箇所の候補を輻輳箇所として決定し、輻輳を解消するための処理を行う(ステップS50でNo、ステップS51)。判定部62は、輻輳箇所に決定したキューを通過するフローを、輻輳判定に使用するフローから除外して、ステップS1に戻る(ステップS52)。
一方、輻輳箇所の候補が無い場合、判定部62は、輻輳箇所の特定に失敗したと判定する(ステップS49でNo、ステップS53)。判定部62は、処理時間の平均が閾値D_mqを超えたフローの情報を、管理者に通知するための処理を行う(ステップS54)。さらに、ステップS50において、輻輳箇所の候補のキューが複数あると判定された場合(ステップS50でYes)も、ステップS53、S54の処理が行われる。
図22は、輻輳の解除処理の例を説明するフローチャートである。判定部62は、処理対象のフローが輻輳していると判定されているかを判定する(ステップS61)。処理対象のフローが輻輳していると判定されているフローでない場合、判定部62は、処理対象としているフローに対する処理を終了して、他のフローについての処理を開始する。一方、処理対象のフローが輻輳していると判定されているフローである場合、判定部62は、そのフローについての処理時間の平均値Dtが、メッセージキュー輻輳解除閾値(D_mq_release)を下回っているかを判定する(ステップS62)。処理時間の平均値Dtが、メッセージキュー輻輳解除閾値を下回っている場合、処理対象のフローについて、メッセージキュー輻輳状態であるという設定を解除する(ステップS62でYes、ステップS63)。判定部62は、処理時間の平均値Dtが、メッセージキュー輻輳解除閾値以上である場合、処理時間の平均値Dtがアプリケーション輻輳解除閾値(D_app_release)を下回っているかを判定する(ステップS62でNo、ステップS64)。処理時間の平均値Dtが、アプリケーション輻輳解除閾値を下回っている場合、処理対象のフローについて、アプリケーション輻輳状態であるという設定を解除する(ステップS64でYes、ステップS65)。処理時間の平均値Dtが、アプリケーション輻輳解除閾値以上である場合、判定部62は、処理対象としているフローに対する処理を終了して、他のフローについての処理を開始する(ステップS64でNo)。
以上説明したように、調整装置50が、制御メッセージについての処理時間を用いて、輻輳の発生箇所を特定し、輻輳が発生した箇所を用いない転送経路を設定する。さらに、調整装置50は、転送経路の変更を要求する装置に要求メッセージを送信することにより、設定した転送経路が使用されるようにする。このため、コントローラシステム1で輻輳が発生しても、効率的に輻輳が解消され、コントローラシステム1が安定的に運用される。
さらに、実施形態にかかる方法を用いても、転送装置10や処理装置20での処理は、実施形態にかかる方法を導入しない場合と同じである。このため、実施形態にかかる方法は、転送装置10や処理装置20を実現する装置やソフトウェアに対しての変更を行わずに、システムに導入することができる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
処理時間を調整装置50に通知するときに、通知処理部37は、通知を行う周期ごとに、各フローについての処理時間の平均値を求めて、フローの識別子と処理時間の平均値を調整装置50bに通知しても良い。この場合、処理時間の通知の周期が処理時間の揺らぎを平滑化できる程度の長さであれば、取得部61は、制御装置30から通知された処理時間から平均値を求めなくてもよい。
以上の説明では、輻輳箇所を経由しているフローの全てについて経路の変更を行う場合を例として説明したが、調整装置50は、輻輳したフローのうちの一部の経路を変更し、他の経路を変更せずに所定の時間、待機しても良い。一部の経路を変更したことによって輻輳が回避された場合、調整装置50はこれ以上の経路変更を行わなくても良い。
また、以上の説明で示した要求先テーブル41、転送経路テーブル71、閾値情報テーブル73などのテーブルは一例であり、実装に応じて、各テーブルに含まれる情報要素は変更され得る。
なお、以上の説明では、理解しやすくするために、同じ制御装置30を経由したフロー間で処理時間を比較する場合を例として説明したが、異なる制御装置30が計測した処理時間を用いて、輻輳箇所が特定されても良い。例えば、制御装置30aが計測したフローAと、制御装置30bが計測したフローEとで、処理装置20またはキューが共通している場合、調整装置50は、フローAの処理時間と、フローEの処理時間を用いて、輻輳箇所の特定を行う。
さらに、処理装置、転送装置、制御装置は、クラウドシステムの仮想マシンに配備しても良いし、個々を物理サーバに配備し、物理サーバ間を制御用のネットワークで接続する実施形態でも良い。
1 コントローラシステム
2 制御装置
3 広域ネットワーク
4 LAN
5 メッセージングシステム
6 ノード
7、8 コントローラクラスタ
10 転送装置
15 アプリケーション処理クラスタ
20 処理装置
25 調整システム
30 制御装置
31、51 送信部
32、52 受信部
35、60 制御部
36 計測部
37 通知処理部
38 転送処理部
40、70 記憶部
41 要求先テーブル
42 バッファ
50 調整装置
61 取得部
62 判定部
63 経路計算部
64 生成部
71 転送経路テーブル
72 トポロジー情報
73 閾値情報テーブル
101 プロセッサ
102 メモリ
103 バス
104 ネットワーク接続装置
105 ネットワーク

Claims (7)

  1. 複数の転送装置、複数の処理装置、制御装置を含む通信システム中の経路決定装置であって、
    前記制御装置が前記複数の処理装置から選択された対象処理装置に処理対象のパケットを含む制御メッセージの処理を要求する場合に、前記制御メッセージの処理にかかる時間である処理時間を取得する取得部と、
    前記処理時間が第1の閾値を越えると、前記処理時間が前記第1の閾値よりも大きい第2の閾値を超えているかにより、前記制御装置と前記対象処理装置の間の通信に使用される転送装置と、前記対象処理装置のいずれで輻輳が発生したかを判定する判定部と、
    前記輻輳が発生した装置で前記制御メッセージが処理されないように決定した転送経路の設定を要求する要求メッセージを送信する送信部
    を備えることを特徴とする経路決定装置。
  2. 前記転送経路を計算する計算部と、
    前記転送経路の設定の際に使用される要求メッセージを生成する生成部をさらに備え、
    前記判定部は、前記処理時間が前記第2の閾値より長い場合、前記対象処理装置での輻輳により処理が遅延していると判定し、
    前記計算部は、前記複数の処理装置のうちで前記対象処理装置とは異なる他の処理装置を選択することにより、前記転送経路を求め、
    前記生成部は、前記制御装置から受信した制御メッセージを前記対象処理装置に転送する転送装置に、前記制御装置から受信した制御メッセージを前記他の処理装置に転送することを要求するための要求メッセージを生成する
    ことを特徴とする請求項1に記載の経路決定装置。
  3. 前記判定部は、
    前記制御装置が前記対象処理装置に処理を要求する制御メッセージのフローである第1のフローについて得られた第1の処理時間が前記第1の閾値より長く、前記第2の閾値以下の場合、前記制御装置から受信した制御メッセージを前記対象処理装置に転送する転送装置を判定対象とし、
    前記判定対象を介して前記複数の処理装置のいずれかに制御メッセージが転送される第2のフローを特定し、
    前記取得部は、前記第2のフローに属する制御メッセージについての処理時間である第2の処理時間の長さを取得し、
    前記判定部は、前記第2の処理時間が前記第1の閾値より長く、前記第2の閾値以下の場合、前記第1のフローを前記対象処理装置に転送している転送装置での輻輳により処理が遅延したと判定する
    ことを特徴とする請求項1または2に記載の経路決定装置。
  4. 前記判定部は、前記第2の処理時間が前記第1の閾値以下の場合、前記第1のフロー中の制御メッセージを前記対象処理装置から前記制御装置に転送する他の転送装置を経由する第3のフローを特定し、
    前記取得部は、前記第3のフローに属する制御メッセージについての処理時間である第3の処理時間の長さを取得し、
    前記判定部は、前記第3の処理時間が前記第1の閾値より長く、前記第2の閾値以下の場合、前記他の転送装置での輻輳により処理が遅延したと判定する
    ことを特徴とする請求項3に記載の経路決定装置。
  5. 複数の転送装置、複数の処理装置、経路決定装置、制御装置を含む通信システムでの転送経路の決定方法であって、
    前記制御装置が前記複数の処理装置から選択された対象処理装置に処理対象のパケットを含む制御メッセージの処理を要求する場合に、前記制御メッセージの処理にかかる時間である処理時間を取得し、
    前記処理時間が第1の閾値を越えると、前記処理時間が前記第1の閾値よりも大きい第2の閾値を超えているかにより、前記制御装置と前記対象処理装置の間の通信に使用される転送装置と、前記対象処理装置のいずれで輻輳が発生したかを判定し、
    前記輻輳が発生した装置で処理対象の制御メッセージが処理されないように転送経路を決定する
    処理を前記経路決定装置が行うことを特徴とする転送経路の決定方法。
  6. 前記処理時間が前記第2の閾値より長い場合、前記対象処理装置での輻輳により処理が遅延していると判定し、
    前記複数の処理装置のうちで前記対象処理装置とは異なる他の処理装置を選択することにより、前記転送経路を求め、
    前記制御装置から受信した制御メッセージを前記対象処理装置に転送する転送装置に、前記制御装置から受信した制御メッセージを、前記他の処理装置に転送することを要求する
    処理を前記経路決定装置が行うことを特徴とする請求項5に記載の転送経路の決定方法。
  7. 前記制御装置が前記対象処理装置に処理を要求する制御メッセージのフローである第1のフローについて得られた第1の処理時間が前記第1の閾値より長く、前記第2の閾値以下の場合、前記制御装置から受信した制御メッセージを前記対象処理装置に転送する転送装置を判定対象とし、
    前記判定対象を介して前記複数の処理装置のいずれかに制御メッセージが転送される第2のフローを特定し、
    前記第2のフローに属する制御メッセージについての処理時間である第2の処理時間の長さを取得し、
    前記第2の処理時間が前記第1の閾値より長く、前記第2の閾値以下の場合、前記第1のフローを前記対象処理装置に転送している転送装置での輻輳により処理が遅延したと判定する
    処理を前記経路決定装置が行うことを特徴とする請求項5または6に記載の転送経路の決定方法。
JP2014112361A 2014-05-30 2014-05-30 経路決定装置および転送経路決定方法 Expired - Fee Related JP6233193B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014112361A JP6233193B2 (ja) 2014-05-30 2014-05-30 経路決定装置および転送経路決定方法
US14/665,324 US9559932B2 (en) 2014-05-30 2015-03-23 Route determination apparatus and transfer route determination method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014112361A JP6233193B2 (ja) 2014-05-30 2014-05-30 経路決定装置および転送経路決定方法

Publications (2)

Publication Number Publication Date
JP2015228538A JP2015228538A (ja) 2015-12-17
JP6233193B2 true JP6233193B2 (ja) 2017-11-22

Family

ID=54703081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014112361A Expired - Fee Related JP6233193B2 (ja) 2014-05-30 2014-05-30 経路決定装置および転送経路決定方法

Country Status (2)

Country Link
US (1) US9559932B2 (ja)
JP (1) JP6233193B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015166979A1 (ja) * 2014-05-01 2015-11-05 日本電気株式会社 通信装置、制御装置、通信システム、受信パケットの処理方法、通信装置の制御方法及びプログラム
US10397315B2 (en) 2016-05-26 2019-08-27 Fujitsu Limited Information processing apparatus and load distribution control method
JP2018041153A (ja) * 2016-09-05 2018-03-15 東芝メモリ株式会社 ストレージシステムおよび入出力処理方法
US10433201B2 (en) 2017-03-17 2019-10-01 Electronics And Telecommunications Research Institute Method for transmitting and receiving packet in transport network
CN115174346B (zh) * 2022-09-02 2023-03-28 平安银行股份有限公司 基于消息队列的延时告警方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1384153A4 (en) * 2001-05-04 2005-08-03 Netqos Inc CALCULATION OF RESPONSE TIME OF A SERVER SITE FOR ARBITRARY APPLICATIONS
EP1806895A4 (en) * 2004-10-29 2013-01-09 Nippon Telegraph & Telephone PACKET COMMUNICATION NETWORK AND PACKET COMMUNICATION METHOD
US7649845B2 (en) * 2005-09-30 2010-01-19 Intel Corporation Handling hot spots in interconnection networks
EP2586235B1 (en) * 2010-06-22 2018-10-10 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for detecting congestion in a communications network
JP5703909B2 (ja) * 2011-03-31 2015-04-22 富士通株式会社 情報処理装置、並列計算機システム、および並列計算機システムの制御方法
JP2013085135A (ja) * 2011-10-11 2013-05-09 Panasonic Corp ネットワーク端末装置およびデータ伝送方法
JP2013207748A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd ネットワークシステム、及びノード装置

Also Published As

Publication number Publication date
US20150350085A1 (en) 2015-12-03
JP2015228538A (ja) 2015-12-17
US9559932B2 (en) 2017-01-31

Similar Documents

Publication Publication Date Title
US11134012B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
JP6233193B2 (ja) 経路決定装置および転送経路決定方法
KR102036056B1 (ko) 중앙 제어기들에 의한 네트워크들에서의 지연-기반 트래픽 레이트 제어
US9479323B2 (en) Communication system, forwarding node, control device, communication control method, and program
JP5515649B2 (ja) 通信システム、経路制御装置、経路制御方法および経路制御用プログラム
JP5884892B2 (ja) ネットワークシステム、コントローラ、及び負荷分散方法
JP2014168283A (ja) 通信システム、ネットワーク監視装置、及びネットワーク監視方法
JPWO2016135828A1 (ja) 中継装置および通信システム
US10778568B2 (en) Switch-enhanced short loop congestion notification for TCP
WO2011118574A1 (ja) 通信システム、制御装置、遅延測定方法およびプログラム
JPWO2014129624A1 (ja) 制御装置、通信システム、経路切替方法及びプログラム
JPWO2014175423A1 (ja) 通信ノード、通信システム、パケット処理方法及びプログラム
JP2013536593A (ja) 通信システム、制御装置、計算機、ノードの制御方法およびプログラム
US20150156116A1 (en) Routing control method and apparatus
KR101802037B1 (ko) Sdn 환경에서 서비스 기능 체이닝을 위한 oam 메시지 전송 방법 및 시스템
JP2016092756A (ja) 制御装置、通信システム、ループ抑止方法及びプログラム
JP6973405B2 (ja) 計測制御サーバ、通信品質計測システム、計測エージェント、方法およびプログラム
JP6550021B2 (ja) ストレージサーバ装置、ネットワーク情報共有システム、ネットワーク情報共有方法及びネットワーク情報共有プログラム
US10382338B2 (en) Mitigation of processing load on control device controlling transfer devices within network
JP2013058895A (ja) ネットワーク制御方法および装置並びにネットワーク制御システム
JP4165828B2 (ja) 通信ネットワーク、ネットワーク制御サーバ、トラヒック制御方法、およびプログラム
JP5201021B2 (ja) ネットワーク輻輳監視システム及びネットワーク輻輳監視方法
RU2656706C1 (ru) Устройство связи, устройство управления, система связи, способ обработки принимаемого пакета, способ управления устройством связи и программа
KR20160069185A (ko) 무선 센서 네트워크 기반 대규모 농작물 관리시스템에서의 혼잡제어 방법
JP6290015B2 (ja) 光パケットスイッチネットワークにおけるノード装置間の接続状態を確認する方法、システム及び制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170824

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171009

R150 Certificate of patent or registration of utility model

Ref document number: 6233193

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees