WO2021166087A1 - パケット検索装置、パケット検索方法およびパケット検索プログラム - Google Patents

パケット検索装置、パケット検索方法およびパケット検索プログラム Download PDF

Info

Publication number
WO2021166087A1
WO2021166087A1 PCT/JP2020/006369 JP2020006369W WO2021166087A1 WO 2021166087 A1 WO2021166087 A1 WO 2021166087A1 JP 2020006369 W JP2020006369 W JP 2020006369W WO 2021166087 A1 WO2021166087 A1 WO 2021166087A1
Authority
WO
WIPO (PCT)
Prior art keywords
hash
binary tree
value
packet search
packet
Prior art date
Application number
PCT/JP2020/006369
Other languages
English (en)
French (fr)
Inventor
斉 金子
雅幸 西木
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2020/006369 priority Critical patent/WO2021166087A1/ja
Publication of WO2021166087A1 publication Critical patent/WO2021166087A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Definitions

  • the present invention relates to a packet search device, a packet search method, and a packet search program.
  • packet search technology includes TCAM (Ternary Content Addressable Memory) search mainly using hardware and search by binary tree method or hash method mainly using software processing (Non-Patent Document 1). reference).
  • TCAM Binary Content Addressable Memory
  • hash method mainly using software processing
  • the hash method is generally faster than the binary tree method because it operates in the same way as the normal variable value acquisition process and does not perform the comparison process.
  • the hash method it may be difficult to apply the hash method with the conventional technology.
  • the match field Match Field
  • the search target field must be the same among all the rules. Therefore, if the ANY value or the like is allowed in any of the multiple fields, the packet search may be performed.
  • the hash method could not be applied. In other words, when the search target field is not fixed, such as when ANY is allowed in the rule, it is difficult to take advantage of the high speed of the hash method.
  • the present invention has been made in view of the above, and an object of the present invention is to make it possible to easily apply a hash method to packet search.
  • the packet search device creates a binary tree creating unit that creates a binary tree having a predetermined branch and a hash table of the created binary tree.
  • a binary tree creating unit that creates a binary tree having a predetermined branch and a hash table of the created binary tree.
  • an expansion unit that expands the ANY value into branches of 0 and 1 and a pointer to the actual rule associated with the hash value for the target part in the binary tree are provided. It is characterized by having a hash table creation unit that creates a table that is an array list instead of a chain list.
  • the hash method can be easily applied to packet search.
  • FIG. 1 is a diagram for explaining a processing outline of the packet search device of the present embodiment.
  • FIG. 2 is a diagram for explaining a processing outline of the packet search device of the present embodiment.
  • FIG. 3 is a diagram for explaining a processing outline of the packet search device of the present embodiment.
  • FIG. 4 is a schematic diagram illustrating a schematic configuration of the packet search device of the present embodiment.
  • FIG. 5 is a diagram for explaining the processing of the binary tree creating unit.
  • FIG. 6 is a diagram for explaining the processing of the hash table creation unit.
  • FIG. 7 is a diagram for explaining a problem when a pointer to an actual rule is chained.
  • FIG. 8 is a flowchart showing a hash table creation processing procedure.
  • FIG. 9 is a diagram showing an example of a computer that executes a packet search program.
  • Outline of packet search device processing 1 to 3 are diagrams for explaining a processing outline of the packet search device of the present embodiment.
  • the application of the hash method is typically a case where the search target field is fixed in advance such as 5 doubles and a variable such as ANY is not allowed as a value. That is, the hash method cannot be applied in principle unless the search target fields of each rule match exactly like a perfect rectangle.
  • the hash method is a method in which the target field of the input packet and the match field of the rule are converted into hash values and compared. Therefore, if ANY, prefix, and suffix are allowed in the match field and the search target field of the rule is different, the target area to be hashed by the packet is not fixed, and it becomes difficult to apply the hash method. This is because, in order to establish the hash, the target field on the input packet side and the target field on the rule side must match. On the other hand, if the fields in the rule include ANY, prefix, and suffix, and the target field on the rule side is not determined, the above matching becomes difficult.
  • the hash method is applied to the comparative search process of the corresponding part.
  • a hash table is created with array variables, and the search value (hash value) is used as the index of the array variable.
  • the search by the hash method is performed by specifying this index value, but since this operation is a memory address specification process at the machine language level, it is the same operation as a normal variable value acquisition process. That is, in the hash method, the packet search device 10 can execute the search without performing the comparison process by changing the comparison search process to the memory address designation process. Therefore, high-speed processing is realized.
  • the search for the three pieces of information (011, 101, 111) in the broken line frame A1 is speeded up by the hash table.
  • the comparison search process is not executed even in the original binary tree method, so the effect of hash table conversion cannot be obtained. Therefore, in such a case, it is not always necessary to create a hash table.
  • the larger the number of branches of the hash table-making part the higher the effect of speeding up obtained by the hash table-making.
  • FIG. 3 illustrates the fields to which the hash method is applied in the binary tree.
  • bits are defined in the horizontal axis direction
  • rules are defined in the vertical axis direction.
  • FIG. 3A conventionally, the fields to which the hash method is applied are completely rectangular, so that the target fields match among all the rules.
  • each rule is represented by a rule chain, and a hash table is partially created to speed up the process.
  • FIG. 3B assuming a binary tree with ANY designation, avoiding the ANY value in the binary tree, the rectangular portion is made into a hash table.
  • the packet search device 10 develops a rule with an ANY value by a hash table creation process described later to broaden the scope of application of hash table conversion.
  • FIG. 4 is a schematic diagram illustrating a schematic configuration of the packet search device of the present embodiment.
  • the packet search device 10 of the present embodiment is realized by a general-purpose computer or the like, and includes a communication control unit 13, a storage unit 14, and a control unit 15.
  • the communication control unit 13 is realized by a NIC (Network Interface Card) or the like, and communicates with the control unit 15 with an external device such as another network device via a telecommunication line such as a LAN (Local Area Network) or the Internet. Control.
  • NIC Network Interface Card
  • LAN Local Area Network
  • the storage unit 14 is realized by a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory (Flash Memory), or a storage device such as a hard disk or an optical disk.
  • the storage unit 14 stores in advance a processing program that operates the packet search device 10, data used during execution of the processing program, and the like, or is temporarily stored each time the processing is performed.
  • the storage unit 14 may be configured to communicate with the control unit 15 via the communication control unit 13.
  • the control unit 15 is realized by using a CPU (Central Processing Unit), an NP (Network Processor), an FPGA (Field Programmable Gate Array), or the like, and executes a processing program stored in a memory. As a result, the control unit 15 functions as a binary tree creation unit 15a, an expansion unit 15b, and a hash table creation unit 15c.
  • a CPU Central Processing Unit
  • NP Network Processor
  • FPGA Field Programmable Gate Array
  • control unit 15 may include other functional units.
  • a search unit may be provided to search for packets that match the rule chain represented by the binary tree created by the hash table creation process described later and the hash table. ..
  • the binary tree creation unit 15a creates a binary tree having a predetermined branch.
  • FIG. 5 is a diagram for explaining the processing of the binary tree creating unit 15a.
  • A is omitted in the blank portion shown in FIG. 5 surrounded by a broken line ellipse and having no node to the end.
  • the expansion unit 15b expands the ANY value into branches of 0 and 1. Specifically, the expansion unit 15b sets a plurality of rules represented by 0 and 1 in the rule chain represented by tracing each branch of the binary tree, including the ANY value of the target portion to be hash-table. Expand to real rules.
  • the target portion to be hash-table is, for example, a portion where the start bit position and the end bit position of each rule match, as shown in the broken line frames A2 and A3 shown in FIG.
  • the hash table creation unit 15c creates a table in which the pointer to the actual rule associated with the hash value is not a chain list but an array list for the target part in the binary tree. For example, the hash table creation unit 15c creates a table including pointers shared by a plurality of hash values among the pointers to the actual rules associated with the hash values. That is, the hash table creation unit 15c shares the pointer itself to the rule including the ANY value.
  • FIG. 6 is a diagram for explaining the processing of the hash table creation unit 15c.
  • the hash table creation unit 15c makes the pointer itself a list type (array type) instead of a chain type so that the pointer itself can be shared (partized).
  • the hash table creation unit 15c can promote the componentization of the pointer by making the pointer a list type (array type). Further, by using the 8-byte pointer as the index of the array (2 bytes in the example of FIG. 6), the area of the pointer component can be reduced.
  • the hash table creation unit 15c has the same area as the conventional pointer address (8 bytes) by setting the index (2 bytes) ⁇ 4.
  • a 2-byte index value is stored in each area of the SP in FIG. 6, whereas in the chain type of FIG. 7, an 8-byte pointer address is stored in the pointer, and the packet of the present application is stored.
  • SP means a start pointer (Start pointer)
  • RP means a rule pointer (Rule pointer)
  • NP means a next pointer (Next). Pointer) is shown.
  • FIG. 6 illustrates a pointer array including pointers with hash values 8 and 12 in association with the actual rule “1A0A”.
  • a pointer array can be used at the end of the rule chain, that is, when the Next pointer of the pointer is set to "NULL".
  • the expansion unit 15b may be expanded as a target portion in order from the portion where the number of continuous ANY values of the binary tree is small. For example, in the binary tree shown in FIG. 5, when the number of consecutive A (ANY values) is N in the route to each leaf, when each A is expanded into two branches of 0 and 1, each route is expanded. The number of actual rules corresponding to is increased by (2N-1). Therefore, the expansion unit 15b expands within a range in which the number of pointers increased by expansion does not exceed the upper limit value set in advance by the system administrator.
  • the hash table creation unit 15c may be set as a target portion of hash tableization in which continuous ANY values are expanded within a range of a predetermined threshold value (for example, 5) or less set in advance by the system administrator. This makes it possible to suppress the increase in the number of actual rules and reduce the memory consumption.
  • a predetermined threshold value for example, 5
  • the number of consecutive A's in each path including the A omitted in the broken line ellipse is 5 or less, and even if all the A's are expanded, the number of increase of the rule is 62. Because it is small, it is the target part of the hash table that expands the ANY value.
  • the number of consecutive A's is 6, for example, when the predetermined threshold value is 5, the number of rule increases increases, so the hash table in which the ANY value is expanded It is excluded from the target of conversion.
  • FIG. 8 is a flowchart showing a hash table creation processing procedure.
  • the flowchart of FIG. 8 is started, for example, at the timing when the user inputs an operation instructing the start.
  • the binary tree creation unit 15a creates a binary tree of a packet search rule having a predetermined branch (step S1).
  • the expansion unit 15b when the expansion unit 15b includes the ANY value in the target portion of the created rule to be converted into a hash table of the binary tree, the expansion unit 15b expands the ANY value into branches of 0 and 1 (step S2).
  • the expansion unit 15b may set a portion in which the number of consecutive ANY values of the binary tree is equal to or less than a predetermined threshold value as a target portion for hash table formation.
  • the hash table creation unit 15c creates a table listing the pointers to the actual rules associated with the hash values for the target part in the binary tree (step S3).
  • the binary tree creating unit 15a creates a binary tree having a predetermined branch. Further, when the target portion of the created binary tree to be hash-table contains an ANY value, the expansion unit 15b expands the ANY value into branches of 0 and 1. Further, the hash table creation unit 15c creates a table in which the pointer to the actual rule associated with the hash value is not a chain list but an array list for the target portion in the binary tree.
  • the packet search device 10 can create a hash table for the target part in the binary tree by using the hash value of the actual rule even if the target part to be converted into the hash table of the binary tree contains the ANY value.
  • the range of application of the hash method can be widened, so that the hash method can be easily applied to the packet search.
  • the packet search device 10 creates a table including the pointers shared by a plurality of hash values among the pointers to the actual rules associated with the hash values, the pointers themselves can also be shared, and the memory can be shared. It is possible to suppress consumption.
  • the packet search device 10 expands the binary tree as the target portion in order from the portion where the number of consecutive ANY values is small, it is possible to suppress the memory consumption due to the increase in the rule for expanding the ANY value.
  • the packet search device 10 can be implemented by installing a packet search program that executes the above packet search process as package software or online software on a desired computer.
  • the information processing device can function as the packet search device 10.
  • the information processing device referred to here includes a desktop type or notebook type personal computer.
  • information processing devices include smartphones, mobile communication terminals such as mobile phones and PHS (Personal Handyphone System), and slate terminals such as PDAs (Personal Digital Assistants).
  • the function of the packet search device 10 may be implemented in the cloud server.
  • FIG. 9 is a diagram showing an example of a computer that executes a packet search program.
  • the computer 1000 has, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. Each of these parts is connected by a bus 1080.
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012.
  • the ROM 1011 stores, for example, a boot program such as a BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • the hard disk drive interface 1030 is connected to the hard disk drive 1031.
  • the disk drive interface 1040 is connected to the disk drive 1041.
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1041.
  • a mouse 1051 and a keyboard 1052 are connected to the serial port interface 1050.
  • a display 1061 is connected to the video adapter 1060.
  • the hard disk drive 1031 stores, for example, the OS 1091, the application program 1092, the program module 1093, and the program data 1094. Each piece of information described in the above embodiment is stored in, for example, the hard disk drive 1031 or the memory 1010.
  • the packet search program is stored in the hard disk drive 1031 as, for example, a program module 1093 in which a command executed by the computer 1000 is described.
  • the program module 1093 in which each process executed by the packet search device 10 described in the above embodiment is described is stored in the hard disk drive 1031.
  • the data used for information processing by the packet search program is stored as program data 1094 in, for example, the hard disk drive 1031.
  • the CPU 1020 reads the program module 1093 and the program data 1094 stored in the hard disk drive 1031 into the RAM 1012 as needed, and executes each of the above-described procedures.
  • the program module 1093 and program data 1094 related to the packet search program are not limited to the case where they are stored in the hard disk drive 1031. For example, they are stored in a removable storage medium and read by the CPU 1020 via the disk drive 1041 or the like. It may be issued. Alternatively, the program module 1093 and the program data 1094 related to the packet search program are stored in another computer connected via a network such as a LAN or WAN (Wide Area Network), and read by the CPU 1020 via the network interface 1070. May be done.
  • a network such as a LAN or WAN (Wide Area Network)

Landscapes

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

Abstract

二分木作成部(15a)が、所定の枝分かれを有する二分木を作成する。展開部(15b)が、作成された二分木のハッシュテーブル化する対象部分にANY値が含まれる場合に、該ANY値を0と1との枝分かれに展開する。ハッシュテーブル作成部(15c)が、二分木における対象部分について、ハッシュ値を用いたテーブルハッシュ値に対応付けられた実ルールへのポインタをチェインリストでなく配列リストにしたテーブルを作成する。

Description

パケット検索装置、パケット検索方法およびパケット検索プログラム
 本発明は、パケット検索装置、パケット検索方法およびパケット検索プログラムに関する。
 従来、パケットの検索技術として、主にハードウェアを用いたTCAM(Ternary Content Addressable Memory)検索と、主にソフトウェア処理を用いた二分木法やハッシュ(Hash)法による検索がある(非特許文献1参照)。これらの検索技術のうち、ハッシュ法は、通常の変数値取得処理と同様の動作であり、比較処理を行わないため、一般的には二分木法よりも高速である。
"パケットフォワーディングを支える技術(2)ハードウェア処理ルータの内部詳解"、[online]、2012年、Internet Week 2012、[2019年7月9日検索]、インターネット<URL:https://www.nic.ad.jp/ja/materials/iw/2012/proceedings/d1/d1-uchiya.pdf>
 しかしながら、従来技術では、ハッシュ法を適用することが困難な場合がある。例えば、ハッシュ法では、全てのルール(rule)について、ANY値等が許容されず、マッチフィールド(Match Field)が固定されなければならない。すなわち、ハッシュ法では、全てのルール間で、検索対象フィールドが同じでなければならないことから、複数のフィールドの内、何れかのフィールドでANY値等が許容される場合には、パケット検索に際して、ハッシュ法が適用できなかった。換言すれば、ルールにANYを許容する場合等、検索対象フィールドが固定化されていない場合には、ハッシュ法の高速性を活かすことは困難であった。
 本発明は、上記に鑑みてなされたものであって、パケット検索にハッシュ法の適用を容易に可能とすることを目的とする。
 上述した課題を解決し、目的を達成するために、本発明に係るパケット検索装置は、所定の枝分かれを有する二分木を作成する二分木作成部と、作成された前記二分木のハッシュテーブル化する対象部分にANY値が含まれる場合に、該ANY値を0と1との枝分かれに展開する展開部と、前記二分木における前記対象部分について、ハッシュ値に対応付けられた実ルールへのポインタをチェインリストでなく配列リストにしたテーブルを作成するハッシュテーブル作成部と、を有することを特徴とする。
 本発明によれば、パケット検索にハッシュ法の適用が容易に可能となる。
図1は、本実施形態のパケット検索装置の処理概要を説明するための図である。 図2は、本実施形態のパケット検索装置の処理概要を説明するための図である。 図3は、本実施形態のパケット検索装置の処理概要を説明するための図である。 図4は、本実施形態のパケット検索装置の概略構成を例示する模式図である。 図5は、二分木作成部の処理を説明するための図である。 図6は、ハッシュテーブル作成部の処理を説明するための図である。 図7は、実ルールへのポインタをチェイニングした場合の課題について説明するための図である。 図8は、ハッシュテーブル作成処理手順を示すフローチャートである。 図9は、パケット検索プログラムを実行するコンピュータの一例を示す図である。
 以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[パケット検索装置の処理概要]
 図1~図3は、本実施形態のパケット検索装置の処理概要を説明するための図である。ハッシュ法の適用は、検索対象フィールドが5tupleの様に予め固定されており、値としてANY等の変数が許容されていない場合が典型例である。すなわち、各ルールの検索対象フィールドが、完全長方形型のように完全に一致していないと、ハッシュ法は原則として適用できない。
 より具体的には、図1に示すように、ハッシュ法は、入力パケットの対象フィールドとルールのマッチフィールドとを、それぞれハッシュ値化して比較する方法である。そのため、マッチフィールドにANYやprefix、suffixが許容され、ルールの検索対象フィールドがまちまちになると、パケットによりハッシュ値化する対象領域が固定化されず、ハッシュ法の適用は困難となる。なぜなら、ハッシュを成立させるためには、入力パケット側の対象フィールドとルール側の対象フィールドとが一致している必要がある。その一方で、ルール内のフィールドにANYやprefix、suffixが含まれることにより、ルール側の対象フィールドが定まらない場合には、上記一致が困難となるからである。
 そこで、図2に示すように、二分木の一部(破線枠A1の部分)をハッシュテーブル化することにより、該当部分の比較検索処理に対し、ハッシュ法を適用する。ハッシュ法では、ハッシュテーブルを配列変数で作成し、検索値(ハッシュ値)を配列変数のインデックスにする。ハッシュ法による検索は、このインデックス値の指定により行うが、本動作は、機械語レベルでは、メモリのアドレス指定処理となるため、通常の変数値取得処理と同様の動作になる。すなわち、ハッシュ法では、パケット検索装置10は、上記比較検索処理を、メモリアドレス指定処理に変更することにより、比較処理を行わずに検索を実行することができる。このため、高速処理が実現される。
 図2に示す例では、破線枠A1内の3つの情報(011、101、111)に対する検索が、ハッシュテーブル化により高速化されることとなる。但し、ハッシュテーブル化する部分の情報が1つしかない(枝分かれが無い)場合には、元の二分木法でも比較検索処理が実行されないため、ハッシュテーブル化による効果は得られない。このため、かかる場合には、必ずしもハッシュテーブル化を行う必要は無い。反対に、ハッシュテーブル化する部分の枝分かれの数が多い程、ハッシュテーブル化により得られる高速化の効果は高くなる。
 図3には、二分木においてハッシュ法の適用対象となるフィールドが例示されている。図3では、横軸方向にはビットが規定され、縦軸方向にはルールが規定されている。図3(a)に示すように、従来、ハッシュ法の適用対象となるフィールドは、完全長方形型であるため、全てのルール間で対象フィールドが一致している。また、ANY値(prefix、suffixを含む)を伴うフィールドを対象として、各ルールをルールチェインで表して、部分的にハッシュテーブル化を行って高速化を図っている。その場合に、図3(b)に示すように、ANY指定を伴う二分木を前提とし、二分木内のANY値を回避して、長方形型の部分をハッシュテーブル化する。
 ここで、二分木内にANY指定の箇所がまばらに存在する場合には、ハッシュテーブル化できる範囲が狭まって、ハッシュ法の適用による高速化の効果が薄れてしまう。そこで、本実施形態に係るパケット検索装置10は、後述するハッシュテーブル作成処理により、ANY値を伴うルールを展開して、ハッシュテーブル化の適用範囲を広くする。
[パケット検索装置の構成]
 図4は、本実施形態のパケット検索装置の概略構成を例示する模式図である。図4に示すように、本実施形態のパケット検索装置10は、汎用コンピュータ等で実現され、通信制御部13、記憶部14、および制御部15を備える。
 通信制御部13は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他のネットワーク装置等の外部の装置と制御部15との通信を制御する。
 記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部14には、パケット検索装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。なお、記憶部14は、通信制御部13を介して制御部15と通信する構成でもよい。
 制御部15は、CPU(Central Processing Unit)やNP(Network Processor)やFPGA(Field Programmable Gate Array)等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部15は、二分木作成部15a、展開部15bおよびハッシュテーブル作成部15cとして機能する。
 なお、これらの機能部は、それぞれ、あるいは一部が異なるハードウェアに実装されてもよい。また、制御部15は、その他の機能部を備えてもよい。例えば、他のネットワーク装置等から受信したパケットのうち、後述するハッシュテーブル作成処理で作成された二分木とハッシュテーブルとで表されるルールチェインに合致するパケットを検索する検索部を備えてもよい。
 二分木作成部15aは、所定の枝分かれを有する二分木を作成する。ここで、図5は、二分木作成部15aの処理を説明するための図である。図5に示すように、二分木作成部15aは、各ノードを上から0、1、A(ANY値=0または1)として二分木を作成し、その順に従って上からルールを並べる。ここで、図5に破線楕円で囲んで示す、末端までノードがない空白部分は、Aが省略されているものとする。
 図4の説明に戻る。展開部15bは、作成された二分木のハッシュテーブル化する対象部分にANY値が含まれる場合に、該ANY値を0と1との枝分かれに展開する。具体的には、展開部15bは、二分木の各枝をたどって表されるルールチェインのうち、ハッシュテーブル化する対象部分のANY値を含むルールを、0と1とで表される複数の実ルールに展開する。なお、ハッシュテーブル化する対象部分は、例えば、図5に示した破線枠A2、A3のように、各ルールの開始ビット位置と終了ビット位置とが一致する部分である。
 ハッシュテーブル作成部15cは、二分木における対象部分について、ハッシュ値に対応付けられた実ルールへのポインタをチェインリストでなく配列リストにしたテーブルを作成する。例えば、ハッシュテーブル作成部15cは、ハッシュ値に対応付けられた実ルールへのポインタのうち、複数のハッシュ値で共有されるポインタを含むテーブルを作成する。つまり、ハッシュテーブル作成部15cは、ANY値を含むルールへのポインタ自身を共有化する。
 ここで、図6は、ハッシュテーブル作成部15cの処理を説明するための図である。ハッシュテーブル作成部15cは、例えば、図6に示すように、ポインタをチェイン型ではなく、リスト型(配列型)とすることで、ポインタ自身も共用(部品化)できるようにしている。
 つまり、図7に例示するように、仮に、ハッシュ値に対応付けられた実ルールへのポインタをチェイニングしたテーブルを作成した場合に、ポインタ自身を共有化することできないため、チェイン型がポインタの部品化を妨げることとなる。
 このため、ハッシュテーブル作成部15cは、ポインタをリスト型(配列型)にすることで、ポインタの部品化を促進することができる。また、8バイトのポインタを配列のインデックス(図6の例では2バイト)とすることにより、ポインタ部品の領域を削減することができる。
 図6に例示するように、ハッシュテーブル作成部15cは、インデックス(2バイト)×4個とすることにより、従来のポインタアドレス(8バイト)と同じ領域にしている。図6におけるSPの各領域には、2バイトのインデックス値をそれぞれ記憶しているが、これに対して、図7のチェイン型ではポインタに8バイトのポインタアドレスを記憶しており、本願のパケット検索装置10では、各領域のデータ量が1/4となるため、メモリ消費をより低減することが可能である。なお、対象ルールが4つを超える場合には、チェインを組まなければならないが、この場合には、NP=NULLで無くなるので部品化できなくなる。なお、図6において、「SP」とは、スタートポインタ(Start pointer)のことを示し、「RP」とは、ルールポインタ(Rule pointer)のことを示し、「NP」とは、ネクストポインタ(Next pointer)のことを示している。
 例えば、図6には、実ルール「1A0A」に対応づけて、ハッシュ値8、12のポインタを含むポインタ配列が例示されている。このようなポインタ配列は、ルールチェインの最後尾の場合、すなわちポインタのNext pointerが「NULL」に設定される場合に用いることができる。
 また、展開部15bは、二分木のANY値が連続する数が少ない部分から順に対象部分として展開するようにしてもよい。例えば、図5に示した二分木において、各葉への経路でA(ANY値)の連続する数がNの場合に、それぞれのAを0と1との2つの枝に展開すると、各経路に対応する実ルールの数が(2N-1)だけ増加する。そこで、展開部15bは、展開したことにより増加したポインタの数が予めシステム管理者により設定された上限値を超えない範囲で展開する。
 また、ハッシュテーブル作成部15cは、予めシステム管理者により設定された所定の閾値(例えば5)以下の範囲で、連続するANY値を展開したハッシュテーブル化の対象部分とするようにしてもよい。これにより、実ルールの増加数を抑え、メモリ消費量を抑えることが可能となる。
 例えば、図5の領域A2において、破線楕円内で省略されているAを含め、各経路で連続するAの数は5以下であって、全てのAを展開してもルールの増加数は62と小さいため、ANY値を展開したハッシュテーブル化の対象部分とされる。これに対し、図5の領域A3の前では、Aの連続する数が6であり、例えば、所定の閾値が5の場合には、ルール増加数が多くなるため、ANY値を展開したハッシュテーブル化の対象から外される。
[ハッシュテーブル作成処理]
 次に、図8を参照して、本実施形態に係るパケット検索装置10によるハッシュテーブル作成処理について説明する。図8は、ハッシュテーブル作成処理手順を示すフローチャートである。図8のフローチャートは、例えば、ユーザが開始を指示する操作入力を行ったタイミングで開始される。
 まず、二分木作成部15aが、所定の枝分かれを有するパケット検索のルールの二分木を作成する(ステップS1)。
 次に、展開部15bが、作成されたルールの二分木のハッシュテーブル化する対象部分にANY値が含まれる場合に、このANY値を0と1との枝分かれに展開する(ステップS2)。ここで、展開部15bは、二分木のANY値が連続する数が所定の閾値以下の部分をハッシュテーブル化の対象部分としてもよい。
 次に、ハッシュテーブル作成部15cが、二分木における対象部分について、ハッシュ値に対応付けられた実ルールへのポインタをリスト化したテーブルを作成する(ステップS3)。
 以上、説明したように、本実施形態のパケット検索装置10において、二分木作成部15aが、所定の枝分かれを有する二分木を作成する。また、展開部15bが、作成された二分木のハッシュテーブル化する対象部分にANY値が含まれる場合に、該ANY値を0と1との枝分かれに展開する。また、ハッシュテーブル作成部15cが、二分木における対象部分について、ハッシュ値に対応付けられた実ルールへのポインタをチェインリストでなく配列リストにしたテーブルを作成する。
 これにより、パケット検索装置10は、二分木のハッシュテーブル化する対象部分にANY値が含まれていても、二分木における対象部分について、実ルールのハッシュ値を用いてハッシュテーブル化できる。このように、パケット検索装置10によれば、ハッシュ法の適用範囲を広くできるので、パケット検索にハッシュ法を適用することが容易に可能となる。
 また、パケット検索装置10は、ハッシュ値に対応付けられた実ルールへのポインタのうち、複数のハッシュ値で共有されるポインタを含むテーブルを作成するので、ポインタ自身も共有できるようになり、メモリ消費を抑制することが可能となる。
 また、パケット検索装置10は、二分木のANY値が連続する数が少ない部分から順に対象部分として展開するので、ANY値を展開したルールの増加によるメモリ消費を抑制することが可能となる。
[プログラム]
 上記実施形態に係るパケット検索装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、パケット検索装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記のパケット検索処理を実行するパケット検索プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記のパケット検索プログラムを情報処理装置に実行させることにより、情報処理装置をパケット検索装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末、さらには、PDA(Personal Digital Assistant)などのスレート端末などがその範疇に含まれる。また、パケット検索装置10の機能を、クラウドサーバに実装してもよい。
 図9は、パケット検索プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
 ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
 また、パケット検索プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明したパケット検索装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
 また、パケット検索プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
 なお、パケット検索プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、パケット検索プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LANやWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
 10 パケット検索装置
 13 通信制御部
 14 記憶部
 15 制御部
 15a 二分木作成部
 15b 展開部
 15c ハッシュテーブル作成部

Claims (5)

  1.  所定の枝分かれを有する二分木を作成する二分木作成部と、
     作成された前記二分木のハッシュテーブル化する対象部分にANY値が含まれる場合に、該ANY値を0と1との枝分かれに展開する展開部と、
     前記二分木における前記対象部分について、ハッシュ値に対応付けられた実ルールへのポインタをチェインリストでなく配列リストにしたテーブルを作成するハッシュテーブル作成部と、
     を有することを特徴とするパケット検索装置。
  2.  前記ハッシュテーブル作成部は、前記ハッシュ値に対応付けられた実ルールへのポインタのうち、複数のハッシュ値で共有されるポインタを含むテーブルを作成することを特徴とする請求項1に記載のパケット検索装置。
  3.  前記展開部は、前記二分木のANY値が連続する数が少ない部分から順に前記対象部分として展開することを特徴とする請求項1に記載のパケット検索装置。
  4.  パケット検索装置で実行されるパケット検索方法であって、
     所定の枝分かれを有する二分木を作成する二分木作成工程と、
     作成された前記二分木のハッシュテーブル化する対象部分にANY値が含まれる場合に、該ANY値を0と1との枝分かれに展開する展開工程と、
     前記二分木における前記対象部分について、ハッシュ値に対応付けられた実ルールへのポインタをチェインリストでなく配列リストにしたテーブルを作成するハッシュテーブル作成工程と、
     を含んだことを特徴とするパケット検索方法。
  5.  所定の枝分かれを有する二分木を作成する二分木作成ステップと、
     作成された前記二分木のハッシュテーブル化する対象部分にANY値が含まれる場合に、該ANY値を0と1との枝分かれに展開する展開ステップと、
     前記二分木における前記対象部分について、ハッシュ値に対応付けられた実ルールへのポインタをチェインリストでなく配列リストにしたテーブルを作成するハッシュテーブル作成ステップと、
     をコンピュータに実行させるためのパケット検索プログラム。
PCT/JP2020/006369 2020-02-18 2020-02-18 パケット検索装置、パケット検索方法およびパケット検索プログラム WO2021166087A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/006369 WO2021166087A1 (ja) 2020-02-18 2020-02-18 パケット検索装置、パケット検索方法およびパケット検索プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/006369 WO2021166087A1 (ja) 2020-02-18 2020-02-18 パケット検索装置、パケット検索方法およびパケット検索プログラム

Publications (1)

Publication Number Publication Date
WO2021166087A1 true WO2021166087A1 (ja) 2021-08-26

Family

ID=77390643

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/006369 WO2021166087A1 (ja) 2020-02-18 2020-02-18 パケット検索装置、パケット検索方法およびパケット検索プログラム

Country Status (1)

Country Link
WO (1) WO2021166087A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015162748A (ja) * 2014-02-26 2015-09-07 日本電信電話株式会社 検索木生成装置及び方法及びプログラム
WO2020022374A1 (ja) * 2018-07-26 2020-01-30 日本電信電話株式会社 パケット検索装置、パケット検索方法、及びパケット検索プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015162748A (ja) * 2014-02-26 2015-09-07 日本電信電話株式会社 検索木生成装置及び方法及びプログラム
WO2020022374A1 (ja) * 2018-07-26 2020-01-30 日本電信電話株式会社 パケット検索装置、パケット検索方法、及びパケット検索プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HITOSHI KANEKO, MASAYUKI NISHIKI : "B-6-20: Application of Hash method by any value expansion and proposal of improvement method", PROCEEDINGS OF THE 2019 IEICE COMMUNICATIONS SOCIETY CONFERENCE, 2; SEPTEM,BER 10-13, 2019, vol. 2, 27 August 2019 (2019-08-27), JP, pages 20, XP009530606, ISSN: 2189-700X *

Similar Documents

Publication Publication Date Title
US20110022617A1 (en) Finite automaton generation system for string matching for multi-byte processing
WO2016194909A1 (ja) アクセス分類装置、アクセス分類方法、及びアクセス分類プログラム
US9442965B2 (en) System and method for efficient representation of dynamic ranges of numeric values
CN112230927B (zh) 一种文件重定向方法、代码加载控制方法及装置
JP6725452B2 (ja) 分類装置、分類方法および分類プログラム
WO2022113308A1 (ja) 修正装置、修正方法及び修正プログラム
CN111338640B (zh) 一种可动态调整的非对称指令重链接方法和装置
CN116822422A (zh) 数字逻辑电路的分析优化方法及相关设备
WO2021166087A1 (ja) パケット検索装置、パケット検索方法およびパケット検索プログラム
Chuzhoy et al. Maximum Bipartite Matching in $ n^{2+ o (1)} $ Time via a Combinatorial Algorithm
CN114866229A (zh) 一种基于Kubernetes的数据加解密方法和装置
WO2021024392A1 (ja) パケット検索装置、パケット検索方法およびパケット検索プログラム
WO2020022374A1 (ja) パケット検索装置、パケット検索方法、及びパケット検索プログラム
CN113726660B (zh) 一种基于完美哈希算法的路由查找器和方法
WO2019160164A1 (ja) 検索装置、検索方法及び検索プログラム
US11354291B2 (en) Search device, search method, and search program
US11275507B2 (en) Method, electronic device, and computer storage medium for information processing
US20180270114A1 (en) Multi Platform Static Semantic Consistency Checking of Network Configurations
WO2021236232A1 (en) Cyber attack coverage
JP2016218847A (ja) 逐次クラスタリング装置、方法、及びプログラム
WO2024176415A1 (ja) 探索装置、探索方法及び探索プログラム
ZhanPeng et al. Dictionary matching: Review of the Aho-Corasick algorithm and vision for large dictionaries
WO2024166315A1 (ja) 収容変更装置、収容変更方法および収容変更プログラム
Martin et al. Faster exact distributions of pattern statistics through sequential elimination of states
US20220035531A1 (en) Method, electronic device, and computer program product for storage management

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20919917

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20919917

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP