JP6760110B2 - 制御装置、転送装置、および、制御方法 - Google Patents

制御装置、転送装置、および、制御方法 Download PDF

Info

Publication number
JP6760110B2
JP6760110B2 JP2017013801A JP2017013801A JP6760110B2 JP 6760110 B2 JP6760110 B2 JP 6760110B2 JP 2017013801 A JP2017013801 A JP 2017013801A JP 2017013801 A JP2017013801 A JP 2017013801A JP 6760110 B2 JP6760110 B2 JP 6760110B2
Authority
JP
Japan
Prior art keywords
rule
processing
packet
transfer device
order
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017013801A
Other languages
English (en)
Other versions
JP2018125577A (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 JP2017013801A priority Critical patent/JP6760110B2/ja
Priority to PCT/JP2018/000275 priority patent/WO2018139195A1/ja
Publication of JP2018125577A publication Critical patent/JP2018125577A/ja
Priority to US16/511,594 priority patent/US11115325B2/en
Application granted granted Critical
Publication of JP6760110B2 publication Critical patent/JP6760110B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer

Landscapes

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

Description

本発明は、制御装置、転送装置、および、制御方法に関する。
近年、ネットワーク機能を仮想化するNFV(Network Functions Virtualization)が注目されている。NFVによると、ネットワーク機能は汎用サーバ上で動作するアプリケーションによって実現される。従って、NFVを用いたシステムでは、個々のネットワーク機能を専用の装置で実現するシステムに比べて、ネットワーク機器のコストを削減できる。また、NFVにより、ネットワークサービスの柔軟性の向上および高機能化が実現され得る。
しかし、ネットワーク機能が仮想化された場合、ネットワーク機能の処理性能は、仮想化環境やネットワーク機能の実現に使用される設定の内容に応じて変動しうる。例えば、ファイアウォールやルータ等のテーブル検索処理を行うネットワーク機能の最大スループットは、パケットの処理の際に行われるテーブルの検索回数に依存する。例えば、ファイアウォールとして動作する際に、汎用サーバは、受信パケットのヘッダに含まれている情報を、ルールテーブル中のマッチ条件と比較する処理を、受信パケットに適用可能なマッチ条件を特定するまで繰り返す。受信パケットにマッチ条件が適用可能であるかの判定処理回数が増えるほど、ファイアウォールとして動作しているサーバの処理負荷は高くなり、パケットの転送遅延も大きくなってしまう。そこで、テーブル中のマッチ条件を、受信データパケットに頻繁にマッチする条件ほど順序の前方に移動し、受信データパケットに頻繁にマッチしない条件ほど順序の後方に移動するパケットフィルタが提案されている(例えば、特許文献1など)。
関連する技術として、複数のルールを所定の順序で評価してパケットに適用するルールを決定し、ルールの適用回数と最後に評価された第1のルールの特徴情報に基づいて第2のルールを生成するルール制御装置が提案されている(例えば、特許文献2など)。このルール制御装置では、第2のルールは第1のルールより前に評価されるように設定される。
特開2000−174808号公報 特開2009−77030号公報
パケットの処理に使用される複数のルールの間で、そのルールが適用可能であるかを判定するために行われる処理にかかる負荷が同じであるとは限らない。しかし、サーバでの処理負荷の低減を行うために、複数のルールの各々の間で適用の可否を判定するための処理負荷の差まで考慮した検討はなされていない。ルールテーブルの始めの方に設定されている処理ルールは、その処理ルールより後ろに登録されている処理ルールが適用されるパケットに対する処理の検索の際にも、検索対象になる。このため、受信データパケットに頻繁にマッチする条件ほど順序の前方に移動したとしても、ルールテーブルの始めの方に設定されている処理ルールの判定にかかる負荷が高い場合、テーブル検索処理に起因する処理負荷が低減されない可能性がある。
本発明は、テーブル検索処理に起因する処理負荷を低減することを目的とする。
ある1つの態様にかかる制御装置は、転送装置を制御する制御装置であって、評価部、生成部、送信部を備える。評価部は、前記転送装置でのパケットの処理に使用される複数の処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する。生成部は、前記転送装置に使用させるテーブルとして、前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成する。送信部は、前記ルールテーブルの設定を要求する制御パケットを前記転送装置に送信する。
テーブル検索処理に起因する処理負荷を低減できる。
実施形態にかかるルールテーブルの設定方法の例を説明する図である。 制御装置の構成の例を説明する図である。 制御装置のハードウェア構成の例を説明する図である。 ネットワークの例を説明する図である。 最大スループットの測定処理の例を説明する図である。 性能プロファイルの計算方法の例を説明する図である。 性能プロファイルテーブルの例を説明する図である。 性能プロファイルの求め方の例を説明するフローチャートである。 パケット処理時間の算出例を説明する図である。 ルールテーブルの設定方法の例を説明するフローチャートである。 ルールテーブルの例を説明する図である。 ルールテーブルの設定と最大スループットの関係を説明する図である。 第2の実施形態にかかる制御装置の構成の例を説明する図である。 ルールテーブルとトラフィック情報の例を説明する図である。 第2の実施形態にかかるルールテーブルの設定方法の例を説明するフローチャートである。 ルールテーブルの設定と処理負荷のシミュレーション結果を説明する図である。 競合判定が行われる場合の例を説明する図である。 第3の実施形態にかかる処理ルールの設定方法の例を説明するフローチャートである。 転送装置の構成の例を示す図である。
図1は、実施形態にかかるルールテーブルの設定方法の例を説明する図である。パケットの処理に使用されるルールを適用するかの判定にかかる負荷は、その処理ルールを適用するかを判定する際に使用される条件(適用条件)の種類に応じて変動しうる。
ケースC1は、パケットの処理に適用可能な複数のルールの例を示す。ケースC1の例ではルールA〜ルールCの3つを示している。ルールAの適用条件としてパケットの宛先IP(Internet Protocol)アドレスの値が指定されており、ルールBとルールCでは、ルールの適用条件としてパケットの宛先ポート番号の値が指定されているとする。この場合、処理対象のパケットにルールAを適用するかを判定する際にかかる処理負荷は、パケットのIPヘッダからの宛先IPアドレスの読み込みにかかる処理負荷と、読み込んだ宛先IPアドレスと適用条件との比較処理にかかる処理負荷の和である。一方、処理対象のパケットにルールBかルールCを適用するかを判定する際にかかる処理負荷は、パケットのペイロードからの宛先ポート番号の読み込みにかかる処理負荷と、得られたポート番号と適用条件との比較にかかる処理負荷の和である。
ここで、宛先IPアドレスなどIPヘッダ中の情報に対するアクセスにかかる処理負荷は、ポート番号などペイロード中に含まれている情報に対するアクセスにかかる処理負荷よりも小さいことが多い。すると、処理対象のパケットにルールAを適用するかを判定するためにかかる処理負荷は、処理対象のパケットにルールBやルールCを適用するかを判定するためにかかる処理負荷よりも軽いといえる。また、処理負荷が軽いほど、処理にかかる時間も短くなるので、処理対象のパケットにルールAを適用するかを判定するためにかかる時間は、処理対象のパケットにルールBやルールCを適用するかを判定するためにかかる時間よりも短くなることが予測される。パケットに適用する処理ルールを特定するためにかかる時間は、パケットへの適用が可能かを判定した個々の処理ルールに対する判定処理にかかる時間の総和であるため、ルールテーブル中の処理ルールの格納順により変動する。
例えば、テーブルT1に示すルールテーブルを用いる装置では、ルールA、ルールC、ルールBの順にパケットへの適用が可能であるかの判定が行われる。一方、テーブルT2に示すルールテーブルを用いる装置では、ルールB、ルールC、ルールAの順にパケットへの適用が可能であるかの判定が行われる。ここで、ルールCが適用されるパケットが処理対象になったとする。すると、テーブルT1を用いる装置では、ルールAの適用の判定の後にルールCの適用判定が行われることにより、処理対象のパケットにルールCを適用することが決定される。このため、ルールCで処理されるパケットに適用するルールの決定には、ルールAに対する判定時間とルールCに対する判定時間を合わせた時間がかかる。一方、テーブルT2を用いる装置では、ルールBの適用の判定の後にルールCの適用判定が行われるため、ルールCで処理されるパケットに適用するルールの決定には、ルールBに対する判定時間とルールCに対する判定時間を合わせた時間がかかる。ここで、ルールAの判定処理にかかる時間はルールBの判定処理にかかる時間より短いので、テーブルT1を用いた装置では、テーブルT2を用いる装置よりも、ルールCを適用するパケットを早く処理できることになる。そこで、実施形態にかかる装置は、ルールテーブル中の処理ルールを、処理負荷の軽い順に並べ替える。
実施形態にかかる処理装置は、ルールテーブルに含められる処理ルールの各々について、ルール種別の情報を取得する(ステップS101)。ここで、「ルール種別」は、処理ルールに対する適用条件の指定に使用されているパラメータの種類である。なお、宛先IPアドレスと宛先ポート番号の組み合わせのように複数の情報の組合せで適用条件が指定されている処理ルールでは、適用条件の指定に用いられる情報要素の組み合わせがルール種別として取得される。その後、処理装置は、ルール種別ごとの処理負荷を求める(ステップS102)。さらに、処理装置は、ルールテーブル中の処理ルールを処理負荷の低い順に並べ替える(ステップS103)。
このように、処理装置では、ルールテーブル中の処理ルールが処理負荷の低い順に並べ替えられる。このため、適用の可否の判定対象となる処理ルールの数が同じであって、処理ルールが処理負荷の低い順に設定されていないテーブルが用いられるときに比べて、処理装置での適用対象の処理ルールの検索に起因する処理負荷は小さくなっている。なお、実施形態にかかる処理装置は、ネットワーク中の転送装置にルールテーブルを設定する制御装置であっても良く、また、制御装置から取得した複数の処理ルールをルールテーブルに設定可能な転送装置であっても良い。
<第1の実施形態>
第1の実施形態では、ネットワーク中の転送装置にルールテーブルを設定する制御装置がルールテーブル中の処理ルールの順序を設定する場合を例として説明する。
図2は、制御装置10の構成の例を説明する図である。制御装置10は、通信部11、制御部20、記憶部30を備える。通信部11は、送信部12と受信部13を有する。送信部12は、他の装置に対してパケットを送信する。例えば、送信部12は、制御対象の転送装置に対して、その転送装置が使用する処理ルールを含むパケットなどの制御パケットを送信する。受信部13は、他の装置からパケットを受信する。例えば、受信部13は、制御対象の転送装置からその転送装置の稼動状況などの情報を含むパケットを受信できる。
記憶部30は、性能プロファイルテーブル31とルールテーブル32を格納する。ルールテーブル32には、制御装置10の制御対象となる転送装置に対応付けて、各転送装置に設定するルールテーブルの情報が記録される。性能プロファイルテーブル31やルールテーブル32の例は後述する。
制御部20は、評価部21、生成部22、パケット処理部23を有する。評価部21は、ルールテーブル32から処理ルールを取得すると、処理ルールの適用条件の設定に用いられるルール種別ごとに、性能プロファイルテーブル31を用いて処理負荷を求める。性能プロファイルテーブル31は、ルールテーブル32に設定される処理ルールの適用条件の設定に用いられるルール種別ごとに、処理負荷を対応付けた情報である。生成部22は、適用条件にパケットが合致しているかを判定する処理の負荷が小さい順に処理ルールの順序を並べ替えることにより、ルールテーブル32を生成する。パケット処理部23は、受信パケットの処理や送信パケットの生成を行う。例えば、パケット処理部23は、ルールテーブル32中の情報などを、そのルールテーブル32を設定する対象となる転送装置に通知するための制御パケットを生成する。
図3は、制御装置10のハードウェア構成の例を説明する図である。制御装置10は、プロセッサ101、メモリ102、バス103、ネットワーク接続装置104を有する。プロセッサ101は、任意の処理回路であり、例えば、CPU(Central Processing Unit)とすることができる。プロセッサ101は、メモリ102をワーキングメモリとして使用して、プログラムを実行することにより、様々な処理を実行する。メモリ102には、RAM(Random Access Memory)が含まれ、さらに、ROM(Read Only Memory)等の不揮発性のメモリも含まれる。メモリ102は、プログラムやプロセッサ101での処理に使用されるデータの格納に使用される。ネットワーク接続装置104は、ネットワークを介した他の装置との通信に使用される。バス103は、プロセッサ101、メモリ102、ネットワーク接続装置104を、互いにデータの入出力が可能になるように接続する。
制御装置10において、プロセッサ101は制御部20として動作し、メモリ102は記憶部30として動作する。さらに、ネットワーク接続装置104は、通信部11として動作する。
図4は、ネットワークの例を説明する図である。ネットワーク中には、1つ以上の転送装置5(5a、5b)と制御装置10が含まれている。例えば、制御装置10はSDN(Software Defined Networking)コントローラであっても良い。この場合、転送装置5は、SDNスイッチとして動作する。各転送装置5は、その転送装置5を介して通信している端末(図示せず)や他の転送装置5からパケットを受信すると、自装置が保持しているルールテーブルを用いてパケットの処理を決定する。制御装置10は、各転送装置5へのルールテーブルの設定や変更などを行う。なお、図4は一例であり、制御装置10が制御する転送装置5の数は実装に応じて任意に変更され得る。
以下、第1の実施形態を、性能プロファイルテーブル31の取得、パケット処理時間の算出例、処理ルールの設定に分けて説明する。なお、性能プロファイルは、あるルール種別の適用条件が設定されている処理ルールの1つに対して、その処理ルールを適用するかの判定にかかる時間を表す。
(1)性能プロファイルテーブル31の取得
図5は、性能プロファイルテーブルの生成を行うために行われる最大スループットの測定処理の例を説明する図である。以下、データの転送速度のことを「スループット」と記載することがある。性能プロファイルテーブルは、適用条件の設定に用いられるルール種別が同じ複数の処理ルールを設定したルールテーブル6を転送装置5に読み込ませた上で、転送装置5でのパケットの処理速度を測定器70で測定することにより得られる。
図5のネットワークN1は、宛先IPアドレスを用いて適用条件が設定されている処理ルールを含むルールテーブル6を転送装置5に設定したネットワークを示す。測定器70は、転送装置5に接続されており、ルールテーブル6のうちのいずれかの処理ルールを適用可能なパケットを転送装置5に送信する(矢印A1)。さらに、測定器70は、転送装置5が処理するパケットを受信する(矢印A2)。このため、測定器70は、転送装置5を介したパケットの転送速度(スループット)も測定できる。
ここで、測定器70は、予めルールテーブル6を保持しており、転送装置5への送信パケットの生成の際に、生成した送信パケットがルールテーブル6中の何番目に格納された処理ルールが適用されるパケットであるかを認識している。図5に示すルールテーブル6では、個々の処理ルールが括弧書きされており、処理ルールの前に転送装置5での処理対象となる順序を表わす数字が記載されている。以下、各処理ルールが処理対象のパケットに適用可能であるかの判定が何番目に行われるかを「設定順序」と記載することがある。例えば、図5中のルールテーブル6では、設定順序=1の処理ルールは、宛先IPアドレス=aのパケットを転送することを表わすルールである。同様に、設定順序=2の処理ルールは、宛先IPアドレス=bのパケットを転送することを表わすルールであり、設定順序=200の処理ルールは、宛先IPアドレス=xのパケットを転送することを表わすルールである。
測定器70は、設定順序別に、その設定順序に設定されている処理ルールが適用される複数のパケットを所定期間にわたって送信し、転送装置5から受信するパケットを解析することにより、設定順序ごとのパケットの最大スループットを求める。例えば、測定器70が、所定期間にわたって、宛先IPアドレス=aのパケットを転送装置5に複数送信したとする。転送装置5は、ルールテーブル6を参照することにより、受信したパケットに設定順序=1の処理ルールを適用することを決定すると、設定順序=1の処理ルールに従って転送処理を行う(矢印A3)。すると、測定器70は、転送装置5から転送されたパケットを矢印A2に示す経路で受信することにより、設定順序=1の処理ルールを適用するパケットの最大スループットを求める。
同様に、測定器70は、所定期間にわたって、宛先IPアドレス=xのパケットを転送装置5に送信したとする。転送装置5は、ルールテーブル6を参照することにより、設定順序の順に各処理ルールを受信したパケットに適用できるかを判定していく。その結果、宛先IPアドレス=xのパケットに設定順序=200の処理ルールを適用することを決定すると、設定順序=200の処理ルールに従って転送処理を行う(矢印A4)。この場合も、測定器70は、転送装置5から転送されたパケットを矢印A2に示す経路で受信することにより、設定順序=200の処理ルールを適用するパケットの最大スループットを求める。その他の設定順序の処理ルールが適用されるパケットについても、同様に、測定器70は、転送装置5を介した転送処理を行った場合のスループットを求める。
図5のグラフG1中のαは、宛先IPアドレスによって適用条件が設定されている処理ルールだけを含めたルールテーブル6を保持している転送装置5への転送処理の際に得られるスループットを示す。グラフG1中のα〜δの各々では、測定器70が計算したスループットが、そのスループットの計算に用いられたパケットに適用される処理ルールの設定順序に対応付けて示されている。
グラフG1中のβは、送信元IPアドレスによって適用条件が設定されている処理ルールだけを含めたルールテーブル6を保持している転送装置5への転送処理の際に得られるスループットを示す。スループットの測定に際して行われる処理は、ネットワークN1を参照しながら説明した処理と同様であるが、βの計算に用いられる転送装置5が保持するルールテーブル6には、送信元IPアドレスを適用条件とする複数の処理ルールが記録されている。さらに、αやβのグラフの生成と同様の処理により、宛先ポート番号によって適用条件が設定された場合と、送信元ポート番号によって適用条件が設定された場合についても、スループットと処理ルールの設定順序の関係が求められる。γは、宛先ポート番号によって適用条件が設定された場合に得られるグラフであり、δは送信元ポート番号によって適用条件が設定された場合に得られるグラフである。
図6は、性能プロファイルの計算方法の例を説明する図である。モデルM1は、パケットの転送処理モデルの例である。転送処理が行われる過程を、転送装置5がパケットを受信する過程(矢印A11)、処理対象のパケットに対して適用する処理ルールを検索する過程(矢印A12)、転送装置5がパケットを転送先に向けて送信する過程(矢印A13)の3つに分けたとする。転送装置5が1つのパケットを受信する過程にかかる時間と転送装置5が1つのパケットを転送先に向けて送信する過程にかかる時間の合計は、パケットの種類やパケットに適用される処理ルールの種類によらずほぼ一定と考えられる。そこで、1つのパケットの受信処理と送信処理にかかる時間の合計を定数aとする。一方、処理対象のパケットに対して適用する処理ルールを検索する過程は、矢印A12に示すように、処理対象のパケットに適用可能な処理ルールが検出されるまで繰り返される。処理対象のパケットに適用可能な処理ルールが検出されるまでに、処理ルールを適用するかの判定処理が行われる回数をn回とする。また、1つの処理ルールに対しての判定処理を行うためにかかる時間をbとする。ここで、bは、処理ルールに設定されている適用条件のルール種別によって異なる。以下の説明では、適用条件が宛先ポート番号で設定されている場合に1つの処理ルールを適用するかを判定するためにかかる時間をbdpとする。また、適用条件が送信元ポート番号で設定されている場合に1つの処理ルールを適用するかを判定するためにかかる時間をbspとする。適用条件が宛先IPアドレスで設定されている場合に1つの処理ルールを適用するかを判定するためにかかる時間をbdipとする。同様に、適用条件が送信元IPアドレスで設定されている場合に1つの処理ルールを適用するかを判定するためにかかる時間をbsipとする。すなわち、モデルM1でbと表記している値は、適用条件の指定に使用される情報の種類に応じて、bdip、bsip、bdp、bspのいずれかとなる。
モデルM2では、同じルール種別の処理ルールに対してn回の判定を行うことによって適用する処理ルールが決定される場合について、パケットの処理時間Pを数式で表している。図5で説明したように、特定のルール種別の処理ルールを格納したルールテーブルが使用される場合、パケットの処理時間は、送受信にかかる時間aと、n回の判定処理にかかる時間であるn×bの和であるので、モデルM2に示すように表される。
モデルM3は、パケットの処理時間がモデルM2に表わされる場合に得られる最大スループットTnを数式で表している。最大スループットは、モデルM2で表される時間をかけて処理するパケットを転送装置5が1秒あたりに処理できる数で表される。このため、最大スループットは、Tn=1/(a+b×n)となる。ただし、モデルM2、M3のいずれにおいても、bは、適用条件の指定に使用される情報の種類に応じて、bdip、bsip、bdp、bspのいずれかである。
測定器70は、図5のグラフG1に示す計測結果を、図6のモデルM3に示す式を用いてフィッティングすることにより、a、bdip、bsip、bdp、bspの値を求める。すなわち、測定器70は、αのグラフをTn=1/(a+bdip×n)、βのグラフをTn=1/(a+bsip×n)、γのグラフをTn=1/(a+bdp×n)、δのグラフをTn=1/(a+bsp×n)でフィッティングする。フィッティングの際の計算方法は、例えば、最小二乗法などの任意の既知の計算方法を用いることができる。
図7は、図5のグラフG1に対して測定器70がフィッティング処理を行うことによって得られた性能プロファイルテーブルの値の例である。図7の例では、bdip=3.69×10−9、bsip=3.49×10−9、bdp=1.44×10−8、bsp=1.32×10−8である。測定器70は、得られた情報を、図7に示すように、性能プロファイルテーブルとして格納する。測定器70は、得られた性能プロファイルテーブルを制御装置10に出力する。すると、制御装置10は、測定器70から取得した情報を性能プロファイルテーブル31として記憶し、以後の処理に使用する。
図8は、性能プロファイルの求め方の例を説明するフローチャートである。図8の例では、定数Nと変数nが使用される。定数Nは、処理ルールに適用条件として含まれるパラメータの組み合わせの種類(ルール種別)の数である。変数nは、処理対象としたルール種別を計数するために使用される。
測定器70は、制御装置10が設定しようとするルールテーブル32を読み込み、ルールテーブル32中の処理ルールに適用条件として含まれるパラメータの組み合わせの種類の数(N)を決定する(ステップS1)。例えば、図5のα〜δのグラフの生成に用いられた全ての処理ルールがルールテーブル32に含まれるとする。すると、ルールテーブル32には、宛先IPアドレスで適用条件が決定される場合、送信元IPアドレスで適用条件が決定される場合、宛先ポート番号で適用条件が決定される場合、送信元ポート番号で適用条件が決定される場合の4つのケースが含まれる。このため、ルール種別の数Nは4である。次に、測定器70は、変数nを1に設定する(ステップS2)。測定器70は、n番目のルール種別について、マッチ処理の対象とするルール数に応じた最大スループットの変化を測定する(ステップS3)。ステップS3の処理によって得られる測定結果の例が図5のグラフG1である。測定器70は、変数nが定数N未満であるかを判定する(ステップS4)。変数nが定数N未満である場合、変数nを1つインクリメントしてステップS3に戻る(ステップS4でYes、ステップS5)。
一方、変数nが定数N以上である場合、測定器70は、フィッティング処理により、性能プロファイルを求める(ステップS4でNo、ステップS6)。すなわち、測定器70は、各ルール種別について、1つの処理ルールの適用判定にかかる時間(性能プロファイル)bと、パケットの送受信にかかる時間aを計算する。なお、ステップS6で求められる性能プロファイルは、測定結果が図5のグラフG1である場合、bdip、bsip、bdp、bspである。
(2)パケット処理時間の算出例
性能プロファイルテーブル31とルールテーブル32中の処理ルールの設定順序を用いると、パケットの処理にかかる時間を算出することができる。
図9は、パケット処理時間の算出例を説明する図である。図9では、図5〜図6の例とは異なり、複数のルール種別の適用条件が処理ルールとして含まれるルールテーブルが適用される場合の1つのパケットの処理時間の計算例を示している。この場合、1つのパケットの処理にかかる時間は、図9のモデルM11に示すように表される。すなわち、n個の処理ルールについての判定の末、適用可能な処理ルールが検出される場合に1つのパケットの処理にかかる時間Pnは、パケットの送受信にかかる時間aと、判定処理の対象となった全ての処理ルールの適用条件に対応付けられた性能プロファイル値の総和である。モデルM11において、bは、i番目の処理ルールに対応付けられた性能プロファイル値である。なお、性能プロファイルは、図9の凡例に記載しているように、そのルールの適用を行うかを判定するために処理時間である。
図9は、モデルM11を適用する場合の処理時間の具体的な算出例も示している。転送装置5が使用するルールテーブル6に、6つの処理ルールが含まれているとする。また、宛先ポート番号(DP)で適用条件を指定したルールが1番目に設定され、宛先IPアドレス(DIP)で適用条件を指定したルールが2番目、4番目、5番目に設定されているとする。さらに、送信元ポート番号(SP)で適用条件を指定したルールが3番目に設定され、送信元IPアドレス(SIP)で適用条件を指定したルールが6番目に設定されているとする。さらに、宛先ポート番号(DP)で指定された適用条件の判定処理にかかる時間はbdp、送信元ポート番号(SP)で指定された適用条件の判定処理にかかる時間はbspであるとする。同様に、宛先IPアドレス(DIP)で指定された適用条件の判定処理にかかる時間はbdip、送信元IPアドレス(SIP)で指定された適用条件の判定処理にかかる時間はbsipであるとする。
この場合、1つ目の処理ルールが適用されるパケットの処理時間Pは、送受信にかかる時間aと、1つ目の処理ルールを適用するかの判定処理にかかる時間bdpの和である。2番目の処理ルールが適用されるパケットの処理時間Pは、送受信にかかる時間a、1つ目の処理ルールを適用するかの判定処理にかかる時間bdp、および、2つ目の処理ルールを適用するかの判定処理にかかる時間bdipの和である。同様に、3番目の処理ルールが適用されるパケットの処理時間Pは、P=a+bdp+bdip+bspと表せる。また、4番目の処理ルールが適用されるパケットの処理時間Pは、P=a+bdp+bdip+bsp+bdip、5番目の処理ルールが適用されるパケットの処理時間Pは、P=a+bdp+bdip+bsp+bdip+bdipとなる。さらに、6番目の処理ルールが適用されるパケットの処理時間Pは、P=a+bdp+bdip+bsp+bdip+bdip+bsipとなる。
(3)処理ルールの設定
図9を参照しながら説明したように、各パケットの処理時間は、適用される処理ルールが特定される前に行われた処理ルールの適用可否の判定処理にかかる時間と、パケットの送受信処理にかかる時間の総和となる。このため、ルールテーブル32の先頭に近い領域には、パケットの適用の可否にかかる判定処理の時間の短い処理ルールを設定する方が、転送装置5での処理負荷が低くなる可能性がある。以下、制御装置10が性能プロファイルテーブル31を用いて、ルールテーブル32中の処理ルールの設定順序を決定する方法について説明する。
図10は、ルールテーブルの設定方法の例を説明するフローチャートである。図10の例では、定数Nと変数mが使用される。定数Nは、処理ルールに適用条件として含まれるパラメータの組み合わせ(ルール種別)の種類の数である。変数mは、処理対象としたルール種別を計数するために使用される。
測定器70によって、制御装置10に性能プロファイルテーブル31が設定されると、評価部21は、ルールテーブル32に設定する処理ルールを特定する(ステップS11)。評価部21は、変数mを1に設定する(ステップS12)。その後、評価部21は、個々の処理ルールについての処理負荷を、処理ルールの適用条件に含まれるパラメータの組み合わせの種類(ルール種別)ごとに決定する。生成部22は、m番目に小さい処理負荷が得られたルール種別の処理ルールを、ルールテーブル32に設定する(ステップS13)。このとき、m番目に処理負荷の小さい処理ルールは複数であってもよい。m番目に処理負荷の小さい処理ルールが複数ある場合、m番目に処理負荷の小さい全ての処理ルールがステップS13で設定される。その後、生成部22は、変数mが定数N未満であるかを判定する(ステップS14)。変数mが定数N未満である場合、生成部22は変数mを1つインクリメントしてステップS13に戻る(ステップS14でYes、ステップS15)。一方、変数mが定数N以上である場合、全てのルールに対しての設定が終了しているので、生成部22は処理を終了する(ステップS14でNo)。
図11は、ルールテーブルの例を説明する図である。図11を参照しながら、ある転送装置5に設定する処理ルールとして、R1に示す5つのルールが指定されている場合について、評価部21と生成部22の処理の例を説明する。
評価部21は、R1に含まれている各ルールからルール種別を取得するとともに、ルール種別ごとに処理負荷を評価する。ここで、ルールの設定処理をわかりやすくするために、R1に列挙された順序を、その処理ルールのルール番号として用いる。例えば、ルール番号=1のルールは、宛先ポート番号aのパケットを廃棄することを指定する処理ルールであり、ルール番号=3のルールは、宛先IPアドレスcのパケットを転送することを指定する処理ルールである。
図11の例では、ルール番号=1のルールとルール番号=5のルールは宛先ポート番号を用いて適用条件が設定されているので、評価部21は、これらのルールの1つあたりの処理負荷はbdpと見積もる。ルール番号=2とルール番号=4の処理ルールは、送信元IPアドレスを用いて適用条件が設定されているので、評価部21は、このルールの1つあたりの処理負荷はbsipと見積もる。同様に、ルール番号=3のルールは宛先アドレスを用いて適用条件が設定されているので、このルールの1つあたりの処理負荷はbdipと見積もられる。
生成部22は、bdp、bsip、bdipの大きさの順序を、性能プロファイルテーブル31(図7)を用いて特定する。生成部22は、bdp>bdip>bsipの順に処理負荷が小さくなると判定する。そこで、生成部22は、転送装置5に設定する処理ルールとして、ルールテーブル32の先頭に、送信元IPアドレスを用いて適用条件が設定されている処理ルール(ルール番号=2、4)を設定する。ルール番号=3の処理ルールは宛先IPアドレスを用いて適用条件が設定されているので、生成部22は、ルール番号=3のルールを、ルール番号=4の処理ルールの次にルールテーブル32に設定する。さらに、ルール番号=1とルール番号=5の処理ルールは宛先ポート番号を用いて適用条件が設定されているので、生成部22は、ルール番号=5のルールを、ルール番号=3の処理ルールの次にルールテーブル32に設定する。その結果、図11に示すルールテーブル32が得られる。
制御装置10中のパケット処理部23は、ルールテーブル32が生成されると、ルールテーブル32の情報を転送装置5に設定するための制御パケットを生成する。パケット処理部23は、生成した制御パケットを、送信部12を介して、転送装置5に送信する。なお、制御パケットとして、処理ルールを転送装置5に通知するために使用可能な任意のパケットが使用され得る。例えば、制御パケットは、OpenFlowのFlowModメッセージなどであっても良い。転送装置5は、制御パケットを受信すると、通知された処理ルールをルールテーブル6として格納するとともに、以後に受信するデータパケットをルールテーブル6に従って処理する。
図12は、ルールテーブルの設定と最大スループットの関係を説明する図である。図12の例では、ある転送装置5に設定されるルールテーブルには、宛先IPアドレスで適用条件が設定されている100個の処理ルールと、宛先ポート番号で適用条件が設定されている100個の処理ルールが含まれるとする。
ケースC11は、第1の実施形態にかかる方法で制御装置10においてルールテーブル32が生成され、ルールテーブル32に従って、転送装置5のルールテーブル6が設定される場合の例である。ケースC11で生成されたルールテーブル32や転送装置5で設定されるルールテーブル6は、テーブルT11に示すとおりであるとする。ここで、宛先IPアドレスを用いた適用条件の判定処理は、宛先ポート番号を用いた適用条件の判定処理よりもかかる時間が短い。このため、テーブルT11では、ルールテーブルの先頭から100個の処理ルールは、宛先IPアドレスによって適用条件が設定されている処理ルールである。さらに、テーブルT11の101番目以降の処理ルールは、宛先ポート番号によって適用条件が設定されている処理ルールである。
一方、ケースC12は、第1の実施形態とは異なる方法で生成されたルールテーブルが転送装置5で用いられる場合である。ケースC12で用いられるルールテーブルは、テーブルT12に示すとおりであるとする。テーブルT12では、ルールテーブルの先頭から100個の処理ルールは、宛先ポート番号によって適用条件が設定され、101番目以降の処理ルールは、宛先IPアドレスによって適用条件が設定されている。
グラフG11は、ケースC11とケースC12の各々について、転送装置5で用いられるルールテーブルでの処理ルールの設定順序と、処理ルールが適用されるパケットの処理によって得られる最大スループットの関係を示している。ケースC12では、テーブルT12が用いられるため、宛先ポート番号を用いて適用の可否が判定される処理ルールから先に適用の可否が判定される。このため、グラフG11中のC12のグラフに示すように、ルールテーブルでの設定順序が20〜100などの比較的早い処理ルールであっても、最大スループットはケースC11の場合に比べて低い。
ケースC11では、第1の実施形態に従って、テーブルT11に示すように宛先IPアドレスを用いて適用の可否が判定される処理ルールから先に適用の可否が判定される。このため、グラフG11中のC11のグラフに示すように、ルールテーブルでの設定順序が20〜100などの比較的早い処理ルールでの、最大スループットはケースC12よりも早くなっている。さらに、設定順序が100番までの処理ルールの判定可否にかかる時間がケースC12よりも短いため、設定順序が101番以降の宛先ポート番号を用いて適用の可否が判定される処理ルールが適用されるパケットの処理にかかる時間も短くなっている。このため、設定順序が101番以降で200番未満の処理ルールが適用されるパケットに対する最大スループットも、ケースC11の方がケースC12よりも高くなっている。
このように、第1の実施形態によると、ルールテーブル中の処理ルールを処理負荷の低い順に並べ替えられる。このため、適用の可否の判定対象となる処理ルールの数が同じであって、処理ルールが処理負荷の低い順に設定されていないテーブルが用いられるときに比べて、第1の実施形態を用いて設定されたルールテーブルが用いられるとスループットが高くなる。また、スループットが高くなることから、第1の実施形態を採用することにより、転送装置5での処理ルールの検索に起因する処理負荷を小さくすることができるともいえる。
<第2の実施形態>
第2の実施形態では、各処理ルールの処理負荷と各処理ルールを適用するパケットのトラフィックを用いて、ルールテーブルを最適化する場合の処理を説明する。第2の実施形態では、制御装置40が制御対象の転送装置5に設定するルールテーブルを設定する場合を例として説明する。制御装置40と転送装置5を含むネットワークは、図4と同様である。
図13は、第2の実施形態にかかる制御装置40の構成の例を説明する図である。制御装置40は、通信部11、制御部50、記憶部60を備える。通信部11は、送信部12と受信部13を有する。制御部50は、評価部21、生成部22、パケット処理部23、取得部51、候補特定部52、計算部53を有する。記憶部60は、性能プロファイルテーブル31、ルールテーブル32、トラフィック情報61を格納する。制御装置40においても、通信部11、評価部21、性能プロファイルテーブル31、ルールテーブル32は、第1の実施形態と同様である。また、制御装置40のハードウェア構成も図3に示すとおりである。通信部11はネットワーク接続装置104によって実現され、制御部50はプロセッサ101によって実現される。さらに、記憶部60はメモリ102によって実現される。
取得部51は、通信部11を介して、制御装置40の制御対象の転送装置5から、転送装置5が所定期間中に処理したパケットの量を適用条件ごとに取得する。転送装置5が所定期間中に処理したパケットの量を取得するために、取得部51が用いるパケットとして、制御装置40が制御対象の転送装置5でのトラフィックの取得の際に使用可能な任意のパケットが適用され得る。取得部51は、取得した情報をトラフィック情報61として記憶部60に格納する。候補特定部52は、ルールテーブル32に含まれている複数の処理ルールの順序を、現在のルールテーブル32と異なる順序に設定する場合に使用可能な順序の候補として求める。計算部は、候補特定部52が求めた候補の各々について、その候補が表わす処理ルールの順序に設定されたルールテーブルが転送装置5に設定され、トラフィックがトラフィック情報61の通りである場合に、転送装置5で発生する処理負荷の指標となる評価値を計算する。ここで、評価値は、ルール種別ごとの処理時間を用いてパケットの処理を行う転送装置5にかかる負荷を評価するための指標となる値である。
生成部22は、計算部53で計算された評価値に応じて、ルールテーブル32を更新する。ここで、ルールテーブル32は、制御装置40の制御対象となっている1つ以上の転送装置5が保持するルールテーブル6を、転送装置5の識別情報に対応付けて記録している。パケット処理部23は、ルールテーブル32が更新されると、転送装置5が保持するルールテーブル6の情報とルールテーブル32の情報が整合するように、転送装置5が保持するルールテーブルを変更させるための制御パケットを生成する。パケット処理部23は、生成した制御パケットを、通信部11を介して、制御対象の転送装置5に送信する。すると、転送装置5では、制御パケットに応じてルールテーブル6を更新する。
以下、評価値の一例の導出方法と評価値を表す式を説明する。転送装置5にかかる処理負荷(WL)は、(1)式で表される。
(1)式において、Pnは、ルールテーブル6に登録されているn番目のルール(n=1〜N)に対する転送装置5の最大スループットを表す。最大スループットは、図5を参照しながら説明した処理と同様の処理により、測定器70で測定され得る。ここで、(1)式に、図9を参照しながら説明したモデルM11に示す(2)式を代入すると、(3)式が得られる。
(3)式を変形すると(4)式が得られる。
ここで、(2)〜(4)式のいずれにおいても、aは転送装置5での1パケットの送受信処理にかかる時間である。bは、ルールテーブル6の先頭からi番目に登録されている処理ルールの適用条件に指定されているパラメータの組み合わせ(ルール種別)に応じて決定された性能プロファイルである。例えば、ルールテーブル6に含まれている処理ルールのルール種別が、宛先IPアドレスのみのルール、送信元IPアドレスのみのルール、宛先ポート番号のみのルール、送信元ポート番号のみのルールの4種類であるとする。この場合、bは、i番目に登録されている処理ルールのルール種別により決定されるので、bdip、bsip、bdp、bspのいずれかである。
(4)式において、右辺の第1項はルールの順序によらず一定の値となる。そこで、(4)式の右辺の第2項の値が小さいほど、転送装置5にかかる処理負荷が小さくなるといえる。そこで、計算部53は、(5)式に示す値を評価値として用いる。
なお、(5)式においても、bは、i番目に登録されている処理ルールのルール種別により決定される性能プロファイルである。bは、第1の実施形態と同様の処理により、性能プロファイルテーブル31として制御装置40に設定されているものとする。
図14は、ルールテーブル32とトラフィック情報61の例を説明する図である。以下、図14を参照しながら、第2の実施形態で行われる処理の例を説明する。ルールテーブル32−1は、制御装置40が保持するルールテーブル32の情報のうち、転送装置5aに設定されている情報を抜き出したものである。ルールテーブル32−1には、No.1〜4の処理ルールと各処理ルールが転送装置5aに設定されていることを表す情報が記録されている。
トラフィック情報61は、取得部51が転送装置5aで処理されているトラフィックの情報を要求する制御パケットを通信部11経由で転送装置5aに送信したことにより、取得部51が取得した情報の例である。ルールIDは、転送装置5aが保持しているルールテーブル6で設定されている各処理ルールの設定順序であり、ルール種別は、各処理ルールの適用条件の指定に使用されているパラメータの種類である。図14の例では、転送装置5aが保持するルールテーブル6は、ルールテーブル32−1中の通りであるので、ルールテーブル32−1の1番目の処理ルールはルールID=1の処理ルールである。このため、ルールID=1の処理ルールのルール種別は宛先IPアドレスである。ルールID=2とルールID=4の処理ルールのルール種別は送信元IPアドレスである。同様に、ルールID=3の処理ルールのルール種別は宛先ポート番号である。また、ルールID=1〜4の各処理ルールを適用して処理されたトラフィック量は、トラフィック情報61のトラフィック量の欄に示す通りであるとする。
候補特定部52は、ルールテーブル32−1に含まれている処理ルールの設定順序の候補を生成する。例えば、候補特定部52は、ルールID=1、ルールID=2、ルールID=4、ルールID=3の順序をルールテーブルに設定する候補(候補A)として生成する。さらに、候補特定部52は、ルールID=3、ルールID=2、ルールID=4、ルールID=1の順序の候補(候補B)など、他にもルールテーブルに設定可能な候補を生成できる。
計算部53は、候補特定部52で生成された候補の各々について、性能プロファイルテーブル31(図7)を用いて、式(5)の値(評価値)を計算する。例えば、ルールテーブル32_1に示す順序について得られる評価値Yは、ルールID=nが適用されるパケットのトラフィックがtnであるとすると、Y=t1×bdip+t2×(bdip+bsip)+t3×(bdip+bsip+bdp)+t4×(bdip+bsip+bdp+bsip)で表される。従って、Y=684×3.69×10−9+632×(3.69×10−9+3.49×10−9)+246×(3.69×10−9+3.49×10−9+1.44×10−8)+230×(3.69×10−9+3.49×10−9+1.44×10−8+3.49×10−9)=1.81×10−5である。
一方、候補Aに対して得られる評価値Y1は、Y1=t1×bdip+t2×(bdip+bsip)+t4×(bdip+bsip+bsip)+t3×(bdip+bsip+bsip+bdp)=1.57×10−5である。同様に、候補Bに対して得られる評価値Y2は、Y2=t3×bdp+t2×(bdp+bsip)+t4(bdp+bsip+bsip)+t1(bdp+bsip+bsip+bdip)=3.69×10−5である。候補A、候補B以外に候補特定部52が生成した他の候補に対しても、計算部53は、同様の計算を行う。
生成部22は、計算部53の処理により得られた評価値のうち、評価値が最小になった候補に沿って、ルールテーブル32−1に含まれている処理ルールを並べ替えることにより、新たなルールテーブル32を生成する。図14の例では、ルールID=2、ルールID=4、ルールID=1、ルールID=3の順序とする候補に対して得られた評価値が最小であるとする。すると、生成部22は、最小の評価値が得られた候補を採用することにより、ルールテーブル32−1をルールテーブル32−2に示すように更新する。
ここで、評価値は、性能プロファイルの値が小さいルール種別の処理ルールがルールテーブルの先頭に近い位置に設定されるほど、小さくなる。さらに、同じルール種別の処理ルールが複数ある場合には、トラフィック量の多い処理ルールがルールテーブルの先頭に近いほど、評価値が小さくなる。従って、第2の実施形態によると、生成部22は、複数の処理ルールをルールテーブルの先頭から、性能プロファイルの小さい順であって、性能プロファイルが同じルール間ではトラフィックの多い順に設定する処理をしていることになる。
図15は、第2の実施形態にかかるルールテーブルの設定方法の例を説明するフローチャートである。図15に示すフローチャートでは、定数X、変数Y、変数x、変数mを使用する。定数Xは、処理対象のルールテーブルに含まれている処理ルールを並べ替えることによって候補特定部52が生成した候補の総数である。変数Yは評価値の暫定的な最小値である。変数xは評価値の計算と比較処理を行った候補の数の計数に用いられる。変数mは、暫定的な最小値が得られた候補の特定に使用される。
生成部22は、変数Yを無限大(∞)、変数xを1、変数mを0に設定する(ステップS21)。計算部53は、x番目の候補についての評価値yxを求める(ステップS22)。生成部22は、変数Yが評価値yxよりも大きいかを判定する(ステップS23)。変数Yが評価値yxより大きい場合、生成部22は、変数Yに評価値yxを代入し、変数xを変数mに代入して保存する(ステップS23でYes、ステップS24)。その後、生成部22は、変数xが定数X未満であるかを判定する(ステップS25)。変数xが定数X未満である場合、生成部22は変数xを1つインクリメントしてステップS22に戻る(ステップS25でYes、ステップS26)。
一方、変数xが定数X以上である場合、全ての候補について得られた評価値が変数Yと比較されているので、最小の評価値が変数Yとして保持され、最小の評価値が得られた候補の処理順序が変数mに保持されている(ステップS25でNo)。そこで、生成部22は、m番目の候補を採用して、ルールテーブル32を更新する(ステップS27)。
さらに、ステップS23において、変数Yが評価値yx以下の場合、次の候補の評価値と変数Yの比較処理のために、ステップS25以降の処理が行われる(ステップS23でNo)。
なお、図15に示す処理によりルールテーブル32が更新された後は、制御装置40から転送装置5に対して、更新後のルールテーブル32に合わせて転送装置5が保持しているルールテーブル6を更新することが要求される。このときに行われる処理は、第1の実施形態で制御装置10がルールテーブル32の更新により転送装置5がルールテーブル6を更新させるときに行う処理と同様である。
図16は、ルールテーブルの設定と処理負荷のシミュレーション結果を説明する図である。ケースC21とケースC22のいずれも、ルールID=1〜200の処理ルールを含み、ルールID=1〜100は宛先ポート番号によって適用条件を設定しているとする。また、ルールID=101〜200は宛先IPアドレスによって適用条件を設定しているとする。さらに、いずれのケースでも、ルールIDが小さい処理ルールほどトラフィック量が多いものとする。
ケースC21は、トラフィック量の多い順に処理ルールを並べたルールテーブルが採用されているシステムであるとする。ケースC21でのトラフィック量と、各ルールIDが採用されるパケットについて得られる最大スループットを図16の左端に示す。
ケースC22は、第2の実施形態に従って、生成部22が生成したルールテーブルが採用されているシステムである。ケースC22でのトラフィック量と最大スループットを図16の右端に示す。ケースC22では、複数の処理ルールは、ルールテーブルの先頭から、性能プロファイルの小さい順であって、性能プロファイルが同じルール間ではトラフィックの多い順に設定されている。ケースC22が採用された場合に各ルールIDが採用されるパケットについて得られる最大スループットは、いずれの処理ルールが採用された場合においても、ケースC21よりも大きい。
図16の中央には、ケースC21のシステムが採用された場合の転送装置5に搭載されたCPU使用率と、ケースC22のシステムが採用された場合の転送装置5に搭載されたCPU使用率を示している。ケースC21のシステムが採用された場合、転送装置5に搭載されたCPU使用率が100%に達した上、11%のパケットロスが発生した。一方、ケースC22でのCPU使用率は22%である。
従って、第2の実施形態に示すように、処理ルールごとのトラフィック量だけでなく、各処理ルールの適用の可否を判定する際にかかる処理負荷を合わせて考慮することによって、転送装置5の負荷が軽いルールテーブル6を生成できる。このため、第2の実施形態を最小することにより、転送装置5での適用対象の処理ルールの検索に起因する処理負荷は小さくなる。
<第3の実施形態>
ルールテーブルによっては、複数の処理ルールの間に競合関係が発生する場合がある。第3の実施形態では、複数の処理ルールの間に競合関係がある場合のルールテーブルの設定について説明する。以下の説明では、ルール順序を入れ替えた時に、初期のルール順序で実行される処理とは異なる処理が実行されることになるルール同士を、競合関係にあるという。
図17は、競合判定が行われる場合の例を説明する図である。例えば、ルールテーブル32−3を制御装置40が保持しているとする。この場合、ルールID=1の処理ルールには、宛先ポート番号が60に指定されているパケットを廃棄することが設定されている。ルールID=2の処理ルールは、宛先IPアドレス=192.168.10.0/24のパケットを廃棄することである。ルールID=3の処理ルールには、宛先ポート番号が80に指定されているパケットを転送することが設定されている。
ここで、ルールID=1が適用されるパケットは、ルールID=3の適用条件(宛先ポート番号=80)が当てはまらないので、ルールID=1の処理ルールとルールID=3の処理ルールは競合関係にない。ルールID=1が適用されるパケット(宛先ポート番号=60)であっても、ルールID=2の適用条件(宛先IPアドレス=192.168.10.0/24)を満たすことはある。しかし、ルールID=1とルールID=2のいずれでも処理内容がパケットの廃棄であるため、ルールID=1とルールID=2のいずれを先に設定してもパケットに対する処理内容は変わらない。このため、ルールID=1とルールID=2も競合関係にはない。
一方、ルールID=2が適用されるパケット(宛先IPアドレス=192.168.10.0/24)が、ルールID=3の適用条件(宛先ポート番号=80)を満たすこともある。この場合、ルールの設定順序によって処理の内容が変更され得るので、ルールID=2の処理ルールとルールID=3の処理ルールは競合関係にある。例えば、ルールテーブル32−3のように、ルールID=2の処理ルールがルールID=3の処理ルールよりも先に設定されている場合、宛先IPアドレス=192.168.10.0/24であり、かつ、宛先ポート番号=80のパケットは、ルールID=2の処理ルールに従って廃棄される。逆に、ルールID=3の処理ルールがルールID=2の処理ルールよりも先に設定されている場合、宛先IPアドレス=192.168.10.0/24であり、かつ、宛先ポート番号=80のパケットは、ルールID=3の処理ルールに従って転送される。
第3の実施形態では、候補特定部52は、ルールテーブル32中で競合関係にある処理ルールを特定する。なお、処理ルール同士の競合関係の判定処理の方法は、既知の任意の方法によって行われるものとする。
候補特定部52は、ルールテーブル32に含まれている処理ルールの順序を並べ替えた候補を生成すると、個々の処理ルールの順序の候補のうち、競合関係にある複数の処理ルールの順序が変更前のルールテーブル32での順序と一致しているかを判定する。図17中のテーブルT21は、ルールテーブル32−3に含まれている処理ルールの順序の並べ替えの候補と競合関係にある処理ルールの順序の比較結果(競合判定結果)を示す。テーブルT21の1つ目の候補では、処理ルールID=1のルール、処理ルールID=3のルール、処理ルールID=2のルールの順になっている。これに対して、ルールテーブル32−3では、ルールID=2の処理ルールがルールID=3の処理ルールよりも先に設定されている。このため、1つ目の候補の競合判定結果は、変更前のルールテーブル32−3と競合関係にある処理ルールの順序が不一致(NG)となる。
一方、2つ目の候補では、処理ルールID=2のルール、処理ルールID=1のルール、処理ルールID=3のルールの順になっている。従って、2つ目の候補とルールテーブル32−3のいずれでも、ルールID=2の処理ルールがルールID=3の処理ルールよりも先に設定されている。このため、2つ目の候補の競合判定結果は、変更前のルールテーブル32−3と競合関係にある処理ルールの順序が一致(OK)となる。同様の判定処理が他の候補に対しても行われる。
候補特定部52は、生成した候補のうち、競合判定結果がOKと判定した候補のみを、使用可能な候補として選択する。例えば、テーブルT21の場合、2番目の候補と3番目の候補は使用可能な候補として選択されるが、1番目、4番目、5番目の候補は使用可能ではないと判定される。このように、候補特定部52は、処理ルールの順序の候補を生成する際に、競合関係にある複数の処理ルールの順序が変更前のルールテーブル32での順序と一致するように、処理ルールの順序の候補を限定する。
計算部53は、候補特定部52によって使用可能な候補として選択された候補についてのみ、評価値を計算する。評価値が計算された後の処理は、第3の実施形態であっても第2の実施形態と同様である。
図18は、第3の実施形態にかかる処理ルールの設定方法の例を説明するフローチャートである。図18に示すフローチャートでは、定数X、変数Y、変数x、変数mを使用する。定数Xは、処理対象のルールテーブルに含まれている処理ルールを並べ替えることによって候補特定部52が生成した候補の総数である。変数Yは評価値の暫定的な最小値である。変数xは評価値の計算と比較処理を行った候補の数の計数に用いられる。変数mは、暫定的な最小値が得られた候補の特定に使用される。
生成部22は、変数Yを無限大(∞)、変数xを1、変数mを0に設定する(ステップS31)。候補特定部52は、ルールテーブル32中の処理ルール同士の競合関係を調査する(ステップS32)。候補特定部52は、x番目の候補では、競合する処理ルールの間の順序が、現在のルールテーブル32と一致しているかを判定する(ステップS33)。x番目の候補において、競合する処理ルールの間の順序が現在のルールテーブル32と一致しているとする(ステップS33でYes)。この場合、計算部53は、x番目の候補についての評価値yxを求める(ステップS34)。生成部22は、変数Yが評価値yxよりも大きいかを判定する(ステップS35)。変数Yが評価値yxより大きい場合、生成部22は、変数Yに評価値yxを代入し、変数xを変数mに代入して保存する(ステップS35でYes、ステップS36)。その後、生成部22は、変数xが定数X未満であるかを判定する(ステップS37)。変数xが定数X未満である場合、生成部22は変数xを1つインクリメントしてステップS33に戻る(ステップS37でYes、ステップS38)。
一方、変数xが定数X以上である場合、全ての候補について得られた評価値が変数Yと比較されているので、最小の評価値が変数Yとして保持され、最小の評価値が得られた候補の処理順序が変数mに保持されている(ステップS37でNo)。そこで、生成部22は、m番目の候補を採用して、ルールテーブル32を更新する(ステップS39)。
ステップS35において、変数Yが評価値yx以下の場合、次の候補の評価値と変数Yの比較処理のために、ステップS37以降の処理が行われる(ステップS35でNo)。さらに、x番目の候補において、競合する処理ルールの間の順序が現在のルールテーブル32と一致していないと判定された場合も、次の候補の評価値と変数Yの比較処理のために、ステップS37以降の処理が行われる(ステップS33でNo)。
このように、第3の実施形態によると、競合関係にある処理ルールを含むルールテーブルであっても、処理内容を変更することなく、転送装置5の処理負荷を軽減するように更新することができる。
<変形例>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
以上の説明では、制御装置10や制御装置40がルールテーブル32を設定し、制御対象の転送装置5に対して、設定後のルールテーブル32中でその転送装置5が使用する情報をルールテーブル6として設定させるケースを例として説明した。しかし、ルールテーブル6に設定する処理ルールを取得した転送装置が、制御装置10や制御装置40と同様の手法を用いて、自装置のルールテーブル6を更新してもよい。
図19は、転送装置80の構成の例を示す図である。転送装置80は、通信部81、制御部82、記憶部90を備える。制御部82は、評価部83、生成部84、パケット処理部85を備え、オプションとして、候補特定部87と計算部88を有する。転送装置80のハードウェア構成も図3に示すとおりである。通信部81はネットワーク接続装置104によって実現され、制御部82はプロセッサ101によって実現される。さらに、記憶部90はメモリ102によって実現される。
記憶部90は、性能プロファイルテーブル91、トラフィック情報92、ルールテーブル6を保持する。性能プロファイルテーブル91は、第1の実施形態の性能プロファイルテーブル31と同様の処理で求められた情報である。トラフィック情報92は、転送装置80が処理するパケットについての、処理ルールごとのトラフィックに関する情報であり、制御装置40が保持するトラフィック情報61と同様である。
通信部81は、制御装置を含む他の装置との間でパケットを送受信する。パケット処理部85は、パケットを処理する。パケット処理部85は、制御装置から受信した制御パケット中の処理ルールをルールテーブル6に記録する。パケット処理部85は、測定器70から取得した情報を、適宜、性能プロファイルテーブル91として記録する。さらに、制御装置や測定器70以外の装置のネットワーク中の装置から受信したパケットを、パケット処理部85は、ルールテーブル6に従って処理する。
第1の実施形態と同様に、トラフィック量を用いたルールテーブル6の更新が行われない場合、転送装置80は、候補特定部87と計算部88を備えなくてもよい。評価部83は、性能プロファイルテーブル91を用いて、ルールテーブル6に含まれている処理ルールの各々についての処理負荷を評価する。生成部84は、評価部83の評価結果に基づいて、ルールテーブル6中の処理ルールの順序を入れ替える。このときに行われる処理は、図10などを用いて説明した処理と同様である。
一方、トラフィック量を考慮してルールテーブル6の更新が行われる場合、転送装置80は、候補特定部87と計算部88を備える。候補特定部87は、ルールテーブル6中の処理ルールの順序を入れ替えた候補を生成する。計算部88は、得られた候補の各々について、性能プロファイルテーブル91やトラフィック情報92を用いて、評価値を求める。評価値の計算処理や評価値は、第2の実施形態と同様である。この場合、生成部84は、計算部88の計算結果に応じて、転送装置80の処理負荷が小さくなるようにルールテーブル6中の処理ルールの順序を入れ替える。このときに行われる処理は、図15や図18などを用いて説明した処理と同様である。
以上の説明で用いたテーブル等は一例であり、テーブルに含まれる情報要素は、実装に応じて変更され得る。
以上の説明では、転送装置5がSDNスイッチとして動作する場合を例としたが、転送装置5は、ファイアウォールなど、SDNスイッチ以外の任意のテーブル処理を行う装置として動作しても良い。
以上の説明では、候補特定部52や候補特定部87が処理ルールの並べ替えの候補を全て求める場合を説明したが、実装に応じて、候補特定部52や候補特定部87が候補を求める方法は変更されても良い。例えば、候補特定部52や候補特定部87は、求めた候補と、その候補に対して得られた評価値を用いて、遺伝的アルゴリズムにより、候補を探索しても良い。この場合、候補特定部52や候補特定部87は、評価値が良好な候補を元にして、処理ルールを変更した候補を生成する。
上述の第1〜第3の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
転送装置を制御する制御装置であって、
前記転送装置でのパケットの処理に使用される複数の処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する評価部と、
前記転送装置に使用させるテーブルとして、前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成する生成部と、
前記ルールテーブルの設定を要求する制御パケットを前記転送装置に送信する送信部
を備えることを特徴とする制御装置。
(付記2)
前記転送装置から、前記転送装置が所定期間中に処理したパケットの量を前記複数の処理ルールの各々について求めたトラフィック情報を取得する取得部と、
前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補を求める候補特定部と、
前記候補の各々について、前記複数の処理ルールを前記所定期間中に適用するパケット量が前記トラフィック情報と同じ場合に発生する処理負荷の指標値を計算する計算部
を備え、
前記生成部は、前記転送装置に設定するルールテーブル中の前記複数の処理ルールの順序を、前記指標値が相対的に小さい候補で指定された順序に更新する
ことを特徴とする付記1に記載の制御装置。
(付記3)
前記候補特定部は、
前記複数の処理ルールに、順序を入れ替えることにより前記転送装置でのパケットの処理が変更される処理ルールの組み合わせが含まれているかを判定し、
前記組み合わせが前記複数の処理ルールに含まれている場合、前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補のうち、前記組み合わせに含まれる処理ルールの順序が前記ルールテーブルと同じ候補を選択し、
前記計算部は、前記候補特定部が選択した候補の各々について、前記指標値を計算する
ことを特徴とする付記2に記載の制御装置。
(付記4)
前記指標値は、前記複数の処理ルールの各々についての、当該処理ルールを処理対象のパケットに適用することを決定するまでにかかる時間と、当該処理ルールを適用可能なパケットを前記転送装置が所定期間内に処理する量との積の関数である
ことを特徴とする付記2または3に記載の制御装置。
(付記5)
制御装置から通知された処理ルールを用いてパケットを処理する転送装置であって、
パケットの送受信を行う通信部と、
前記制御装置から通知された処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する評価部と、
前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成する生成部と、
前記通信部が受信したパケットを前記ルールテーブルに従って処理する処理部
を備えることを特徴とする転送装置。
(付記6)
前記転送装置が所定期間中に処理したパケットの量を前記複数の処理ルールの各々について求めたトラフィック情報を記憶する記憶部と、
前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補を求める候補特定部と、
前記候補の各々について、前記複数の処理ルールを前記所定期間中に適用するパケット量が、前記トラフィック情報と同じ場合に発生する処理負荷の指標値を計算する計算部
を備え、
前記生成部は、前記転送装置に設定するルールテーブル中の前記複数の処理ルールの順序を、前記指標値が相対的に小さい候補で指定された順序に更新する
ことを特徴とする付記5に記載の転送装置。
(付記7)
前記候補特定部は、
前記複数の処理ルールに、順序を入れ替えることにより前記転送装置でのパケットの処理が変更される処理ルールの組み合わせが含まれているかを判定し、
前記組み合わせが前記複数の処理ルールに含まれている場合、前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補のうち、前記組み合わせに含まれる処理ルールの順序が前記ルールテーブルと同じ候補を選択し、
前記計算部は、前記候補特定部が選択した候補の各々について、前記指標値を計算する
ことを特徴とする付記6に記載の転送装置。
(付記8)
前記指標値は、前記複数の処理ルールの各々についての、当該処理ルールを処理対象のパケットに適用することを決定するまでにかかる時間と、当該処理ルールを適用可能なパケットを前記転送装置が所定期間内に処理する量との積の関数である
ことを特徴とする付記6または7に記載の転送装置。
(付記9)
転送装置を制御する制御装置が、
前記転送装置でのパケットの処理に使用される複数の処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価し、
前記転送装置に使用させるテーブルとして、前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成し、
前記ルールテーブルの設定を要求する制御パケットを前記転送装置に送信する
処理を行うことを特徴とする制御方法。
(付記10)
前記転送装置から、前記転送装置が所定期間中に処理したパケットの量を前記複数の処理ルールの各々について求めたトラフィック情報を取得し、
前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補を求め、
前記候補の各々について、前記複数の処理ルールを前記所定期間中に適用するパケット量が前記トラフィック情報と同じ場合に発生する処理負荷の指標値を計算し、
前記転送装置に設定するルールテーブル中の前記複数の処理ルールの順序を、前記指標値が相対的に小さい候補で指定された順序に更新する
処理を前記制御装置が行うことを特徴とする付記9に記載の制御方法。
(付記11)
前記制御装置は、
前記複数の処理ルールに、順序を入れ替えることにより前記転送装置でのパケットの処理が変更される処理ルールの組み合わせが含まれているかを判定し、
前記組み合わせが前記複数の処理ルールに含まれている場合、前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補のうち、前記組み合わせに含まれる処理ルールの順序が前記ルールテーブルと同じ候補を選択し、
選択した候補の各々について、前記指標値を計算する
ことを特徴とする付記10に記載の制御方法。
(付記12)
前記指標値は、前記複数の処理ルールの各々についての、当該処理ルールを処理対象のパケットに適用することを決定するまでにかかる時間と、当該処理ルールを適用可能なパケットを前記転送装置が所定期間内に処理する量との積の関数である
ことを特徴とする付記10または11に記載の制御方法。
5、80 転送装置
6、32 ルールテーブル
10、40 制御装置
11、81 通信部
12 送信部
13 受信部
20、50、82 制御部
21、83 評価部
22、84 生成部
23、85 パケット処理部
30、60、90 記憶部
31、91 性能プロファイルテーブル
51 取得部
52、87 候補特定部
53、88 計算部
61、92 トラフィック情報
70 測定器
101 プロセッサ
102 メモリ
103 バス
104 ネットワーク接続装置

Claims (6)

  1. 転送装置を制御する制御装置であって、
    前記転送装置でのパケットの処理に使用される複数の処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する評価部と、
    前記転送装置に使用させるテーブルとして、前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成する生成部と、
    前記ルールテーブルの設定を要求する制御パケットを前記転送装置に送信する送信部
    を備えることを特徴とする制御装置。
  2. 前記転送装置から、前記転送装置が所定期間中に処理したパケットの量を前記複数の処理ルールの各々について求めたトラフィック情報を取得する取得部と、
    前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補を求める候補特定部と、
    前記候補の各々について、前記複数の処理ルールを前記所定期間中に適用するパケット量が前記トラフィック情報と同じ場合に発生する処理負荷の指標値を計算する計算部
    を備え、
    前記生成部は、前記転送装置に設定するルールテーブル中の前記複数の処理ルールの順序を、前記指標値が相対的に小さい候補で指定された順序に更新する
    ことを特徴とする請求項1に記載の制御装置。
  3. 前記候補特定部は、
    前記複数の処理ルールに、順序を入れ替えることにより前記転送装置でのパケットの処理が変更される処理ルールの組み合わせが含まれているかを判定し、
    前記組み合わせが前記複数の処理ルールに含まれている場合、前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補のうち、前記組み合わせに含まれる処理ルールの順序が前記ルールテーブルと同じ候補を選択し、
    前記計算部は、前記候補特定部が選択した候補の各々について、前記指標値を計算する
    ことを特徴とする請求項2に記載の制御装置。
  4. 前記指標値は、前記複数の処理ルールの各々についての、当該処理ルールを処理対象のパケットに適用することを決定するまでにかかる時間と、当該処理ルールを適用可能なパケットを前記転送装置が所定期間内に処理する量との積の関数である
    ことを特徴とする請求項2または3に記載の制御装置。
  5. 制御装置から通知された処理ルールを用いてパケットを処理する転送装置であって、
    パケットの送受信を行う通信部と、
    前記制御装置から通知された処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する評価部と、
    前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成する生成部と、
    前記通信部が受信したパケットを前記ルールテーブルに従って処理する処理部
    を備えることを特徴とする転送装置。
  6. 転送装置を制御する制御装置が、
    前記転送装置でのパケットの処理に使用される複数の処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価し、
    前記転送装置に使用させるテーブルとして、前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成し、
    前記ルールテーブルの設定を要求する制御パケットを前記転送装置に送信する
    処理を行うことを特徴とする制御方法。
JP2017013801A 2017-01-30 2017-01-30 制御装置、転送装置、および、制御方法 Active JP6760110B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017013801A JP6760110B2 (ja) 2017-01-30 2017-01-30 制御装置、転送装置、および、制御方法
PCT/JP2018/000275 WO2018139195A1 (ja) 2017-01-30 2018-01-10 制御装置、転送装置、および、制御方法
US16/511,594 US11115325B2 (en) 2017-01-30 2019-07-15 Control device, transfer device, and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017013801A JP6760110B2 (ja) 2017-01-30 2017-01-30 制御装置、転送装置、および、制御方法

Publications (2)

Publication Number Publication Date
JP2018125577A JP2018125577A (ja) 2018-08-09
JP6760110B2 true JP6760110B2 (ja) 2020-09-23

Family

ID=62978332

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017013801A Active JP6760110B2 (ja) 2017-01-30 2017-01-30 制御装置、転送装置、および、制御方法

Country Status (3)

Country Link
US (1) US11115325B2 (ja)
JP (1) JP6760110B2 (ja)
WO (1) WO2018139195A1 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2287689C (en) 1998-12-03 2003-09-30 P. Krishnan Adaptive re-ordering of data packet filter rules
JP2006121667A (ja) 2004-09-27 2006-05-11 Matsushita Electric Ind Co Ltd パケット受信制御装置及びパケット受信制御方法
JP2009077030A (ja) 2007-09-19 2009-04-09 Nec Corp ルール制御装置、ルール制御方法、および、ルール制御プログラム
CN105657773B (zh) * 2010-11-22 2019-05-10 日本电气株式会社 通信系统、通信设备、控制器和方法
JP5993817B2 (ja) * 2013-08-01 2016-09-14 日本電信電話株式会社 キャリア網における経路制御システム及び方法
US10476901B2 (en) * 2014-06-18 2019-11-12 Nippon Telegraph And Telephone Corporation Network system, control apparatus, communication apparatus, communication control method, and communication control program
JP2016103697A (ja) * 2014-11-27 2016-06-02 日本電気株式会社 ネットワークシステム、制御装置、通信装置、通信装置の制御方法及びプログラム
WO2016152903A1 (ja) * 2015-03-24 2016-09-29 日本電気株式会社 通信システム、制御装置、制御方法及びプログラム

Also Published As

Publication number Publication date
US11115325B2 (en) 2021-09-07
JP2018125577A (ja) 2018-08-09
US20190342209A1 (en) 2019-11-07
WO2018139195A1 (ja) 2018-08-02

Similar Documents

Publication Publication Date Title
US10904162B2 (en) System and method for selecting optimal path in multi-media multi-path network
JP6558374B2 (ja) スケール数推定装置、スケール数管理システム、スケール数推定方法、スケール数管理方法、および、コンピュータ・プログラム
CN108429701A (zh) 网络加速系统
CN110311863B (zh) 一种路由路径确定方法及装置
CN109617806B (zh) 一种数据流量调度方法及装置
CN111628940A (zh) 流量调度方法、设备、系统、交换机及计算机存储介质
US11729106B2 (en) Service quality control device, method, and program
CN108173759B (zh) 业务功能路径的选择方法、装置和网关
JP6760110B2 (ja) 制御装置、転送装置、および、制御方法
JP6085260B2 (ja) 経路制御システム、経路制御装置および経路制御方法
JP6915562B2 (ja) 分散処理システムおよび分散処理方法
JP6252112B2 (ja) パケット処理装置、パケット処理方法、および、パケット処理システム
JP6658134B2 (ja) コスト設定装置、方法およびプログラム
WO2017169948A1 (ja) 通信システム、可用帯域推定装置、可用帯域推定方法および可用帯域推定プログラムが記憶された記録媒体
CN108833276B (zh) 优选路径的确定方法及装置、服务器
WO2019244828A1 (ja) パケット転送装置、方法および記録媒体
US20160352642A1 (en) Rendezvous flow control apparatus, method, and non-transitory tangible computer readable medium
JP4737325B2 (ja) 情報処理装置および情報処理方法
JP7099068B2 (ja) 分配装置、分配方法及び分配プログラム
CN113422740B (zh) 一种分组包调度方法、装置、终端及存储介质
CN110995593A (zh) 智能信息转发方法、装置、设备及存储介质
US10044604B1 (en) Multi-path routing
CN111092815B (zh) 基于数据流的动态最小时延路由方法及系统
JP2018139368A (ja) 通信装置および通信方法
JP2018050128A (ja) 処理決定装置、処理決定方法、及び、処理決定プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191008

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200817

R150 Certificate of patent or registration of utility model

Ref document number: 6760110

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150