Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6438375B2 - 通信システム、通信装置、制御装置、トラフィック観測方法及びプログラム - Google Patents
[go: Go Back, main page]

JP6438375B2 - 通信システム、通信装置、制御装置、トラフィック観測方法及びプログラム - Google Patents

通信システム、通信装置、制御装置、トラフィック観測方法及びプログラム Download PDF

Info

Publication number
JP6438375B2
JP6438375B2 JP2015215378A JP2015215378A JP6438375B2 JP 6438375 B2 JP6438375 B2 JP 6438375B2 JP 2015215378 A JP2015215378 A JP 2015215378A JP 2015215378 A JP2015215378 A JP 2015215378A JP 6438375 B2 JP6438375 B2 JP 6438375B2
Authority
JP
Japan
Prior art keywords
switches
decision tree
communication network
route
path
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
JP2015215378A
Other languages
English (en)
Other versions
JP2017092510A (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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015215378A priority Critical patent/JP6438375B2/ja
Publication of JP2017092510A publication Critical patent/JP2017092510A/ja
Application granted granted Critical
Publication of JP6438375B2 publication Critical patent/JP6438375B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

通信ネットワークを流れるトラフィックの観測技術に関する。
従来の観測技術は、送信元と受信先のペア(以下、フローと呼ぶ。)ごとにトラフィックを分類し、評価している(例えば、非特許文献1参照。)。ここでは簡単のために、フローが送受信「装置」のペアである場合について説明する。実際のフローは、5−tupleなどのように、アドレスとポート番号の組によって決められる「論理的な接続終端点のペア」をもって定義されることが多い。各ネットワーク機器は通過するトラフィックを送受信ペアごとに分類し、パケット数やバイト数をカウントする。本発明は特定種のネットワーク機器に限定されないが、簡単のために、本明細書においては、ネットワーク機器をスイッチと呼ぶ。
図1の例を説明する。端末A〜FがスイッチSW〜SWによって接続されている。各スイッチは、フローごとにパケット数をカウントしている。ここで、端末Aから端末CへのパケットがスイッチSWとSWを通過すると、スイッチSW及びSWは、フローA→Cのカウンタを16から17へと増加させる。このカウンタ値は、通信ネットワークの障害解析などに利用される。たとえば、スイッチSWとスイッチSWのカウンタを比較すると、フローC→Fのパケット数が大きく異なり、両者の間に障害の原因があると推測できる。
近年の端末増に伴ってフロー数は膨大になっており、すべてを観測するのは難しくなっている。たとえば、各フローの計測に必要なメモリを100バイトとし、フロー数が1000万に達すると、すべてのフローを管理するには1GBが必要になる。一方、CPUキャッシュに使われるような高速メモリは数十MBであり、大幅に足りない。このため、パケットを間引いて観測する「サンプリング」を行うが、これには重要な障害を見逃すリスクがある。
次に、複数フローをまとめてカウンタ表の行数を削減する可能性を考える。図1の通信ネットワーク81の内には、端末数に関わらず6通りの経路しか存在しない。具体的には、SW→SW、SW→SW、SW→SW、SW→SW、SW→SW→SW、SW→SW→SWである。同じ経路を通過するトラフィックは各スイッチで同様に処理されるため、障害の原因分析などでは区別する必要がない。QoSなどにより同じ物理経路を通過するフローでも異なる処理が行われる場合、それぞれを別の論理経路として考えればよい。経路数がフロー数よりも少なければ、経路ごとにパケット数をカウントすることで、カウンタ表の行数を大幅に削減できる。
たとえば、図1の全端末ペアで通信が行われるとすると、SWを通過するフローは24本(A→C、A→D、A→E、A→F、B→C、B→D、…、F→C、F→D)であり、スイッチSWのカウンタ表は24行になる。しかし、スイッチSWを通過する経路は6本しかない。そこで、図2のように、送信元と受信先のペアで定められるフローを通信ネットワーク81内の経路としてまとめてカウントする。たとえば、図1では別フローとしてカウントされていたC→EとC→Fを、図2では通信ネットワーク81内の同じ経路SW→SW→SWとしてまとめてカウントする。すると、スイッチSWにおけるカウンタ表の行数は6に抑えられる。
特願2014−132603
Y. Gu, L. Breslau, N. Duffield, and S. Sen, "On passive one−way loss measurements using sampled flow statistics", In IEEE INFOCOM, pp. 2946−2950, April 2009. T. Inoue, T. Mano, K. Mizutani, S. Minato, and O. Akashi, "Rethinking packet classification for global network view of software−defined networking", In IEEE ICNP, pp. 296−307, 2014. H. Yang and S. Lam, "Real−time verification of network properties using atomic predicates", in IEEE ICNP, pp. 1−11, 2013. A. Srinivasan, T. Kam, S. Malik, and R. Brayton, "Algorithms for discrete function manipulation", in IEEE ICCAD, pp. 92−95, 1990.
カウンタ表の行数を削減するこのアイデアは一見有望そうである。しかし、パケットを通信ネットワーク内の経路ごとに分類することは現実には非常に難しい問題であるため、現在の高速通信ネットワークに適用できる高速な分類技術は存在しない(例えば、非特許文献2参照。)。このため、通信ネットワーク内の経路ごとにカウンタを管理できておらず、非特許文献1のようにフローごとに管理している。
本発明は、フロー数が膨大であっても、間引くことなくトラフィックをカウントすることを可能にすることを目的とする。
発明者らは、MDD(Multi−valued Decision Diagram)というデータ構造を用いれば、毎秒1000万パケットを通信ネットワーク内の経路ごとに分類できることを発見した(例えば、特許文献1参照。)。本願発明は、パケットを通信ネットワーク内の経路ごとに分類可能なMDD(Multi−valued Decision Diagram)というデータ構造を利用し、通信ネットワーク内の経路ごとのカウンタ値をスイッチ間で比較して、矛盾を検出する。
本発明に係る通信システムは、
複数のスイッチが接続されている通信ネットワークに備わる前記スイッチ及び前記スイッチに接続されている制御装置を備える通信システムであって、
前記複数のスイッチが、
パケットのヘッダ空間における領域ごとに出力方路を定めた動作設定表を前記制御装置に送信する送信部と、
パケットのヘッダ空間における領域で定められる前記通信ネットワーク内の経路を、前記制御装置の生成した多分決定木を用いて特定する経路特定部と、
前記経路特定部の特定した経路のカウンタ値を増加させるカウンタ表と、を備え、
前記制御装置が、
前記動作設定表を前記複数のスイッチから取得し、前記複数のスイッチの前記動作設定表を用いて、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ前記通信ネットワーク内の経路を終端ノードとする多分決定木を生成する経路導出部と、
前記複数のスイッチから前記カウンタ表を取得してカウンタ集計表を作成し、前記通信ネットワーク内の経路ごとのカウンタ値がスイッチ間で一致するか否かを判定するカウンタ評価部と、を備える。
本発明に係る通信システムでは、
前記経路導出部は、
前記ヘッダ空間における領域を定めるビット列を二分決定木に変換し、前記二分決定木の各終端ノードに割り当てられている前記通信ネットワーク内の経路毎に、根ノードから各終端ノードへのパスが共通する二分決定木の終端ノードに到達しうる二分決定木を生成する二分決定木生成部と、
前記パスの異なる各二分決定木のうちのビット列の共通する非終端ノードを共有させ、根ノードから各終端ノードへの多分決定木を構築する多分決定木構築部と、
前記多分決定木構築部で構築した前記多分決定木の根ノードから終端ノードのパス方向に隣接する複数の非終端ノードを1つの非終端ノードに集約するビット集約部と、
を備えていてもよい。
本発明に係る通信装置は、
複数のスイッチが接続されている通信ネットワークに備わる前記スイッチとして機能する通信装置であって、
パケットのヘッダ空間における領域ごとに出力方路を定めた動作設定表と、
パケットのヘッダ空間における領域で定められる前記通信ネットワーク内の経路を、前記複数のスイッチに接続されている制御装置の生成した多分決定木を用いて特定する経路特定部と、
前記経路特定部の特定した経路のカウンタ値を増加させるカウンタ表と、
を備え、
前記多分決定木は、前記複数のスイッチに備わる動作設定表を用いて構成される、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ前記通信ネットワーク内の経路を終端ノードとする多分決定木である。
本発明に係る制御装置は、
複数のスイッチが接続されている通信ネットワークに備わる前記スイッチに接続されている制御装置であって、
パケットのヘッダ空間における領域ごとに出力方路を定めた動作設定表を前記複数のスイッチから取得する受信部と、
前記複数のスイッチの前記動作設定表を用いて、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ前記通信ネットワーク内の経路を終端ノードとする多分決定木を生成する経路導出部と、
前記多分決定木を前記複数のスイッチに送信する送信部と、
前記通信ネットワーク内の経路ごとにカウンタ値が記載されたカウンタ表を前記複数のスイッチから取得してカウンタ集計表を作成し、前記通信ネットワーク内の経路ごとのカウンタ値がスイッチ間で一致するか否かを判定するカウンタ評価部と、
を備える。
本発明に係るトラフィック観測方法は、
複数のスイッチが接続されている通信ネットワークに備わる前記スイッチが実行するトラフィック観測方法であって、
パケットのヘッダ空間における領域で定められる前記通信ネットワーク内の経路を、前記複数のスイッチに接続されている制御装置の生成した多分決定木を用いて特定し、特定した経路のカウンタ値をカウンタ表において増加させるカウント手順と、
前記カウンタ表を前記制御装置に送信する送信手順と、
を順に有し、
前記多分決定木は、前記複数のスイッチに備わる動作設定表を用いて構成される、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ前記通信ネットワーク内の経路を終端ノードとする多分決定木である。
本発明に係るトラフィック観測方法は、
複数のスイッチが接続されている通信ネットワークに備わる前記スイッチと接続されている制御装置が実行するトラフィック観測方法であって、
パケットのヘッダ空間における領域ごとに出力方路を定めた動作設定表を前記複数のスイッチから取得し、前記複数のスイッチの前記動作設定表を用いて、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ前記通信ネットワーク内の経路を終端ノードとする多分決定木を生成し、前記複数のスイッチに送信する経路導出手順と、
前記多分決定木を用いて特定された経路のカウンタ値を含むカウンタ表を前記複数のスイッチから取得してカウンタ集計表を作成し、前記通信ネットワーク内の経路ごとのカウンタ値がスイッチ間で一致するか否かを判定する判定手順と、
を順に有する。
本発明に係るプログラムは、コンピュータを、本発明に係る通信装置に備わる各機能部として機能させるためのプログラムである。
本発明に係るプログラムは、コンピュータを、本発明に係る制御装置に備わる各機能部として機能させるためのプログラムである。
本発明によれば、フロー数が膨大になっても、間引くことなくトラフィックをカウントでき、障害などの原因箇所を推定できる。特に、各スイッチが管理するカウンタ表の行数が、フロー数に依存しなくなる。
フローごとにカウンタを管理するシステム構成の一例を示す。 経路ごとのカウンタを管理するシステム構成の一例を示す。 コントローラに備わるカウンタ集計表の一例を示す。 実施形態1に係るトラフィック監視シーケンスの一例を示す。 実施形態に係る通信ネットワークの構成の一例を示す。 スイッチSWに備わる動作設定表の一例を示す。 パケットのヘッダ空間を2次元座標で表現した場合のスイッチSWの動作の一例を示す。 スイッチSWに備わる動作設定表の一例を示す。 パケットのヘッダ空間を2次元座標で表現した場合のスイッチSWの動作の一例を示す。 スイッチSWに備わる動作設定表の一例を示す。 パケットのヘッダ空間を2次元座標で表現した場合のスイッチSWの動作の一例を示す。 通信ネットワーク83中の経路の組み合わせの一例を示す。 図12に示す各経路の説明図である。 スイッチの一例を示す構成図である。 スイッチの動作の一例を示すフローチャートである。 コントローラの一例を示す構成図である。 コントローラの動作の一例を示すフローチャートである。 経路導出部の一例を示す。 BDD集合をひとつのMDDに変換するフローチャートの一例を示す。 実施形態に係るBDD構造の一例を示す。 実施形態に係るMDD構造の一例を示す。 実施形態に係るBDDをMDDに置換した場合の一例を示す。 実施形態に係る各経路を示すMDDを1つのMDDに纏めた場合の一例を示す。 本発明の実施形態に係る各経路を示すMDDを1つのMDDにまとめる場合のアルゴリズムの一例を示す。 本発明の実施形態に係る各経路を示すMDDを1つのMDDにまとめる場合のアルゴリズムの他の例を示す。 本発明の実施形態に係るMDDにおいてビット集約を行う場合のアルゴリズムの一例を示す。 本発明の実施形態に係るMDDにおいてMDD更新を行う場合のアルゴリズムの一例を示す。 本発明の実施形態に係るMDDにおいてMDDを辿り、与えられたパケットヘッダに対応する経路を検索する場合のアルゴリズムの一例を示す。 本発明の実施形態に係るMDDにおいて、6ビットのパケットヘッダを2ビットごとの配列で扱う場合の一例を示す。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
(実施形態1)
本実施形態に係る通信システムは、図2に示すように、通信ネットワーク81を構成するスイッチと、各スイッチを管理するコントローラ82と、を備える。スイッチは通信装置として機能し、コントローラ82は制御装置として機能する。コントローラ82は、図3に示すようなカウンタ集計表を備える。本実施形態の装置はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、通信ネットワークを通して提供することも可能である。
図4に、本実施形態に係るトラフィック監視シーケンスの一例を示す。本実施形態に係るトラフィック監視シーケンスは、経路導出手順(S301〜S303)、カウント手順(S304)、及び、判定手順(S305〜S306)を順に有する。
経路導出手順では、コントローラ82が、各スイッチから動作設定表を取得し(S301)、動作設定表を用いてMDD及び経路一覧を生成する(S302)。ここでのMDDは、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ通信ネットワーク81内の経路を終端ノードとする多分決定木である。これにより、各スイッチが、コントローラ82からMDD及び経路一覧を取得する(S303)。
カウント手順では、各スイッチが、MDDを用いてパケットの経路を特定し、特定した経路ごとにパケットをカウントする(S304)。
判定手順では、コントローラ82が、各スイッチからカウンタ表を取得して図3に示すようなカウンタ集計表を作成し(S305)、経路ごとのカウンタ値をスイッチ間で比較して、通信ネットワーク内の経路ごとのカウンタ値がスイッチ間で一致するか否かを判定する(S306)。
実施形態に係る通信システムは、各スイッチがMDDを用いて通信ネットワーク81内の経路を特定する。MDDというデータ構造を用いれば、毎秒1000万パケットを通信ネットワーク内の経路ごとに分類することができる(例えば、特許文献1参照。)。このため、実施形態に係る通信システムは、フロー数が膨大であっても、間引くことなくトラフィックをカウントすることができる。
まず、MDDについて簡単に説明する。図5に示す通信ネットワーク83の例を用いて説明する。本実施形態では、特許文献1に記載の「パケットの振る舞い(behavior)」を、直観的に理解しやすいように「経路」と表記する。「振る舞い」は、異なるスイッチから送られたパケットの経路が途中で合流したり、パケットが廃棄される状況も包含する概念である。本実施形態では、トラフィックの観測という目的に合わせて、「振る舞い」を「経路」という。
本実施形態に係る通信ネットワーク83は、スイッチSW、SW及びSWによって構成されている。それぞれ3つのインタフェース(PA1など)を備えた3台のスイッチA〜Cからなる通信ネットワークを考える。図5では、端末は省略されている。簡単のため、2個の3−bit領域によってパケットのフローを識別できるとする。すなわち、3−bitの送信アドレス及び受信アドレスで区別すると考えてよい。
図6〜図11に、各スイッチにおける動作設定の一例を示す。各スイッチは、パケットを受信すると、2個の3−bit領域によってパケットを識別し、図6、図8及び図10に示す動作設定表に基づいてパケットに対応する動作を決定し、実行する。図7、図9及び図11は、2個の3−bit領域によって定められるヘッダ空間を2次元座標で表現した場合の各スイッチの動作を示す。図6〜図11において、PA1などは出力方路を示す。
各スイッチは、パケットのヘッダ空間における領域ごとに動作を決定する。これにより、各スイッチにおける動作設定表が作成される。通信ネットワーク83全体を通過する経路を決定するのと異なり、各スイッチでの動作を決定するのは容易である。通信ネットワーク83内の経路は、すべてのスイッチで行われる動作の組合せとなるため、個別の動作よりも複雑になる。図6〜図11の例では、図12及び図13に示すように、通信ネットワーク83内のパケットはIからXIIまで12種類の経路のいずれかに分類される。各スイッチの動作を組み合わせると、この通信ネットワーク83にはIからXIIまで12種類の経路が存在するとわかる。細かいことをいうと、グラフとしては12より多くの経路が存在しうるが、各スイッチの設定からパケットが流れ得ない経路は無視した。
MDDの役割は、パケットを与えられると、パケットのフローに対応する通信ネットワーク内の経路を返すことである。これにより、各スイッチは受信したパケットの経路を高速で分類でき、図3のような経路に基づくカウンタ表を実現できるようになる。MDDを構築するための入力は、図6、図8及び図10に示す全スイッチの動作設定表である。出力として、後述する図23に示すようなMDDと経路一覧が得られる。
続いて、MDDを用いたトラフィック観測技術を説明する。図2に示すネットワーク81の全体を管理する装置をコントローラ82と呼ぶことにする。コントローラ82は、すべてのスイッチと通信可能であるとする。
図14はスイッチの構成図である(動作設定表は省略する)。本実施形態に係るスイッチは、パケット送受信部21、経路特定部22及びカウンタ表23を備える。
パケット送受信部21が、MDD及び経路一覧をコントローラ82から受信する。経路特定部22は、MDD及び経路一覧を保持する。
カウント手順における各スイッチの動作を、図15のフローチャートに示す。パケット送受信部21がパケットを受信すると(S201)、経路特定部22がパケットに対応する経路に分類し(S202)、カウンタ表23が対応する経路のカウンタの値を増加させる(S203)。なお、カウンタ表23は、パケット数をカウントしてもよいが、バイト数をカウントしてもよい。カウンタ表23は、更新後のカウンタ表を、パケット送受信部21を介してコントローラ82に送信する。
図16は、コントローラ82の構成図である。コントローラ82は、パケット送受信部11、経路導出部12、カウンタ集計表14、カウンタ評価部15及び警報発生部16を備える。
経路導出部12は、パケット送受信部11から各スイッチの動作設定表の情報を収集する。経路導出部12は、各スイッチの動作設定表に含まれるフローを用いて通信ネットワーク81のMDDを構築し、パケット送受信部11を介して各スイッチに設定する。これにより、各スイッチは、カウント手順においてパケットのヘッダ空間から経路を特定することが可能になる。
また、コントローラ82は、各スイッチのカウンタ表を集計してカウンタ集計表14を作成し、これを用いて監視を行う。判定手順におけるコントローラ82の動作を、図17のフローチャートに示す。カウンタ集計表14は、図3の表のように、定期的に全スイッチのカウンタ表を集計する。そしてカウンタ評価部15が、通信ネットワーク内の経路ごとにカウンタ値の妥当性を評価する(S102)。たとえば、以下のようにカウンタ値の矛盾に基づく評価方法が考えられる。矛盾が見つかった場合には、警報発生部16は、警報を出し(S103)、必要に応じてより詳細な分析を行う。
カウンタ評価部15は、経路に含まれないスイッチのカウンタがゼロであることを確認する。例えば、図3の経路R→Sをみると、パケットが通過するはずのないスイッチSWのカウンタが「3」となっており、ゼロではない。これは、パケットが間違った経路を通っていることを示しており、スイッチSW周辺でなんらかの障害が発生していると考えられる。
カウンタ評価部15は、経路上にある全スイッチのカウンタが(ほぼ)一致していることを確認する。図3の経路S→R→Tをみると、スイッチSW及びSWのカウンタ値は「49823」であるが、スイッチSWのカウンタ値は「38294」であり、スイッチSWはスイッチSW及びSWよりもかなり小さくなっている。これは、経路R→T間で多くのパケットが廃棄されていることを示している。
カウンタ評価部15は、経路の下流のカウンタ値が上流を超えていないことを確認する。図3の経路T→Rをみると、上流のスイッチSWのカウンタ値より下流のスイッチSWのカウンタ値のほうが大きい。これは、通信ネットワーク81中でパケットが不正に生成されていることを示している。
なお、伝送遅延やqueueing遅延があるため、スイッチ間でカウンタ値が完全に一致するとは限らない。実際には、これらの遅延を考慮して評価を行う。
以上説明したように、本実施形態によれば、コントローラ82を操作するネットワークオペレータは、カウンタ集計表14を用いて、継続的にトラフィックを観測し、妥当性を評価することができる。特に、トラフィック観測により障害などの原因箇所を推定することができる。これにより、ネットワークオペレータは、通信ネットワークが正しく機能していることを確認することができる。
(実施形態2)
本実施形態では、経路導出部12の詳細について説明する。図18に本実施形態に係る経路導出部12の一例を示す。本実施形態に係る経路導出部12は、二分決定木生成部121と、多分決定木構築部122と、ビット集約部123とを備える。二分決定木生成部121と、多分決定木構築部122と、ビット集約部123が、多分決定木構築手順を実行する。
経路導出部12は、コンピュータを、二分決定木生成部121、多分決定木構築部122、ビット集約部123として機能させることで実現してもよい。この場合、コントローラ82のCPU(Central Processing Unit)が記憶部(不図示)に記憶されたコンピュータプログラムを実行することで、各構成を実現する。
二分決定木生成部121は、パケットの経路を特定するためのヘッダ空間に記載されたビット列を二分決定木に変換し、二分決定木の各終端ノードに割り当てられている通信ネットワーク内のパケットの経路毎に、経路が共通する二分決定木の終端ノードに到達しうる二分決定木を生成する。ビット列から二分決定木への変換は、例えば、非特許文献3のアルゴリズム3などによって、パケット受信部11が受信するパケットの各経路に対応するBDDを構築することで行う。具体的には、本実施形態に係る二分決定木生成部121は、パケットの経路を特定するためのヘッダ空間に記載されたビット列をBDDに変換し、BDDの各終端ノードに割り当てられているパケットの経路毎に、経路が共通するBDDの終端ノードに到達しうるBDDを生成する。
このBDD集合が本実施形態の多分決定木構築部122の入力になる。多分決定木構築部122は、BDD集合を、ひとつのMDDに変換する。以降、BDDをMDDに変換する手法を述べ、最後にMDDを辿るアルゴリズムを述べる。変換手法については、図19に示すフローチャートに従って説明する。
(BDD及びMDDについて)
図20及び図21を用いてBDDとMDD(multi−valued decision diagram)という圧縮データ構造を説明する。ここで、BDDとは二分決定木であり、MDDとは多分決定木である。二分決定木生成部121は、パケットヘッダのビット列から、図20のBDDを生成する。図20は、図12の領域Iを表すBDDである。BDD中の非終端ノードN〜Nに書かれた数値は、パケットヘッダのビット番号を表す(ビット番号は0から数えることにする)。そのビットが0であれば点線を、1であれば実線を辿る。
最終的に終端ノードNEに到達した場合、そのビットパターンが領域Iに合致する。一方、終端ノードNEに到達した場合、そのビットパターンは領域Iに合致しない。たとえば、図20の太線で示したパス(path)は01011*というビットパターンを表し、領域Iの経路に合致する。領域I内の5番目ビットの*はワイルドカードを表す。ビットがワイルドカードである場合、そのビットの値は任意である。この場合、対応するBDDノードは省略される。そのため、図20には、終端ノードNEに実線で繋がるBノードは省略されている。このように上のノードから下のノードへのパスによって、ヘッダのビットパターンを表す。なお、BDD上のパスは、ヘッダ空間における矩形に対応する。すべてのパスを辿ることで、重なりのない矩形ルールを列挙できる。
BDDは、共通する「部分パス」を共有することで、「圧縮」を行うため、二分決定木生成部121は、膨大な数の矩形をコンパクトに表現できる。たとえば、図20の太線で示した01011*というパスと、01111*というパスは、01という先頭部分と1*という末尾部分を共有している。このBDDには14のパスがあるが、たった9つの非終端ノードN〜Nで表現できている。
すでに述べたように、BDDは通信ネットワーク内の経路ごとに構築される。図20にはひとつのBDDしか示さないが、図12のヘッダ空間を表すためには12個のBDDが構築されることになる。図21は、図12のヘッダ空間全体を表すMDDである。図21のMDDは、多分決定木構築部122が、二分決定木生成部121で生成したBDDから構築する。
MDDでは、BDDと異なり、終端ノードの種類は任意であり、今回は通信ネットワーク内のパケットの経路に対応づける。図12には12種類の経路があったので、終端ノードはNTからNTXIIの12種類である。このMDDでは、K=2個の連続するビットをひとつにまとめている。このため、各ノードには2つのビット番号が記され、2ビットで表現できる0−3の矢印が出ている。図21の太線で示したパスは010111というビットパターンを表し、領域Iのパスに従い終端ノードNTに到達している。BDDと同様に、MDDも部分パスを共有して、圧縮を行う。BDDやMDDの「サイズ」は、非終端ノードの数と定義する。
(MDD初期構築(construction))
まず、MDDの初期構築(construction)を説明する。本実施形態に係る多分決定木構築部122は、根ノードから各終端ノードへのMDDを構築する。パケットヘッダのビット数をLとし、Lビットのヘッダ空間をχ={0,1}と表す(図5〜図11はL=3+3である)。あるヘッダを表すビットパターンをx∈χとする。
経路の集合をP={I,II,・・・}とし、ヘッダxが領域i∈Pに合致するか否かを表す論理関数をf(x)とする。
Figure 0006438375
であれば合致し、
Figure 0006438375
であれば合致しない。この論理関数fをBDDで表す。たとえば、ヘッダx=010111は図20の太線のパスに対応し、
Figure 0006438375
となることで領域Iに合致することを表す。
図20のように、通信ネットワーク内のすべての経路f,∀∈PがBDDで表現されているとする。多分決定木構築部122は、このBDD fを、根ノードから各終端ノードへの全てのパスで、関数としての意味を変えずにMDD Fに単純変換して、根ノードから各終端ノードへのMDDを構築する(図22)。ここで、F(x)はヘッダxを領域iに対応づける関数とし、F(x)=iであればヘッダxは領域iに合致し、F(x)=nilであれば合致しない(nilは未定義の経路を表すとする)。この変換操作は、図20のBDDの終端ノード
Figure 0006438375
を図22のようにI、nilに置き換えればよい。
(MDD統合(unification))
次に、多分決定木構築部122は、通信ネットワーク83内の各経路を表すMDDのうち、ビット列の共通する非終端ノードを共有させることでひとつにまとめ(unification)、図23のMDDを得る。ふたつのMDD Fi,Fjが与えられたとき、ヘッダxの経路が、F,Fのいずれかで定義されていれば(nilでなければ)、その経路に対応づければよい。このような
Figure 0006438375
演算を統合演算と呼ぶことにし、次の式(1−1)のように定義する。
Figure 0006438375
ここで、非特許文献4が提案するCASEというアルゴリズムフレームワークを用いる。CASEは、ふたつのMDDに対して任意の「演算」を実行し、計算結果として新たなMDDを出力する。CASEを用いて式(1−1)を計算するアルゴリズムを、図24のアルゴリズム1に示す。
アルゴリズム1について説明する。アルゴリズム1では、FiとFjの両方が終端ノードの場合には、式(1−1)に従って、F(x)とF(x)の統合を求め、F(x)とF(x)の統合を出力する。FiとFjの両方が終端ノードでない場合には、x’が0から2−1の範囲で、Fの子ノードF.child[x’]とFの子ノードF.child[x’]の統合を計算してF.child[x’]とする。計算終了後、Fを出力する。なお、アルゴリズム1において、「/*」及び「*/」に挟まれた部分はコメントである。
通信ネットワーク83内のすべての経路に対してこの統合演算を行うことで、ヘッダ空間全体χをいずれかの経路に対応づけられる。そのような関数をFとする。関数Fを以下の式(1−2)のように定義する。
Figure 0006438375
通信ネットワーク83内の各経路を表すMDD Fに対して繰り返し統合演算を適用していくことで、図22のようなMDDの集合を、図23に示すひとつのMDDにまとめられる。このMDDは関数Fを表す。この演算は結合的でありかつ数学的に可換であるため、任意の順序で計算できる。たとえば、図25に示したような順序でMDDをふたつずつ選んで演算を行い、最終的にFを表すひとつのMDDを得ることもできる。なお、図25に示した順序とは、この図をトーナメント表だと思うと、まず1回戦を行い、
Figure 0006438375
次に2回戦
Figure 0006438375
3回戦、と繰り返し、決勝戦を終えるとFが決まる。ここで、MDD Fのサイズを||F||と表記し、非終端ノード数と定義する。
図25の下部に、各経路に対応づけられたMDD Fのサイズ||F||を示してある。このように、小さいMDDから順に演算を行うことで、全体の計算量を最少化できる(証明は非特許文献3のTheorem 1でなされている)。なお、CASEの計算量は、MDDサイズに依存するが、MDDに含まれるパス数(矩形数)には依存しない。
(ビット集約(aggregation))
本実施形態に係る経路導出部12はビット集約部123を備えることが好ましい。ここまで、BDDやMDDの各ノードは、ひとつのビットに対応づけられていた(図22、図23のように)。ここで、本実施形態に係るビット集約部123は、多分決定木構築部122で構築した多分決定木の根ノードから終端ノードのパス方向に隣接する複数のビットに対応づけて集約する。例えば、各終端ノードを複数のビットに対応付けて集約し、図23のMDDを図21のMDDに変換する。このことにより、根ノードから終端ノードのパスを短くし、パケットヘッダに対応する通信ネットワーク83内の経路を短時間で突き止められるようになる。
このビット集約操作を、図26のアルゴリズム2によって行う。このアルゴリズムは、MDDのroot node Fが与えられると(ここではFは関数ではなく、MDDのroot nodeとする)、Kビット分だけ先にある2個の子ノードを見つけ、それらを新たな子ノードとして設定する。
この計算を再帰的に行い、MDD全体を再構築する。このアルゴリズムを同じノードに対して繰り返し行わないように、計算済みノードはキャッシュしておく。たとえば、図23のroot nodeについて説明する。K=2ビット先の子ノードとは、太線の丸で示したノードである(ビット番号2のノードが省略されているときは、その次のノードとする)。これらを新たな子ノードとして設定する(図23の太線の丸で示した4つのノードである)。さらにそれぞれの子ノードについてアルゴリズム2を再帰的に適用する。
アルゴリズム2について説明する。アルゴリズム2では、Fが終端ノードでない場合又はFがキャッシュ内にない場合には、x’が0から2−1の範囲で、再帰的にビット集約を行い、その結果をキャッシュにF(K)を出力する。
このようにして再構築したMDDをF(K)と表すことにする。アルゴリズム2の計算量は、MDDサイズに依存するが、MDDに含まれるパス数(矩形数)には依存しない。なお、本実施形態では、ビット集約を行うか否かは任意であり、例えば、MDDの規模が小さな場合にはビット集約を行わなくてもよい。
(MDD更新(update))
上記のようにして構築した図23のようなMDD FあるいはF(K)を、新たな通信ネットワーク83内の経路を表すMDD F′で更新する。新たな通信ネットワーク83内の経路が定義されたヘッダ空間、X′={x∈χ:F′(x)≠nil}、では、新たな通信ネットワーク83内の経路を適用し、それ以外は元のままとする。このとき、CASEを用いて下記の演算を適用すればよい。
Figure 0006438375
CASEを用いて式(2)を計算するアルゴリズムを、図27のアルゴリズム3に示す。F′の取得方法を説明する。まず、fからFを得た方法と同じように、f′から変換してF′を得る。F(K)がK>1であれば、図26のアルゴリズム2を適用して、F′のKをF(K)に揃える。
アルゴリズム3について説明する。アルゴリズム3では、F’とFの両方が終端ノードの場合には、式(1−1)に従って、
Figure 0006438375
を求めて出力する。F’とFの両方が終端ノードでない場合には、x’が0から2−1の範囲で、
Figure 0006438375
を計算し、計算後のF’’を出力する。
(実施形態3)
本実施形態では、経路特定部22におけるMDD検索の詳細について説明する。
経路特定部22は、パケット受信部21の受信したパケットの通信ネットワーク内の経路を、当該パケットのヘッダ空間に記載されたビット列に従って、MDDを検索して辿りついた終端ノードに割当てられている経路に設定する。例えば、MDD F(K)を辿り、与えられたパケットヘッダxに対応する通信ネットワーク83内の経路を検索する(図28に示すアルゴリズム4)。このアルゴリズム4では、入力となるヘッダのビット列を、Kビットごとに区切った「配列」パケットヘッダpktとみなす。図29に、6ビットのパケットヘッダをK=2ビットごとの配列で扱う例を示す。パケットヘッダpkt[0]とすると0、1番目の2ビット(01)を得られ、パケットヘッダpkt[1]で2、3番目の2ビット(01)を得られる。一般には、パケットヘッダpkt[i]は[Ki,K(i+1)−1]の範囲のビット列を表す。
F.bは、MDD node Fに対応づけられたビットのうち、もっとも小さい値を表す。たとえば、図21のMDD のroot nodeは0、1番目のビットに対応づけられているので、F.b=0となる。アルゴリズム4は、配列アクセスだけによって高速に子ノードを辿り、終端ノードに到達して通信ネットワーク83内のパケットの経路を得る。
アルゴリズム4について説明する。アルゴリズム4では、F(k)が終端ノードでない期間、x’=パケットヘッダpkt[F(k).b/K]及びF(k)=F(k).Child[x’]を計算することにより経路探索を行い、検索結果F(k)を出力する。
図29のパケットヘッダを用いて、図21のMDD F(K)を辿る例を説明する。まず、root nodeはF(K).b=0であるから、パケットヘッダpkt[0/K]=1となり、F(K).child[1]によってF(K)を更新する。
この更新操作は、図21の太いパスをひとつ進むことに相当する。次のノードではF(K).b=2であり、パケットヘッダpkt[2/K]=1を得て、F(K).child[1]でパスをまたひとつ進む。最後は、F(K).b=4、パケットヘッダpkt[4/K]=3となり、F(K).child[3]=Iであり、領域Iに対応する通信ネットワーク83内の経路を得る。アルゴリズム4の計算量は、MDDのパス長に依存するが、MDDに含まれるパス数(矩形数)には依存しない。
本実施形態に係る経路特定部22は受信したパケットの通信ネットワーク83内の経路を、MDD F(K)を検索することにより辿りついた終端ノードに割り当てられている経路に設定する。ここで、経路特定部22が用いるMDD F(K)は、多分決定木構築部122で構築したMDD F(K)又は多分決定木構築部122で構築した後、ビット集約部123でビット集約したMDD F(K)である。
なお、パケット送受信部21は、動作設定表に基づいてパケットを転送してもよいが、経路特定部22の設定した通信ネットワーク83内の経路に基づいて、パケット送受信部21が受信したパケットを転送してもよい。
本発明は情報通信産業に適用することができる。
11:パケット送受信部
12:経路導出部
121:二分決定木生成部
122:多分決定木構築部
123:ビット集約部
14:カウンタ集計表
15:カウンタ評価部
16:警報発生部
21:パケット送受信部
22:経路特定部
23:カウンタ表
81、83:通信ネットワーク
82:コントローラ

Claims (8)

  1. 複数のスイッチが接続されている通信ネットワークに備わる前記スイッチ及び前記スイッチに接続されている制御装置を備える通信システムであって、
    前記複数のスイッチが、
    パケットのヘッダ空間における領域ごとに出力方路を定めた動作設定表を前記制御装置に送信する送信部と、
    パケットのヘッダ空間における領域で定められる前記通信ネットワーク内の経路を、前記制御装置の生成した多分決定木を用いて特定する経路特定部と、
    前記経路特定部の特定した経路のカウンタ値を増加させるカウンタ表と、を備え、
    前記制御装置が、
    前記動作設定表を前記複数のスイッチから取得し、前記複数のスイッチの前記動作設定表を用いて、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ前記通信ネットワーク内の経路を終端ノードとする多分決定木を生成する経路導出部と、
    前記複数のスイッチから前記カウンタ表を取得してカウンタ集計表を作成し、前記通信ネットワーク内の経路ごとのカウンタ値がスイッチ間で一致するか否かを判定するカウンタ評価部と、を備える、
    通信システム。
  2. 前記経路導出部は、
    前記ヘッダ空間における領域を定めるビット列を二分決定木に変換し、前記二分決定木の各終端ノードに割り当てられている前記通信ネットワーク内の経路毎に、根ノードから各終端ノードへのパスが共通する二分決定木の終端ノードに到達しうる二分決定木を生成する二分決定木生成部と、
    前記パスの異なる各二分決定木のうちのビット列の共通する非終端ノードを共有させ、根ノードから各終端ノードへの多分決定木を構築する多分決定木構築部と、
    前記多分決定木構築部で構築した前記多分決定木の根ノードから終端ノードのパス方向に隣接する複数の非終端ノードを1つの非終端ノードに集約するビット集約部と、
    を備える請求項1に記載の通信システム。
  3. 複数のスイッチが接続されている通信ネットワークに備わる前記スイッチとして機能する通信装置であって、
    パケットのヘッダ空間における領域ごとに出力方路を定めた動作設定表と、
    パケットのヘッダ空間における領域で定められる前記通信ネットワーク内の経路を、前記複数のスイッチに接続されている制御装置の生成した多分決定木を用いて特定する経路特定部と、
    前記経路特定部の特定した経路のカウンタ値を増加させるカウンタ表と、
    を備え、
    前記多分決定木は、前記複数のスイッチに備わる動作設定表を用いて構成される、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ前記通信ネットワーク内の経路を終端ノードとする多分決定木である、
    通信装置。
  4. 複数のスイッチが接続されている通信ネットワークに備わる前記スイッチに接続されている制御装置であって、
    パケットのヘッダ空間における領域ごとに出力方路を定めた動作設定表を前記複数のスイッチから取得する受信部と、
    前記複数のスイッチの前記動作設定表を用いて、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ前記通信ネットワーク内の経路を終端ノードとする多分決定木を生成する経路導出部と、
    前記多分決定木を前記複数のスイッチに送信する送信部と、
    前記通信ネットワーク内の経路ごとにカウンタ値が記載されたカウンタ表を前記複数のスイッチから取得してカウンタ集計表を作成し、前記通信ネットワーク内の経路ごとのカウンタ値がスイッチ間で一致するか否かを判定するカウンタ評価部と、
    を備える制御装置。
  5. 複数のスイッチが接続されている通信ネットワークに備わる前記スイッチが実行するトラフィック観測方法であって、
    パケットのヘッダ空間における領域で定められる前記通信ネットワーク内の経路を、前記複数のスイッチに接続されている制御装置の生成した多分決定木を用いて特定し、特定した経路のカウンタ値をカウンタ表において増加させるカウント手順と、
    前記カウンタ表を前記制御装置に送信する送信手順と、
    を順に有し、
    前記多分決定木は、前記複数のスイッチに備わる動作設定表を用いて構成される、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ前記通信ネットワーク内の経路を終端ノードとする多分決定木である、
    トラフィック観測方法。
  6. 複数のスイッチが接続されている通信ネットワークに備わる前記スイッチと接続されている制御装置が実行するトラフィック観測方法であって、
    パケットのヘッダ空間における領域ごとに出力方路を定めた動作設定表を前記複数のスイッチから取得し、前記複数のスイッチの前記動作設定表を用いて、パケットのヘッダ空間における領域を定めるビット列を非終端ノードとしかつ前記通信ネットワーク内の経路を終端ノードとする多分決定木を生成し、前記複数のスイッチに送信する経路導出手順と、
    前記多分決定木を用いて特定された経路のカウンタ値を含むカウンタ表を前記複数のスイッチから取得してカウンタ集計表を作成し、前記通信ネットワーク内の経路ごとのカウンタ値がスイッチ間で一致するか否かを判定する判定手順と、
    を順に有するトラフィック観測方法。
  7. コンピュータを、請求項3に記載の通信装置に備わる各機能部として機能させるためのプログラム。
  8. コンピュータを、請求項4に記載の制御装置に備わる各機能部として機能させるためのプログラム。
JP2015215378A 2015-11-02 2015-11-02 通信システム、通信装置、制御装置、トラフィック観測方法及びプログラム Active JP6438375B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015215378A JP6438375B2 (ja) 2015-11-02 2015-11-02 通信システム、通信装置、制御装置、トラフィック観測方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015215378A JP6438375B2 (ja) 2015-11-02 2015-11-02 通信システム、通信装置、制御装置、トラフィック観測方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2017092510A JP2017092510A (ja) 2017-05-25
JP6438375B2 true JP6438375B2 (ja) 2018-12-12

Family

ID=58768601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015215378A Active JP6438375B2 (ja) 2015-11-02 2015-11-02 通信システム、通信装置、制御装置、トラフィック観測方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6438375B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7007016B2 (ja) * 2018-03-22 2022-01-24 日本電気株式会社 ネットワークシステム、制御装置、通信経路特定方法及びプログラム
CN117915432B (zh) * 2024-03-19 2024-06-07 中铁四局集团有限公司 一种中继网络传输优化方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003110602A (ja) * 2001-09-28 2003-04-11 Ando Electric Co Ltd Mplsパケット統計処理方法及び統計処理装置
US8345573B2 (en) * 2007-11-26 2013-01-01 Nec Corporation Communication quality estimation system, equipment, method and program
JP2012159873A (ja) * 2011-01-28 2012-08-23 Nec Corp パケット分類システム、パケット分類方法、及びパケット分類用プログラム
JP5682442B2 (ja) * 2011-05-12 2015-03-11 日本電気株式会社 パケット分類器、パケット分類方法、及びパケット分類プログラム
JP2015050527A (ja) * 2013-08-30 2015-03-16 日本電信電話株式会社 パケット転送装置、パケット転送システム、およびパケット転送方法

Also Published As

Publication number Publication date
JP2017092510A (ja) 2017-05-25

Similar Documents

Publication Publication Date Title
CN105897584B (zh) 路径规划方法和控制器
US9544220B2 (en) Binary search-based approach in routing-metric agnostic topologies for node selection to enable effective learning machine mechanisms
Luo et al. Identifying multiple infection sources in a network
CN111865627B (zh) 传输组网评估方法、装置、计算设备及计算机存储介质
JP5695767B1 (ja) トポロジ推定装置およびプログラム
CN110768856B (zh) 网络流测量的方法、网络测量设备以及控制面设备
US10164864B2 (en) Network tomography through selection of probing paths
CN115632965B (zh) 基于obdd的sdn双端可靠性评估方法及系统
He et al. Robust monitor placement for network tomography in dynamic networks
JP6438375B2 (ja) 通信システム、通信装置、制御装置、トラフィック観測方法及びプログラム
Chen et al. An efficient solution to locate sparsely congested links by network tomography
CN107959642B (zh) 用于测量网络路径的方法、装置和系统
CN113065073B (zh) 一种城市的有效路径集搜索方法
US11290338B1 (en) System and method for inferring a network topology from the edge
US20160125005A1 (en) Apparatus and Method for Profiling Activities and Transitions
Kumar et al. Performance analysis of network-on-chip topologies
US11510128B2 (en) Path selection apparatus, path selection method and program
JP6662812B2 (ja) 計算装置及び計算方法
Mahyar et al. UCS-WN: an unbiased compressive sensing framework for weighted networks
JP6180369B2 (ja) トポロジ推定装置およびプログラム
JP6143367B2 (ja) パケット転送経路設定回路、パケット転送スイッチ、パケット転送経路設定方法及びパケット転送方法
Zayani et al. Tracking topology dynamicity for link prediction in intermittently connected wireless networks
Pan et al. Identify congested links based on enlarged state space
Trees et al. Information Diffusion Backbone
Milian A note on computing the exact probability distribution of the project completion time in a stochastic PERT network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181029

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181116

R150 Certificate of patent or registration of utility model

Ref document number: 6438375

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150