JP2015162024A - 検索木生成・検索装置及び方法及びプログラム - Google Patents
検索木生成・検索装置及び方法及びプログラム Download PDFInfo
- Publication number
- JP2015162024A JP2015162024A JP2014035954A JP2014035954A JP2015162024A JP 2015162024 A JP2015162024 A JP 2015162024A JP 2014035954 A JP2014035954 A JP 2014035954A JP 2014035954 A JP2014035954 A JP 2014035954A JP 2015162024 A JP2015162024 A JP 2015162024A
- Authority
- JP
- Japan
- Prior art keywords
- search
- node
- tree
- search tree
- bit
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】 本発明は、ソフトウェアOpenFlowスイッチにおいて、各エントリが「don't care bit」を含み、優先度を有する検索木(検索テーブル)を生成し、該検索木を検索する検索木生成・検索装置であって、パケットのマッチ条件や処理を記述したフロールールが与えられると、検索木の配列を、1つか2つのビット列と検索結果を示すデータを保持する構成として生成する検索木管理手段と、受信したパケットを用いて前記検索木(検索テーブル)を辿ることによりエントリの検索を行い、検索結果を返却する検索処理制御手段と、を有する。
【選択図】 図2
Description
・Set-Pruning Trie
・Grid of Tire
多くの検索アルゴリズムは木構造の一つであるトライ木の構造をとる。木構造はノードとノード間を結ぶ辺で構成される。木構造の各ノードは、辺によって結ばれた0個以上の子ノードを持ち(今後、子ノードを単に「子」と記す)、根以外のノードは高々1つの親ノードを持つ。根は木構造の中で唯一存在する、親ノードを持たないノードである。また、子を持たないノードは特別に葉と称する。多くの検索木では、葉に検索結果を保存し、本発明で扱う検索木も同様に検索結果は葉に保存する。
パケットのマッチ条件や処理を記述したフロールールが与えられると、前記検索木(検索テーブル)の配列を、1つか2つのビット列と検索結果を示すデータを保持する構成として生成する検索木(検索テーブル)管理手段と、
受信したパケットを用いて前記検索木(検索テーブル)を辿ることによりエントリの検索を行い、検索結果を返却する検索処理制御手段と、を有する検索木生成・検索装置が提供される。
<Patricia treeにおける検索ビット列>
トライ木はPatricia treeの構造をとることによって、ノードの数を削減することができる。Patricia treeでは、子が一つしかないようなノードを削除することから、ビット列の検索においては、Patricia treeによって生成された検索木は葉以外のノードが必ず2つ子を持つことになる。
前述の手法をHiearchical trieに対しても適用するために一般化したものを示す。前述の手法はLOUDSによる表現を、Patricia treeの子の数が固定である特性を利用して拡張したものであったが、各ノードが持ちうる子の数で最も大きい数をmとしたとき、葉以外の各ノードで子の数がmでないものに対して、子の数がmになるようにダミーノードを挿入する。例えば、Hiearchical trieであれば、子の数が最大3であるが、子の数が1または2のノードに対して、ダミーノードを加え、子の数を3と変換する。
100 フロー検索装置
110 パケット情報受信部
120 検索処理制御部
130 検索木(検索テーブル)
140 検索木(検索テーブル)管理部
150 検索結果送信部
Claims (7)
- テーブルの各エントリが「don't care bit」を含み、優先度を有する検索木(検索テーブル)を生成し、該検索木を検索する検索木生成・検索装置であって、
パケットのマッチ条件や処理を記述したフロールールが与えられると、前記検索木(検索テーブル)の配列を、1つか2つのビット列と検索結果を示すデータを保持する構成として生成する検索木(検索テーブル)管理手段と、
受信したパケットを用いて前記検索木(検索テーブル)を辿ることによりエントリの検索を行い、検索結果を返却する検索処理制御手段と、
を有することを特徴とする検索木生成・検索装置。 - 前記検索木(検索テーブル)管理手段は、
Patricia treeの子ノードの数が固定であるという特性によるビット列を生成するビット列生成手段を有し、
前記ビット列生成手段は、
幅優先探索の順でノードに番号idを割り当て、該番号順に検索木のビットマップに各ビットを割り当て、該番号のノードが子ノードを持っていれば「1」(または「0」)を、持っていなければ「0」(または「1」)に変換し、該検索木の葉のエントリデータを、該葉のidでソートしたエントリデータに変換する変換手段を含み、
前記検索処理制御手段は、
前記番号idのノードからn番目の子ノードを辿る場合は、
前記検索木を葉まで辿って得たidに対し、
を有する
請求項1記載の検索木生成・検索装置。 - 前記検索木(検索テーブル)管理手段は、
各ノードが持つ子ノードの数で最も大きい数をmとしたとき、葉以外の各ノードで子ノードの数がmでないノードに対して、子ノードの数がmになるようダミーノードを挿入し、幅優先探索で探索される順序で各ノードに番号を割り当て、番号順に検索ビットマップの各ビットを割り当て、該番号のノードが子ノードを持っていれば「1」(または「0」)を、持っていなければ「0」(または「1」)に変換し、検索木の葉の数を長さとするビット列bを用意し、葉のidでソートした順に各ビットを割り当て、該各ビットの値を、該葉がエントリを表すものであれば「1」を、そうでない場合は「0」に変換する変換手段を含み、
前記検索処理制御手段は、
前記番号idのノードからn番目の子ノードを辿る場合は、
前記検索木を葉まで辿って得たidに対し、
を有する
請求項1記載の検索木生成・検索装置。 - テーブルの各エントリが「don't care bit」を含み、優先度を有する検索木(検索テーブル)を生成し、該検索木を検索する検索木生成・検索方法であって、
前記検索木を生成する機能と、受信したパケット情報に基づいて該検索木を検索する機能を有する装置において、
パケットのマッチ条件や処理を記述したフロールールが与えられると、前記検索木(検索テーブル)の配列を、1つか2つのビット列と検索結果を示すデータを保持する構成として生成する検索木(検索テーブル)管理ステップと、
受信したパケットを用いて前記検索木(検索テーブル)を辿ることによりエントリの検索を行い、検索結果を返却する検索処理制御ステップと、
を行うことを特徴とする検索木生成・検索方法。 - 前記検索木(検索テーブル)管理ステップにおいて、
Patricia treeの子ノードの数が固定であるという特性によるビット列を生成するビット列生成ステップを含み、
前記ビット列生成ステップにおいて、
幅優先探索の順でノードに番号idを割り当て、該番号順に検索木のビットマップに各ビットを割り当て、該番号のノードが子ノードを持っていれば「1」(または「0」)を、持っていなければ「0」(または「1」)に変換し、該検索木の葉のエントリデータを、該葉のidでソートしたエントリデータに変換し、
前記検索処理制御ステップにおいて、
前記番号idのノードからn番目の子ノードを辿る場合は、
前記検索木を葉まで辿って得たidに対し、
請求項4記載の検索木生成・検索方法。 - 前記検索木(検索テーブル)管理ステップにおいて、
各ノードが持つ子ノードの数で最も大きい数をmとしたとき、葉以外の各ノードで子ノードの数がmでないノードに対して、子ノードの数がmになるようダミーノードを挿入し、幅優先探索で探索される順序で各ノードに番号を割り当て、番号順に検索ビットマップの各ビットを割り当て、該番号のノードが子ノードを持っていれば「1」(または「0」)を、持っていなければ「0」(または「1」)に変換し、検索木の葉の数を長さとするビット列bを用意し、葉のidでソートした順に各ビットを割り当て、該各ビットの値を、該葉がエントリを表すものであれば「1」(または「0」)を、そうでない場合は「0」(または「1」)に変換し、
前記検索処理制御ステップにおいて、
前記番号idのノードからn番目の子ノードを辿る場合は、
前記検索木を葉まで辿って得たidに対し、
請求項4記載の検索木生成・検索方法。 - コンピュータを、
請求項1乃至3のいずれか1項に記載の検索木生成・検索装置の各手段として機能させるための検索木生成・検索プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014035954A JP6085577B2 (ja) | 2014-02-26 | 2014-02-26 | 検索木生成・検索装置及び方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014035954A JP6085577B2 (ja) | 2014-02-26 | 2014-02-26 | 検索木生成・検索装置及び方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015162024A true JP2015162024A (ja) | 2015-09-07 |
JP6085577B2 JP6085577B2 (ja) | 2017-02-22 |
Family
ID=54185094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014035954A Active JP6085577B2 (ja) | 2014-02-26 | 2014-02-26 | 検索木生成・検索装置及び方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6085577B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569893A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 流量控制方法及设备 |
WO2017130824A1 (ja) * | 2016-01-26 | 2017-08-03 | 日本電気株式会社 | 情報処理装置、情報処理方法、及び、情報処理プログラムが記録された記録媒体 |
CN109815389A (zh) * | 2019-02-02 | 2019-05-28 | 北京三快在线科技有限公司 | 应用规则引擎的节点匹配方法、装置以及计算机设备 |
WO2022097725A1 (ja) * | 2020-11-06 | 2022-05-12 | 株式会社 Preferred Networks | 情報処理装置、情報処理方法及びコンピュータプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011257877A (ja) * | 2010-06-07 | 2011-12-22 | Nippon Telegr & Teleph Corp <Ntt> | 情報検索装置、情報検索方法、及びプログラム |
JP2012159873A (ja) * | 2011-01-28 | 2012-08-23 | Nec Corp | パケット分類システム、パケット分類方法、及びパケット分類用プログラム |
-
2014
- 2014-02-26 JP JP2014035954A patent/JP6085577B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011257877A (ja) * | 2010-06-07 | 2011-12-22 | Nippon Telegr & Teleph Corp <Ntt> | 情報検索装置、情報検索方法、及びプログラム |
JP2012159873A (ja) * | 2011-01-28 | 2012-08-23 | Nec Corp | パケット分類システム、パケット分類方法、及びパケット分類用プログラム |
Non-Patent Citations (3)
Title |
---|
小林 一仁: "挿入制限のないXML範囲ラベリング用コード", 情報処理学会研究報告, vol. 2003, no. 71, JPN6016041685, 17 July 2003 (2003-07-17), JP, pages 41 - 48, ISSN: 0003428888 * |
森川 大智: "データ駆動型ネットワークプロセッサにおける高速パケット分類処理", 情報処理学会研究報告, vol. 2003, no. 84, JPN6016041686, 6 August 2003 (2003-08-06), JP, pages 37 - 42, ISSN: 0003479446 * |
江田 毅晴: "XML木のための動的範囲ラベル付け手法", 情報処理学会論文誌, vol. 第45巻 No.SIG7(TOD22), JPN6016041687, 15 June 2004 (2004-06-15), JP, pages 102 - 114, ISSN: 0003479447 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569893A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 流量控制方法及设备 |
CN106569893B (zh) * | 2015-10-09 | 2021-02-05 | 阿里巴巴集团控股有限公司 | 流量控制方法及设备 |
WO2017130824A1 (ja) * | 2016-01-26 | 2017-08-03 | 日本電気株式会社 | 情報処理装置、情報処理方法、及び、情報処理プログラムが記録された記録媒体 |
CN109815389A (zh) * | 2019-02-02 | 2019-05-28 | 北京三快在线科技有限公司 | 应用规则引擎的节点匹配方法、装置以及计算机设备 |
WO2022097725A1 (ja) * | 2020-11-06 | 2022-05-12 | 株式会社 Preferred Networks | 情報処理装置、情報処理方法及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6085577B2 (ja) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11757739B2 (en) | Aggregation of select network traffic statistics | |
US10230639B1 (en) | Enhanced prefix matching | |
US10778721B1 (en) | Hash-based ACL lookup offload | |
US7684400B2 (en) | Logarithmic time range-based multifield-correlation packet classification | |
US9973400B2 (en) | Network flow information collection method and apparatus | |
CN104823416A (zh) | 实现OpenFlow的软件定义网络中的报文排序 | |
JP6085577B2 (ja) | 検索木生成・検索装置及び方法及びプログラム | |
US8923298B2 (en) | Optimized trie-based address lookup | |
US9270519B2 (en) | Address translation device, address translation method, and computer product | |
WO2017190559A1 (zh) | 路由查找方法、装置、分配节点、查找节点及入口节点 | |
Leng et al. | A mechanism for reducing flow tables in software defined network | |
US9049252B2 (en) | Efficient name management for named data networking in datacenter networks | |
US11652744B1 (en) | Multi-stage prefix matching enhancements | |
US8953600B2 (en) | Telemetry data routing | |
US7792129B2 (en) | Multi-queue packet processing using Patricia tree | |
Hsieh et al. | A classified multisuffix trie for IP lookup and update | |
Yu et al. | Characterizing rule compression mechanisms in software-defined networks | |
US11888743B1 (en) | Network device storage of incremental prefix trees | |
JP2012159873A (ja) | パケット分類システム、パケット分類方法、及びパケット分類用プログラム | |
JP5814830B2 (ja) | フロー単位パケット転送のための宛先検索装置および検索方法 | |
JP6114705B2 (ja) | 検索木生成装置及び方法及びプログラム | |
CN107948091B (zh) | 一种网包分类的方法及装置 | |
KR100493099B1 (ko) | 고속 인터넷프로토콜 라우터의 라우팅/포워딩 룩업 및라우팅 테이블 관리 | |
JP6143367B2 (ja) | パケット転送経路設定回路、パケット転送スイッチ、パケット転送経路設定方法及びパケット転送方法 | |
Matoušek et al. | Towards hardware architecture for memory efficient IPv4/IPv6 Lookup in 100 Gbps networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160118 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161028 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161101 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161220 |
|
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: 20170124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6085577 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |