JP6662812B2 - Calculation device and calculation method - Google Patents
Calculation device and calculation method Download PDFInfo
- Publication number
- JP6662812B2 JP6662812B2 JP2017111933A JP2017111933A JP6662812B2 JP 6662812 B2 JP6662812 B2 JP 6662812B2 JP 2017111933 A JP2017111933 A JP 2017111933A JP 2017111933 A JP2017111933 A JP 2017111933A JP 6662812 B2 JP6662812 B2 JP 6662812B2
- Authority
- JP
- Japan
- Prior art keywords
- flow
- statistical information
- information
- unit
- inp
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、計算装置及び計算方法に関する。 The present invention relates to a calculation device and a calculation method.
コンピュータネットワーク観測する目的で用いられるネットワークモニタやLAN(Local Area Network)アナライザにおける通信の計測方式は、パケットキャプチャによる計測方式とフロー統計情報を計測する計測方式とに大きく分けられる。 Measurement methods of communication in a network monitor or a LAN (Local Area Network) analyzer used for the purpose of observing a computer network can be broadly classified into a measurement method using packet capture and a measurement method for measuring flow statistical information.
パケットキャプチャによる計測方式は、コンピュータネットワークを構成するコンピュータシステム間でやり取りされる情報の伝送単位であるパケットを複製し、それらの複製したパケットの内容を分析する技術である。 The measurement method using packet capture is a technique of copying packets, which are transmission units of information exchanged between computer systems constituting a computer network, and analyzing the contents of the copied packets.
フロー統計情報を計測する計測方式は、コンピュータネットワークを構成するルータ等のネットワーク機器に、自身を通過する通信の量を計測する機能を搭載して、コンピュータネットワーク内を流れる情報の量を計測する技術である。ここで、フロー統計情報とは、ネットワーク機器を通過する通信の情報量等の統計的数値のことをいう。この統計的数値はカウンタとも呼ばれる。トラフィック統計情報の一例としてバイト数がある。 The measurement method that measures flow statistical information is a technology that measures the amount of information flowing in a computer network by installing a function to measure the amount of communication passing through itself on network devices such as routers that constitute a computer network. It is. Here, the flow statistical information refers to a statistical numerical value such as an information amount of communication passing through a network device. This statistical value is also called a counter. One example of traffic statistics is the number of bytes.
フロー統計情報の代表的な技術仕様として、sFlow(登録商標)(例えば、非特許文献1を参照)とnetFlow(例えば、非特許文献2を参照)が知られている。sFlowは、パケットサンプリングと通信回線インタフェースごとのカウンタを用いた、統計的推定に基づくトラフィック計測技術である。また、netFlowは、ルータやスイッチ等のネットワーク機器でフロー単位のパケット数やバイト数を計測する技術である。 As typical technical specifications of the flow statistical information, sFlow (registered trademark) (for example, see Non-Patent Document 1) and netFlow (for example, see Non-Patent Document 2) are known. sFlow is a traffic measurement technology based on statistical estimation using packet sampling and a counter for each communication line interface. In addition, netFlow is a technology for measuring the number of packets and the number of bytes per flow in network devices such as routers and switches.
フロー統計情報を計測する計測方式としては、他にも、セッションの上り及び下り両方向のフローのパケットを観測された時刻順に先頭から並べ、そのパケットサイズを配列として用いる方式(例えば、非特許文献3を参照)、あるセッションのパケット長の平均値、中央値、分散とパケット到着間隔の分散を計算する方式(例えば、非特許文献4を参照)、セッションあたりの総パケット数および総バイト数、特定のフラグが付いたパケット数、全パケットの平均および最大サイズと分散を計算する方式(例えば、非特許文献5を参照)等が知られている。 As another measurement method for measuring the flow statistical information, a method of arranging the packets of the flow in both the upstream and downstream directions of the session from the head in the order of the observed time and using the packet size as an array (for example, Non-Patent Document 3) ), A method of calculating an average value, a median value, a variance of a packet length and a packet arrival interval of a session (for example, see Non-Patent Document 4), a total number of packets and a total number of bytes per session, and identification. A method of calculating the number of packets with the flag, the average and maximum size and variance of all packets (for example, see Non-Patent Document 5) and the like are known.
しかしながら、従来の技術には、限られた処理資源を用いて効果的な通信の計測を行うことができない場合があるという問題がある。例えば、パケットキャプチャによる計測方式には大量の記憶資源及び計算資源が必要になる。このため、使用可能な処理資源が限られている場合は、パケットキャプチャによる計測方式することができないことがある。一方で、フロー統計情報を計測する計測方式では、効果的な通信の計測を行うことができない場合がある。 However, the conventional technology has a problem that effective communication measurement may not be performed using limited processing resources. For example, a measurement method using packet capture requires a large amount of storage resources and computation resources. Therefore, when available processing resources are limited, a measurement method using packet capture may not be possible. On the other hand, in a measurement method for measuring flow statistical information, effective communication measurement may not be performed.
例えば、非特許文献1に記載のsFlowは、一定の率で間欠的にパケットをサンプリングするものであるため、パケット数が非常に少ないまたは非常に短い通信等、サンプリングされる確率が低いフローでは検出漏れや誤差が発生する場合があり、また、パケットを選ぶ方法やサンプル又はカウンタを収集する周期によっても計測精度に影響が出るため、効果的な通信の計測を行うことができない場合があるという問題点がある。
For example, since sFlow described in Non-Patent
また、例えば、非特許文献2に記載のnetFlowは、ルータやスイッチ等のネットワーク機器でフロー単位のパケット数やバイト数を計測するものである。このため、既存のルータやスイッチに、本来のパケット交換等の本来の処理と計測に関する処理の両方を行わせるためには、余分な計算資源が必要になる場合がある。
Also, for example, netFlow described in Non-Patent
また、非特許文献3から5に記載の技術は、キャプチャしたパケットのデータペイロードの中身は分析せずにパケット単位の長さや到着間隔、フラグ等ヘッダ情報のみを参照し計測を行うものであるが、計測可能な情報は限定的であり、付加的なフロー統計情報を生成するためには、パケットキャプチャによる計測を行う必要がある。 The techniques described in Non-Patent Documents 3 to 5 perform measurement by referring to only header information such as the length, arrival interval, and flag of a packet without analyzing the contents of the data payload of a captured packet. The measurable information is limited, and it is necessary to perform measurement by packet capture in order to generate additional flow statistical information.
本発明の計算装置は、通信元及び通信先ごとに集約されたトラフィックに関する統計情報であるフロー統計情報を取得する取得部と、前記フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する分類部と、前記フロー統計情報に基づいて、前記分類部によって分類されたグループごとのトラフィックに関する統計情報を計算する計算部と、を有することを特徴とする。 In the computing device of the present invention, the acquisition unit that acquires the flow statistical information that is the statistical information on the traffic aggregated for each of the communication source and the communication destination and the session of the traffic based on the flow statistical information are the same. And a calculating unit that calculates statistical information on traffic for each group classified by the classifying unit based on the flow statistical information.
本発明によれば、限られた処理資源を用いて効果的な通信の計測を行うことができる。 According to the present invention, effective communication measurement can be performed using limited processing resources.
[第1の実施形態の構成]
以下に、本願に係る計算装置及び計算方法の実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。まず、図1を用いて、第1の実施形態に係る計算システムの構成について説明する。図1は、第1の実施形態に係る計算システムの構成の一例を示す図である。図1に示すように、計算システム1は、計算装置10、クライアント20、サーバ30及びルータ40を有する。
[Configuration of First Embodiment]
Hereinafter, embodiments of a calculation device and a calculation method according to the present application will be described in detail with reference to the drawings. Note that the present invention is not limited by the embodiments described below. First, the configuration of the calculation system according to the first embodiment will be described with reference to FIG. FIG. 1 is a diagram illustrating an example of a configuration of a calculation system according to the first embodiment. As shown in FIG. 1, the
ここで、ルータ40は、クライアント20とサーバ30との間で通信により発生するトラフィックに基づいて、フロー統計情報を生成する。フロー統計情報には、パケット数及びバイト数が含まれる。また、計算システム1においてフロー統計情報の生成の対象となる通信は、クライアント及びサーバによる通信に限られず、クライアント同士の通信であってもよいし、サーバ同士の通信であってもよいし、クライアント及びサーバ以外の機器による通信であってもよい。また、フロー統計情報を生成する機器は、ルータ40に限られず、任意のネットワーク機器であってよい。
Here, the
ここで、フロー統計情報とは、コンピュータシステムを識別する送信元、あて先、プロトコル及びポート等を基に、通信を行うコンピュータシステム同士が交換する情報をフローと呼ばれる単位に分割し、フローごとに通信量を計測、計算した統計情報ということができる。例えば、フローは、通信の送信元及びあて先という情報の流れる方向に関する属性を含むため、通常、送信(往き)と受信(帰り)の2種類のフローが存在することになる。本実施形態では、送信と受信の2種類のフローを合わせた単位をセッションとよぶ。また、以降の説明では、計算システム1において、クライアント20からサーバ30へ向かう方向を上り、サーバ30からクライアント20へ向かう方向を下りとよぶ。
Here, the flow statistical information divides information exchanged between the communicating computer systems into units called flows based on a source, a destination, a protocol, a port, and the like for identifying the computer systems, and performs communication for each flow. It can be said that statistical information is obtained by measuring and calculating the amount. For example, since a flow includes an attribute related to a direction in which information of a communication source and a destination flows, there are usually two types of flows: transmission (going) and receiving (return). In the present embodiment, a unit combining two types of flows, transmission and reception, is called a session. In the following description, in the
また、本実施形態では、前述の通り、ネットワーク機器であるルータ40がフロー統計情報の生成を行う。ルータ40は、フロー統計情報を、コンピュータシステムが具備する通信回線インタフェース単位で生成してもよいし、さらに細かな通信の単位に分割して生成してもよい。
In the present embodiment, as described above, the
計算装置10は、ルータ40によって生成されたフロー統計情報を基に、セッションに関する統計的演算を行うことで、フロー統計情報のみでは得ることができない情報、例えば、パケット数及びバイト数以外の情報を得ることができる。
The
次に、図2を用いて、計算装置10の構成について説明する。図2は、第1の実施形態に係る計算装置の構成の一例を示す図である。図2に示すように、計算装置10は、通信部11、記憶部12及び制御部13を有する。
Next, the configuration of the
通信部11は、ネットワークを介して、他の装置との間でデータ通信を行う。例えば、通信部11はNIC(Network Interface Card)である。通信部11は、例えばルータ40との間でデータ通信を行う。
The communication unit 11 performs data communication with another device via a network. For example, the communication unit 11 is a NIC (Network Interface Card). The communication unit 11 performs data communication with, for example, the
記憶部12は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部12は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。記憶部12は、計算装置10で実行されるOS(Operating System)や各種プログラムを記憶する。さらに、記憶部12は、プログラムの実行で用いられる各種情報を記憶する。また、記憶部12は、一次記憶部121及び二次記憶部122を有する。
The storage unit 12 is a storage device such as a hard disk drive (HDD), a solid state drive (SSD), and an optical disk. Note that the storage unit 12 may be a rewritable semiconductor memory such as a random access memory (RAM), a flash memory, or a non-volatile random access memory (NVSRAM). The storage unit 12 stores an OS (Operating System) executed by the
制御部13は、計算装置10全体を制御する。制御部13は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部13は、取得部131、分類部132、計算部133及び保存部134を有する。
The control unit 13 controls the
取得部131は、通信元及び通信先ごとに集約されたトラフィックに関する統計情報であるフロー統計情報を取得する。取得部131は、ルータ40等のネットワーク機器で生成されたフロー統計情報を取得する。
The acquiring
また、分類部132は、フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する。分類部132は、例えば、取得部131が取得したフロー統計情報から、セッションを識別可能な情報を抽出し、当該抽出した情報に基づいて元となったトラフィックのセッションごとにフロー統計情報を分類する。セッションを識別可能な情報としては、フロー統計情報に含まれる送信元、送信先、及びフロー統計情報の生成時刻等がある。
In addition, the
例えば、分類部132は、第1のフロー統計情報に含まれる送信元及び送信先が、それぞれ第2のフロー統計情報に含まれる送信先及び送信元と同一であり、かつ、第1のフロー統計情報及び第2のフロー統計情報がいずれも所定の期間内に発生したトラフィックに基づくものである場合に、第1のフロー統計情報と第2のフロー統計情報とを同一のグループに分類する。このように、計算装置10は、フロー統計情報をセッションごとのグループに分類する。
For example, the
また、計算部133は、フロー統計情報に基づいて、分類部132によって分類されたグループごとのトラフィックに関する統計情報を計算する。例えば、取得部131がフロー統計情報としてパケット数及びバイト数を取得する場合、計算部133は、統計情報として、グループごとのパケットサイズの平均、パケットサイズの平均の最大値、パケットサイズの平均の最小値、及びパケットサイズの平均の標準偏差、バイト数の時間平均、及び、時刻ごとの送受信されたパケットの有無を表す情報を計算する。また、計算部133は、統計情報として、時刻ごとの送受信されたパケットの有無に基づく共起行列を計算することができる。
The calculating
また、保存部134は、取得部が取得したフロー統計情報や、計算部133による計算結果等を、一次記憶部121又は二次記憶部122に保存する。以降の説明では、取得部131が取得したフロー統計情報を入力情報とよぶ。また、計算部133が計算した統計情報をセッション統計情報とよぶ。
The
ここで、図3を用いて、入力情報及びセッション統計情報の計算について具体的に説明する。図3は、第1の実施形態に係る計算装置による計算方法を説明するための図である。 Here, the calculation of the input information and the session statistical information will be specifically described with reference to FIG. FIG. 3 is a diagram for explaining a calculation method by the calculation device according to the first embodiment.
取得部131は、入力情報として、セッションを一意に識別するセッション識別子INP_1を生成する。また取得部131は、入力情報の生成時刻INP_2、上りパケット数INP_3、下りパケット数INP_4、上りバイト数INP_5、下りバイト数INP_6、セッションの確立後の経過時間INP_7を取得する。
The
セッション識別子INP_1は、通信を行うある一対のコンピュータシステム間で確立されたある1つのセッションを一意に識別できる値である。取得部131は、例えば、コンピュータシステムを識別するアドレス、プロトコル番号、ポート、時刻等に対しビット演算やハッシュ演算等を行うことでセッション識別子を生成することができる。
The session identifier INP_1 is a value that can uniquely identify one session established between a pair of computer systems performing communication. The
生成時刻INP_2は、取得部131によって取得された入力情報が生成された時刻である。上りパケット数INP_3は、セッション識別子INP_1で識別されるセッションにおいて、セッションの開始時刻から生成時刻INP_2までの、上り方向の累計パケット数(0上の整数値)である。また、下りパケット数INP_4は、セッション識別子INP_1で識別されるセッションにおいて、セッションの開始時刻から生成時刻INP_2までの、下り方向の累計パケット数(0以上の整数値)である。また、上りバイト数INP_5は、セッション識別子INP_1で識別されるセッションにおいて、セッションの開始時刻から生成時刻INP_2までの、上り方向の累計バイト数(0上の整数値)である。また、下りバイト数INP_6は、セッション識別子INP_1で識別されるセッションにおいて、セッションの開始時刻から生成時刻INP_2までの、下り方向の累計バイト数(0以上の整数値)である。また、経過時間INP_7は、セッションの開始時刻から生成時刻INP_2までの経過時間である。より精度の高い計算をするために、生成時刻INP_2及び経過時間INP_7は、マイクロ秒又はミリ秒単位まで含んでいることが望ましい。
The generation time INP_2 is the time at which the input information acquired by the
ここで、取得部131は、セッション開始時刻から一定時間dTおきに生成された入力情報を取得する。例えば、図3に示すように、取得部131は、まず、時刻T1に生成された入力情報INP(T1)を取得し、次に、時刻T1から時間dTが経過した時刻T2に生成された入力情報INP(T2)を取得する。このように、取得部131は、セッション終了時刻である時刻Tnに生成された入力情報を取得するまで入力情報を順次取得する。ここで、生成時刻Tkにおける入力情報をINP(Tk)のように表す。INP(Tk)には、INP_1(Tk)、INP_2(Tk)、INP_3(Tk)、INP_4(Tk)、INP_5(Tk)、INP_6(Tk)、INP_7(Tk)が含まれる。また、入力情報が生成される時刻の間隔dTは一定であることが望ましいが、異なっていてもよい。
Here, the
次に、計算部133は、セッション統計情報として、セッションごとの上り平均パケットサイズAVE_1及び下り平均パケットサイズAVE_2の2つの変数を計算する。計算部133は、INP(Tk)、及び時刻Tkの1つ前の時刻Tk-1における入力情報INP(Tk-1)に基づいて、時刻Tkにおける上り平均パケットサイズAVE_1(Tk)及び下り平均パケットサイズAVE_2(Tk)をそれぞれ(1)式及び(2)式のように計算する。
AVE_1(Tk)={INP_4(Tk)-INP_4(Tk-1)}÷{INP_3(Tk)−INP_3(Tk-1)}・・・(1)
AVE_2(Tk)={INP_6(Tk)-INP_6(Tk-1)}÷{INP_5(Tk)−INP_5(Tk-1)}・・・(2)
Next, the
AVE_1 (T k ) = {INP_4 (T k ) −INP_4 (T k−1 )} ÷ {INP_3 (T k ) −INP_3 (T k−1 )} (1)
AVE_2 (T k ) = {INP_6 (T k ) −INP_6 (T k−1 )} ÷ {INP_5 (T k ) −INP_5 (T k−1 )} (2)
このように、計算部133は、時刻Tkと時刻Tk-1との間で、バイト数の差分をパケット数の差分で平均することによって平均パケットサイズを計算することができる。ここで、生成時刻Tkにおける平均パケットサイズをAVE(Tk)のように表す。AVE(Tk)には、AVE_1(Tk)、AVE_2(Tk)が含まれる。
As described above, the
各平均パケットサイズは、時刻Tkと時刻Tk-1の間で流れたパケットの1パケットあたりの平均バイト数である。なお、INP(Tk-1)が存在しない場合(例えばk=1、すなわちINP(Tk)がセッション開始後における最初に生成された入力情報である場合)、計算部133は、INP_3(Tk-1)、INP_3(Tk-1)、INP_3(Tk-1)、INP_3(Tk-1)を0として計算を行う。また、保存部134は、AVE_1(Tk+1)が計算されるまで、INP(Tk)を一次記憶部121に保存しておく。そして、保存部134は、AVE_1(Tk+1)が計算された後、INP(Tk)を破棄してもよい。
Each average packet size is an average number of bytes per packet of a packet flowing between time Tk and time Tk-1 . When INP (T k−1 ) does not exist (for example, when k = 1, that is, when INP (T k ) is the first input information generated after the start of the session), the
さらに、計算部133は、AVE(Tk)を用いて、上り最大平均パケットサイズAVE_MAX_1(Tk)、下り最大平均パケットサイズAVE_MAX_2(Tk)、上り最小平均パケットサイズAVE_MIN_1(Tk)、下り最小平均パケットサイズAVE_MIN_2(Tk)、上り平均パケットサイズの標準偏差AVE_SD_1(Tk)、及び下り平均パケットサイズの標準偏差AVE_SD_2(Tk)を(3)式から(8)式のように計算する。
AVE_MAX_1(Tk)={AVE_1(T1),AVE_1(T2),…,AVE_1(Tk)}の最大値・・・(3)
AVE_MAX_2(Tk)={AVE_2(T1),AVE_2(T2),…,AVE_2(Tk)}の最大値・・・(4)
AVE_MIN_1(Tk)={AVE_1(T1),AVE_1(T2),…,AVE_1(Tk)}の最小値・・・(5)
AVE_MIN_2(Tk)={AVE_2(T1),AVE_2(T2),…,AVE_2(Tk)}の最小値・・・(6)
AVE_SD_1(Tk)={AVE_1(T1),AVE_1(T2),…,AVE_1(Tk)}の標準偏差・・・(7)
AVE_SD_2(Tk)={AVE_2(T1),AVE_2(T2),…,AVE_2(Tk)}の標準偏差・・・(8)
Further, the calculating
AVE_MAX_1 (T k) = {AVE_1 (T 1), AVE_1 (T 2), ..., AVE_1 (T k)} maximum value (3) of
AVE_MAX_2 (T k ) = {AVE_2 (T 1 ), the maximum value of AVE_2 (T 2 ),…, AVE_2 (T k )} (4)
AVE_MIN_1 (T k) = {AVE_1 (T 1), AVE_1 (T 2), ..., AVE_1 (T k)} minimum ... (5)
AVE_MIN_2 (T k ) = {AVE_2 (T 1 ), the minimum value of AVE_2 (T 2 ),…, AVE_2 (T k )} (6)
AVE_SD_1 (T k ) = standard deviation of {AVE_1 (T 1 ), AVE_1 (T 2 ),..., AVE_1 (T k )} (7)
AVE_SD_2 (T k ) = {standard deviation of AVE_2 (T 1 ), AVE_2 (T 2 ), ..., AVE_2 (T k )} ・ ・ ・ (8)
また、計算部133は、セッションの開始から終了までの間に上り及び下りの各方向で流れたバイト数の時間平均、すなわち上り方向のフローレートFRATE_1及び下り方向のフローレートFRATE_2を、それぞれ(9)式及び(10)式のように計算する。ここで、Tnはセッションが終了した時刻である。また、(9)式及び(10)式に示すように、計算部133は、セッション終了時の入力情報、すなわちINP(Tn)のみからフローレートを計算することができる。
FRATE_1=INP_4(Tn)÷INP_7(Tn)・・・(9)
FRATE_2=INP_6(Tn)÷INP_7(Tn)・・・(10)
The calculating
FRATE_1 = INP_4 (T n ) ÷ INP_7 (T n ) ・ ・ ・ (9)
FRATE_2 = INP_6 (T n ) ÷ INP_7 (T n ) ・ ・ ・ (10)
計算部133は、パケット共起行列を計算する。ここで、共起行列とは、画素や単語等の画素間の相対関係や単語の出現パターンを表現する行列であり、一般的に画像認識や言語処理等で利用されてきた。本実施形態においては、計算部133は、以下のようにパケット共起行列を計算する。まず、計算部133は、あるセッションにおいて、時刻Tk-1と時刻Tkとの間にパケットが1つ以上流れたか否かを0又は1の二値で示す。なお、上り方向の当該二値をBOOL_1(Tk)、下り方向の当該二値をBOOL_2(Tk)と表す。
The
ここで、計算部133は、INP_3(Tk)、又はINP_5(Tk)が、それぞれINP_3(Tk-1)、又はINP_5(Tk-1)より大きい場合に、時刻Tk-1と時刻Tkとの間に上り方向にパケットが1つ以上流れたとみなし、当該二値の値を1とする。この計算方法は、以下の(11)式及び(12)式のように表すことができる。
BOOL_1(Tk)=
INP_3(Tk)-INP_3(Tk-1)>0ならば1,INP_3(Tk)-INP_3(Tk-1)=0ならば0・・・(11)
BOOL_2(Tk)=
INP_5(Tk)-INP_5(Tk-1)>0ならば1,INP_5(Tk)-INP_5(Tk-1)=0ならば0・・・(12)
Here, the
BOOL_1 (T k ) =
INP_3 (T k) -INP_3 (T k-1)> 0 if 1, INP_3 (T k) -INP_3 (T k-1) = 0 if 0 (11)
BOOL_2 (T k ) =
If INP_5 (T k ) -INP_5 (T k-1 )> 0, 1 if INP_5 (T k ) -INP_5 (T k-1 ) = 0, 0 ... (12)
また、当該二値は、パケットサイズの平均を用いて以下の(13)式及び(14)式のように計算することができる。
BOOL_1(Tk)’=AVE_1(Tk)>0ならば1,AVE_1(Tk)=0ならば0・・・(13)
BOOL_2(Tk)’=AVE_2(Tk)>0ならば1,AVE_2(Tk)=0ならば0・・・(14)
Also, the binary value can be calculated using the average of the packet sizes as in the following Expressions (13) and (14).
BOOL_1 (T k ) '= AVE_1 (T k )> 0, 1 if AVE_1 (T k ) = 0, 0 ... (13)
BOOL_2 (T k ) '= AVE_2 (T k )> 0, 1 if AVE_2 (T k ) = 0, 0 ... (14)
計算部133は、あるセッションについての入力情報を生成した時刻をセッションの開始直後(1番目)から終了(n番目)まで順番に{T1,...,Tn}とし、T1からTnまでのそれぞれについて二値を決定し、上りと下りそれぞれについて0と1で作られたn個の数字の数列を得ることができる。
The
計算部133が上りのパケットについて得る当該数列をBOOL_1、下りパケットについて得られる当該数列をBOOL_2とすれば、BOOL_1及びBOOL_2は、それぞれn個の数字の長さを持つ。例えば、BOOL_1={1,0,....,1}のようになる。BOOL_1及びBOOL_2は、あるセッションにおけるパケット送出有無のパターンを表現している。例えば、セッションの開始から終了まで連続してパケットを送出しているセッションの場合、BOOL_1及びBOOL_2は、連続する1の羅列{1,1,1,1,1,...,1}のようになる。また、入力情報の生成する時間周期を超えて間欠的にパケットを送出する場合には、BOOL_1及びBOOL_2は、1と0の繰り返し、例えば{1,0,1,0,1,...,0}や{1,0,0,1,0,0,...,1}のようになる場合もある。
Assuming that the sequence obtained by the
また、セッションの開始直後のみ情報を送って短時間で終了する場合には数列の長さが短くなり、例えば{1,0}のような数列が生成される場合もありえる。このように、BOOL_1及びBOOL_2は、あるセッションにおけるパケット送出のパターンを表現しているが、BOOL_1及びBOOL_2の長さはセッションの継続時間に依存して可変長であり、その長さを予測することは困難である。 Further, when information is sent only immediately after the start of a session and the processing is completed in a short time, the length of the sequence becomes short, and a sequence such as {1,0} may be generated. As described above, BOOL_1 and BOOL_2 represent the packet transmission pattern in a certain session, but the length of BOOL_1 and BOOL_2 is variable depending on the duration of the session, and it is necessary to predict the length. It is difficult.
計算部133は、上記の手順で得られたBOOL_1及びBOOL_2から共起行列を生成する。BOOL_1及びBOOL_2は、一次元の0または1の並びであるため、数列の中のある連続した2つの数字のならびに着目した場合、その並び方の組み合わせは{00}、{01}、{10}、{11}の4通りしかない。計算部133は、BOOL_1及びBOOL_2の先頭から2つずつ数字の並びを取り出し、その組み合わせの出現する数を合計する。ここで、一例として、入力情報が10回生成された場合、すなわちn=10の場合の計算部133による共起行列の生成方法について説明する。例えば、BOOL_1={1,1,1,1,1,1,1,1,1,1}の場合、計算部133は、共起行列MATRIX_1を{00}=0,{01}=0,{10}=0,{11}=9のように生成する。また、例えば、BOOL_2={1,0,1,0,1,0,1,0,1,0}の場合、計算部133は、共起行列MATRIX_2を{00}=0,{01}=4,{10}=5,{11}=0のように生成する。
The
さらに、セッションの時間が短い場合、例えばn=4の場合に、BOOL_1={1,0,1,1}の場合、計算部133は、共起行列MATRIX_1を{00}=0,{01}=1,{10}=1,{11}=1のように生成する。このように、計算部133は、あるセッションについて上り下りそれぞれの共起行列が計算することで、各々の共起行列は4変数を持つため、合計8変数を得ることができる。
Further, when the session time is short, for example, when n = 4 and BOOL_1 = {1,0,1,1}, the
[第1の実施形態の処理]
図4から9を用いて、計算システム1の処理の流れについて説明する。図4は、第1の実施形態に係るルータの処理の流れを示すフローチャートである。また、図5、7及び8は、第1の実施形態に係る計算装置の処理の流れを示すフローチャートである。また、図6は、第1の実施形態に係る一次記憶部のデータ構成の一例を示す図である。また、図9は、第1の実施形態に係る二次記憶部のデータ構成の一例を示す図である。
[Processing of First Embodiment]
The processing flow of the
図4に示すように、ルータ40は、一定時間が経過するまで待機し(ステップS11、No)、一定時間が経過すると(ステップS11、Yes)、入力情報を生成する(ステップS12)。
As shown in FIG. 4, the
図5に示すように、取得部131は、ネットワーク機器、すなわちルータ40から時刻Tkの入力情報INP(Tk)を読み取る(ステップS21)。分類部132は、取得部131によって取得された入力情報INP(Tk)が、新しいセッションのものであるか否かを判定する(ステップS22)。
As shown in FIG. 5, the
ここで、一次記憶部121に入力情報INP(Tk-1)が保存されていない場合、分類部132は、取得部131によって取得された入力情報INP(Tk)が、新しいセッションのものであると判定する(ステップS22、Yes)。この場合、保存部134は、入力情報INP(Tk)を一次記憶部121に保存する(ステップS23)。図6に示すように、一次記憶部121は入力情報を記憶する。図6は、保存部134が保存した入力情報INP(Tk)の、セッション識別子INP_1(Tk)が「xyz001」、生成時刻INP_2(Tk)が「20:40」、上りパケット数INP_3(Tk)が「10」、上りバイト数INP_4(Tk)が「80」、下りパケット数INP_5(Tk)が「400」、下りバイト数INP_6(Tk)が「10000」、経過時間INP_7(Tk)が「2」であったことを示している。また、この場合、保存部134は、一次記憶部121の統計情報を保存する。この場合の統計情報は、セッションの最初の統計情報であるため、保存部134は一次記憶部121の統計情報の各値を0とする。
Here, when the input information INP (T k−1 ) is not stored in the primary storage unit 121, the
一方、一次記憶部121に入力情報INP(Tk-1)が保存されている場合、分類部132は、取得部131によって取得された入力情報INP(Tk)が、新しいセッションのものでないと判定する(ステップS22、No)。つまり、分類部132は、入力情報INP(Tk-1)及び入力情報INP(Tk)を同一のグループに分類する。この場合、保存部134は、入力情報INP(Tk)を一次記憶部121に保存する。また、取得部131は、一次記憶部121から時刻Tk-1の入力情報及び統計情報を読み取る(ステップS24)。そして、計算部133は、各統計情報を計算する(ステップS25)。
On the other hand, when the input information INP (T k−1 ) is stored in the primary storage unit 121, the
このように、取得部131は、一定時間間隔の時刻のそれぞれに対応するフロー統計情報を時間順に取得することができる。このとき、分類部132は、取得部131によってフロー統計情報が取得されるたびに、フロー統計情報を分類する。また、計算部133は、分類部132によって分類が行われるたびに、グループごとのトラフィックに関する統計情報を計算する。
As described above, the acquiring
図7に示すように、図5のステップS25において、計算部133は、まず、時刻Tkの入力情報及び時刻Tk-1の入力情報を基に、時刻Tkの平均パケットサイズを計算する(ステップS251)。次に、計算部133は、時刻Tkの平均パケットサイズ及び時刻Tk-1の平均パケットサイズを基に、時刻Tkの平均パケットサイズの最大値、最小値、及び標準偏差を計算する(ステップS252)。次に、計算部133は、時刻Tkの入力情報及び時刻Tk-1の入力情報を基に、時刻Tkの共起行列を計算する(ステップS253)。そして、保存部134は、計算部133によって計算された各統計情報を一次記憶部121に保存する。
As shown in FIG. 7, in step S25 of FIG. 5, the
ここで、平均パケットサイズに関する計算を行う場合、計算部133は、セッションの開始から終了までの全ての入力情報等を用いることなく、時刻Tk-1及び時刻Tkの入力情報及び統計情報のみを用いることで、(15)式から(18)式のように計算を行うことができる。
AVE_MAX_1(Tk)={AVE_1(Tk-1),AVE_1(Tk)}の大きい方・・・(15)
AVE_MAX_2(Tk)={AVE_2(Tk-1),AVE_2(Tk)}の大きい方・・・(16)
AVE_MIN_1(Tk)={AVE_1(Tk-1),AVE_1(Tk)}の小さい方・・・(17)
AVE_MIN_2(Tk)={AVE_2(Tk-1),AVE_2(Tk)}の小さい方・・・(18)
Here, when the calculation regarding the average packet size is performed, the
AVE_MAX_1 (T k ) = {AVE_1 (T k-1 ), the larger of AVE_1 (T k )} (15)
AVE_MAX_2 (T k ) = larger of {AVE_2 (T k-1 ), AVE_2 (T k )} (16)
AVE_MIN_1 (T k ) = {AVE_1 (T k−1 ), AVE_1 (T k )}, whichever is smaller (17)
AVE_MIN_2 (T k ) = {AVE_2 (T k-1 ), the smaller of AVE_2 (T k )} (18)
これにより、ステップS254において、保存部134は、計算部133によって計算された時刻Tkにおける統計情報のみが一次記憶部121に記憶されるようにすればよい。つまり、保存部134は、時刻Tk-1における統計情報を削除し、時刻Tkにおける統計情報を保存してもよいし、時刻Tk-1における統計情報に時刻Tkにおける統計情報を上書きしてもよい。このように、1つ前の時刻の統計情報を破棄していくことで、一次記憶部121には1つの時刻の入力情報及び統計情報のみ記憶しておけばよく、記憶容量を削減することができる。
Thus, in step S254, the
ここで、変数X={x1,x2,...,x(k),...,x(n-1),x(n)}があったとして、k番目における分散sig(k)、すなわち標準偏差の二乗は以下の(19)式に示す漸化式で表される。計算部133は、(19)式を用いて、AVE_SD_1(Tk-1)及びAVE_SD_2(Tk-1)を基にAVE_SD_1(Tk)及びAVE_SD_2(Tk)を計算することができる。ただし、u(k)は、k番目までのx(k)の平均である。
Here, if there is a variable X = {x1, x2, ..., x (k), ..., x (n-1), x (n)}, the variance sig (k) at the k-th, That is, the square of the standard deviation is represented by a recurrence equation shown in the following equation (19).
また、計算部133は、時刻Tk-1の入力情報及び統計情報を基に時刻Tkの共起行列を計算することができる。まず、計算部133は、(13)式及び(14)式により、AVE_1(Tk)及びAVE_2(Tk)を基に、BOOL_1(Tk)’及びBOOL_2(Tk)’を計算する。ここで、一次記憶部121に、BOOL_1(Tk-1)及びBOOL_2(Tk-1)が記憶されていれば、計算部133は、BOOL_1(Tk-1)とBOOL_1(Tk)’、又はBOOL_2(Tk-1)とBOOL_2(Tk)’を連結することで、{00},{01},{10},{11}のうちのどれか生成されるかを得ることができ、BOOL_1及びBOOL_2を計算することができる。
The
このように、計算部133は、分類部132によって分類が行われたグループの統計情報が既に計算済みである場合、当該計算済みの統計情報及び取得部131によって取得されたフロー統計情報に基づいて、グループごとのトラフィックに関する統計情報を計算する。
As described above, when the statistical information of the group classified by the classifying
ここで、計算部133は、セッションが終了したか否かを判定する(ステップS26)。セッションが終了したと判定した場合(ステップS26、Yes)、計算部133は、セッション単位の統計情報を計算し(ステップS27)、kにk+1を代入し(ステップS28)、次の時刻の処理に進む。セッション単位の統計情報とは、例えばフローレートである。また、セッションが終了していないと判定した場合(ステップS26、No)、計算部133は、kにk+1を代入し(ステップS28)、次の時刻の処理に進む。
Here, the
ここで、計算部133は、ルータ40において、時刻Tk+1の入力情報が生成されているか否かによって、セッションが終了したか否かを判定することができる。つまり、INP(Tk+1)がINP_1(Tk)と同一のセッション識別子を持つ入力情報であれば、計算部133はセッションが終了していないと判定する。
Here, the
さらに、計算部133は、パケットのヘッダ部分に含まれるフラグを参照することでセッションが終了したか否かを判定してもよい。例えば、計算部133は、TCP(Transmission Control Protocol)のヘッダの中で送信終了を示すFINフラグがONであるかOFFであるかを参照し、FINフラグがONであればセッションが終了したと判定することができる。なお、この方法は、FINフラグを入力情報に追加することによって実現することができる。
Furthermore, the
図8に示すように、図5のステップS27において、計算部133は、まず、時刻Tkの入力情報を基に、セッションのフローレートを計算する(ステップS271)。そして、保存部134は、一次記憶部121の統計情報及びフローレートを二次記憶部122に保存し、一次記憶部121の入力情報及び統計情報を削除する(ステップS272)。
As shown in FIG. 8, in step S27 in FIG. 5, the
図9に示すように、二次記憶部122は入力情報及び統計情報を記憶する。図9は、二次記憶部122に保存済みの入力情報INP(Tk)の、セッション識別子INP_1(Tn)が「abc123」、生成時刻INP_2(Tn)が「20:29」、上りパケット数INP_3(Tn)が「20」、上りバイト数INP_4(Tn)が「120」、下りパケット数INP_5(Tn)が「650」、下りバイト数INP_6(Tn)が「30000」、経過時間INP_7(Tk)が「5」であることを示している。また、図9は、二次記憶部122に保存済みの統計情報の、上り平均パケットサイズAVE_1(Tn)が「30」、下り平均パケットサイズAVE_2(Tn)が「200」、上り平均パケットサイズの最大値AVE_MAX_1(Tn)が「60」、下り平均パケットサイズの最大値AVE_MAX_2(Tn)が「500」、上り平均パケットサイズの最小値AVE_MIN_1(Tn)が「2」、下り平均パケットサイズの最小値AVE_MIN_2(Tn)が「50」、上り平均パケットサイズの標準偏差AVE_SD_1(Tn)が「30」、下り平均パケットサイズの標準偏差AVE_SD_2(Tn)が「300」、上り共起行列MATRIX_1(Tn)が「0,0,0,9」、上り共起行列MATRIX_2(Tn)が「0,2,2,5」、上りフローレートFRATE_1(Tn)が「19」、下りフローレートFRATE_2(Tn)が「1300」であることを示している。また、例えば、保存部134は、セッション識別子INP_1(Tn)が「abc123」である行の下に、セッション識別子INP_1(Tn)が「xyz001」である行を作成し、入力情報及び統計情報を保存してもよい。
As shown in FIG. 9, the secondary storage unit 122 stores input information and statistical information. FIG. 9 shows that the session identifier INP_1 (T n ) of the input information INP (T k ) stored in the secondary storage unit 122 is “abc123”, the generation time INP_2 (T n ) is “20:29”, and the upstream packet number INP_3 (T n) is "20", the uplink number of bytes INP_4 (T n) is "120", the number downlink packet INP_5 (T n) is "650", the number downlink bytes INP_6 (T n) is "30000", This indicates that the elapsed time INP_7 (T k ) is “5”. FIG. 9 shows that the statistical information stored in the secondary storage unit 122 has an average packet size AVE_1 (T n ) of “30”, an average packet size AVE_2 (T n ) of “200”, and an average packet size of up The maximum size value AVE_MAX_1 (T n ) is “60”, the maximum downlink average packet size value AVE_MAX_2 (T n ) is “500”, the minimum uplink average packet size value AVE_MIN_1 (T n ) is “2”, and the downlink average The minimum packet size value AVE_MIN_2 (T n ) is “50”, the standard deviation AVE_SD_1 (T n ) of the uplink average packet size is “30”, and the standard deviation AVE_SD_2 (T n ) of the downlink average packet size is “300”. The co-occurrence matrix MATRIX_1 (T n ) is `` 0,0,0,9 '', the upstream co-occurrence matrix MATRIX_2 (T n ) is `` 0,2,2,5 '', and the upstream flow rate FRATE_1 (T n ) is `` 19 And that the downstream flow rate FRATE_2 (T n ) is “1300”. Further, for example,
[実施例]
第1の実施形態に基づく実施例について説明する。本実施例では、ルータ40は、NetFlowと呼ばれる方式を利用してフロー統計情報を収集する。なお、ルータ40は、入力情報として必要な情報が収集可能である方式であれば、NetFlow以外の方式を用いてもよい。例えば、ルータ40は、OpenFlow(参考文献1:OpenFlow Switch Specification(URL:https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.3.2.pdf))「Body of reply to OFPMP_FLOW request」で規定される情報でも入力情報を生成可能である。
[Example]
An example based on the first embodiment will be described. In this embodiment, the
NetFlowはインターネットで標準的に利用されている、ルータやスイッチ等のネットワーク機器にフロー統計情報を生成する機能を搭載し、その情報を遠隔の情報収集器および分析器に送信するための仕組みの1つである。図1に示すように、ルータ40(NetFlow-Enabled Router)が自身を通過する通信のフロー統計情報を生成するネットワーク機器であり、計算装置10(NetFlow Collector)がフロー統計情報であるFlow Recordを受け取り、収集、分析を行う機器である。 NetFlow is equipped with a function to generate flow statistical information in network equipment such as routers and switches that are used as standard on the Internet, and is one of the mechanisms for transmitting that information to remote information collectors and analyzers. One. As shown in FIG. 1, a router 40 (NetFlow-Enabled Router) is a network device that generates flow statistical information of communication passing therethrough, and a computing device 10 (NetFlow Collector) receives a Flow Record that is flow statistical information. , Collection and analysis equipment.
ここで、NetFlow Version 5では、Flow Record Formatに以下の情報が定義されている。
1.srcaddr Source IP address
2.dstaddr Destination IP address
3.nexthop IP address of next hop router
4.input SNMP index of input interface
5.output SNMP index of output interface
6.dPkts Packets in the flow
7.dOctets Total number of Layer 3 bytes in the packets of the flow
8.First SysUptime at start of flow
9.Last SysUptime at the time the last packet of the flow was received
10.srcport TCP/UDP source port number or equivalent
11.dstport TCP/UDP destination port number or equivalent
12.pad1 Unused (zero) bytes
13.tcp_flags Cumulative OR of TCP flags
14.prot IP protocol type (for example, TCP = 6; UDP = 17)
15.tos IP type of service (ToS)
16.src_as Autonomous system number of the source, either origin or peer
17.dst_as Autonomous system number of the destination, either origin or peer
18.src_mask Source address prefix mask bits
19.dst_mask Destination address prefix mask bits
20.pad2 Unused (zero) bytes
Here, in
1.srcaddr Source IP address
2.dstaddr Destination IP address
3.nexthop IP address of next hop router
4.input SNMP index of input interface
5.output SNMP index of output interface
6.dPkts Packets in the flow
7.dOctets Total number of Layer 3 bytes in the packets of the flow
8.First SysUptime at start of flow
9.Last SysUptime at the time the last packet of the flow was received
10.srcport TCP / UDP source port number or equivalent
11.dstport TCP / UDP destination port number or equivalent
12.pad1 Unused (zero) bytes
13.tcp_flags Cumulative OR of TCP flags
14.prot IP protocol type (for example, TCP = 6; UDP = 17)
15.tos IP type of service (ToS)
16.src_as Autonomous system number of the source, either origin or peer
17.dst_as Autonomous system number of the destination, either origin or peer
18.src_mask Source address prefix mask bits
19.dst_mask Destination address prefix mask bits
20.pad2 Unused (zero) bytes
計算装置10の取得部131は、Flow Record Formatの情報を用いて、以下のように入力情報を生成することができる。取得部131は、Flow Record Formatの1、2、8、10、11、14を入力としてビット演算あるいはハッシュ計算をすることによりINP_1を生成することができる。言い換えると、取得部131は、セッションを識別可能な情報を取得し、取得した情報からセッション識別子を生成する。また、取得部131は、ルータ40がFlow Recordを生成あるいは送信した時刻を参照しINP_2を生成してもよいし、計算装置10は、Flow Recordを受信した時刻をINP_2としてもよい。また、取得部131は、Flow Record Formatの6を参照しINP_3及びINP_5を生成する。また、取得部131は、Flow Record Formatの7を参照しINP_4及びINP_6を生成する。また、取得部131は、Flow Record Formatの9と8の時間差分を計算しINP_7を生成する。
The
ここで、INP_3とINP_5、及びINP_4とINP_6は、上りと下りで組になっている。NetFlowのFlow Recordはどちらか一方向のフローに関する情報なので、取得部131は、対となるFlow Recordを見つける必要があるが、上りと下りのFlow Recordは、上記Flow Record Formatの1と2、10と11が反転した関係となっている。すなわち、取得部131は、送信元(source)と宛先(destination)が入れ替わっているフローの対を見つければよい。そして、取得部131は、対となる2つのFlow Recordから1つのセッションに相当するINPを生成する。
Here, INP_3 and INP_5, and INP_4 and INP_6 are paired for up and down. Since the Flow Record of NetFlow is information about a flow in one direction, the
ルータ40は、ある時刻Tにおいて自身を通過しているフロー、すなわちセッション全てに関するFlow Recordを生成して送信する。Flow Recordの送信契機はルータ40で設定可能であるため、一定の時間間隔、例えば10秒おきにFlow Recordを送信することが可能である。また、計算装置10は、Flow Recordを受信し、実施形態の手順に従い計算を繰り返すことによりセッション統計情報を生成、更新する。
The
クライアント20がサーバ30に対して通信を開始すると、ルータ40はその通信をFlow Recordとして記録する。Flow Recordは、上り方向と下り方向の2つが生成される。例えば、実施例では、計算システム1は以下の流れで処理を行う。
When the
(セッション開始、継続時)
1.ルータ40はFlow Recordの送信契機で、Flow Recordを生成して計算装置10に送る。
2.計算装置10は、Flow Recordを受信し受信時刻を記録する。
3.計算装置10は、実施形態の手順に従い入力情報を生成する。
4.計算装置10は、実施形態の手順に従い統計情報を生成する。
5.計算装置10は、次の時刻の入力情報を待つ。
6.ルータ40はFlow Recordの送信契機で、Flow Recordを生成して計算装置10に送る。
7.計算装置10は、Flow Recordを受信し受信時刻を記録する。
(At the beginning and continuation of session)
1. The
2. The
3. The
4. The
5. The
6. The
7. The
(セッション終了時)
8.クライアント20又はサーバ30が通信を終了する。
9.ルータ40は通信の終了を検知し、Flow Recordを計算装置10に送信後、終了したFlow Recordを削除する。
10.計算装置10は、9.のFlow Recordを受信し受信時刻を記録し、入力情報及び統計情報の生成を実施する。
11.計算装置10は、次の時刻の入力情報を待つ。
12.ルータ40はFlow Recordが削除されているので、該当する通信のFlow Recordに関しては何も送信しない(あるいは空のFlow Recordを送信する)。
13.計算装置10は、セッションが終了したと判断し、フローレートを計算する。
14.計算装置10は、入力情報及び統計情報を二次記憶装置等に書き出し、INP_1で識別されるセッションに関する統計情報の計算を終了する。
(At the end of the session)
8. The
9. The
10. The
11. The
12. Since the Flow Record has been deleted, the
13. The
14. The
[第1の実施形態の効果]
取得部131は、通信元及び通信先ごとに集約されたトラフィックに関する統計情報であるフロー統計情報を取得する。また、分類部132は、フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する。また、計算部133は、フロー統計情報に基づいて、分類部132によって分類されたグループごとのトラフィックに関する統計情報を計算する。
[Effect of First Embodiment]
The acquiring
このように、本実施形態の計算装置10は、パケットキャプチャを用いずにコンピュータシステム間の通信を計測する。このため、本実施形態によれば、キャプチャデータを複製して保存する必要がなく、キャプチャデータを保存する二次記憶装置が必要ないという効果が得られる。
As described above, the
さらに、本実施形態では、パケットが複製されないため、ペイロードに含まれる通信の内容の秘密及びプライバシ保護に関する問題が発生しない。さらに、本実施形態によれば、通信の内容の秘密を保護するために利用される暗号化通信に対して、ペイロードの内容を判読することなく通信を計測することが可能である。 Further, in the present embodiment, since the packet is not copied, there is no problem regarding the confidentiality and privacy protection of the communication content included in the payload. Further, according to the present embodiment, it is possible to measure the communication of the encrypted communication used to protect the secret of the communication contents without reading the contents of the payload.
また、従来のフロー統計情報の計測では、計測できる統計情報がパケット数とバイト数の2種類に限られていた。これに対し、本実施形態の計算装置10は、8種類の統計情報(パケット数、バイト数、平均パケットサイズ、平均パケットサイズの最大値、最小値、標準偏差、フローレート、共起行列)を計算により生成する。このため、仮に、1つの変数がとり得る値の数をMとすれば、従来の技術で得られていた情報量がM2であったのに対し、本実施形態ではM8の情報量を得ることができる。
Further, in the conventional measurement of the flow statistical information, the statistical information that can be measured is limited to two types of the number of packets and the number of bytes. On the other hand, the
さらに、本実施形態では、セッションが開始してから終了するまで全期間に渡って計算に必要な情報を保持する必要がない。つまり、本実施形態では、周期的に取得できるフロー統計情報の1周期分を一時的に記憶しておくだけでパケット数とバイト数以外の各統計情報を計算することができる。このように、本実施形態の計算装置10によれば、限られた処理資源を用いて効果的な通信の計測を行うことができる。
Further, in the present embodiment, it is not necessary to hold information necessary for calculation over the entire period from the start to the end of the session. That is, in the present embodiment, each piece of statistical information other than the number of packets and the number of bytes can be calculated only by temporarily storing one cycle of the flow statistical information that can be obtained periodically. As described above, according to the
分類部132は、第1のフロー統計情報に含まれる送信元及び送信先が、それぞれ第2のフロー統計情報に含まれる送信先及び送信元と同一であり、かつ、第1のフロー統計情報及び第2のフロー統計情報がいずれも所定の期間内に発生したトラフィックに基づくものである場合に、第1のフロー統計情報と第2のフロー統計情報とを同一のグループに分類することができる。このように、計算装置10は、フロー統計情報をセッションごとのグループに分類する。これにより、本実施形態によれば、セッション単位での統計情報の計算が可能となる。
The
取得部131は、フロー統計情報として、少なくともパケット数及びバイト数を取得することができる。この場合、計算部133は、統計情報として、グループごとのパケットサイズの平均、パケットサイズの平均の最大値、パケットサイズの平均の最小値、及びパケットサイズの平均の標準偏差、バイト数の時間平均、及び、時刻ごとの送受信されたパケットの有無を表す情報を計算することができる。このように、計算装置10は、パケット数及びバイト数から、6種類の統計情報を生成することができる。
The
取得部131は、一定時間間隔の時刻のそれぞれに対応するフロー統計情報を時間順に取得することができる。この場合、分類部132は、取得部131によってフロー統計情報が取得されるたびに、フロー統計情報を分類することができる。また、計算部133は、分類部132によって分類が行われるたびに、グループごとのトラフィックに関する統計情報を計算することができる。これにより、計算装置10は、フロー統計情報が生成されるのに合わせて、逐次計算を進めていくことができる。
The
計算部133は、分類部132によって分類が行われたグループの統計情報が既に計算済みである場合、当該計算済みの統計情報及び取得部131によって取得されたフロー統計情報に基づいて、グループごとのトラフィックに関する統計情報を計算することができる。これにより、あるセッションのフロー統計情報を全て保持しておく必要がなくなるため、使用する記憶容量を削減することができる。
If the statistical information of the group classified by the classifying
計算部133は、統計情報として、時刻ごとの送受信されたパケットの有無に基づく共起行列を計算することができる。これにより、連続するパケットの出現パターンを分析することが可能となる。
The
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[System configuration, etc.]
Each component of each device illustrated is a functional concept and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed / arbitrarily divided into arbitrary units according to various loads and usage conditions. Can be integrated and configured. Further, all or any part of each processing function performed by each device can be realized by a CPU and a program analyzed and executed by the CPU, or can be realized as hardware by wired logic.
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。 Further, of the processes described in the present embodiment, all or a part of the processes described as being performed automatically can be manually performed, or the processes described as being performed manually can be performed. All or part can be performed automatically by a known method. In addition, the processing procedures, control procedures, specific names, and information including various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified.
[プログラム]
一実施形態として、計算装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の統計情報の計算を実行する計算プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の計算プログラムを情報処理装置に実行させることにより、情報処理装置を計算装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
[program]
As one embodiment, the
また、計算装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の統計情報の計算に関するサービスを提供する計算サーバ装置として実装することもできる。例えば、計算サーバ装置は、フロー統計情報を入力とし、セッション統計情報を出力とする計算サービスを提供するサーバ装置として実装される。この場合、計算サーバ装置は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の統計情報の計算に関するサービスを提供するクラウドとして実装することとしてもかまわない。
In addition, the
図10は、計算プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
FIG. 10 is a diagram illustrating an example of a computer that executes a calculation program. The
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
The
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、計算装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、計算装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。
The hard disk drive 1090 stores, for example, the
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
The setting data used in the processing of the above-described embodiment is stored as the
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
The
1 計算システム
10 計算装置
11 通信部
12 記憶部
13 制御部
20 クライアント
30 サーバ
40 ルータ
121 一次記憶部
122 二次記憶部
131 取得部
132 分類部
133 計算部
134 保存部
DESCRIPTION OF
Claims (7)
前記フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する分類部と、
前記フロー統計情報に基づいて、前記分類部によって分類されたグループに対応するセッションのそれぞれについて、前記フロー統計情報が生成された複数の時刻の間ごとに上り方向のパケットが1つ以上流れたか否かを示す二値の第1の並び、及び、前記複数の時刻の間ごとに下り方向のパケットが1つ以上流れたか否かを示す二値の第2の並びを計算し、さらに、前記第1の並びに含まれる並び方の組み合わせごとの出現数に基づく共起行列、及び前記第2の並びに含まれる並び方の組み合わせごとの出現数に基づく共起行列を計算する計算部と、
を有することを特徴とする計算装置。 An acquisition unit that acquires flow statistical information that is statistical information on traffic for each flow ;
A classification unit that classifies the flow statistics information into groups so that the sessions of the underlying traffic are the same;
For each of the sessions corresponding to the group classified by the classifying unit based on the flow statistics information, whether or not one or more upstream packets have flowed between a plurality of times when the flow statistics information is generated. A second sequence of binary values indicating whether or not at least one downstream packet has flowed during each of the plurality of times, and A calculation unit that calculates a co-occurrence matrix based on the number of appearances of each of the combinations of the arrangement methods included in the first and second arrangements, and a co-occurrence matrix based on the number of appearances of each of the combinations of the arrangement methods included in the second arrangement .
A computing device comprising:
前記計算部は、前記統計情報として、前記グループごとのパケットサイズの平均、前記パケットサイズの平均の最大値、前記パケットサイズの平均の最小値、及び前記パケットサイズの平均の標準偏差、前記バイト数の時間平均、及び、時刻ごとの送受信されたパケットの有無を表す情報を計算することを特徴とする請求項1から3のいずれか1項に記載の計算装置。 The acquisition unit acquires at least the number of packets and the number of bytes as the flow statistics information,
The calculation unit may include, as the statistical information, an average of the packet size for each group, a maximum of the average of the packet size, a minimum of the average of the packet size, a standard deviation of the average of the packet size, and the number of bytes. The calculation device according to any one of claims 1 to 3 , wherein a time average and information indicating presence / absence of transmitted / received packets at each time are calculated.
前記分類部は、前記取得部によって前記フロー統計情報が取得されるたびに、前記フロー統計情報を分類し、
前記計算部は、前記分類部によって分類が行われるたびに、前記グループごとのトラフィックに関する統計情報を計算することを特徴とする請求項1から4のいずれか1項に記載の計算装置。 The acquiring unit acquires the flow statistical information corresponding to each of the times at a fixed time interval in chronological order,
The classifying unit, each time the obtaining unit obtains the flow statistical information, classifies the flow statistical information,
The calculation device according to any one of claims 1 to 4 , wherein the calculation unit calculates statistical information on traffic for each group each time the classification unit performs classification.
フローごとのトラフィックに関する統計情報であるフロー統計情報を取得する取得工程と、
前記フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する分類工程と、
前記フロー統計情報に基づいて、前記分類工程によって分類されたグループに対応するセッションのそれぞれについて、前記フロー統計情報が生成された複数の時刻の間ごとに上り方向のパケットが1つ以上流れたか否かを示す二値の第1の並び、及び、前記複数の時刻の間ごとに下り方向のパケットが1つ以上流れたか否かを示す二値の第2の並びを計算し、さらに、前記第1の並びに含まれる並び方の組み合わせごとの出現数に基づく共起行列、及び前記第2の並びに含まれる並び方の組み合わせごとの出現数に基づく共起行列を計算する計算工程と、
を含んだことを特徴とする計算方法。 A calculation method performed by a calculation device,
An acquisition step of acquiring flow statistical information that is statistical information on traffic for each flow ;
A classifying step of classifying the flow statistics into groups so that the sessions of the underlying traffic are the same;
Based on the flow statistic information, for each of the sessions corresponding to the group classified by the classification step, whether or not one or more upstream packets have flowed between a plurality of times when the flow statistic information is generated. A second sequence of binary values indicating whether or not at least one downstream packet has flowed during each of the plurality of times, and A calculating step of calculating a co-occurrence matrix based on the number of appearances of each of the combinations of the arrangement methods included in the first and the second arrangements, and
A calculation method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017111933A JP6662812B2 (en) | 2017-06-06 | 2017-06-06 | Calculation device and calculation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017111933A JP6662812B2 (en) | 2017-06-06 | 2017-06-06 | Calculation device and calculation method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018207345A JP2018207345A (en) | 2018-12-27 |
JP6662812B2 true JP6662812B2 (en) | 2020-03-11 |
Family
ID=64957590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017111933A Active JP6662812B2 (en) | 2017-06-06 | 2017-06-06 | Calculation device and calculation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6662812B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020184690A (en) * | 2019-05-08 | 2020-11-12 | 富士通株式会社 | Packet classification program, packet classification method, and information processing device |
WO2021095106A1 (en) * | 2019-11-11 | 2021-05-20 | 日本電信電話株式会社 | Error detection device, error detection method, and program |
-
2017
- 2017-06-06 JP JP2017111933A patent/JP6662812B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018207345A (en) | 2018-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aouini et al. | NFStream: A flexible network data analysis framework | |
US11800260B2 (en) | Network telemetry with byte distribution and cryptographic protocol data elements | |
Stevanovic et al. | An efficient flow-based botnet detection using supervised machine learning | |
Bujlow et al. | A method for classification of network traffic based on C5. 0 Machine Learning Algorithm | |
Yan et al. | A survey of traffic classification in software defined networks | |
US20140321290A1 (en) | Management of classification frameworks to identify applications | |
US20120182891A1 (en) | Packet analysis system and method using hadoop based parallel computation | |
Shen et al. | Webpage fingerprinting using only packet length information | |
KR20110070464A (en) | Traffic collection device, traffic analysis device, system and analysis method | |
JP2023530828A (en) | Rapid identification of violations and attack executions in network traffic patterns | |
CN111953552B (en) | Data flow classification method and message forwarding equipment | |
Lu et al. | High performance traffic classification based on message size sequence and distribution | |
CN106663040A (en) | Method and system for confident anomaly detection in computer network traffic | |
CN112311630A (en) | Network equipment identification method and device | |
US11050771B2 (en) | Information processing apparatus, communication inspecting method and medium | |
JP6662812B2 (en) | Calculation device and calculation method | |
Mishra et al. | Keeping an eye on congestion control in the wild with nebby | |
JP2020022133A (en) | Infection expansion attack detection device, attack source identification method and program | |
Zhang et al. | UDP traffic classification using most distinguished port | |
Fabini et al. | Advanced Stream and Sampling Framework for IP Performance Metrics (IPPM) | |
Velan et al. | Next generation application-aware flow monitoring | |
JP7396368B2 (en) | Methods, systems and conversion devices | |
Xu et al. | Behavior Modeling of Network Traffic | |
Li et al. | Programmable network traffic classification with OpenFlow extensions | |
KR20180015916A (en) | flow traffic monitoring apparatus in a network-based SDN and method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181016 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190726 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190820 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191021 |
|
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: 20200212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200213 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6662812 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |