JP6944617B1 - パケットキャプチャ装置及び方法 - Google Patents

パケットキャプチャ装置及び方法 Download PDF

Info

Publication number
JP6944617B1
JP6944617B1 JP2021522109A JP2021522109A JP6944617B1 JP 6944617 B1 JP6944617 B1 JP 6944617B1 JP 2021522109 A JP2021522109 A JP 2021522109A JP 2021522109 A JP2021522109 A JP 2021522109A JP 6944617 B1 JP6944617 B1 JP 6944617B1
Authority
JP
Japan
Prior art keywords
packet
capture
memory
packets
secondary storage
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
JP2021522109A
Other languages
English (en)
Other versions
JPWO2021215011A1 (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.)
Toyo Corp
Original Assignee
Toyo Corp
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 Toyo Corp filed Critical Toyo Corp
Application granted granted Critical
Publication of JP6944617B1 publication Critical patent/JP6944617B1/ja
Publication of JPWO2021215011A1 publication Critical patent/JPWO2021215011A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks

Landscapes

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

Abstract

パケットキャプチャ装置(20)は、通信ネットワーク(10)を200Gbpsで流れるパケットをキャプチャするキャプチャ部(21)と、キャプチャされたパケットを一時的に保持する制御部(22)と、一時的に保持されたパケットを二次記憶装置(12)に記録するインタフェース部(25)とを備え、制御部(22)は、第1プロセッサ(23a)と第1メモリ(23b)とで構成される第1NUMAノード(23)、及び、第2プロセッサ(24a)と第2メモリ(24b)とで構成される第2NUMAノード(24)とを有し、キャプチャ部(21)は、パケットをキャプチャして第1メモリ(23b)に格納する第1キャプチャ部(21a)と、パケットをキャプチャして第2メモリ(24b)に格納する第2キャプチャ部(21b)とを有する。

Description

本発明は、通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ装置及び方法に関する。
イーサネット(登録商標)等の通信ネットワークにおける通信障害の対応に備えて、通信ネットワークを流れる全てのパケットを長期間に渡ってキャプチャできるパケットキャプチャ装置が必要とされる。そのために、発生したパケットを取りこぼしなく高速に二次記憶装置に記録することが求められる。
従来、二次記憶装置に高速に記録する技術として、並列二次記憶装置を用いたデータ書き込み方法が提案されている(例えば、特許文献1参照)。特許文献1では、二次記憶装置を並列化し、書き込み要求があったときに、複数の二次記憶装置のうちの最小負荷量のものにデータを記録する。これにより、アクセス負荷量の偏りがなく、並列二次記憶装置のデータ入出力を高速化するというものである。
特開平9−54658号公報
しかしながら、特許文献1の技術では、200Gbpsという極めて高速に通信ネットワークを流れる全てのパケットを取りこぼしなく連続してキャプチャして二次記憶装置に記録することは困難である。
そこで、本発明は、通信ネットワークを200Gbpsで流れる全てのパケットを取りこぼしなく連続してキャプチャして二次記憶装置に記録することができるパケットキャプチャ装置及び方法を提供することを目的とする。
上記目的を達成するために、本発明の一形態に係るパケットキャプチャ装置は、通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ装置であって、前記通信ネットワークを200Gbpsで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャ部と、前記キャプチャ部でキャプチャされたパケットを一時的に保持する制御部と、前記制御部に一時的に保持されたパケットを前記二次記憶装置に記録するインタフェース部とを備え、前記制御部は、NUMA(Non−Uniform Memory Access)アーキテクチャを構成する2つのNUMAノードであって、第1プロセッサと第1メモリとで構成される第1NUMAノード、及び、第2プロセッサと第2メモリとで構成される第2NUMAノードと、前記第1プロセッサと前記第2プロセッサとを接続する通信路とを有し、前記キャプチャ部は、前記第1NUMAノードに接続され、前記通信ネットワークを流れるパケットをキャプチャし、キャプチャしたパケットを前記第1メモリに格納する第1キャプチャ部と、前記第2NUMAノードに接続され、前記通信ネットワークを流れるパケットを、前記第1キャプチャ部によるキャプチャと並行してキャプチャし、キャプチャしたパケットを前記第2メモリに格納する第2キャプチャ部とを有し、前記インタフェース部は、前記第1NUMAノードに接続され、前記第1メモリに格納されたパケットを前記二次記憶装置に記録する第1インタフェース部と、前記第2NUMAノードに接続され、前記第2メモリに格納されたパケットを、前記第1インタフェース部による記録と並行して前記二次記憶装置に記録する第2インタフェース部とを有し、(1)前記第1キャプチャ部によってキャプチャされたパケットが、前記通信路を経由することなく、前記第1NUMAノードを構成する前記第1メモリに格納された後に前記第1NUMAノードに接続された前記第1インタフェース部を介して前記二次記憶装置に記録される処理と、(2)前記第2キャプチャ部によってキャプチャされたパケットが、前記通信路を経由することなく、前記第2NUMAノードを構成する前記第2メモリに格納された後に前記第2NUMAノードに接続された前記第2インタフェース部を介して前記二次記憶装置に記録される処理とが、並列に行われる。
また、上記目的を達成するために、本発明の一形態に係るパケットキャプチャ方法は、通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ方法であって、前記通信ネットワークを200Gbpsで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャステップと、前記キャプチャステップでキャプチャされたパケットを前記二次記憶装置に記録する記録ステップとを含み、前記キャプチャステップは、前記通信ネットワークを流れるパケットをキャプチャし、キャプチャしたパケットを、NUMA(Non−Uniform Memory Access)アーキテクチャを構成する第1NUMAノードが有する第1メモリに格納する第1キャプチャステップと、前記通信ネットワークを流れるパケットを、前記第1キャプチャステップによるキャプチャと並行してキャプチャし、キャプチャしたパケットを、前記NUMAアーキテクチャを構成する第2NUMAノードが有する第2メモリに格納する第2キャプチャステップとを含み、前記記録ステップは、前記第1メモリに格納されたパケットを前記二次記憶装置に記録する第1記録ステップと、前記第2メモリに格納されたパケットを、前記第1記録ステップによる記録と並行して前記二次記憶装置に記録する第2記録ステップとを含み、前記第1キャプチャステップ、前記第2キャプチャステップ、前記第1記録ステップ、及び、前記第2記録ステップでは、前記パケットは、前記第1NUMAノードを構成する第1プロセッサと前記第2NUMAノードを構成する第2プロセッサとを接続する通信路を経由しない。
本発明により、通信ネットワークを200Gbpsで流れる全てのパケットを取りこぼしなく連続してキャプチャして二次記憶装置に記録することができるパケットキャプチャ装置及び方法が提供される。
図1は、実施の形態に係るパケットキャプチャ装置の構成を示すブロック図である。 図2は、図1に示されたパケットキャプチャ装置の詳細な構成を示すブロック図である。 図3は、実施の形態に係るパケットキャプチャ装置の動作(パケットキャプチャ方法)を示すフローチャートである。 図4Aは、図3のキャプチャステップにおけるパケットの流れを示す図である。 図4Bは、図3の記録ステップにおけるパケットの流れを示す図である。 図5は、実施の形態に係るパケットキャプチャ装置の動作の詳細(マルチスレッドによる並列処理)を示すデータフロー図である。 図6は、実験に用いた本実施の形態に係るパケットキャプチャ装置の外観図である。 図7Aは、図5に示されるパケットキャプチャ装置による実験結果を示す図である。 図7Bは、比較例に係るパケットキャプチャ装置による実験結果を示す図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示す。以下の実施の形態で示される数値、形状、製造会社、型番、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本発明を限定する主旨ではない。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化する。
図1は、実施の形態に係るパケットキャプチャ装置20の構成を示すブロック図である。なお、本図には、パケットキャプチャの対象となる通信ネットワーク10、及び、キャプチャしたパケットの記録先である二次記憶装置12も併せて図示されている。
パケットキャプチャ装置20は、通信ネットワーク10を流れるパケットをキャプチャして二次記憶装置12に記録する装置であって、通信ネットワーク10を200Gbpsで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャ部21と、キャプチャ部21でキャプチャされたパケットを一時的に保持する制御部22と、制御部22に一時的に保持されたパケットを二次記憶装置12に記録するインタフェース部25とを備える。
制御部22は、NUMA(Non−Uniform Memory Access)アーキテクチャを構成する2つのNUMAノードであって、並列に動作する第1NUMAノード23及び第2NUMAノード24を有する。第1NUMAノード23は、第1プロセッサ23aと第1メモリ23bとで構成される。第2NUMAノード24は、第2プロセッサ24aと第2メモリ24bとで構成される。
なお、NUMAアーキテクチャとは、共有メモリ型マルチプロセッサコンピュータシステムのアーキテクチャの一つであり、プロセッサとメモリとの対(これをノードと呼ぶ)が複数存在し、それらをインターコネクトで接続したものである。NUMAアーキテクチャによれば、プロセッサから見て同一ノードのメモリ(ローカルメモリともいう)へのアクセスは低レイテンシとなり、別ノードのメモリ(リモートメモリともいう)へのアクセスは高レイテンシとなる。なお、参考までに、NUMAアーキテクチャとは異なるUMA(Uniform Memory Access)アーキテクチャとは、共有メモリ型マルチプロセッサコンピュータシステムのアーキテクチャの一つであり、各プロセッサがバスを共有しており、すべてのプロセッサが任意のメモリに対して同じ時間でアクセスできるアーキテクチャである。本実施の形態では、マルチプロセッサにおけるローカルメモリへのアクセスが低レイテンシであるという特徴を有するNUMAアーキテクチャが用いられている。
キャプチャ部21は、並列に動作する第1キャプチャ部21a及び第2キャプチャ部21bを有する。第1キャプチャ部21aは、第1NUMAノード23に接続され、通信ネットワーク10を流れるパケットをキャプチャし、キャプチャしたパケットを第1メモリ23bに格納する。つまり、第1メモリ23bは、第1キャプチャ部21aによりキャプチャされたパケットのバッファメモリとして機能する。第2キャプチャ部21bは、第2NUMAノード24に接続され、通信ネットワーク10を流れるパケットを、第1キャプチャ部21aによるキャプチャと並行してキャプチャし、キャプチャしたパケットを第2メモリ24bに格納する。つまり、第2メモリ24bは、第2キャプチャ部21bによりキャプチャされたパケットのバッファメモリとして機能する。
インタフェース部25は、並列に動作する第1インタフェース部25a及び第2インタフェース部25bを有する。第1インタフェース部25aは、第1NUMAノード23に接続され、第1メモリ23bに格納されたパケットを二次記憶装置12に記録する。第2インタフェース部25bは、第2NUMAノード24に接続され、第2メモリ24bに格納されたパケットを、第1インタフェース部25aによる記録と並行して二次記憶装置12に記録する。
二次記憶装置12は、パケットを保持するための不揮発性記憶装置(ストレージ)であり、SSD(Solid State Drive)又はHDD(Hard Disk Drive)等で構成される複数の二次記憶装置12a〜12dの集まりである。
図2は、図1に示されたパケットキャプチャ装置20の詳細な構成を示すブロック図である。なお、本図には、一つの通信ネットワーク10を構成する上り用の通信ネットワーク10a及び下り用の通信ネットワーク10b、二次記憶装置12を構成する複数の二次記憶装置12a〜12d、及び、OS(Operating System)を格納している二次記憶装置14も併せて図示されている。
本図に示されるように、第1NUMAノード23を構成する第1プロセッサ23aと、第2NUMAノード24を構成する第2プロセッサ24aとは、QPI(Quick Path Interconnect)で接続され、通信し合うことができる。
第1プロセッサ23aは、3つのPCI(Peripheral Component Interconnect)スロット#1〜#3を有し、それらのうち、2つのPCIスロット#1及び#2を用いてPCI−E(PCI Express)バスを介して第1インタフェース部25aと接続され、1つのPCIスロット#3を用いてPCI−Eバスを介して第1キャプチャ部21aと接続されている。
第1NUMAノード23を構成する第1メモリ23bは、例えば、DDR4 SDRAM(Double−Data−Rate4 Synchronous Dynamic Random Access Memory)である。
第1キャプチャ部21aは、通信ネットワーク10を構成する上り用の通信ネットワーク10aに対して、第1種類のパケット、つまり、100Gbpsで流れる上りのパケットをタップで分岐させた上で、トランシーバで検知してキャプチャし、キャプチャしたパケットを第1メモリ23bに格納するNIC(Network Interface Card)である。
第1インタフェース部25aは、並列に動作する2つのRAID(Redundant Arrays of Inexpensive Disks)コントローラ26a及び26bを有する。2つのRAIDコントローラ26a及び26bは、それぞれ、RAIDを構成する二次記憶装置12a及び12bに対してデータの入出力及び管理を行う。
二次記憶装置14は、OS(Operating System)を格納しており、第1プロセッサ23aに接続されている。なお、OSには、パケットキャプチャ装置20を動作させるためのプログラム、つまり、後述するように、第1プロセッサ23aによって並列処理される複数の第1スレッド、及び、第2プロセッサ24aによって並列処理される複数の第2スレッドとなるプログラムが含まれる。
第2プロセッサ24aは、3つのPCIスロット#1〜#3を有し、それらのうち、2つのPCIスロット#1及び#2を用いてPCI−Eバスを介して第2インタフェース部25bと接続され、1つのPCIスロット#3を用いてPCI−Eバスを介して第2キャプチャ部21bと接続されている。
第2NUMAノード24を構成する第2メモリ24bは、例えば、DDR4 SDRAMである。
第2キャプチャ部21bは、通信ネットワーク10を構成する下り用の通信ネットワーク10bに対して、第2種類のパケット、つまり、100Gbpsで流れる下りのパケットをタップで分岐させた上で、トランシーバで検知してキャプチャし、キャプチャしたパケットを第2メモリ24bに格納するNICである。
第2インタフェース部25bは、並列に動作する2つのRAIDコントローラ27a及び27bを有する。2つのRAIDコントローラ27a及び27bは、それぞれ、RAIDを構成する二次記憶装置12c及び12dに対してデータの入出力及び管理を行う。
次に、以上のように構成された本実施の形態に係るパケットキャプチャ装置20の動作について説明する。
図3は、実施の形態に係るパケットキャプチャ装置20の動作(つまり、パケットキャプチャ方法)を示すフローチャートである。
まず、キャプチャ部21は、制御部22による制御の下で、通信ネットワーク10を200Gbpsで流れるパケットを取りこぼすことなく連続してキャプチャする(キャプチャステップS10)。図4Aは、図3のキャプチャステップS10におけるパケットの流れを示す図である。黒色の太い矢印がキャプチャされたパケットの流れを示している。
このキャプチャステップS10では、第1キャプチャステップS10aと第2キャプチャステップS10bとが並列に行われる。つまり、第1キャプチャステップS10aでは、第1キャプチャ部21aは、第1NUMAノード23による制御の下で、通信ネットワーク10aを100Gbpsで流れるパケットをキャプチャし、キャプチャしたパケットを、第1NUMAノード23が有するローカルメモリである第1メモリ23bに格納する。一方、第2キャプチャステップS10bでは、第2キャプチャ部21bは、第2NUMAノード24による制御の下で、通信ネットワーク10bを100Gbpsで流れるパケットをキャプチャし、キャプチャしたパケットを、第2NUMAノード24が有するローカルメモリである第2メモリ24bに格納する。
次に、インタフェース部25は、制御部22による制御の下で、キャプチャステップS10でキャプチャされたパケットを二次記憶装置12に記録する(図3の記録ステップS11)。図4Bは、図3の記録ステップS11におけるパケットの流れを示す図である。黒色の太い矢印がキャプチャされたパケットの流れを示している。
この記録ステップS11では、第1記録ステップS11aと第2記録ステップS11bとが並列に行われる。つまり、第1記録ステップS11aでは、第1インタフェース部25aは、第1NUMAノード23による制御の下で、第1メモリ23bに格納されたパケットを二次記憶装置12a及び12bに記録する。一方、第2記録ステップS11bでは、第2インタフェース部25bは、第2NUMAノード24による制御の下で、第2メモリ24bに格納されたパケットを二次記憶装置12c及び12dに記録する。
図5は、実施の形態に係るパケットキャプチャ装置20の動作の詳細(つまり、マルチスレッドによる並列処理)を示すデータフロー図である。ここでは、キャプチャされたパケットが記録されるときのパケットの流れが示されている。図5の(a)は、第1NUMAノード23を経るパケットの流れを示し、図5の(b)は、第2NUMAノード24を経るパケットの流れを示している。
図5の(a)に示されるように、第1NUMAノード23を経るパケットの流れでは、まず、第1プロセッサ23aによって実行される複数のスレッド(キャプチャスレッド30a〜30c)による並列転送によって、第1キャプチャ部21aでキャプチャされたパケットが第1メモリ23bに格納される。次に、第1メモリ23bに格納された複数のパケットは、ロードバランサ31を経た後に、第1プロセッサ23aによって実行される複数のスレッド(キュー33a〜33cをもつストアスレッド32a〜32c)による並列転送によって、第1インタフェース部25a(図示せず)を経て二次記憶装置12a及び12bに記録される。なお、キャプチャスレッド30a〜30c及びストアスレッド32a〜32cは、第1プロセッサ23aによって並列処理される複数の第1スレッドの一例である。また、スレッドによるパケットの転送は、所定量のデータであるブロックの単位で行われる。
ロードバランサ31は、第1メモリ23bに格納された複数のパケットを二次記憶装置12a及び12bに記録する負荷を複数のストアスレッド32a〜32cに分散する制御を行うプロセスであり、第1プロセッサ23aによって実行される。なお、キャプチャスレッド30a〜30c、ストアスレッド32a〜32c及びロードバランサ31は、二次記憶装置14に格納されていたプログラムが第1プロセッサ23aを経て第1メモリ23bにロードして保持されるソフトウェアである。
図5の(b)に示されるように、第2NUMAノード24を経るパケットの流れでは、まず、第2プロセッサ24aによって実行される複数のスレッド(キャプチャスレッド40a〜40c)による並列転送によって、第2キャプチャ部21bでキャプチャされたパケットが第2メモリ24bに格納される。次に、第2メモリ24bに格納された複数のパケットは、ロードバランサ41を経た後に、第2プロセッサ24aによって実行される複数のスレッド(キュー43a〜43cをもつストアスレッド42a〜42c)による並列転送によって、第2インタフェース部25b(図示せず)を経て二次記憶装置12c及び12dに記録される。なお、キャプチャスレッド40a〜40c及びストアスレッド42a〜42cは、第2プロセッサ24aによって並列処理される複数の第2スレッドの一例である。また、スレッドによるパケットの転送は、所定量のデータであるブロックの単位で転送される。
ロードバランサ41は、第2メモリ24bに格納された複数のパケットを二次記憶装置12b及び12dに記録する負荷を複数のストアスレッド42a〜42cに分散する制御を行うプロセスであり、第2プロセッサ24aによって実行される。なお、キャプチャスレッド40a〜40c、ストアスレッド42a〜42c及びロードバランサ41は、二次記憶装置14に格納されていたプログラムが第1プロセッサ23a及び第2プロセッサ24aを経て第2メモリ24bにロードして保持されるソフトウェアである。
このように、本実施の形態に係るパケットキャプチャ装置20では、第1NUMAノード23を経るパケットの流れと、第2NUMAノード24を経るパケットの流れとは、完全に分離され、かつ、並行して行われ、これによって、トータルとして、パケットキャプチャ装置20による高速なパケットキャプチャリングが実現されている。
次に、本実施の形態に係るパケットキャプチャ装置20を用いて、200Gbpsのイーサネット(登録商標)を流れるパケットを連続してキャプチャする実験を行ったので、以下、その実験について説明する。
図6は、実験に用いた本実施の形態に係るパケットキャプチャ装置20の外観図である。このパケットキャプチャ装置20は、キーボード及びディスプレイ等のユーザインタフェース並びに二次記憶装置も含めて一体化されたポータブル型システムとして構築されたものであり、その主要なハードウェア構成は、次の通りである。
第1プロセッサ23a及び第2プロセッサ24aは、いずれも、Intel社のモデルXeon E5−2637 v3(ベース動作周波数が3.5GHz、コア数が4個、スレッド数が8個)である。
第1メモリ23b及び第2メモリ24bは、いずれも、8個の8GBのDIMM(Dual Inline Memory Module、スピードがDDR4−2133、合計メモリサイズが64GB)で構成される。
第1キャプチャ部21a及び第2キャプチャ部21bは、いずれも、Napatech社のモデルNT200A01−2x100である。
第1インタフェース部25a及び第2インタフェース部25bは、いずれも、2個のMicrosemi Adaptec社のモデルASR−81605ZQ RAIDカードで構成される。
二次記憶装置12(二次記憶装置12a〜12d)は、32個のSeagate社のモデルNytro3530(容量が3.2TB、タイプがSASのSSD)で構成される。
図7Aは、図5に示されるパケットキャプチャ装置20による実験結果を示す図である。図7Bは、比較例に係るパケットキャプチャ装置による実験結果を示す図である。比較例に係るパケットキャプチャ装置は、NUMAアーキテクチャを備えない(つまり、UMAアーキテクチャを備える)パケットキャプチャ装置である。
図7A及び図7Bにおいて、横軸は、時間(秒)を示す。図7Aの(a)及び図7Bの(a)の縦軸は、二次記憶装置12(具体的には、8つの二次記憶装置の一つ(二次記憶装置12a等))への書き込み速度(MB/s)を示し、図7Aの(b)及び図7Bの(b)の縦軸は、二次記憶装置12への入出力を行っている時間の割合(%)を示す。図7A及び図7Bには、繰り返しサンプリングで得られた計測値がプロットされている。
比較例に係る図7Bでは、「パケットドロップ発生」と記載された箇所に示されるように、間欠的かつ継続して書き込み速度が低下し(図7Bの(a))、かつ、入出力を行っている時間の割合が低下する(図7Bの(b))現象が見られた。書き込み速度と入出力を行っている時間の割合が同時に低下していることから、二次記憶装置の間欠的な書き込み性能の劣化ではなく、二次記憶装置に十分な書き込み用のデータ自体が到達していないことが分かる。つまり、二次記憶装置に至るまでの途中経路を原因として書き込み速度が低下している。より詳しくは、1〜2時間毎にパケットドロップが発生していた。つまり、比較例に係るパケットキャプチャ装置は、200Gbpsで流れるパケットを取りこぼすことなく連続して二次記憶装置に記録することができなかったことが分かる。
これに対し、本実施の形態に係る図7Aでは、書き込み速度の大きな低下(図7Aの(a))も、入出力の時間の大きな低下(図7Aの(b))も、観察されなかった。より詳しくは、48時間以上連続して、パケットドロップを発生することなくキャプチャされた。つまり、本実施の形態に係るパケットキャプチャ装置20は、200Gbpsで流れるパケットを取りこぼすことなく連続して二次記憶装置に記録することができた。これは、本実施の形態に係るパケットキャプチャ装置20は、比較例に係るパケットキャプチャ装置と異なり、独立かつ並行してデータ転送を行う2つのNUMAノードで構成されるNUMAアーキテクチャをもつことに起因すると考えられる。つまり、実施の形態に係るパケットキャプチャ装置20では、それぞれのNUMAノード内のCPUに属する二次記憶装置を明示的に指定して、NUMAノードごとに並列に書き込むまでの処理を独立して行っている。これにより、データ転送のボトルネックとなるQPIを経由することなく、マルチプロセッサによる並列処理により、キャプチャされたパケットが二次記憶装置12に記録される。
以上のように、本実施の形態に係るパケットキャプチャ装置20は、通信ネットワーク10を流れるパケットをキャプチャして二次記憶装置12に記録する装置であって、通信ネットワーク10を200Gbpsで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャ部21と、キャプチャ部21でキャプチャされたパケットを一時的に保持する制御部22と、制御部22に一時的に保持されたパケットを二次記憶装置12に記録するインタフェース部25とを備える。制御部22は、NUMAアーキテクチャを構成する2つのNUMAノードであって、第1プロセッサ23aと第1メモリ23bとで構成される第1NUMAノード23、及び、第2プロセッサ24aと第2メモリ24bとで構成される第2NUMAノード24とを有する。キャプチャ部21は、第1NUMAノード23に接続され、通信ネットワーク10を流れるパケットをキャプチャし、キャプチャしたパケットを第1メモリ23bに格納する第1キャプチャ部21aと、第2NUMAノード24に接続され、通信ネットワーク10を流れるパケットを、第1キャプチャ部21aによるキャプチャと並行してキャプチャし、キャプチャしたパケットを第2メモリ24bに格納する第2キャプチャ部21bとを有する。インタフェース部25は、第1NUMAノード23に接続され、第1メモリ23bに格納されたパケットを二次記憶装置12に記録する第1インタフェース部25aと、第2NUMAノード24に接続され、第2メモリ24bに格納されたパケットを、第1インタフェース部25aによる書き込みと並行して二次記憶装置12に記録する第2インタフェース部25bとを有する。
これにより、NUMAアーキテクチャにより、第1NUMAノード23によるパケットキャプチャ及び二次記憶装置12へのパケットの記録と、第2NUMAノード24によるパケットキャプチャ及び二次記憶装置12へのパケットの記録とが、NUMAノードごとに並列かつ独立して行われるので、通信ネットワークを200Gbpsで流れる全てのパケットを取りこぼしなく連続してキャプチャして二次記憶装置12に記録される。
ここで、第1キャプチャ部21aは、通信ネットワーク10を100Gbpsで流れる第1種類のパケットをキャプチャし、キャプチャしたパケットを第1メモリ23bに格納し、第2キャプチャ部21bは、通信ネットワーク10を100Gbpsで流れる第2種類のパケットを、第1キャプチャ部21aによるキャプチャと並行してキャプチャし、キャプチャしたパケットを第2メモリ24bに格納する。これにより、通信ネットワークを200Gbpsで流れるパケットのキャプチャリングは、2つのNUMAノードに均等に負荷分散され、取りこぼしなく連続して行われる。
また、第1種類のパケットは、通信ネットワーク10における上りのパケットであり、第2種類のパケットは、通信ネットワーク10における下りのパケットである。これにより、通信ネットワークを200Gbpsで流れるパケットは、上りのパケットと下りのパケットに分けて、2つのNUMAノードに負荷分散される。
また、第1メモリ23bは、第1プロセッサ23aによって並列処理される複数の第1スレッドを保持し、複数の第1スレッドには、第1キャプチャ部21aによって順次キャプチャされたパケットを第1メモリ23bに格納する複数のキャプチャスレッド30a〜30c、及び、第1メモリ23bに格納された複数のパケットを、第1インタフェース部25aを介して二次記憶装置12に記録する複数のストアスレッド32a〜32cが含まれ、第2メモリ24bは、第2プロセッサ24aによって並列処理される複数の第2スレッドを保持し、複数の第2スレッドには、第2キャプチャ部21bによって順次キャプチャされたパケットを第2メモリ24bに格納する複数のキャプチャスレッド40a〜40c、及び、第2メモリ24bに格納された複数のパケットを第2インタフェース部25bを介して二次記憶装置12に記録する複数のストアスレッド42a〜42cが含まれる。
これにより、第1プロセッサ23aによるマルチスレッドにより、第1キャプチャ部21aによって取りこぼすことなく連続してキャプチャされたパケットが二次記憶装置12に記録され、これと並行して、第2プロセッサ24aによるマルチスレッドにより、第2キャプチャ部21bによって取りこぼすことなく連続してキャプチャされたパケットが二次記憶装置12に記録される。
また、本実施の形態に係るパケットキャプチャ方法は、通信ネットワーク10を流れるパケットをキャプチャして二次記憶装置12に記録する方法であって、通信ネットワーク10を200Gbpsで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャステップS10と、キャプチャステップS10でキャプチャされたパケットを二次記憶装置12に記録する記録ステップS11とを含む。キャプチャステップS10は、通信ネットワーク10を流れるパケットをキャプチャし、キャプチャしたパケットを、NUMAアーキテクチャを構成する第1NUMAノード23が有する第1メモリ23bに格納する第1キャプチャステップS10aと、通信ネットワーク10を流れるパケットを、第1キャプチャステップS10aによるキャプチャと並行してキャプチャし、キャプチャしたパケットを、NUMAアーキテクチャを構成する第2NUMAノード24が有する第2メモリ24bに格納する第2キャプチャステップS10bとを含む。記録ステップS11は、第1メモリ23bに格納されたパケットを二次記憶装置12に記録する第1記録ステップS11aと、第2メモリ24bに格納されたパケットを、第1記録ステップS11aによる記録と並行して二次記憶装置12に記録する第2記録ステップS11bとを含む。
これにより、NUMAアーキテクチャにより、第1NUMAノード23によるパケットキャプチャ及び二次記憶装置12へのパケットの記録と、第2NUMAノード24によるパケットキャプチャ及び二次記憶装置12へのパケットの記録とが、NUMAノードごとに並列かつ独立して行われるので、通信ネットワークを200Gbpsで流れる全てのパケットを取りこぼしなく連続してキャプチャして二次記憶装置12に記録される。
以上、本発明に係るパケットキャプチャ装置及び方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の主旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本発明の範囲内に含まれる。
本発明は、通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ装置として、200Gbpsのイーサネット(登録商標)における通信障害の対応に備えて通信ネットワークを流れる全てのパケットを長期間に渡ってキャプチャできるパケットキャプチャ装置として、利用できる。
例えば、上記実施の形態に係るパケットキャプチャ装置20は、2つのNUMAノードを有したが、3つ以上のNUMAノードを有し、200Gbpsを超える通信速度の通信ネットワークを流れる全てのパケットを長期間に渡ってキャプチャしてもよい。例えば、一つのNUMAノードに対応するキャプチャ部、NUMAノード及びインタフェース部を一つの系統とした場合に、パケットキャプチャ装置20は、3以上の系統を備えてもよい。
また、上記実施の形態に係るパケットキャプチャ装置20は、二次記憶装置12への入出力のためのインタフェース部25としてRAIDコントローラを備えたが、このようなタイプのコントローラに限られず、例えば、非RAIDコントローラを備えてもよい。
また、実施の形態に係るパケットキャプチャ装置20では、2つのNUMAノードに対して、上りのパケットに対するキャプチャリングと下りのパケットに対するキャプチャリングとに負荷分散されたが、このような負荷分散に限られない。例えば、200Gbpsでキャプチャできる1枚のキャプチャカードによってキャプチャされ一時的に保存されたパケットに対して、ブロック単位で、二次記憶装置12への記録経路を2つのNUMAノードに分散させてもよい。
また、本発明は、パケットキャプチャ装置及び方法として実現できるだけでなく、パケットキャプチャ装置20を構成するプログラム(つまり、スレッド及びプロセス)として実現したり、そのプログラムが記録されたコンピュータ読み取り可能な記録媒体として実現したりしてもよい。
10、10a、10b 通信ネットワーク
12、12a〜12d、14 二次記憶装置
20 パケットキャプチャ装置
21 キャプチャ部
21a 第1キャプチャ部
21b 第2キャプチャ部
22 制御部
23 第1NUMAノード
23a 第1プロセッサ
23b 第1メモリ
24 第2NUMAノード
24a 第2プロセッサ
24b 第2メモリ
25 インタフェース部
25a 第1インタフェース部
25b 第2インタフェース部
26a、26b、27a、27b RAIDコントローラ
30a〜30c、40a〜40c キャプチャスレッド
31、41 ロードバランサ
32a〜32c、42a〜42c ストアスレッド
33a〜33c、43a〜43c キュー

Claims (5)

  1. 通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ装置であって、
    前記通信ネットワークを200Gbpsで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャ部と、
    前記キャプチャ部でキャプチャされたパケットを一時的に保持する制御部と、
    前記制御部に一時的に保持されたパケットを前記二次記憶装置に記録するインタフェース部とを備え、
    前記制御部は、NUMA(Non−Uniform Memory Access)アーキテクチャを構成する2つのNUMAノードであって、第1プロセッサと第1メモリとで構成される第1NUMAノード、及び、第2プロセッサと第2メモリとで構成される第2NUMAノードと、前記第1プロセッサと前記第2プロセッサとを接続する通信路とを有し、
    前記キャプチャ部は、
    前記第1NUMAノードに接続され、前記通信ネットワークを流れるパケットをキャプチャし、キャプチャしたパケットを前記第1メモリに格納する第1キャプチャ部と、
    前記第2NUMAノードに接続され、前記通信ネットワークを流れるパケットを、前記第1キャプチャ部によるキャプチャと並行してキャプチャし、キャプチャしたパケットを前記第2メモリに格納する第2キャプチャ部とを有し、
    前記インタフェース部は、
    前記第1NUMAノードに接続され、前記第1メモリに格納されたパケットを前記二次記憶装置に記録する第1インタフェース部と、
    前記第2NUMAノードに接続され、前記第2メモリに格納されたパケットを、前記第1インタフェース部による記録と並行して前記二次記憶装置に記録する第2インタフェース部とを有し、
    (1)前記第1キャプチャ部によってキャプチャされたパケットが、前記通信路を経由することなく、前記第1NUMAノードを構成する前記第1メモリに格納された後に前記第1NUMAノードに接続された前記第1インタフェース部を介して前記二次記憶装置に記録される処理と、(2)前記第2キャプチャ部によってキャプチャされたパケットが、前記通信路を経由することなく、前記第2NUMAノードを構成する前記第2メモリに格納された後に前記第2NUMAノードに接続された前記第2インタフェース部を介して前記二次記憶装置に記録される処理とが、並列に行われる
    パケットキャプチャ装置。
  2. 前記第1キャプチャ部は、前記通信ネットワークを100Gbpsで流れる第1種類のパケットをキャプチャし、キャプチャしたパケットを前記第1メモリに格納し、
    前記第2キャプチャ部は、前記通信ネットワークを100Gbpsで流れる第2種類のパケットを、前記第1キャプチャ部によるキャプチャと並行してキャプチャし、キャプチャしたパケットを前記第2メモリに格納する
    請求項1記載のパケットキャプチャ装置。
  3. 前記第1種類のパケットは、前記通信ネットワークにおける上りのパケットであり、
    前記第2種類のパケットは、前記通信ネットワークにおける下りのパケットである
    請求項2記載のパケットキャプチャ装置。
  4. 前記第1メモリは、前記第1プロセッサによって並列処理される複数の第1スレッドを保持し、
    前記複数の第1スレッドには、前記第1キャプチャ部によってキャプチャされたパケットを前記第1メモリに格納する複数のスレッド、及び、前記第1メモリに格納されたパケットを、前記第1インタフェース部を介して前記二次記憶装置に記録する複数のスレッドが含まれ、
    前記第2メモリは、前記第2プロセッサによって並列処理される複数の第2スレッドを保持し、
    前記複数の第2スレッドには、前記第2キャプチャ部によってキャプチャされたパケットを前記第2メモリに格納する複数のスレッド、及び、前記第2メモリに格納されたパケットを、前記第2インタフェース部を介して前記二次記憶装置に記録する複数のスレッドが含まれる
    請求項1〜3のいずれか1項に記載のパケットキャプチャ装置。
  5. 通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ方法であって、
    前記通信ネットワークを200Gbpsで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャステップと、
    前記キャプチャステップでキャプチャされたパケットを前記二次記憶装置に記録する記録ステップとを含み、
    前記キャプチャステップは、
    前記通信ネットワークを流れるパケットをキャプチャし、キャプチャしたパケットを、NUMA(Non−Uniform Memory Access)アーキテクチャを構成する第1NUMAノードが有する第1メモリに格納する第1キャプチャステップと、
    前記通信ネットワークを流れるパケットを、前記第1キャプチャステップによるキャプチャと並行してキャプチャし、キャプチャしたパケットを、前記NUMAアーキテクチャを構成する第2NUMAノードが有する第2メモリに格納する第2キャプチャステップとを含み、
    前記記録ステップは、
    前記第1メモリに格納されたパケットを前記二次記憶装置に記録する第1記録ステップと、
    前記第2メモリに格納されたパケットを、前記第1記録ステップによる記録と並行して前記二次記憶装置に記録する第2記録ステップとを含み、
    前記第1キャプチャステップ、前記第2キャプチャステップ、前記第1記録ステップ、及び、前記第2記録ステップでは、前記パケットは、前記第1NUMAノードを構成する第1プロセッサと前記第2NUMAノードを構成する第2プロセッサとを接続する通信路を経由しない
    パケットキャプチャ方法。
JP2021522109A 2020-04-24 2020-04-24 パケットキャプチャ装置及び方法 Active JP6944617B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/017856 WO2021215011A1 (ja) 2020-04-24 2020-04-24 パケットキャプチャ装置及び方法

Publications (2)

Publication Number Publication Date
JP6944617B1 true JP6944617B1 (ja) 2021-10-06
JPWO2021215011A1 JPWO2021215011A1 (ja) 2021-10-28

Family

ID=77915158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021522109A Active JP6944617B1 (ja) 2020-04-24 2020-04-24 パケットキャプチャ装置及び方法

Country Status (4)

Country Link
US (1) US11296958B2 (ja)
JP (1) JP6944617B1 (ja)
CN (1) CN115428409B (ja)
WO (1) WO2021215011A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190354318A1 (en) * 2017-05-31 2019-11-21 FMAD Engineering GK High-Speed Data Packet Capture and Storage with Playback Capabilities
JP2019536383A (ja) * 2016-11-30 2019-12-12 新華三技術有限公司New H3C Technologies Co., Ltd. パケット伝送

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0954658A (ja) 1995-06-08 1997-02-25 Sanyo Electric Co Ltd 並列二次記憶装置およびそのアクセス方法
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US6418517B1 (en) * 1997-08-29 2002-07-09 International Business Machines Corporation Optimized function execution for a multiprocessor computer system
US6275900B1 (en) * 1999-01-27 2001-08-14 International Business Machines Company Hybrid NUMA/S-COMA system and method
US7508764B2 (en) * 2005-09-12 2009-03-24 Zeugma Systems Inc. Packet flow bifurcation and analysis
US7733891B2 (en) * 2005-09-12 2010-06-08 Zeugma Systems Inc. Methods and apparatus to support dynamic allocation of traffic management resources in a network element
US7797588B2 (en) * 2008-02-01 2010-09-14 International Business Machines Corporation Mechanism to provide software guaranteed reliability for GSM operations
JP5157846B2 (ja) * 2008-11-21 2013-03-06 富士通株式会社 負荷分散プログラム、キャプチャ装置及び負荷分散方法
US20110103391A1 (en) * 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US9648102B1 (en) * 2012-12-27 2017-05-09 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) * 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9037898B2 (en) * 2012-12-18 2015-05-19 International Business Machines Corporation Communication channel failover in a high performance computing (HPC) network
US20150262632A1 (en) * 2014-03-12 2015-09-17 Fusion-Io, Inc. Grouping storage ports based on distance
US9684597B1 (en) * 2014-08-07 2017-06-20 Chelsio Communications, Inc. Distributed cache coherent shared memory controller integrated with a protocol offload network interface card
CN105357151B (zh) * 2015-11-19 2019-03-19 成都科来软件有限公司 一种基于dpdk的抓包及镜像流量转发方法
CN106936739B (zh) 2015-12-30 2020-02-11 新华三技术有限公司 一种报文转发方法及装置
US10250511B2 (en) 2016-06-10 2019-04-02 International Business Machines Corporation Persistent flow identifiers enabling disparate applications
JP6855906B2 (ja) * 2017-04-25 2021-04-07 富士通株式会社 スイッチプログラム、スイッチング方法及び情報処理装置
US11036438B2 (en) * 2017-05-31 2021-06-15 Fmad Engineering Kabushiki Gaisha Efficient storage architecture for high speed packet capture
US10585622B2 (en) 2017-12-04 2020-03-10 Toyo Corporation Data writing device and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019536383A (ja) * 2016-11-30 2019-12-12 新華三技術有限公司New H3C Technologies Co., Ltd. パケット伝送
US20190354318A1 (en) * 2017-05-31 2019-11-21 FMAD Engineering GK High-Speed Data Packet Capture and Storage with Playback Capabilities

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PAUL, M. V. V. ET AL.: "Traffic Capture beyond 10 Gbps: Linear Scaling with Multiple Network Interface Cards on Commodity Se", PROCEEDINGS OF THE 2014 INTERNATIONAL CONFERENCE ON DATA SCIENCE & ENGINEERING (ICDSE), JPN6021030324, 4 December 2014 (2014-12-04), pages 194 - 199, ISSN: 0004583247 *

Also Published As

Publication number Publication date
CN115428409B (zh) 2023-04-11
US20220045918A1 (en) 2022-02-10
WO2021215011A1 (ja) 2021-10-28
CN115428409A (zh) 2022-12-02
JPWO2021215011A1 (ja) 2021-10-28
US11296958B2 (en) 2022-04-05

Similar Documents

Publication Publication Date Title
KR101827369B1 (ko) 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
US8898385B2 (en) Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
JP2012533796A5 (ja)
KR20100070968A (ko) 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법
US11281509B2 (en) Shared memory management
US9507633B2 (en) Scheduling method and system
US9690713B1 (en) Systems and methods for effectively interacting with a flash memory
CN106951488A (zh) 一种日志记录方法和装置
US20090037671A1 (en) Hardware device data buffer
US20200285510A1 (en) High precision load distribution among processors
Islam et al. Efficient data access strategies for Hadoop and Spark on HPC cluster with heterogeneous storage
US9734087B2 (en) Apparatus and method for controlling shared cache of multiple processor cores by using individual queues and shared queue
US10078602B2 (en) Information processing apparatus, memory controller, and memory control method
JP6944617B1 (ja) パケットキャプチャ装置及び方法
US20230105953A1 (en) Systems and methods for object migration in storage devices
JP6377304B1 (ja) データ書き込み装置及び方法
US9710409B2 (en) Interrupt control apparatus and interrupt control method
TWI461909B (zh) 大量儲存系統及在其中之資料轉移方法
US10824640B1 (en) Framework for scheduling concurrent replication cycles
US10928871B2 (en) Computing device and operation method thereof
JP6836536B2 (ja) ストレージシステム及びio処理の制御方法
CN111666253A (zh) 向具有共享存储器的共享处理元件的系统传递可编程数据
US11704211B1 (en) Error avoidance in memory device
US11782615B2 (en) Information processing system, non-transitory computer-readable recording medium having stored therein storage controlling program, and storage controller
US10733128B2 (en) Processor and data transfer method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210422

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210422

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210526

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20210716

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20210719

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210910

R150 Certificate of patent or registration of utility model

Ref document number: 6944617

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250