JP7396469B2 - トラフィックモニタリング装置、方法及びプログラム - Google Patents
トラフィックモニタリング装置、方法及びプログラム Download PDFInfo
- Publication number
- JP7396469B2 JP7396469B2 JP2022514890A JP2022514890A JP7396469B2 JP 7396469 B2 JP7396469 B2 JP 7396469B2 JP 2022514890 A JP2022514890 A JP 2022514890A JP 2022514890 A JP2022514890 A JP 2022514890A JP 7396469 B2 JP7396469 B2 JP 7396469B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- flow
- traffic
- metadata
- flow information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 119
- 238000012806 monitoring device Methods 0.000 title claims description 18
- 230000015654 memory Effects 0.000 claims description 148
- 238000005259 measurement Methods 0.000 claims description 59
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/70—Routing based on monitoring results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
- H04L49/9089—Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本開示は、単位時間当たりの多量なトラフィックに対するIPフローの計測を高速に処理するための技術である。
IP(Internet Protocol)ネットワークにおいてトラフィック計測は日々の管理、運用、課金に必要な技術であるとともに設備計画、収容設計、トラフィックエンジニアリングやセキュリティ対応に必要な情報を提供する重要なタスクである。IPフロー計測は代表的なIPトラフィック計測のひとつである。フロー毎のパケット数やバイト数などの統計量を計測する。例えば、NetFlow、sFlow、ipfixなどである。ここでフローとは観測の粒度でありIPアドレスペア(送信元アドレス、宛先アドレス)であったり、IP5タプル(送信元IPアドレス、宛先IPアドレス、プロトコル番号、送信元ポート、宛先ポート)などである。IP5タプルは、5Tupleと表記することがある。
IPフロー計測では受信パケット毎にパケットがどのフローに属するかを識別し対応するカウンタを更新する。高速なトラフィックに対しては、このカウンタ更新も高速に処理する必要がある。
Pat Jr, Morin. "Open Data Structures." AU Press Athabasca University, 2013. http://www.aupress.ca/index.php/books/120226
IPネットワークのトラフィック計測である、IPフローの計測では、一定時間間隔でフローごとの統計量を計測し、メモリ上のハッシュテーブルに記録した後にハードディスクに格納し、次の一定時間間隔のフローを計測することを繰り返して行う。パケットを受信してハッシュテーブルにフロー情報を記録するためには、メモリ上のハッシュテーブルの記録対象となる領域を検索する必要がある。この検索の際のCPU(Central Processing Unit)とメモリの間のデータ転送は、ハッシュテーブルの複数byteの領域単位であるキャッシュラインごとに行われるため、ハッシュテーブルに格納されるデータのメモリ配置およびメモリの占有率によってはデータ転送回数が多くなりIPフローの記録に時間がかかる場合がある。このようなIPフロー計測の処理速度がパケットの到着速度よりも遅い場合にはパケットの記録漏れが発生し、正しいフロー情報が計測できないという問題があった。
本開示は、時系列的に変化する高速なトラヒックに対応したIPフローを計測可能にすることを目的とする。
本開示に係るトラフィックモニタリング装置は、パケット受信部、フローデータ記録部、フローデータ出力部に加えて、過去に計測されたフロー数の時系列データから次の計測区間でのトラフィックの状況を予測するトラフィック特徴量計算部と、予測されたトラフィックの状況からメモリアクセス数が小さくなるメモリ配置方法を選定するフローデータ配置方法決定部と、を備える。
具体的には、本開示に係るトラフィックモニタリング装置は、
ネットワークにおけるトラフィックをモニタリングする装置であって、
ネットワーク内のフローごとに、計測に用いるメタデータ及びフロー情報を記録するメモリを備え、
ネットワーク内を流れるパケットを用いてトラフィックの状況を予測し、
前記メモリにおける前記メタデータ及び前記フロー情報の記録対象領域を、予測したトラフィックの状況に基づいて設定する。
ネットワークにおけるトラフィックをモニタリングする装置であって、
ネットワーク内のフローごとに、計測に用いるメタデータ及びフロー情報を記録するメモリを備え、
ネットワーク内を流れるパケットを用いてトラフィックの状況を予測し、
前記メモリにおける前記メタデータ及び前記フロー情報の記録対象領域を、予測したトラフィックの状況に基づいて設定する。
具体的には、本開示に係るトラフィックモニタリング方法は、
ネットワークにおけるトラフィックをモニタリングするトラフィックモニタリング装置が実行するトラフィックモニタリング方法であって、
前記トラフィックモニタリング装置は、ネットワーク内のフローごとに、計測に用いるメタデータ及びフロー情報を記録するメモリを備え、
ネットワーク内を流れるパケットを用いてトラフィックの状況を予測し、
前記メモリにおける前記メタデータ及び前記フロー情報の記録対象領域を、予測したトラフィックの状況に基づいて設定する。
ネットワークにおけるトラフィックをモニタリングするトラフィックモニタリング装置が実行するトラフィックモニタリング方法であって、
前記トラフィックモニタリング装置は、ネットワーク内のフローごとに、計測に用いるメタデータ及びフロー情報を記録するメモリを備え、
ネットワーク内を流れるパケットを用いてトラフィックの状況を予測し、
前記メモリにおける前記メタデータ及び前記フロー情報の記録対象領域を、予測したトラフィックの状況に基づいて設定する。
具体的には、本開示に係るトラフィックモニタリングプログラムは、本開示に係るトラフィックモニタリング装置に備わる各機能部をコンピュータに実現させるためのプログラムであり、本開示に係るトラフィックモニタリング方法に備わる各ステップをコンピュータに実行させるためのプログラムである。
本開示によれば、過去のIPフローの履歴に基づいて次の計測区間での最適なメモリ配置を決定してIPフローの計測を行うため、時系列的に変化する高速なトラヒックに対応したIPフロー計測を実現することができる。
以下、本開示の実施形態について、図面を参照しながら詳細に説明する。なお、本開示は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本開示は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
(概要)
代表的なIPトラフィック計測であるIPフローの計測を高速トラフィックに対して実現するにはパケット受信毎にカウンタを高速に更新する必要がある。汎用サーバで高速なIPフロー計測の実現には、カウンタ更新処理のメモリアクセス回数の削減が必要である。IPフロー計測で用いるフロー情報を記録するデータ構造においてメモリ配置をトラヒック状況に応じて変更することでメモリアクセス回数を削減する手法を提案する。本開示ではメモリへの記録に際してハッシュテーブルを用いる例を示すが、本開示はカウンタ更新処理を行う任意のメモリに適用可能である。
代表的なIPトラフィック計測であるIPフローの計測を高速トラフィックに対して実現するにはパケット受信毎にカウンタを高速に更新する必要がある。汎用サーバで高速なIPフロー計測の実現には、カウンタ更新処理のメモリアクセス回数の削減が必要である。IPフロー計測で用いるフロー情報を記録するデータ構造においてメモリ配置をトラヒック状況に応じて変更することでメモリアクセス回数を削減する手法を提案する。本開示ではメモリへの記録に際してハッシュテーブルを用いる例を示すが、本開示はカウンタ更新処理を行う任意のメモリに適用可能である。
1.ハッシュテーブル
ハッシュテーブル[例えば非特許文献1参照。]は高速なIPフロー計測に用いられるデータ構造である。ハッシュテーブルは、key及びvalueのペアを効率良く保存、更新するデータ構造を有する。ハッシュテーブルは、フローをkeyに、カウンタをvalueとしてハッシュテーブルを利用することでフロー情報を記録、更新する。ハッシュテーブルは、検索、挿入、更新がO(1)で実現できるため高速な記録、更新ができる。ハッシュテーブルの処理を高速化することでIPフローの計測が高速に実現できる。
ハッシュテーブル[例えば非特許文献1参照。]は高速なIPフロー計測に用いられるデータ構造である。ハッシュテーブルは、key及びvalueのペアを効率良く保存、更新するデータ構造を有する。ハッシュテーブルは、フローをkeyに、カウンタをvalueとしてハッシュテーブルを利用することでフロー情報を記録、更新する。ハッシュテーブルは、検索、挿入、更新がO(1)で実現できるため高速な記録、更新ができる。ハッシュテーブルの処理を高速化することでIPフローの計測が高速に実現できる。
ハッシュテーブルはkeyのハッシュ値を計算し、対応するメモリアドレスにvalueを保存する(図1)。ハッシュ値はハッシュ関数によって計算される。ハッシュ関数は入力を固定長の0-1ビット列に変換する関数である。ハッシュ関数の例は、Cyclic redundancy check(CRC)、SHA-1、MurmurHash などである。
図1はIPv4で定められる送信元アドレスと宛先アドレスのペアをキーにもつハッシュテーブルの例である。異なるkeyが同じハッシュ値をもつこと(ハッシュ値の衝突)があるので、ハッシュテーブルにはvalueとともにkeyを保存しておく。
ハッシュ値の衝突が発生した場合の対処方法はおおきく2つ存在する。具体的には、オープンアドレス法及びチェイン法である。チェイン法は、各ハッシュ値に対応したリストを用意しておき、ハッシュ衝突の際にはそのリストに追加する。
オープンアドレス法は、各ハッシュ値に固定長配列を用意し、ここに直接keyとvalueのペアを格納する。ハッシュ衝突の際には配列の中の空き要素に格納する。空き要素がない場合の処理は様々な手法が提案されているが、線形探索によるオープンアドレス法では、次のハッシュ値に対応する配列の空き要素に格納する(図2)。もし、ここにも空き要素がない場合はさらに次のハッシュ値に対応する配列を調べる。
このように隣接する配列から空き要素を線形に探索していく。
このように隣接する配列から空き要素を線形に探索していく。
図2では要素Aと要素Bが同じハッシュ値をもちハッシュ値の衝突が発生している要素Bの本来の格納場所には既に要素Aが格納されている。次のハッシュ値(2進数表記では10)に対応する場所に要素Bが格納されている。
2.課題
高速なIPフロー計測を実現するためには、使用可能なメモリ量に限りがあるなかで、キャッシュラインを考慮したメモリアクセス回数が小さくなるようなハッシュテーブルが必要である。
高速なIPフロー計測を実現するためには、使用可能なメモリ量に限りがあるなかで、キャッシュラインを考慮したメモリアクセス回数が小さくなるようなハッシュテーブルが必要である。
高速なIPフロー計測を実現するためには、ハッシュテーブルにおける性能ボトルネックであるメモリアクセスを削減する必要がある。これはCPUの処理速度に比べてメモリアクセス速度が相対的に遅いためである。汎用サーバは階層的なメモリ構成となっており、複数のキャッシュメモリとメインメモリから構成されている。キャッシュメモリは容量が小さいが高速、メインメモリは容量が大きいが低速である。
本開示では以下の状況を想定する。
・ハッシュテーブルのkeyとvalueのペアはいずれもキャッシュメモリ上に存在せず、それ以外のデータは全てキャッシュメモリ上に存在する。
・大量のIPフローを計測する。
・キャッシュメモリの容量が小さく、大量のIPフローにそれぞれに対応する大量のkeyとvalueペアは大部分がキャッシュメモリに格納することができない。
・メインメモリへのアクセスをメモリアクセス回数とする。
・キャッシュメモリは高速にアクセスできるためメインメモリアクセスが処理時間の大部分を占める。
・ハッシュテーブルのkeyとvalueのペアはいずれもキャッシュメモリ上に存在せず、それ以外のデータは全てキャッシュメモリ上に存在する。
・大量のIPフローを計測する。
・キャッシュメモリの容量が小さく、大量のIPフローにそれぞれに対応する大量のkeyとvalueペアは大部分がキャッシュメモリに格納することができない。
・メインメモリへのアクセスをメモリアクセス回数とする。
・キャッシュメモリは高速にアクセスできるためメインメモリアクセスが処理時間の大部分を占める。
ハッシュ値の衝突がなければカウンタ更新はひとつのkeyとvalueのペアを取得するためのメモリアクセスで十分である。例えば、挿入時ハッシュ値が衝突しなければ、ハッシュ値に対応するkeyとvalueのペアは空であるから、そのペアに記録して挿入処理は終了である。
一方でハッシュ値が衝突した場合は空のkeyとvalueペアを探すために、2つ以上のkeyとvalueペアにアクセスする必要がある。例えば、図2では要素Aと要素Bが同じハッシュ値1をもち、ハッシュ値が衝突している。要素Aが挿入された後に要素Bを挿入する際はハッシュ値1に対応するkeyとvalueのペアとその隣りのハッシュ値2に対応するkeyとvalueのペアに2つにアクセスする必要がある。
したがって、ハッシュ値の衝突回数や衝突時の処理に必要なメモリアクセスを削減する必要がある。
メモリアクセスを削減する際には次の2点を考慮する必要がある。
(1)使用可能なメモリには限りがある。
ハッシュ空間のサイズが大きいほどハッシュ値の衝突確率は小さくなるが使用可能なメモリ量には限界があるためハッシュ空間を際限なく大きくすることはできない。
(1)使用可能なメモリには限りがある。
ハッシュ空間のサイズが大きいほどハッシュ値の衝突確率は小さくなるが使用可能なメモリ量には限界があるためハッシュ空間を際限なく大きくすることはできない。
(2)メモリアクセス回数はByte数から計算するのではなく、アクセスしたキャッシュラインの数となる。
CPUとメモリの間のデータ転送は1bit単位ではなく複数byteからなる領域単位で実行される(図3)。この単位はキャッシュラインまたはキャッシュブロックと呼ばれる。汎用サーバで利用されるIntel(登録商標)やAMD(Advanced Micro Devices)(登録商標)のCPUでは、この領域のサイズは64byteである。
CPUとメモリの間のデータ転送は1bit単位ではなく複数byteからなる領域単位で実行される(図3)。この単位はキャッシュラインまたはキャッシュブロックと呼ばれる。汎用サーバで利用されるIntel(登録商標)やAMD(Advanced Micro Devices)(登録商標)のCPUでは、この領域のサイズは64byteである。
例えばデータが2つのキャッシュラインにまたがり格納されていた場合、そのデータを取得するのに必要なメモリアクセス回数は2回となる。図3はデータAが3行目のキャッシュライン、データBが3行目と4行目のキャッシュラインにまたがって格納されている。また、データC,Dが5行目のキャッシュラインに格納されている。データAにアクセスするにはキャッシュラインの転送は1回で十分だが、データBにアクセスするにはキャッシュラインの転送が2回必要となる。データCとデータDの両方にアクセスする場合でもキャッシュラインの転送は1回で十分となる。
そこで、使用可能なメモリ量のなかでハッシュ衝突によるメモリアクセス回数を削減するようにkeyとvalueのペアを配置する手法が必要となる。
3.開発技術の具体的な説明
開発技術はIPフロー計測で用いるフロー情報を記録するハッシュテーブルのメモリ配置をトラヒック状況に応じて変更することでメモリアクセス回数を削減する。トラフィックの状況は、メモリへの負荷に影響する任意の情報を考慮することが可能である。例えば、フロー情報を取得したパケットの数や観測した相異なるフローの数が例示できる。このほか、パケット長などのパケットから取得可能な任意の情報を用いてもよい。
開発技術はIPフロー計測で用いるフロー情報を記録するハッシュテーブルのメモリ配置をトラヒック状況に応じて変更することでメモリアクセス回数を削減する。トラフィックの状況は、メモリへの負荷に影響する任意の情報を考慮することが可能である。例えば、フロー情報を取得したパケットの数や観測した相異なるフローの数が例示できる。このほか、パケット長などのパケットから取得可能な任意の情報を用いてもよい。
開発技術を説明するためにまず、ハッシュテーブルのデータのメモリ配置により、メモリアクセス回数、つまりキャッシュラインのアクセス回数が変化することを説明する。次に開発技術の全体像を説明する。最後に具体例として次のフロー毎にIPトラフィックを計測する場合のメモリ配置の変更方法について説明する。
・IPv4 5Tuple
・IPv6 Pair
・IPv6 5tuple
・IPv4 5Tuple
・IPv6 Pair
・IPv6 5tuple
ここで、IPv4 5Tupleは、IPv4で定められる5Tupleである。IPv4での送信元IPアドレスを「IPv4 src」と表記し、IPv4での宛先IPアドレスを「IPv4 dst」と表記し、送信元ポート番号を「Source port」と表記し、宛先ポート番号を「Destination port」と表記することがある。IPv6 5Tupleについても同様である。IPv6 Pairは、IPv6で定められる送信元アドレスと宛先アドレスのペアである。
3.1 メモリ配置方法とメモリアクセス回数
ハッシュテーブルのデータのメモリ配置により、メモリアクセス回数、つまりキャッシュラインのアクセス回数が変化することを説明する。IPv4 5Tuple毎のパケット数を計測するIPフロー計測を考える(図4)。
ハッシュテーブルのデータのメモリ配置により、メモリアクセス回数、つまりキャッシュラインのアクセス回数が変化することを説明する。IPv4 5Tuple毎のパケット数を計測するIPフロー計測を考える(図4)。
ハッシュテーブルのkeyとvalueは次のようになる。keyはフロー情報すなわちIPv4 5Tupleであり、16Byteの領域に記録する。valueはパケット数、ここでは64bit(8Byte)整数に記録するとする。このときkeyとvalueのサイズ合計は24Byteである。
少なくとも、次の2通りのデータの配置方法がある。
第1の配置方法:キャッシュラインアクセスを小さくするためのキャッシュライン単位の配置方法(図5)
第2の配置方法:メモリ領域を有効活用するために使用可能なメモリ領域に敷き詰める配置方法(図6)
第1の配置方法:キャッシュラインアクセスを小さくするためのキャッシュライン単位の配置方法(図5)
第2の配置方法:メモリ領域を有効活用するために使用可能なメモリ領域に敷き詰める配置方法(図6)
3.1.1 第1の配置方法の説明(図5)
64byteのキャッシュラインに対し、keyとvalueのサイズ合計は24Byteである。そこで、キャッシュラインアクセスを小さくするためのキャッシュライン単位の配置方法では、各キャッシュラインの先頭領域から2つの要素を配置する。これにより、どの要素も一つのキャッシュラインにアクセスすることで要素へアクセスできる。
各キャッシュラインの後方領域が未使用となっている。
使用可能なメモリ量がキャッシュラインに換算してN行の場合、ハッシュ空間は最大Nで、格納可能な要素数は最大2Nとなる。
64byteのキャッシュラインに対し、keyとvalueのサイズ合計は24Byteである。そこで、キャッシュラインアクセスを小さくするためのキャッシュライン単位の配置方法では、各キャッシュラインの先頭領域から2つの要素を配置する。これにより、どの要素も一つのキャッシュラインにアクセスすることで要素へアクセスできる。
各キャッシュラインの後方領域が未使用となっている。
使用可能なメモリ量がキャッシュラインに換算してN行の場合、ハッシュ空間は最大Nで、格納可能な要素数は最大2Nとなる。
3.1.2 第2の配置方法の説明(図6)
使用可能なメモリ領域に敷き詰める配置方法では、使用可能なメモリ領域に隙間なく要素を配置する。各キャッシュラインに未使用となっている領域はない。
複数のキャッシュラインにまたがって配置されている要素が存在するため、要素アクセスに複数回のメモリアクセスが必要となる場合がある。
使用可能なメモリ量がキャッシュラインに換算してN行の場合、ハッシュ空間は最大N/3で、格納可能な要素数は最大8N/3となる。
使用可能なメモリ領域に敷き詰める配置方法では、使用可能なメモリ領域に隙間なく要素を配置する。各キャッシュラインに未使用となっている領域はない。
複数のキャッシュラインにまたがって配置されている要素が存在するため、要素アクセスに複数回のメモリアクセスが必要となる場合がある。
使用可能なメモリ量がキャッシュラインに換算してN行の場合、ハッシュ空間は最大N/3で、格納可能な要素数は最大8N/3となる。
3.1.3 メモリ配置とアクセス回数
例えば3番目の要素にアクセスするには、
第1の配置方法では2行目のキャッシュラインにのみアクセスすれば良い(図5)が、
第2の配置方法では1行目と2行目のキャッシュラインにアクセスする必要がある(図6)。
また、
ハッシュ空間は第1の配置方法が第2の配置方法より大きく、
格納できる要素数では第2の配置方法が第1の配置方法より大きい。
これらの理由から、同じ要素集合を挿入した場合でもメモリアクセス回数が異なる。定量的な差については後述する。
例えば3番目の要素にアクセスするには、
第1の配置方法では2行目のキャッシュラインにのみアクセスすれば良い(図5)が、
第2の配置方法では1行目と2行目のキャッシュラインにアクセスする必要がある(図6)。
また、
ハッシュ空間は第1の配置方法が第2の配置方法より大きく、
格納できる要素数では第2の配置方法が第1の配置方法より大きい。
これらの理由から、同じ要素集合を挿入した場合でもメモリアクセス回数が異なる。定量的な差については後述する。
3.2 開発技術の全体像
通常のIPフロー計測器が、パケットを受信し、フローデータを記録し、フローデータを出力するのに対して、本開示はトラヒック特徴量計算部とフローデータ配置決定部をさらに備える(図7)。まず、通常のIPフロー計測器の動作について説明し、その差分として開発技術の動作を説明する。
通常のIPフロー計測器が、パケットを受信し、フローデータを記録し、フローデータを出力するのに対して、本開示はトラヒック特徴量計算部とフローデータ配置決定部をさらに備える(図7)。まず、通常のIPフロー計測器の動作について説明し、その差分として開発技術の動作を説明する。
3.2.1 従来技術の構成及び動作
通常のIPフロー計測器は、パケット受信部11、フローデータ記録部12、フローデータ出力部13から構成される。すなわち、図7においてトラフィック特徴量計算部14とフローデータ配置決定部15を備えない構成に相当する。ここでIPフロー計測とは一定時間間隔でフロー毎の統計量を計測、記録することとする。例えばIPv4ペア毎の通信量(バイト数)を計測し、10秒毎に直近10秒間に計測されたフロー情報を記録することなどである。また、フロー種別や統計量、時間間隔はネットワーク運用者が、管理するネットワークの特性、状況やそのとき必要としている情報などから決定する。
通常のIPフロー計測器は、パケット受信部11、フローデータ記録部12、フローデータ出力部13から構成される。すなわち、図7においてトラフィック特徴量計算部14とフローデータ配置決定部15を備えない構成に相当する。ここでIPフロー計測とは一定時間間隔でフロー毎の統計量を計測、記録することとする。例えばIPv4ペア毎の通信量(バイト数)を計測し、10秒毎に直近10秒間に計測されたフロー情報を記録することなどである。また、フロー種別や統計量、時間間隔はネットワーク運用者が、管理するネットワークの特性、状況やそのとき必要としている情報などから決定する。
パケット受信部11は、外部からパケットを受信する。そして受信したパケット毎にパケットヘッダを読み、フロー情報とパケットのメタデータを抽出する。抽出したフロー情報とメタデータをフローデータ記録部12に入力する。
ここで、フロー情報は、パケットのフローを表す情報であり、パケットヘッダから取得可能な任意の情報を含む。フロー情報は、計測対象のフロー種別に応じて異なる。例えば、フロー種別がIPv4ペアである場合、フロー情報はIPv4の送信元アドレス及び宛先アドレスである。
メタデータは、計測に用いるデータであり、パケットヘッダから取得可能な1以上の任意のデータを含む。例えば、フロー毎のデータ量を計測する場合、メタデータはパケットの長さである。
フローデータ記録部12は、フロー情報とメタデータを受け取り、ハッシュテーブルからフローに対応するカウンタを更新する。具体的にはフローに対応するカウンタを検索し、存在する場合は対応するカウンタを更新し、存在しない場合はエントリを作成し、カウンタ値をメタデータに基づき設定する。例えばカウンタが通信量(バイト数)である場合、エントリが存在するときは以前のカウンタ値に現在のパケット長を加算し、エントリが存在しない場合はエントリを作成し、カウンタ値を受信したパケット長の値に設定する。このカウンタ更新処理速度がパケット到着速度よりも遅いとパケットの記録漏れが発生するため正しいフロー情報を計測できない。
フローデータ出力部13は一定時間間隔でハッシュテーブルの全てのフローのエントリを読み取り、その内容を外部のデータベースやローカルの不揮発ディスクに書き込み永続化させる。これはハッシュテーブルが揮発メモリ上に保存されており、IPフローを計測するアプリケーションが終了すると不揮発メモリ上から削除されるためである。ハッシュテーブルが揮発メモリ上に保存されている理由は揮発メモリのほうが不揮発メモリに比べ高速だからである(例えばメインメモリとハードディスクのアクセス速度など)。フローデータ出力部13はフローデータを永続化後、ハッシュテーブルの全てのエントリをゼロクリア(初期化)し、次の計測に備える。
3.2.2 本開示技術の構成及び動作
図7に、本開示に係るシステム構成の一例を示す。IPフロー計測器10は、本開示に係るトラフィックモニタリング装置として機能し、パケット受信部11、フローデータ記録部12、フローデータ出力部13、トラフィック特徴量計算部14、フローデータ配置決定部15を備える。本開示の装置はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
図7に、本開示に係るシステム構成の一例を示す。IPフロー計測器10は、本開示に係るトラフィックモニタリング装置として機能し、パケット受信部11、フローデータ記録部12、フローデータ出力部13、トラフィック特徴量計算部14、フローデータ配置決定部15を備える。本開示の装置はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
従来の方法ではハッシュテーブル上でのエントリ配置方法は一通りであったが、本開示のIPフロー計測器10は、トラフィック状況に応じて配置方法を変える。トラフィック特徴量計算部14は、トラフィックの状況を把握する。その結果に従い、フローデータ配置決定部15がハッシュテーブルのエントリ配置方法を決定する。その決定された配置方法に従い、フローデータ記録部12はハッシュテーブル上にエントリを配置する。またフローデータ出力部13も、決定された配置方法に従い、ハッシュテーブルのエントリを読出す。
トラフィック特徴量計算部14における具体的な特徴量の計算方法は次節で説明する。次節ではフローの特徴量としてフロー数を採用し、次の計測間隔でのフロー数を予測し、その数に従いエントリの配置方法を決定している。以下ではIPv6 Pair毎の計測の場合を例として、トラフィック特徴量計算部14及びフローデータ配置方法決定部15の動作について説明する。
トラフィック特徴量計算部14は、それぞれの計測間隔(例えば10秒毎など)でフローデータ出力部13によりハッシュテーブルがリセットされる直前にエントリ数を記録することで、それぞれの計測間隔中に計測されたフロー数のデータを蓄積する。このフロー数の時系列データから次のような典型的な統計的時系列予測手法を用いて、次の計測で出現するフロー数を予測する。予測結果であるフロー数をフローデータ配置決定部15に入力する。
統計的時系列予測手法は、例えば、以下を用いることができる。
・直前の値を利用
・自己回帰モデル (autoregressive model)
・移動平均モデル (moving average model)
・自己回帰移動平均モデル (autoregressive and moving average model)
・自己回帰和分移動平均モデル (autoregressive, integrated and moving average model)
・直前の値を利用
・自己回帰モデル (autoregressive model)
・移動平均モデル (moving average model)
・自己回帰移動平均モデル (autoregressive and moving average model)
・自己回帰和分移動平均モデル (autoregressive, integrated and moving average model)
フローデータ配置決定部15は、予測されるフロー数とUnpackedな配置方法が収容できる最大のフロー数を比較して、図13からメモリアクセス回数が小さくなる配置方法を決定する。Unpackedな配置方法が収容できる最大のフロー数は利用可能なメモリ量から計算できる。
図13により、予測されるフロー数が『Unpackedな配置方法が収容できる最大のフロー数』の4割以下の場合はUnpackedな配置方法を選択し、それ以外の場合は PartialPackedな配置方法を選択する。この選択された配置方法をフローデータ記録部12とフローデータ出力部13に渡す。フローデータ記録部12では配置方法に従いエントリを配置し、フローデータ出力部13でも、同様に配置方法に従いエントリを読み取る。
このようにトラヒックの特徴量にもとづいてハッシュテーブルのフローデータのハッシュテーブル上での配置方法を決定する。これらトラフィック特徴量計算部14及びフローデータ配置決定部15の追加により、トラヒック状況に応じてメモリ配置を変更することでメモリアクセス数を削減する。その他の場合の具体的なデータ配置方法については次節で説明する。
3.3 具体的なデータ配置方法の決定
IPフロー計測におけるメモリ配置の決定方法について説明する。次の3種類のフロー毎に64bit整数に保存できる値(パケット数やバイト数など)を計測する場合について説明する。なお計測結果は一定時間毎に外部に出力し、その際計測データはゼロクリアされるものとする。
・IPv4 5Tuple
・IPv6 Pair
・IPv6 5tuple
IPフロー計測におけるメモリ配置の決定方法について説明する。次の3種類のフロー毎に64bit整数に保存できる値(パケット数やバイト数など)を計測する場合について説明する。なお計測結果は一定時間毎に外部に出力し、その際計測データはゼロクリアされるものとする。
・IPv4 5Tuple
・IPv6 Pair
・IPv6 5tuple
3.3.1 Ipv4 5Tuple毎の計測の場合
まず、3つのデータ配置方法について説明する。次に各配置の定量的なメモリアクセス回数比較について説明する。最後に、以上をふまえてデータ配置の決定方法について説明する。
まず、3つのデータ配置方法について説明する。次に各配置の定量的なメモリアクセス回数比較について説明する。最後に、以上をふまえてデータ配置の決定方法について説明する。
(データ配置方法)
メモリの配置方法として、前述した次の2つの方法に加えて、それらの中間的な方法を加え3つの配置方法について考える。
・第1の配置方法:キャッシュライン単位でのデータ配置(図5)。この場合、フローデータ記録部12は、各フローのフロー情報及びメタデータを、フロー情報ごとに異なるキャッシュラインに配置する。
・第2の配置方法:メモリ領域に敷き詰める配置(図6)。この場合、フローデータ記録部12は、各フローのフロー情報及びメタデータを隙間なく配置する。
・第3の配置方法:第1の配置方法と第2の配置方法の中間的な配置(図8)。この場合、フローデータ記録部12は、2つのキャッシュラインに分離して配置されるフローよりも1つのキャッシュラインに配置されるフローが多くなるように、各フローのフロー情報及びメタデータを配置する。
以降、簡単のため、第1の配置方法をUnpacked、第2の配置方法をPacked、第3の配置方法をPartialPackedと書く。
メモリの配置方法として、前述した次の2つの方法に加えて、それらの中間的な方法を加え3つの配置方法について考える。
・第1の配置方法:キャッシュライン単位でのデータ配置(図5)。この場合、フローデータ記録部12は、各フローのフロー情報及びメタデータを、フロー情報ごとに異なるキャッシュラインに配置する。
・第2の配置方法:メモリ領域に敷き詰める配置(図6)。この場合、フローデータ記録部12は、各フローのフロー情報及びメタデータを隙間なく配置する。
・第3の配置方法:第1の配置方法と第2の配置方法の中間的な配置(図8)。この場合、フローデータ記録部12は、2つのキャッシュラインに分離して配置されるフローよりも1つのキャッシュラインに配置されるフローが多くなるように、各フローのフロー情報及びメタデータを配置する。
以降、簡単のため、第1の配置方法をUnpacked、第2の配置方法をPacked、第3の配置方法をPartialPackedと書く。
(メモリアクセス回数)
図9は利用可能なメモリ領域が1GiB(10243Byte)の場合、つまりキャッシュラインの数に換算すると224行のキャッシュラインが利用可能な場合に相異なる一様ランダムな要素を連続でハッシュテーブルに挿入した際のキャッシュラインの追加アクセス回数である。挿入操作では必ず1回のキャッシュラインにアクセスするため、その1回を引いた値をプロットした。縦軸がキャッシュラインのアクセス回数で横軸は追加した要素数である。追加した要素数はUnpackedなメモリ配置で最大格納できる要素数を1とした割合で表記してある。Unpackedな配置が格納できる要素数が3つの配置方法のなかで最小であるためである。
図9は利用可能なメモリ領域が1GiB(10243Byte)の場合、つまりキャッシュラインの数に換算すると224行のキャッシュラインが利用可能な場合に相異なる一様ランダムな要素を連続でハッシュテーブルに挿入した際のキャッシュラインの追加アクセス回数である。挿入操作では必ず1回のキャッシュラインにアクセスするため、その1回を引いた値をプロットした。縦軸がキャッシュラインのアクセス回数で横軸は追加した要素数である。追加した要素数はUnpackedなメモリ配置で最大格納できる要素数を1とした割合で表記してある。Unpackedな配置が格納できる要素数が3つの配置方法のなかで最小であるためである。
ここで、フロー情報の記録時には、(1)処理すべきパケットのIPに対応する要素がすでに記録されているかどうかの検索と、(2)記録されていない新たなIPの場合にハッシュテーブルの空いている領域を検索して記録する、という2つの処理を行う。そのため、ハッシュテーブルに記録されている要素が比較的少ない場合は(1)の検索を少ないアクセス回数で行えるUnpackedの方が有利である。一方、記録されている要素が多くなり、ハッシュテーブルの占有率が大きくなると、Unpackedでは(1)および(2)の処理においてより多くのキャッシュラインを検索する必要があるため、Packed又はPartial packedの方が検索するライン数が少なくなり有利になる。したがって、処理すべきパケットが増えるほどUnpackedの方がアクセス回数が増える。
図9より挿入する要素数がUnpackedで格納できる最大数の7割以下の場合はUnpackedな配置が、それ以上ではPartialPackedな配置がメモリアクセス数を最小化していることが確認できる。
(データ配置の決定方法)
過去のトラフィック特徴量の履歴から次の計測区間(計測結果出力から次の結果出力までの間)に観測されるフロー数を予測し、その値とUnpackedな配置で格納できる最大数と比較することでメモリアクセス数が最小となる配置を選択する。
過去のトラフィック特徴量の履歴から次の計測区間(計測結果出力から次の結果出力までの間)に観測されるフロー数を予測し、その値とUnpackedな配置で格納できる最大数と比較することでメモリアクセス数が最小となる配置を選択する。
フロー数の予測には一般的な時系列予測が利用でき、例えば次のような方法が使用できる。
・直前の値を利用
・自己回帰モデル(autoregressive model)
・移動平均モデル(moving average model)
・自己回帰移動平均モデル(autoregressive and moving average model)
・自己回帰和分移動平均モデル(autoregressive, integrated and moving average model)
・直前の値を利用
・自己回帰モデル(autoregressive model)
・移動平均モデル(moving average model)
・自己回帰移動平均モデル(autoregressive and moving average model)
・自己回帰和分移動平均モデル(autoregressive, integrated and moving average model)
図9より、予測結果がUnpackedで格納できる最大数の7割以下の場合はUnpackedな配置を利用して、それ以上の場合はPartialPackedな配置を利用する。
3.3.2 IPv6 Pair毎の計測の場合
IPv4 5Tupleと同様に、まず、3つのデータ配置方法について説明する。次に各配置の定量的なメモリアクセス回数比較について説明する。最後に、以上をふまえてデータ配置の決定方法について説明する。
IPv4 5Tupleと同様に、まず、3つのデータ配置方法について説明する。次に各配置の定量的なメモリアクセス回数比較について説明する。最後に、以上をふまえてデータ配置の決定方法について説明する。
(データ配置方法)
メモリの配置方法として、IPv4 5Tupleと同様に次の3つの配置方法について考える。
・第1の配置方法:キャッシュライン単位でのデータ配置、すなわちUnpackedな配置(図10)
・第2の配置方法:メモリ領域に敷き詰める配置、すなわちPackedな配置(図11)
・第3の配置方法:第1の配置方法と第2の配置方法の中間的な配置、すなわちPartialPackedな配置(図12)
メモリの配置方法として、IPv4 5Tupleと同様に次の3つの配置方法について考える。
・第1の配置方法:キャッシュライン単位でのデータ配置、すなわちUnpackedな配置(図10)
・第2の配置方法:メモリ領域に敷き詰める配置、すなわちPackedな配置(図11)
・第3の配置方法:第1の配置方法と第2の配置方法の中間的な配置、すなわちPartialPackedな配置(図12)
(メモリアクセス回数)
図13は利用可能なメモリ領域が1GiB(10243Byte)の場合、つまりキャッシュラインの数に換算すると224行のキャッシュラインが利用可能な場合に相異なる一様ランダムな要素を連続でハッシュテーブルに挿入した際のキャッシュラインの追加アクセス回数である。挿入操作では必ず1回のキャッシュラインにアクセスするため、その1回を引いた値をプロットした。縦軸がキャッシュラインのアクセス回数で横軸は追加した要素数である。追加した要素数はUnpackedなメモリ配置で最大格納できる要素数を1とした割合で表記してある。Unpackedな配置が格納できる要素数が3つの配置方法のなかで最小であるためである。
図13は利用可能なメモリ領域が1GiB(10243Byte)の場合、つまりキャッシュラインの数に換算すると224行のキャッシュラインが利用可能な場合に相異なる一様ランダムな要素を連続でハッシュテーブルに挿入した際のキャッシュラインの追加アクセス回数である。挿入操作では必ず1回のキャッシュラインにアクセスするため、その1回を引いた値をプロットした。縦軸がキャッシュラインのアクセス回数で横軸は追加した要素数である。追加した要素数はUnpackedなメモリ配置で最大格納できる要素数を1とした割合で表記してある。Unpackedな配置が格納できる要素数が3つの配置方法のなかで最小であるためである。
図13より挿入する要素数がUnpackedで格納できる最大数の4割以下の場合はUnpackedな配置が、それ以上ではPartialPackedな配置がメモリアクセス数を最小化していることが確認できる。
(データ配置の決定方法)
過去のトラフィック特徴量の履歴から次の計測区間(計測結果出力から次の結果出力までの間)に観測されるフロー数を予測し、その値とUnpackedな配置で格納できる最大数と比較することでメモリアクセス数が最小となる配置を選択する。
過去のトラフィック特徴量の履歴から次の計測区間(計測結果出力から次の結果出力までの間)に観測されるフロー数を予測し、その値とUnpackedな配置で格納できる最大数と比較することでメモリアクセス数が最小となる配置を選択する。
フロー数の予測には一般的な時系列予測が利用でき、例えば次のような方法が使用できる。
・直前の値を利用
・自己回帰モデル(autoregressive model)
・移動平均モデル(moving average model)
・自己回帰移動平均モデル(autoregressive and moving average model)
・自己回帰和分移動平均モデル(autoregressive, integrated and moving average model)
・直前の値を利用
・自己回帰モデル(autoregressive model)
・移動平均モデル(moving average model)
・自己回帰移動平均モデル(autoregressive and moving average model)
・自己回帰和分移動平均モデル(autoregressive, integrated and moving average model)
図13より、予測結果がUnpackedで格納できる最大数の4割以下の場合はUnpackedな配置を利用して、それ以上の場合はPartialPackedな配置を利用する。
3.3.3 IPv6 5Tuple毎の計測の場合
IPv4 5Tupleと同様に、まず、2つのデータ配置方法について説明する。次に各配置の定量的なメモリアクセス回数比較について説明する。最後に、以上をふまえてデータ配置の決定方法について説明する。
IPv4 5Tupleと同様に、まず、2つのデータ配置方法について説明する。次に各配置の定量的なメモリアクセス回数比較について説明する。最後に、以上をふまえてデータ配置の決定方法について説明する。
(データ配置方法)
メモリの配置方法として次の2つの配置方法について考える。
・第1配置方法:キャッシュライン単位でのデータ配置、すなわちUnpackedな配置(図14)
・第2配置方法:メモリ領域に敷き詰める配置、すなわちPackedな配置(図15)
なお、IPv4 5Tuple及びIPv6 PairでのPartialPackedに相当する配置は、要素のサイズがキャッシュラインサイズに比べ大きいため、そのように配置することができない。
メモリの配置方法として次の2つの配置方法について考える。
・第1配置方法:キャッシュライン単位でのデータ配置、すなわちUnpackedな配置(図14)
・第2配置方法:メモリ領域に敷き詰める配置、すなわちPackedな配置(図15)
なお、IPv4 5Tuple及びIPv6 PairでのPartialPackedに相当する配置は、要素のサイズがキャッシュラインサイズに比べ大きいため、そのように配置することができない。
(メモリアクセス回数)
図16は利用可能なメモリ領域が3GiB(3×10243Byte)の場合、つまりキャッシュラインの数に換算すると3×224行のキャッシュラインが利用可能な場合に相異なる一様ランダムな要素を連続でハッシュテーブルに挿入した際のキャッシュラインの追加アクセス回数である。挿入操作では必ず1回のキャッシュラインにアクセスするため、その1回を引いた値をプロットした。縦軸がキャッシュラインのアクセス回数で横軸は追加した要素数である。追加した要素数はUnpackedなメモリ配置で最大格納できる要素数を1とした割合で表記してある。Unpackedな配置が格納できる要素数が2つの配置方法のなかで最小であるためである。
図16は利用可能なメモリ領域が3GiB(3×10243Byte)の場合、つまりキャッシュラインの数に換算すると3×224行のキャッシュラインが利用可能な場合に相異なる一様ランダムな要素を連続でハッシュテーブルに挿入した際のキャッシュラインの追加アクセス回数である。挿入操作では必ず1回のキャッシュラインにアクセスするため、その1回を引いた値をプロットした。縦軸がキャッシュラインのアクセス回数で横軸は追加した要素数である。追加した要素数はUnpackedなメモリ配置で最大格納できる要素数を1とした割合で表記してある。Unpackedな配置が格納できる要素数が2つの配置方法のなかで最小であるためである。
図16より挿入する要素数がUnpackedで格納できる最大数の4.5割以下の場合はUnpackedな配置が、それ以上ではPackedな配置がメモリアクセス数を最小化していることが確認できる。
(データ配置の決定方法)
過去のトラフィック特徴量の履歴から次の計測区間(計測結果出力から次の結果出力までの間)に観測されるフロー数を予測し、その値とUnpackedな配置で格納できる最大数と比較することでメモリアクセス数が最小となる配置を選択する。
過去のトラフィック特徴量の履歴から次の計測区間(計測結果出力から次の結果出力までの間)に観測されるフロー数を予測し、その値とUnpackedな配置で格納できる最大数と比較することでメモリアクセス数が最小となる配置を選択する。
フロー数の予測には一般的な時系列予測が利用でき、例えば次のような方法が使用できる。
・直前の値を利用
・自己回帰モデル(autoregressive model)
・移動平均モデル(moving average model)
・自己回帰移動平均モデル(autoregressive and moving average model)
・自己回帰和分移動平均モデル(autoregressive, integrated and moving average model)
・直前の値を利用
・自己回帰モデル(autoregressive model)
・移動平均モデル(moving average model)
・自己回帰移動平均モデル(autoregressive and moving average model)
・自己回帰和分移動平均モデル(autoregressive, integrated and moving average model)
図16より、予測結果がUnpackedで格納できる最大数の4.5割以下の場合はUnpackedな配置を利用して、それ以上の場合はPackedな配置を利用する。
4.本開示技術によって生じる効果
代表的なIPトラフィック計測であるIPフローの計測を高速トラフィックに対して実現するにはパケット受信毎にカウンタを高速に更新する必要がある。本開示技術により、カウンタ更新処理中のメモリアクセス回数が削減され、高速に処理が完了するため高速なトラフィックに対してもIPフロー計測が実現できる。
代表的なIPトラフィック計測であるIPフローの計測を高速トラフィックに対して実現するにはパケット受信毎にカウンタを高速に更新する必要がある。本開示技術により、カウンタ更新処理中のメモリアクセス回数が削減され、高速に処理が完了するため高速なトラフィックに対してもIPフロー計測が実現できる。
(発明のポイント)
汎用サーバで高速なIPフロー計測を実現には、カウンタ更新処理のメモリアクセス回数を削減が必要である。これはCPUでの演算速度に比べメモリアクセス速度が相対的に遅いためである。フロー情報及びメタデータの配置方法には自由度があり、その配置方法と格納する要素数によりメモリアクセス回数が異なる。到着するフロー数を予測し、メモリ配置方法を変更することでメモリアクセス回数を削減することができる。
汎用サーバで高速なIPフロー計測を実現には、カウンタ更新処理のメモリアクセス回数を削減が必要である。これはCPUでの演算速度に比べメモリアクセス速度が相対的に遅いためである。フロー情報及びメタデータの配置方法には自由度があり、その配置方法と格納する要素数によりメモリアクセス回数が異なる。到着するフロー数を予測し、メモリ配置方法を変更することでメモリアクセス回数を削減することができる。
(付記1)
受信したパケットからフロー情報とメタデータを抽出するパケット受信部と、
フロー情報からメモリのハッシュテーブルの記録対象領域を検索してフロー情報とメタデータを記録するフローデータ記録部と、
一定時間間隔でメモリのハッシュテーブルのすべてのエントリを読み取り、外部の記録媒体に書き込み永続化させるとともにメモリのハッシュテーブルを初期化するフローデータ出力部と、
過去に計測されたフロー数の時系列データから次の計測区間でのフロー数を予測するトラヒック特徴量計算部と、
フロー種別と予測された次の計測区間のフロー数からメモリアクセス数が最小となるメモリ配置方法を選定するフローデータ配置方法決定部と、
を備え、
フローデータ記録部とフローデータ出力部は、フローデータ配置方法決定部が選定したメモリ配置方法に従い機能することを特徴とするトラフィックモニタリング装置。
受信したパケットからフロー情報とメタデータを抽出するパケット受信部と、
フロー情報からメモリのハッシュテーブルの記録対象領域を検索してフロー情報とメタデータを記録するフローデータ記録部と、
一定時間間隔でメモリのハッシュテーブルのすべてのエントリを読み取り、外部の記録媒体に書き込み永続化させるとともにメモリのハッシュテーブルを初期化するフローデータ出力部と、
過去に計測されたフロー数の時系列データから次の計測区間でのフロー数を予測するトラヒック特徴量計算部と、
フロー種別と予測された次の計測区間のフロー数からメモリアクセス数が最小となるメモリ配置方法を選定するフローデータ配置方法決定部と、
を備え、
フローデータ記録部とフローデータ出力部は、フローデータ配置方法決定部が選定したメモリ配置方法に従い機能することを特徴とするトラフィックモニタリング装置。
(付記2)
パケット受信部が、受信したパケットからフロー情報とメタデータを抽出し、
フローデータ記録部が、フロー情報からメモリのハッシュテーブルの記録対象領域を検索してフロー情報とメタデータを記録し、
フローデータ出力部が、一定時間間隔でメモリのハッシュテーブルのすべてのエントリを読み取り、外部の記録媒体に書き込み永続化させるとともにメモリのハッシュテーブルを初期化するトラフィックモニタリング方法であって、
トラヒック特徴量計算部が、過去に計測されたフロー数の時系列データから次の計測区間でのフロー数を予測し、
フローデータ配置方法決定部が、フロー種別と予測された次の計測区間のフロー数からメモリアクセス数が最小となるメモリ配置方法を選定し、
前記フローデータ記録部及び前記フローデータ出力部は、前記フローデータ配置方法決定部が選定したメモリ配置方法に従い機能することを特徴とするトラフィックモニタリング方法。
パケット受信部が、受信したパケットからフロー情報とメタデータを抽出し、
フローデータ記録部が、フロー情報からメモリのハッシュテーブルの記録対象領域を検索してフロー情報とメタデータを記録し、
フローデータ出力部が、一定時間間隔でメモリのハッシュテーブルのすべてのエントリを読み取り、外部の記録媒体に書き込み永続化させるとともにメモリのハッシュテーブルを初期化するトラフィックモニタリング方法であって、
トラヒック特徴量計算部が、過去に計測されたフロー数の時系列データから次の計測区間でのフロー数を予測し、
フローデータ配置方法決定部が、フロー種別と予測された次の計測区間のフロー数からメモリアクセス数が最小となるメモリ配置方法を選定し、
前記フローデータ記録部及び前記フローデータ出力部は、前記フローデータ配置方法決定部が選定したメモリ配置方法に従い機能することを特徴とするトラフィックモニタリング方法。
(付記3)
パケット受信部が、受信したパケットからフロー情報とメタデータを抽出し、
フローデータ記録部が、フロー情報からメモリのハッシュテーブルの記録対象領域を検索してフロー情報とメタデータを記録し、
フローデータ出力部が、一定時間間隔でメモリのハッシュテーブルのすべてのエントリを読み取り、外部の記録媒体に書き込み永続化させるとともにメモリのハッシュテーブルを初期化する、
トラフィックモニタリング装置としてコンピュータを機能させるためのトラフィックモニタリングプログラムであって、
トラヒック特徴量計算部が、過去に計測されたフロー数の時系列データから次の計測区間でのフロー数を予測し、
フローデータ配置方法決定部が、フロー種別と予測された次の計測区間のフロー数からメモリアクセス数が最小となるメモリ配置方法を選定し、
前記フローデータ記録部及び前記フローデータ出力部は、前記フローデータ配置方法決定部が選定したメモリ配置方法に従い機能する、
各ステップをコンピュータに実行させることを特徴とするトラフィックモニタリングプログラム。
パケット受信部が、受信したパケットからフロー情報とメタデータを抽出し、
フローデータ記録部が、フロー情報からメモリのハッシュテーブルの記録対象領域を検索してフロー情報とメタデータを記録し、
フローデータ出力部が、一定時間間隔でメモリのハッシュテーブルのすべてのエントリを読み取り、外部の記録媒体に書き込み永続化させるとともにメモリのハッシュテーブルを初期化する、
トラフィックモニタリング装置としてコンピュータを機能させるためのトラフィックモニタリングプログラムであって、
トラヒック特徴量計算部が、過去に計測されたフロー数の時系列データから次の計測区間でのフロー数を予測し、
フローデータ配置方法決定部が、フロー種別と予測された次の計測区間のフロー数からメモリアクセス数が最小となるメモリ配置方法を選定し、
前記フローデータ記録部及び前記フローデータ出力部は、前記フローデータ配置方法決定部が選定したメモリ配置方法に従い機能する、
各ステップをコンピュータに実行させることを特徴とするトラフィックモニタリングプログラム。
本開示は情報通信産業に適用することができる。
10:トラフィックモニタリング装置
11:パケット受信部
12:フローデータ記録部
13:フローデータ出力部
14:トラフィック特徴量計算部
15:フローデータ配置決定部
11:パケット受信部
12:フローデータ記録部
13:フローデータ出力部
14:トラフィック特徴量計算部
15:フローデータ配置決定部
Claims (6)
- ネットワークにおけるトラフィックをモニタリングする装置であって、
ネットワーク内のフローごとに、計測に用いるメタデータ及びフロー情報を記録するメモリを備え、
ネットワーク内を流れるパケットを用いてトラフィックの状況を予測し、
前記メモリにおける前記メタデータ及び前記フロー情報の記録対象領域を、予測したトラフィックの状況に基づいて設定する、
トラフィックモニタリング装置。 - パケットを受信し、受信したパケットから前記メタデータ及び前記フロー情報を抽出するパケット受信部と、
前記フロー情報から前記メモリの記録対象領域を検索し、検索した記録対象領域に前記メタデータ及び前記フロー情報を記録するフローデータ記録部と、
前記メモリに記録されている前記メタデータ及び前記フロー情報を外部に出力し、前記メモリに記録されている前記メタデータ及び前記フロー情報を初期化するフローデータ出力部と、
前記パケット受信部の受信したパケットから取得可能な情報を用いて、未来のトラフィックの状況を予測するトラフィック特徴量計算部と、
前記メモリにおける前記記録対象領域を、前記トラフィック特徴量計算部の予測したトラフィックの状況に基づいて設定するフローデータ配置方法決定部と、
を備え、
前記フローデータ記録部は、前記フローデータ配置方法決定部の設定に従い、フロー情報から前記メモリの記録対象領域を検索し、
前記フローデータ出力部は、前記フローデータ配置方法決定部の設定に従い、前記メモリに記録されている前記メタデータ及び前記フロー情報を読み出す、
請求項1に記載のトラフィックモニタリング装置。 - 前記メモリの記録対象領域は、キャッシュメモリ上に構築されているハッシュテーブルであり、
前記フローデータ配置方法決定部は、
(i)前記メタデータ及び前記フロー情報を、フローごとに異なるキャッシュラインに配置する第1の配置方法、
(ii)前記メタデータ及び前記フロー情報を、各キャッシュラインに隙間なく敷き詰める第2の配置方法、
(iii)前記メタデータ及び前記フロー情報を、2つのキャッシュラインに分離して配置されるフローよりも1つのキャッシュラインに配置されるフローが多くなるように配置する第3の配置方法、
のいずれかのなかから、キャッシュラインのアクセス回数が最小になるものを選択する、
請求項2に記載のトラフィックモニタリング装置。 - ネットワークにおけるトラフィックをモニタリングするトラフィックモニタリング装置が実行するトラフィックモニタリング方法であって、
前記トラフィックモニタリング装置は、ネットワーク内のフローごとに、計測に用いるメタデータ及びフロー情報を記録するメモリを備え、
ネットワーク内を流れるパケットを用いてトラフィックの状況を予測し、
前記メモリにおける前記メタデータ及び前記フロー情報の記録対象領域を、予測したトラフィックの状況に基づいて設定する、
トラフィックモニタリング方法。 - 前記トラフィックモニタリング装置は、
一定時間間隔で、前記メモリに記録されている前記メタデータ及び前記フロー情報を外部に出力し、前記メモリに記録されている前記メタデータ及び前記フロー情報を初期化し、
前記メモリに記録されている前記メタデータ及び前記フロー情報の初期化を契機に、前記メモリにおける前記メタデータ及び前記フロー情報の記録対象領域を、予測したトラフィックの状況に基づいて設定する、
請求項4に記載のトラフィックモニタリング方法。 - ネットワークにおけるトラフィックをモニタリングするトラフィックモニタリング装置が実行するトラフィックモニタリングプログラムであって、
前記トラフィックモニタリング装置は、ネットワーク内のフローごとに、計測に用いるメタデータ及びフロー情報を記録するメモリを備え、
ネットワーク内を流れるパケットを用いてトラフィックの状況を予測し、
前記メモリにおける前記メタデータ及び前記フロー情報の記録対象領域を、予測したトラフィックの状況に基づいて設定する、
各ステップを前記トラフィックモニタリング装置に実行させるためのトラフィックモニタリングプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/016372 WO2021210056A1 (ja) | 2020-04-14 | 2020-04-14 | トラフィックモニタリング装置、方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2021210056A1 JPWO2021210056A1 (ja) | 2021-10-21 |
JP7396469B2 true JP7396469B2 (ja) | 2023-12-12 |
Family
ID=78085064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022514890A Active JP7396469B2 (ja) | 2020-04-14 | 2020-04-14 | トラフィックモニタリング装置、方法及びプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11924097B2 (ja) |
EP (1) | EP4138345A4 (ja) |
JP (1) | JP7396469B2 (ja) |
WO (1) | WO2021210056A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013207748A (ja) | 2012-03-29 | 2013-10-07 | Fujitsu Ltd | ネットワークシステム、及びノード装置 |
US20140153571A1 (en) | 2012-11-30 | 2014-06-05 | Netronome Systems, Inc. | Flow key lookup involving multiple simultaneous cam operations to identify hash values in a hash bucket |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4392294B2 (ja) * | 2004-06-15 | 2009-12-24 | 株式会社日立製作所 | 通信統計収集装置 |
JP5051061B2 (ja) * | 2008-08-20 | 2012-10-17 | 富士通株式会社 | 情報検索装置 |
US20110289112A1 (en) * | 2009-01-26 | 2011-11-24 | Junpei Kamimura | Database system, database management method, database structure, and storage medium |
US9098423B2 (en) * | 2011-10-05 | 2015-08-04 | Taejin Info Tech Co., Ltd. | Cross-boundary hybrid and dynamic storage and memory context-aware cache system |
CN105553695B (zh) * | 2015-12-08 | 2018-08-24 | 南阳理工学院 | 一种基于两级双向哈希链表的ip数据流管理方法 |
CN107248939B (zh) * | 2017-05-26 | 2020-07-31 | 中国人民解放军理工大学 | 基于hash存储器的网络流高速关联方法 |
US11178023B2 (en) * | 2017-06-30 | 2021-11-16 | Intel Corporation | Data plane interface network quality of service in multi-tenant data centers |
US20190044869A1 (en) * | 2018-08-17 | 2019-02-07 | Intel Corporation | Technologies for classifying network flows using adaptive virtual routing |
-
2020
- 2020-04-14 US US17/917,296 patent/US11924097B2/en active Active
- 2020-04-14 JP JP2022514890A patent/JP7396469B2/ja active Active
- 2020-04-14 EP EP20931109.1A patent/EP4138345A4/en active Pending
- 2020-04-14 WO PCT/JP2020/016372 patent/WO2021210056A1/ja unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013207748A (ja) | 2012-03-29 | 2013-10-07 | Fujitsu Ltd | ネットワークシステム、及びノード装置 |
US20140153571A1 (en) | 2012-11-30 | 2014-06-05 | Netronome Systems, Inc. | Flow key lookup involving multiple simultaneous cam operations to identify hash values in a hash bucket |
Also Published As
Publication number | Publication date |
---|---|
EP4138345A1 (en) | 2023-02-22 |
WO2021210056A1 (ja) | 2021-10-21 |
US11924097B2 (en) | 2024-03-05 |
US20230179519A1 (en) | 2023-06-08 |
EP4138345A4 (en) | 2023-12-20 |
JPWO2021210056A1 (ja) | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7069268B1 (en) | System and method for identifying data using parallel hashing | |
Yang et al. | A shifting bloom filter framework for set queries | |
Yan et al. | Cab: A reactive wildcard rule caching system for software-defined networks | |
US20170359238A1 (en) | Aggregating select network traffic statistics | |
US20110016154A1 (en) | Profile-based and dictionary based graph caching | |
Kirsch et al. | Hash-based techniques for high-speed packet processing | |
CN107454120A (zh) | 网络攻击防御系统和防御网络攻击的方法 | |
Dai et al. | Towards line-speed and accurate on-line popularity monitoring on NDN routers | |
US11445225B2 (en) | Measuring and improving origin offload and resource utilization in caching systems | |
Huang et al. | A multi-partitioning approach to building fast and accurate counting bloom filters | |
Zhang et al. | Identifying elephant flows in internet backbone traffic with bloom filters and LRU | |
JP7396469B2 (ja) | トラフィックモニタリング装置、方法及びプログラム | |
CN107277062B (zh) | 数据包的并行处理方法及装置 | |
Li et al. | Pyramid Family: Generic frameworks for accurate and fast flow size measurement | |
Pan et al. | Nb-cache: Non-blocking in-network caching for high-performance content routers | |
JP2009017439A (ja) | パケット転送装置およびパケット転送方法。 | |
US20140136647A1 (en) | Router and operating method thereof | |
JP6266445B2 (ja) | パケット中継装置及びパケット中継方法 | |
Ye et al. | UA-Sketch: An Accurate Approach to Detect Heavy Flow based on Uninterrupted Arrival | |
Kwon et al. | Load shedding for multi-way stream joins based on arrival order patterns | |
Chen et al. | Coordinated data prefetching for web contents | |
Wang et al. | Robust pipelined memory system with worst case performance guarantee for network processing | |
Jelenković et al. | Near optimality of the discrete persistent access caching algorithm | |
Wang et al. | Robust statistics counter arrays with interleaved memories | |
Olmos et al. | Cache miss estimation for non-stationary request processes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220930 |
|
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: 20231031 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231113 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7396469 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |