JP2018196075A - 検索装置、検索プログラム、及び検索方法 - Google Patents
検索装置、検索プログラム、及び検索方法 Download PDFInfo
- Publication number
- JP2018196075A JP2018196075A JP2017100670A JP2017100670A JP2018196075A JP 2018196075 A JP2018196075 A JP 2018196075A JP 2017100670 A JP2017100670 A JP 2017100670A JP 2017100670 A JP2017100670 A JP 2017100670A JP 2018196075 A JP2018196075 A JP 2018196075A
- Authority
- JP
- Japan
- Prior art keywords
- search
- value
- data
- selection
- values
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 23
- 238000011156 evaluation Methods 0.000 claims abstract description 34
- 230000008569 process Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 abstract description 9
- 230000006872 improvement Effects 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 50
- 238000010586 diagram Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 101100126328 Homo sapiens ISLR2 gene Proteins 0.000 description 1
- 102100023540 Immunoglobulin superfamily containing leucine-rich repeat protein 2 Human genes 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
以下、本発明の実施形態としての検索装置について詳細に説明する。図1は、本実施形態の検索装置1の一例を示す模式図である。図2は、図1の記憶部12に記憶される各データ(情報)の一例を示す模式図である。
検索装置1は、図1に示すように、演算部11と、記憶部12と、入力部13と、出力部14と、インターフェース13i、14iとを備える。検索装置1として、例えばPC等の汎用の計算機ハードウェアが用いられる。この場合、演算部11及び記憶部12が、CPUを構成する。このとき、演算部11は、SIMD命令を用いた演算等を実行する。また、記憶部12は、CPUのキャッシュメモリに相当するほか、例えば記憶部12の一部がCPU外のメモリでもよい。このCPUは、本実施形態における各演算のアルゴリズムを有するプログラムに従って動作する。プログラムは、記憶部12に格納されるほか、例えば記憶部12以外に設置された任意のメモリ等に格納されてもよい。
検索装置1として、例えば図3に示すルータ等が用いられてもよい。この場合、検索装置1は、処理部15と、設定部16と、複数のインターフェース15iとを備える。処理部15は、インターフェース15iを介してパケットを受信し、設定部16により決定された宛先(ネクストホップ)に対応するインターフェース15iからパケットを出力する。
検索対象データ2は、図2(a)に示すように、検索グループ3と、アルファデータ4(Alpha Data)とを有する。検索対象データ2は、検索グループ3及びアルファデータ4を並列した範囲検索表で形成される。なお、検索グループ3及びアルファデータ4は、ベーステーブルポイント(Base Table Point)を境にして配置される。
記憶構造5は、図2(b)に示すように、複数の記憶値50を有する。記憶値50は、検索処理の実行により取得される。記憶値50は、複数のインターバルベース5aと、複数のネクストホップインデックスベース5bとを有する。インターバルベース5aは、例えばIPアドレスのプレフィックス情報を含む。ネクストホップインデックスベース5bは、例えばIPアドレスのインデックス情報を含む。
記憶構造5は、例えば図2(c)に示すように、一対のインターバルベース5a及びネクストホップインデックスベース5bを1つの小構造53として複数並列に配置した構造でもよい。このとき、各小構造53のビット幅は、32bitで設定される。
次に、本実施形態における検索装置1の演算手段の一例について説明する。図4は、本実施形態における検索装置1の演算手段の一例を示すフローチャートである。
先ず、ベクタ比較手段S110について説明する。演算部11は、記憶部12に格納された複数の評価データ41を取得する(ステップS111)。複数の評価データ41として、例えば図5に示すように、「0」、「40」、「80」、「140」の4個が取得される。
次に、最終検索手段S120について説明する。演算部11は、下限値及び選択幅に基づいて複数の選択検索値31sを取得する(ステップS121:Load to SIMD Register)。演算部11は、下限値(第1データ42a)に紐づく下限検索値31bから選択幅に対応する検索値31までを、複数の選択検索値31sとして取得する。図6の例では、下限検索値31bの「40」から選択幅「4」に対応する検索値31の「50」、「60」、及び「70」までを、複数の選択検索値31sとして取得する。
次に、取得手段S130について説明する。演算部11は、選択された第1検索値31fに基づいて、複数の記憶値50から第1記憶値を取得する(ステップS131:Read Nexthop Index Base)。第1記憶値は、例えば図2(b)に示した複数のネクストホップインデックスベース5bのうちの1つである。
次に、本実施形態における検索装置1の演算手段の変形例について説明する。図7は、本実施形態における検索装置1の演算手段の変形例を示すフローチャートである。
バイナリ範囲検索手段S140は、ベクタ比較手段S110を実行したあとに必要に応じて実行される。演算部11は、予め設定されたバイナリ範囲の値を記憶部12等から取得する。バイナリ範囲の値は、例えば格納されたベクトルの要素の数を示し、SIMD命令のレジスタサイズに依存する。例えばSIMD命令に256bitのレジスタが用いられ、レジスタサイズを16とした場合、バイナリ範囲の値は、16である。
次に、本発明の実施形態における検索装置1の実施例について説明する。図8及び図9は、本実施例及び参考例におけるルックアップ速度を比較したグラフを示す。図8及び図9の横軸は、条件別の本実施例及び参考例を示し、縦軸は、ルックアップ速度(Mlps:Mega lookup per second)を示す。
2 :検索対象データ
3 :検索グループ
4 :アルファデータ
5 :記憶構造
5a :インターバルベース
5b :ネクストホップインデックスベース
11 :演算部
12 :記憶部
13 :入力部
13i :インターフェース
14 :出力部
14i :インターフェース
15 :処理部
15i :インターフェース
16 :設定部
31 :検索値
31b :下限検索値
31f :第1検索値
31s :選択検索値
31u :上限検索値
41 :評価データ
42 :インデックスデータ
42a :第1データ
42b :第2データ
50 :記憶値
51 :インターバルベースアレイ
52 :ネクストホップインデックスベースアレイ
53 :小構造
S1 :選択値
S2 :特定値
S110 :ベクタ比較手段
S120 :最終検索手段
S130 :取得手段
S140 :バイナリ範囲検索手段
Claims (6)
- 範囲検索表で形成された検索対象データと、複数の記憶値を有する記憶構造とを格納した記憶手段と、
キーデータに基づいて検索処理を行う演算手段と、
を備える検索装置であって、
前記検索対象データは、
前記複数の記憶値のそれぞれに紐づく複数の検索値を含む検索グループと、
前記キーデータとの比較対象となる複数の評価データを有するアルファデータと、
を有し、
前記演算手段は、
前記複数の評価データを取得し、SIMD(Single Instruction Multiple Data)命令を用いて前記評価データのそれぞれの値と前記キーデータの値との大小関係を同時に算出した結果から選択値を導出し、前記選択値に基づいて前記検索グループから複数の選択検索値を選択するための上限値、下限値、及び選択幅を導出するベクタ比較手段と、
前記下限値及び前記選択幅に基づいて前記選択検索値を取得し、前記SIMD命令を用いて前記選択検索値のそれぞれの値と前記キーデータの値との大小関係を同時に算出した結果から特定値を導出し、前記特定値に基づいて前記選択検索値から第1検索値を選択する最終検索手段と、
前記第1検索値に基づいて前記複数の記憶値から第1記憶値を取得する取得手段と、
を有すること
を特徴とする検索装置。 - 前記演算手段は、前記ベクタ比較手段のあと、前記選択幅と、予め設定されたバイナリ範囲の値とを比較し、前記選択幅が前記バイナリ範囲の値よりも大きい場合に、前記選択幅を減少させるバイナリ範囲検索手段を有すること
を特徴とする請求項1記載の検索装置。 - 前記アルファデータは、前記複数の検索値の一部に紐づく複数のインデックスデータを有し、
前記ベクタ比較手段は、
前記選択値に基づいて、前記インデックスデータの有する第1データを前記下限値として設定し、
前記選択値に基づいて、前記インデックスデータの有する第2データを前記上限値として設定し、
前記上限値から前記下限値を減算した値を選択幅として設定すること
を有し、
前記最終検索手段は、前記検索グループのうち、前記第1データに紐づく下限検索値から前記選択幅に対応する検索値までを、前記複数の選択検索値として取得すること
を有すること
を特徴とする請求項1又は2記載の検索装置。 - 前記複数の記憶値は、
IPアドレスのプレフィックスを含む複数のインターバルベースと、
IPアドレスのインデックスを含む複数のネクストホップインデックスベースと、
を有し、
前記記憶構造は、前記複数のインターバルベース及び前記ネクストホップインデックスベースを並列に配置した構造であること
を特徴とする請求項1〜3の何れか1項記載の検索装置。 - コンピュータを、請求項1〜4の何れか1項に記載の前記検索装置における各手段として機能させることを特徴とする検索プログラム。
- 範囲検索表で形成された検索対象データと、複数の記憶値を有する記憶構造とを格納した記憶手段と、
キーデータに基づいて検索処理を行う演算手段と、
を備える検索装置が実行する検索方法であって、
前記検索対象データは、
前記複数の記憶値のそれぞれに紐づく複数の検索値を含む検索グループと、
前記キーデータとの比較対象となる複数の評価データを有するアルファデータと、
を有し、
前記演算手段は、
前記複数の評価データを取得し、SIMD(Single Instruction Multiple Data)命令を用いて前記評価データのそれぞれの値と前記キーデータの値との大小関係を同時に算出した結果から選択値を導出し、前記選択値に基づいて前記検索グループから複数の選択検索値を選択するための上限値、下限値、及び選択幅を導出するベクタ比較手段と、
前記下限値及び前記選択幅に基づいて前記選択検索値を取得し、前記SIMD命令を用いて前記選択検索値のそれぞれの値と前記キーデータの値との大小関係を同時に算出した結果から特定値を導出し、前記特定値に基づいて前記選択検索値から第1検索値を選択する最終検索手段と、
前記第1検索値に基づいて前記複数の記憶値から第1記憶値を取得する取得手段と、
を有すること
を特徴とする検索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017100670A JP6888234B2 (ja) | 2017-05-22 | 2017-05-22 | 検索装置、検索プログラム、及び検索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017100670A JP6888234B2 (ja) | 2017-05-22 | 2017-05-22 | 検索装置、検索プログラム、及び検索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018196075A true JP2018196075A (ja) | 2018-12-06 |
JP6888234B2 JP6888234B2 (ja) | 2021-06-16 |
Family
ID=64571931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017100670A Active JP6888234B2 (ja) | 2017-05-22 | 2017-05-22 | 検索装置、検索プログラム、及び検索方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6888234B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020156058A (ja) * | 2019-03-22 | 2020-09-24 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 通信装置、通信方法及びプログラム |
-
2017
- 2017-05-22 JP JP2017100670A patent/JP6888234B2/ja active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020156058A (ja) * | 2019-03-22 | 2020-09-24 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 通信装置、通信方法及びプログラム |
JP7088868B2 (ja) | 2019-03-22 | 2022-06-21 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 通信装置、通信方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6888234B2 (ja) | 2021-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7725510B2 (en) | Method and system for multi-character multi-pattern pattern matching | |
US7418505B2 (en) | IP address lookup using either a hashing table or multiple hash functions | |
CN110120942B (zh) | 安全策略规则匹配方法及装置、防火墙设备及介质 | |
EP3276501B1 (en) | Traffic classification method and device, and storage medium | |
EP3270551B1 (en) | Retrieval device, retrieval method, program, and recording medium | |
WO2015127721A1 (zh) | 数据匹配的方法、装置及计算机存储介质 | |
JP2009219012A (ja) | 固定長データの検索方法 | |
CN108460030B (zh) | 一种基于改进的布隆过滤器的集合元素判断方法 | |
Pao et al. | A multi-pipeline architecture for high-speed packet classification | |
US11431626B2 (en) | Forwarding rules among lookup tables in a multi-stage packet processor | |
JP6888234B2 (ja) | 検索装置、検索プログラム、及び検索方法 | |
WO2020083062A1 (zh) | 一种基于二分边界值计算的非平衡二叉树构造方法 | |
Kekely et al. | Packet classification with limited memory resources | |
US20160301658A1 (en) | Method, apparatus, and computer-readable medium for efficient subnet identification | |
Li et al. | Deterministic and efficient hash table lookup using discriminated vectors | |
Kniesburges et al. | Hashed Patricia Trie: Efficient longest prefix matching in peer-to-peer systems | |
Bahrambeigy et al. | Bloom-Bird: A scalable open source router based on Bloom filter | |
WO2020022374A1 (ja) | パケット検索装置、パケット検索方法、及びパケット検索プログラム | |
US10476785B2 (en) | IP routing search | |
JP6205463B2 (ja) | 検索装置、検索方法、プログラム、及び記録媒体 | |
Zhian et al. | Parallel processing priority trie-based IP lookup approach | |
CN108632131B (zh) | 一种基于指纹型可变长布鲁姆过滤器的邮件地址匹配方法 | |
WO2019160107A1 (ja) | 検索装置、検索方法及び検索プログラム | |
JP2020201656A (ja) | 検索回路 | |
Bahrambeigy et al. | Towards Accelerating IP Lookups on Commodity PC Routers using Bloom Filter: Proposal of Bloom-Bird |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200414 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210212 |
|
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: 20210406 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210430 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6888234 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |