JP2016100624A - Packet processing device, packet processing method and program - Google Patents
Packet processing device, packet processing method and program Download PDFInfo
- Publication number
- JP2016100624A JP2016100624A JP2014233542A JP2014233542A JP2016100624A JP 2016100624 A JP2016100624 A JP 2016100624A JP 2014233542 A JP2014233542 A JP 2014233542A JP 2014233542 A JP2014233542 A JP 2014233542A JP 2016100624 A JP2016100624 A JP 2016100624A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- tree
- node
- nodes
- search
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、パケット処理装置、パケット処理方法、および、プログラム、特に、パケット処理過程で木の探索を行うパケット処理装置、パケット処理方法、および、プログラムに関する。 The present invention relates to a packet processing device, a packet processing method, and a program, and more particularly to a packet processing device, a packet processing method, and a program that search a tree in a packet processing process.
高速にパケットを処理するため、ネットワークインタフェースから一度に複数のパケットを受信する技術が開示されている(非特許文献1)。 In order to process a packet at high speed, a technique for receiving a plurality of packets at a time from a network interface is disclosed (Non-Patent Document 1).
受信されたパケットはルールに従って処理される。ルールは、処理を適用すべき対象パケットのヘッダ情報と、適用すべき処理の組によって構成されるのが一般的である。そのため、パケット処理においては、ルールとパケットとの照合が行われる。照合は、木を探索することによって行われる場合がある(特許文献1)。 Received packets are processed according to rules. A rule is generally composed of header information of a target packet to which processing is to be applied and a set of processing to be applied. Therefore, in packet processing, a rule and a packet are collated. The matching may be performed by searching a tree (Patent Document 1).
木は、一般的に図1に図示されるような構造を有する。すなわち、木は階層化された複数のノードで構成され、階層の上位のノードから、1以上の下位のノードに対するリンクが張られている。木において、最上位のノード(図1おける、2重丸のノード)はルートノードと呼ばれ、最下位のノード(図1おける、A乃至Fのノード)は葉ノードまたは末端ノードと呼ばれる。 The tree generally has a structure as illustrated in FIG. That is, the tree is composed of a plurality of hierarchized nodes, and a link is established from an upper node in the hierarchy to one or more lower nodes. In the tree, the highest node (double circle node in FIG. 1) is called a root node, and the lowest node (nodes A to F in FIG. 1) is called a leaf node or a terminal node.
木とパケットの照合は、パケットの宛先アドレス等から求められるキーを用いて行われる。木とパケットの照合は、パケットのキーとノードに格納されているキーとを照合してリンクを選択し、選択したリンクを辿って次に照合に用いるべきノードを求め、さらにパケットのキーと該次のノードのキーとの照合を繰り返すことで進行する。木とパケットの照合は、一般的に、パケットのキーとルートノードのキーとの照合で始まり、幾つかの中間ノードを辿って、葉ノードに到達して終了する。葉ノードは、パケットに適用される処理を特定する情報を含む。 The tree and the packet are collated using a key obtained from the destination address of the packet. In the tree and packet matching, a link is selected by matching the key of the packet and the key stored in the node, the node to be used for the next matching is obtained by tracing the selected link, and the packet key and Proceed by repeating matching with the key of the next node. The matching of a tree and a packet generally begins with a matching of the packet key and the root node key, traverses several intermediate nodes, and ends with reaching a leaf node. The leaf node includes information that identifies the process applied to the packet.
ノードを辿る過程で、あるノードの照合を終えたとき、処理装置は、選択したリンクの先に有る次のノードのデータを参照する。該データが処理装置のキャッシュに存在しない場合、すなわちキャッシュミスが発生する場合、処理装置は、該データをメインメモリから読み込む必要がある。この時、大きな読み込み待ち時間が発生する。読み込み待ちを行っている間、処理装置は待ち状態となる為、木探索性能は大きく低下する。 When the verification of a certain node is completed in the process of tracing the node, the processing device refers to the data of the next node existing ahead of the selected link. When the data does not exist in the processing device cache, that is, when a cache miss occurs, the processing device needs to read the data from the main memory. At this time, a large read waiting time occurs. While waiting for reading, the processing apparatus is in a waiting state, so that the tree search performance is greatly reduced.
図2は、パケットのキーとノードのキーとの照合処理と、ノード情報の読み込み時間の発生シーケンス例を示す。図2の例は、パケットのキーとノードのキーとの照合処理を丸で示し、読み込み時間を長方形で示している。 FIG. 2 shows an example of a generation sequence of collation processing between a packet key and a node key and node information reading time. In the example of FIG. 2, the matching process between the packet key and the node key is indicated by a circle, and the reading time is indicated by a rectangle.
照合処理を示す丸の中には、照合対象となっているパケット番号と木のノードの深さの組が表示されている。例えば、1−2は、パケット番号1における、木の2段目のノードとの照合処理であることを示している。以降、この照合処理は、ノード照合処理1−2と表記され、他の照合処理もこの例に従って表記される。パケットと葉ノードとの照合処理を示す丸はハッチングして示されている。
In the circle indicating the matching process, a set of the packet number to be matched and the depth of the tree node is displayed. For example, 1-2 indicates a matching process with the second node of the tree in the
一方、処理装置にはプリフェッチ機能と呼ばれる先読み機能が備わっている。この機能は、指定したアドレスのデータをメインメモリからキャッシュに読み込むことをメモリ制御装置に指示する機能である。この機能を利用することで、あるパケットの処理に必要なデータをメインメモリから読み込んでいる間に、処理装置が別のパケットを処理することが可能となる。処理装置がコンピュータのCPU(Central Processing Unit)である場合、プリフェッチ機能は、プリフェッチ命令として実装されている。 On the other hand, the processing device has a prefetch function called a prefetch function. This function is a function for instructing the memory control device to read data at a specified address from the main memory into the cache. By using this function, the processing device can process another packet while reading data necessary for processing a certain packet from the main memory. When the processing device is a CPU (Central Processing Unit) of a computer, the prefetch function is implemented as a prefetch instruction.
図3は、プリフェッチ機能を利用した場合の、パケットとノードとの照合処理と、木の読み込み時間の発生シーケンス例を示す。例えば、処理装置は、ノード照合処理1−1において、ノード照合処理1−2に用いるデータのアドレスを求め、該アドレスのデータをキャッシュに読み込むことをメモリ制御装置に指示する。メモリ制御装置がこのデータを読み込んでいる間、処理装置は、ノード照合処理2−1及び3−1を実行することができる。 FIG. 3 shows an example of a generation sequence of packet matching time and tree reading time when the prefetch function is used. For example, in the node verification process 1-1, the processing device obtains an address of data used for the node verification processing 1-2 and instructs the memory control device to read the data at the address into the cache. While the memory control device is reading this data, the processing device can execute the node verification processing 2-1 and 3-1.
また、ノード照合処理1−2においては、データがキャッシュに存在するため、処理装置は、データの読み込みにかかる時間を大きく削減できる。さらに、パケット番号1と木との照合処理は1−2で終了したため、ノード照合処理3−2の次には、処理装置は、パケット番号4に関する照合処理であるノード照合処理4−1を実行できる。
In the node verification process 1-2, since the data exists in the cache, the processing apparatus can greatly reduce the time required for reading the data. Further, since the matching process between the
処理装置は、図2の例では、長方形で示しているデータの読み込み時間中、読み込み完了を待ち合わせているのに対し、図3の例では、他のパケットの照合処理を実行できる。すなわち、非特許文献1に開示されている技術と、プリフェッチ機能を用いることで、木とパケットの照合処理を効率よく実行できる。
In the example of FIG. 2, the processing device waits for the completion of reading during the reading time of the data indicated by the rectangle, whereas in the example of FIG. 3, the processing device can execute the collation processing of other packets. That is, by using the technique disclosed in
処理装置が一度に受信するパケットの数は有限であり、受信した最後のパケットの照合を行うとき、メインメモリからのデータの読み込み時間中にノード照合処理ができる他のパケットが無いことがある。 The number of packets that the processing device receives at a time is limited, and when collating the last received packet, there may be no other packets that can be subjected to node collation during the time for reading data from the main memory.
図3の例で、パケット番号5以降をネットワークインタフェースから受信していない場合、ノード照合処理4−3以降に使用するデータをメインメモリから読み込む時間に、処理装置がノード照合処理を実行できる他のパケットが存在しない。このため、データをメインメモリから読み込む間、処理装置が有効に動作しない。図3は、この時間を、データの読み込み時間を示す長方形に斜線を付して示している。
In the example of FIG. 3, if the
最後のパケットと木との照合において、木の探索が深い場合、パケット処理性能の低下を招く。パケット処理においては、パケットと木のノードとの照合回数が数十から数百にも上ることが想定される。そのため、性能低下は大きくなる。 When the last packet is compared with the tree and the tree search is deep, the packet processing performance is degraded. In packet processing, it is assumed that the number of collations between a packet and a tree node is several tens to several hundreds. As a result, the performance degradation increases.
なお、上記説明は、ノード情報を、メインメモリから処理装置のキャッシュに読み込む場合を想定したものであるが、ノード情報をディスク装置からメインメモリに読み込む場合についても同様である。但し、この場合、特にプリフェッチ機能は必要とならず、ディスク装置に対する先行読み出しを実行すればよい。 The above description assumes that the node information is read from the main memory into the cache of the processing device, but the same applies to the case where the node information is read from the disk device to the main memory. However, in this case, the prefetch function is not particularly required, and it is only necessary to execute the preceding read for the disk device.
本発明は、一度に受信した最後のパケットの照合を行うとき、メインメモリ等からのデータの読み込み時間中に、ノード照合処理ができる他のパケットが無い為に発生するパケット処理性能の低下を抑制するパケット処理装置等を提供することを目的とする。 The present invention suppresses degradation in packet processing performance that occurs because there is no other packet that can be subjected to node verification processing during the time to read data from the main memory or the like when verifying the last packet received at one time It is an object of the present invention to provide a packet processing device and the like.
本発明の一実施形態にかかるパケット処理装置は、複数のパケットを順序付けて記憶するパケット記憶手段と、パケットのデータから得られるキーを探索キーとするノードで構成され、末端ノードがパケットの処理を特定するデータを含む木を記憶する木記憶手段と、パケットから探索キーを得て、前記木のノードを辿ってパケットの処理を決定する探索処理を、前記木記憶手段から次ノード情報を読み込む時間を利用して、複数パケットについて、付けられた順序にしたがって開始して並列に実行する木探索手段と、パケットごとに前記探索処理で辿るノード数の予測値を求め、当該予測値の多い順に前記パケット記憶手段内の複数のパケットを順序付けるスケジューリング手段と、を備える。 A packet processing apparatus according to an embodiment of the present invention includes a packet storage unit that stores a plurality of packets in order, and a node that uses a key obtained from the packet data as a search key. A time for reading the next node information from the tree storage means, a tree storage means for storing a tree including the data to be identified, a search process for obtaining a search key from the packet and tracing a node of the tree to determine processing of the packet For a plurality of packets, the tree search means that starts in parallel according to the attached order and calculates the predicted value of the number of nodes to be traced in the search process for each packet, Scheduling means for ordering a plurality of packets in the packet storage means.
本発明の一実施形態にかかるパケット処理方法は、複数のパケットを順序付けて記憶し、パケットのデータから得られるキーを探索キーとするノードで構成され、末端ノードがパケットの処理を特定するデータを含む木を木記憶手段に記憶し、パケットから探索キーを得て、前記木のノードを辿ってパケットの処理を決定する探索処理を、前記木記憶手段から次ノード情報を読み込む時間を利用して、複数パケットについて、付けられた順序にしたがって開始して並列に実行する方法であって、パケットごとに前記探索処理で辿るノード数の予測値を求め、当該予測値の多い順に記憶している前記複数のパケットを順序付ける。 A packet processing method according to an embodiment of the present invention includes a node that stores a plurality of packets in order and uses a key obtained from the packet data as a search key. The tree containing means is stored in the tree storage means, the search key is obtained from the packet, the search processing for determining the packet processing by tracing the node of the tree is performed, and the time for reading the next node information from the tree storage means is used. A method for starting a plurality of packets according to an attached order and executing them in parallel, and for each packet, obtain a predicted value of the number of nodes to be traced in the search process, and store the predicted values in descending order of the predicted values. Order multiple packets.
本発明にかかるパケット処理装置は、一度に受信した最後のパケットの木との照合を行うとき、メインメモリ等からのノードの読み込み時間中に、照合処理ができる他のパケットが無い為に発生する性能の低下を抑制できる。 The packet processing apparatus according to the present invention occurs when there is no other packet that can be collated during the reading time of the node from the main memory or the like when collating with the last packet tree received at one time. A decrease in performance can be suppressed.
<第1の実施の形態>
[構成の説明]
図4は、本発明の第1の実施形態におけるパケット処理装置10の構成図である。本実施形態におけるパケット処理装置10、1つ以上の通信部11、パケット受信部12、パケット記憶部13、木記憶部14、スケジューリング部15、予測表記憶部16、木探索部17、及びパケット処理部18と、を備える。
<First Embodiment>
[Description of configuration]
FIG. 4 is a configuration diagram of the
通信部11は、パケット受信部12とパケット処理部18とに接続される。パケット受信部12は、通信部11とパケット記憶部13に接続される。パケット記憶部13は、パケット受信部12とスケジューリング部15と木探索部17とパケット処理部18とに接続される。
The
木記憶部14は、スケジューリング部15と木探索部17とに接続される。スケジューリング部15は、パケット記憶部13と木記憶部14と予測表記憶部16と木探索部17と接続される。木探索部17は、木記憶部14とスケジューリング部15とパケット記憶部13とパケット処理部18と接続される。予測表記憶部16は、スケジューリング部15と接続される。パケット処理部18は、通信部11とパケット記憶部13と木探索部17とに接続される。
The
通信部11は、図示しない他の装置から通信パケットを受信する。通信部11は、例えばEthernet(登録商標)通信制御装置である。
The
パケット受信部12は、通信部11から一度に複数のパケットを受信し、該パケットをパケット記憶部13に記憶させる。パケット記憶部13は、0個以上のパケットを記憶する。
The
木記憶部14は、パケットの宛先/送信元アドレス、ペイロード等から求められるキーを探索キーとする木を保持する。この木の葉ノードには、パケットに適用されるべき処理を特定する情報、例えば処理内容または処理プログラム名、が記憶されている。木探索部17は、パケットから求められるキーを用いてこの木を探索して葉ノードに到達し、当該パケットに適用されるべき処理を決定する。パケットの処理内容は、例えば通信部11へのパケットの出力や、パケットのヘッダの変換や、パケットの削除などである。このような木の探索は、例えば、オープンフローネットワークの拡張マッチングで行われる。
The
木探索部17は、パケットの処理を決定する為の木の探索処理で、木のノードを辿りながら、木とパケットの照合を行う。木とパケットの照合は、パケットの宛先アドレス、等から求められるキーを用いて行われる。木とパケットの照合は、パケットのキーとノードに格納されているキーとを照合してリンクを選択し、選択したリンクを辿って次に照合に用いるべきノードを求め、さらにパケットのキーと該次のノードのキーとの照合を繰り返すことで進行する。木とパケットの照合は、パケットのキーとルートノードのキーとの照合で始まり、幾つかの中間ノードを辿って、葉ノードに到達して終了する。
The
木記憶部14がメインメモリである場合、木探索部17は、或るパケットの為の木の探索処理で、次に辿るべきノードの情報がキャッシュメモリに格納されていないと、該ノード情報を対象にプリフェッチ命令を発行して、木記憶部14からの読み出しを開始する。
When the
木記憶部14がディスク装置である場合、木探索部17は、或るパケットの為の木の探索処理で、次に辿るべきノードの情報がメインメモリに格納されていないと、該ノード情報を対象にディスク読み込み命令を発行して、木記憶部14からの読み出しを開始する。
When the
何れの場合も、読み出し時間中、木探索部17は、他のパケットの為の木の探索処理を実行する。このようにして、木探索部17は、複数のパケットの為の木の探索処理を並列して実行する。
In any case, during the readout time, the
スケジューリング部15は、パケット記憶部13に記憶されたパケットと予測表記憶部16を参照し、各パケットと木との照合の回数を予測する。換言すれば、スケジューリング部15は、パケットの処理を決定する為に実行される木の探索処理で、当該パケットから求められたキーと木のノードが格納するキーとの照合回数を予測する。そして、スケジューリング部15は、予測された照合回数の多い順にパケットを並べ、その順序をパケット記憶部13に記憶する。
予測表記憶部16は、ハッシュ値に対して照合回数を関連付ける予測表を記憶する。スケジューリング部15は、パケット記憶部13に記憶されているパケットから得られるキーの一部からハッシュ値を計算し、該ハッシュ値に関連付けられている照合回数を予測表から検索することで、照合回数を予測する。スケジューリング部15は、例えば、パケットのヘッダのMACアドレスや、IPアドレスの上位数バイトをハッシュ値の計算に用いる。
The
The prediction
予測表が記憶するハッシュ値と照合回数は、木を作成するときに記憶してもよいし、木探索部17の探索結果から学習してもよい。木探索部17の探索結果から学習する場合、
スケジューリング部15は、木探索部17からパケット番号と照合回数とを取得して、該パケットのハッシュ値をもとに、予測表に記憶している照合回数を更新する。
The hash value and the number of collations stored in the prediction table may be stored when creating a tree, or may be learned from the search result of the
The
木探索部17は、パケット記憶部13に記憶された順序で、パケット記憶部13に記憶されている各パケットの処理を決定する為の木の探索処理を行う。木探索部17は、パケットのキーを用いて行った木の探索処理の結果、到達した葉ノードに記憶されている処理の特定情報を、該パケットに付加する。
The
パケット処理部18は、パケット記憶部13に記憶されている各パケットに付加されている処理内容に応じて、該パケットを処理する。
The
図5は、本実施の形態のパケット処理装置10が実行する処理の順序を、図3と同様に例示する。図5の例では、パケット番号1の照合回数が1、パケット番号2の照合回数が4、パケット番号3の照合回数が3、パケット番号4の照合回数が4である。木の探索処理の対象となるパケットの順序は、2→4→3→1の順となる。
FIG. 5 illustrates the order of processing executed by the
図5の例では、最後に木と照合するパケット1の照合回数が1である。したがって、本実施の形態のパケット処理装置10は、木記憶部14からデータを読み込むことによる性能低下を小さくすることができる。なお、図5において、処理装置が有効に動作しない時間は、照合処理1−2の為のノード情報の読み込み時間であり、この時間は長方形に斜線を付して示されている。
In the example of FIG. 5, the number of collations of
通信部11、パケット受信部12、スケジューリング部15、木探索部17、及び、パケット処理部18は、論理回路で実現される。通信部11、パケット受信部12、スケジューリング部15、木探索部17、または、パケット処理部18は、コンピュータでもあるパケット処理装置10の図示されないCPU(Central Processing Unit)が実行するプログラムによって実現されても良い。
The
パケット記憶部13、木記憶部14、および、予測表記憶部16は、例えばランダムアクセスメモリやキャッシュメモリによって実現される。パケット記憶部13、木記憶部14、または、予測表記憶部16は、ディスク装置などの外部記憶装置で実装されても良い。
The
[動作の説明]
図6は、本実施の形態のパケット処理装置10の動作フローチャートである。
[Description of operation]
FIG. 6 is an operation flowchart of the
まず、パケット受信部12が、通信部11からパケットを1つ以上、通常複数、まとめて受信する(ステップS1)。次に、パケット受信部12が、受信したパケットをパケット記憶部13に記憶する(ステップS2)。
First, the
スケジューリング部15が、パケット記憶部13に記憶された各パケットの一部を用いてハッシュ値を計算し、該ハッシュ値を用いて予測表を検索し、木探索処理の照合回数を予測する(ステップS3)。
The
スケジューリング部15が、ステップS3で予測した照合回数の大きい順にパケットの木探索を行うよう順序付けて(ステップS4)、順序をパケット記憶部13に記憶する(ステップS5)。
The
木探索部17が、パケット記憶部13に記憶された順序で、パケットと木を照合する(ステップS6)。パケット処理部18が、木との照合結果をもとにパケットを処理する(ステップS7)。
The
木探索部17は、ステップS6でパケットと木を照合した結果から、パケット番号と照合回数の組を各パケットについて求め、スケジューリング部15に送信する(ステップS8)。スケジューリング部15は、受信した各パケットについてパケット番号と照合回数をもとに、予測表の値を更新する(S9)。
The
[発明の効果]
本実施の形態のパケット処理装置10は、一度に受信した最後のパケットの木との照合を行うとき、メインメモリ等からのノードの読み込み時間中に、照合処理ができる他のパケットが無い状況の発生頻度を低下させる。その結果、本実施の形態のパケット処理装置10は、そのような状況に起因して発生するパケット処理性能の低下を抑制することができる。
[Effect of the invention]
When the
その理由は、スケジューリング部15が、各パケットと木の照合における木の照合回数を予測し、木探索部17が、照合回数の大きいパケット順に木とパケットを照合するからである。
The reason is that the
本実施の形態のスケジューリング部15は、各パケットと木の照合における木の照合回数を適切に予測できる。その理由は、スケジューリング部15が、パケットから得られるキーの一部からハッシュ値を計算し、予測表記憶部16に格納されている予測表を照合して照合回数を推定するからである。
The
木の探索処理は、キーの一部(例えば、上位ビット列)で木の部分木を特定し、キーの残りの部分(例えば、キーの下位ビット列)で、部分木内の葉ノードを特定する処理と捉えることが可能である。そして、木は、その部分木によって深さが異なることが有る。探索が、深い部分木を対象に行われれば照合回数は多く、浅い部分木を対象に行われれば照合回数は少ないと予測される。したがって、予測表が、部分木を特定するキーの一部のハッシュ値と、当該キーの一部により特定される部分木の深さに応じた値と、を関連付けて格納していれば、スケジューリング部15は、照合回数を適切に予測できる。
The tree search process is a process of specifying a subtree of a tree by a part of a key (for example, upper bit string) and specifying a leaf node in the subtree by a remaining part of the key (for example, a lower bit string of the key). It is possible to capture. The depth of the tree may vary depending on the subtree. If the search is performed on a deep subtree, the number of matching is large, and if the search is performed on a shallow subtree, the number of matching is predicted to be small. Therefore, if the prediction table stores a hash value of a part of a key specifying a subtree and a value corresponding to the depth of the subtree specified by the part of the key in association with each other, scheduling is performed. The
木の構造が初めから明確である場合、予測表はシステムパラメータとしてパケット処理装置10に与えられても良い。木の構造が当初は不明、または運転過程で変化するのであれば、上述したように、予測表に記憶される値は、木探索部17における探索結果すなわち過去の履歴を反映して設定されるのが有効である。
When the tree structure is clear from the beginning, the prediction table may be given to the
<第2の実施形態>
[構成の説明]
図7は、本発明の第2実施形態におけるパケット処理装置10の構成図である。本実施形態におけるパケット処理装置10は、予測表記憶部16を包含しない。他は、第1の実施形態におけるパケット処理装置10と同様の構成である。
<Second Embodiment>
[Description of configuration]
FIG. 7 is a configuration diagram of the
本実施形態におけるスケジューリング部15は、パケット記憶部13の各パケットについて、木を所定の段数だけ探索し、到達したノードをもとに照合回数を予測する。
The
到達したノードと照合回数の予測値との紐付けは、木を作成・変更するときに行っても良いし、過去の探索履歴によって行っても良い。以下の動作発明は、木の作成・変更時に行う場合についての説明である。 The association between the reached node and the predicted value of the number of collations may be performed when creating or changing a tree, or may be performed based on a past search history. The following operation invention is an explanation of a case where it is performed at the time of creating / changing a tree.
また、本実施形態のスケジューリング部15は、到達した木の中間ノード、すなわち木探索の途中結果を、各パケットの付加情報としてパケット記憶部13に記憶しても良い。この場合、木探索部17は、パケット記憶部13に記憶されている各パケットについて、パケット記憶部13に記憶された順序で木との照合を行うとき、該パケットの付加情報として記憶されているノードの照合処理から開始する。これにより、木探索部17は、スケジューリング部15が既に実行した照合を省略することが出来る。
In addition, the
[動作の説明]
図8は、本実施の形態のパケット処理装置10の動作フローチャートである。ステップS11及び12は、第1の実施形態におけるステップS1及びS2とそれぞれ同様である。
[Description of operation]
FIG. 8 is an operation flowchart of the
次に、スケジューリング部15が、パケット記憶部13に格納された各パケットについて、所定ノード数だけ木を探索し、到達した中間ノードから照合回数を予測し、該到達したノードの情報を該パケットに付加する(ステップS13)。ここで、スケジューリング部15は、木を探索して到達した中間ノードに紐付けられている照合回数を予測値として出力する。
Next, for each packet stored in the
ステップS14及びS15は、第1の実施形態におけるステップS4及びS5とそれぞれ同様である。 Steps S14 and S15 are the same as steps S4 and S5 in the first embodiment, respectively.
木探索部17が、パケット記憶部13に記憶された順序で、パケット記憶部13に記憶されている各パケットと木の照合を、該パケットに付加されているノード情報のノードから行う(ステップS16)。
The
ステップS17は、第1の実施形態におけるステップS7と同様である。 Step S17 is the same as step S7 in the first embodiment.
[発明の効果]
本実施の形態のスケジューリング部15は、各パケットと木の照合における木の照合回数を適切に予測できる。その理由は、スケジューリング部15が、パケット記憶部13に格納された各パケットについて、所定ノード数だけ木を探索し、到達した中間ノードから照合回数を予測するからである。
[Effect of the invention]
The
上述したように、木の深さは、木の部分木によって異なる。本実施の形態では、木の所定段数下位の中間ノードをルートとする部分木のルートノードに当該部分木の深さを反映した予測値を紐付けることで、照合回数の予測精度を高めることが可能である。 As described above, the depth of the tree varies depending on the subtree of the tree. In the present embodiment, the prediction value reflecting the depth of the subtree is linked to the root node of the subtree whose root is the intermediate node lower than the predetermined number of stages in the tree, thereby improving the prediction accuracy of the number of matching times. Is possible.
さらに、木探索部17が或る部分木を探索する場合に、最終的に特定の葉ノードに到達する確率が高い時は、当該部分木のルートノードに、当該葉ノードまでの照合回数を紐付けることで、照合回数の予測精度を高めることが可能である。
Further, when the
<第3の実施形態>
図9は、本発明の第3実施形態におけるパケット処理装置10の構成図である。本実施形態におけるパケット処理装置10は、パケット記憶部13、木記憶部14、スケジューリング部15、および、木探索部17を備える。
<Third Embodiment>
FIG. 9 is a configuration diagram of the
パケット記憶部13は、複数のパケットを順序付けて記憶する。木記憶部14は、パケットのデータから得られるキーを探索キーとするノードで構成され、末端ノードがパケットの処理を特定するデータを含む木を記憶する。
The
木探索部17は、パケットから探索キーを得て、木のノードを辿ってパケットの処理を決定する探索処理を、木記憶手段から次ノード情報を読み込む時間を利用して、複数パケットについて、付けられた順序にしたがって開始して並列に実行する。
The
スケジューリング部15は、パケットごとに探索処理で辿るノード数の予測値を求め、当該予測値の多い順にパケット記憶手段内の複数のパケットを順序付ける。
The
本実施の形態のパケット処理装置10は、一度に受信した最後のパケットの木との照合を行うとき、メインメモリ等からのノードの読み込み時間中に、照合処理ができる他のパケットが無い状況の発生頻度を低下させる。その結果、本実施の形態のパケット処理装置10は、そのような状況に起因して発生するパケット処理性能の低下を抑制することができる。
When the
その理由は、スケジューリング部15が、各パケットと木の照合における木の照合回数を予測し、木探索部17が、照合回数の大きいパケット順に木とパケットを照合するからである。
The reason is that the
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
10 パケット処理装置
11 通信部
12 パケット受信部
13 パケット記憶部
14 木記憶部
15 スケジューリング部
16 予測表記憶部
17 木探索部
18 パケット処理部
DESCRIPTION OF
Claims (10)
パケットのデータから得られるキーを探索キーとするノードで構成され、末端ノードがパケットの処理を特定するデータを含む木を記憶する木記憶手段と、
パケットから探索キーを得て、前記木のノードを辿ってパケットの処理を決定する探索処理を、前記木記憶手段から次ノード情報を読み込む時間を利用して、複数パケットについて、付けられた順序にしたがって開始して並列に実行する木探索手段と、
パケットごとに前記探索処理で辿るノード数の予測値を求め、当該予測値の多い順に前記パケット記憶手段内の複数のパケットを順序付けるスケジューリング手段と、
を備えるパケット処理装置。 Packet storage means for storing a plurality of packets in order;
A tree storage unit configured to store a tree including data in which a key obtained from the packet data is used as a search key, and the terminal node specifies data for processing the packet;
A search process for obtaining a search key from a packet and determining the processing of the packet by tracing the nodes of the tree is performed in a given order for a plurality of packets using a time for reading next node information from the tree storage unit. Therefore, a tree search means that starts and executes in parallel;
A scheduling unit that obtains a predicted value of the number of nodes traced by the search process for each packet, and orders a plurality of packets in the packet storage unit in descending order of the predicted value;
A packet processing apparatus.
前記スケジューリング手段は、パケットに格納されているデータの一部から前記識別子を得て、当該識別子で前記予測表を探索してノード数の前記予測値を得る、請求項1のパケット処理装置。 A prediction table storage means for storing a prediction table for storing the identifier and the number of nodes in association with each other;
The packet processing apparatus according to claim 1, wherein the scheduling unit obtains the identifier from a part of data stored in a packet, searches the prediction table with the identifier, and obtains the predicted value of the number of nodes.
前記スケジューリング手段は、パケットから探索キーを得て、前記木のノードを前記所定の深さまで辿って、到達したノードに関連付けられているノード数を前記予測値として得る、請求項1のパケット処理装置。 The tree storage means stores a node having a predetermined depth and the number of nodes in association with each other,
The packet processing device according to claim 1, wherein the scheduling unit obtains a search key from a packet, traces the node of the tree to the predetermined depth, and obtains the number of nodes associated with the reached node as the predicted value. .
前記木探索手段は、パケットに記録されているノードから前記探索処理を開始する、請求項4のパケット処理装置。 The scheduling means obtains a search key from the packet, records a node reached by tracing the node of the tree to the predetermined depth, and records the node in the packet.
The packet processing apparatus according to claim 4, wherein the tree search unit starts the search process from a node recorded in the packet.
前記通信手段からパケットを複数受信し、前記パケット記憶手段に記憶させるパケット受信手段と、
前記木探索手段によりパケットに対して決定された処理を、該パケットに適用するパケット処理手段と、
をさらに備える請求項1乃至5の何れか1項に記載のパケット処理装置。 One or more communication means for receiving packets;
A plurality of packets received from the communication means and stored in the packet storage means;
Packet processing means for applying the processing determined for the packet by the tree search means to the packet;
The packet processing device according to claim 1, further comprising:
パケットのデータから得られるキーを探索キーとするノードで構成され、末端ノードがパケットの処理を特定するデータを含む木を木記憶手段に記憶し、
パケットから探索キーを得て、前記木のノードを辿ってパケットの処理を決定する探索処理を、前記木記憶手段から次ノード情報を読み込む時間を利用して、複数パケットについて、付けられた順序にしたがって開始して並列に実行する方法であって、
パケットごとに前記探索処理で辿るノード数の予測値を求め、当該予測値の多い順に記憶している前記複数のパケットを順序付ける、パケット処理方法。 Store multiple packets in order,
It is composed of a node having a key obtained from packet data as a search key, and a terminal node stores a tree containing data specifying packet processing in a tree storage means,
A search process for obtaining a search key from a packet and determining the processing of the packet by tracing the nodes of the tree is performed in a given order for a plurality of packets using a time for reading next node information from the tree storage unit. So a method to start and run in parallel,
A packet processing method for obtaining a predicted value of the number of nodes to be traced by the search process for each packet, and ordering the plurality of packets stored in the descending order of the predicted value.
パケットに格納されているデータの一部から前記識別子を得て、当該識別子で前記予測表を探索してノード数の前記予測値を得る、請求項7のパケット処理方法。 Further storing a prediction table storing the identifier and the number of nodes in association with each other;
The packet processing method according to claim 7, wherein the identifier is obtained from a part of data stored in a packet, and the prediction table is searched with the identifier to obtain the predicted value of the number of nodes.
パケットから探索キーを得て、前記木のノードを前記所定の深さまで辿って、到達したノードに関連付けられているノード数を前記予測値として得る、請求項7のパケット処理方法。 Storing a node having a predetermined depth and the number of nodes in association with each other;
The packet processing method according to claim 7, wherein a search key is obtained from a packet, the node of the tree is traced to the predetermined depth, and the number of nodes associated with the reached node is obtained as the predicted value.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014233542A JP2016100624A (en) | 2014-11-18 | 2014-11-18 | Packet processing device, packet processing method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014233542A JP2016100624A (en) | 2014-11-18 | 2014-11-18 | Packet processing device, packet processing method and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016100624A true JP2016100624A (en) | 2016-05-30 |
Family
ID=56077551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014233542A Pending JP2016100624A (en) | 2014-11-18 | 2014-11-18 | Packet processing device, packet processing method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016100624A (en) |
-
2014
- 2014-11-18 JP JP2014233542A patent/JP2016100624A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102164427B1 (en) | Determining the order of execution of neural networks | |
CN108370352B (en) | High speed flexible packet classification using network processors | |
US9619499B2 (en) | Hardware implementation of a tournament tree sort algorithm | |
KR102017526B1 (en) | Method and apparatus for searching url address in url list in a communication system | |
US10164884B2 (en) | Search apparatus, search configuration method, and search method | |
US11182365B2 (en) | Systems and methods for distributed storage of data across multiple hash tables | |
US20110016142A1 (en) | Method and apparatus for creating pattern matching state machine and identifying pattern | |
US9665612B2 (en) | Run-time decision of bulk insert for massive data loading | |
US9210219B2 (en) | Systems and methods for consistent hashing using multiple hash rings | |
US20210109920A1 (en) | Method for Validating Transaction in Blockchain Network and Node for Configuring Same Network | |
CN111324577A (en) | Method and device for reading and writing Yml file | |
CN112052413B (en) | URL fuzzy matching method, device and system | |
WO2015131720A1 (en) | Packet processing method and device | |
CN108270677A (en) | A kind of fast route convergence method and device | |
US20220036206A1 (en) | Containerized distributed rules engine | |
US9396286B2 (en) | Lookup with key sequence skip for radix trees | |
CN111459464B (en) | Node fusion method, code generation method and device | |
JP2016100624A (en) | Packet processing device, packet processing method and program | |
US20150347409A1 (en) | Convert Command Into a BULK Load Operation | |
CN116319628A (en) | SDN network data forwarding method and device based on DPDK | |
CN110968267B (en) | Data management method, device, server and system | |
US9361404B2 (en) | Offline radix tree compression with key sequence skip | |
CN112100446B (en) | Search method, readable storage medium, and electronic device | |
US10476785B2 (en) | IP routing search | |
US10108677B2 (en) | Software precedence in ternary content-addressable memory (TCAM) |