JP2019097053A - Packet identification device and method - Google Patents

Packet identification device and method Download PDF

Info

Publication number
JP2019097053A
JP2019097053A JP2017225639A JP2017225639A JP2019097053A JP 2019097053 A JP2019097053 A JP 2019097053A JP 2017225639 A JP2017225639 A JP 2017225639A JP 2017225639 A JP2017225639 A JP 2017225639A JP 2019097053 A JP2019097053 A JP 2019097053A
Authority
JP
Japan
Prior art keywords
information
key information
packet
circuit
key
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
Application number
JP2017225639A
Other languages
Japanese (ja)
Other versions
JP6907903B2 (en
Inventor
彩希 八田
Saki Hatta
彩希 八田
晃嗣 山崎
Akitsugu Yamazaki
晃嗣 山崎
羽田野 孝裕
Takahiro Hatano
孝裕 羽田野
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017225639A priority Critical patent/JP6907903B2/en
Publication of JP2019097053A publication Critical patent/JP2019097053A/en
Application granted granted Critical
Publication of JP6907903B2 publication Critical patent/JP6907903B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

To perform packet identification processing using key information specific for an application flexibly in small-scale and low-cost circuit configuration.SOLUTION: A delimiter information storage circuit 12 is provided for storing delimiter information DL for identifying key information Key included in an input packet for each protocol type of the input packet. On the basis of the delimiter information DL relating to the protocol type of the input packet output from the delimiter information storage circuit 12 in accordance with the protocol type identified by a header processing circuit 11, a key information extraction circuit 14 extracts key information from the vicinity of the delimiter information in the input packet output from a delay circuit 13.SELECTED DRAWING: Figure 1

Description

本発明は、ハードウェアを用いて可変長パケットを識別するためのパケット識別技術に関する。   The present invention relates to a packet identification technique for identifying variable-length packets using hardware.

通信ネットワークを介してパケットを送受信するネットワーク装置の1つとして、ルータが用いられている。ルータは、受信パケットの識別を行い、識別結果に基づいた転送処理やフィルタリング処理等のパケット経路制御を行う。量産された廉価なルータでは、OSI参照モデルの第4層までのパケットのヘッダ情報を参照したパケット識別が可能であるが、可変長パケットを扱う第5層から上位のアプリケーション層レベルでのパケット識別が難しい。そのため、第5層から上位層でのパケット識別には、サーバ上で実行されるソフトウェアやアプリケーションごとに高価な専用装置が用いられている。   A router is used as one of network devices that transmit and receive packets via a communication network. The router identifies the received packet, and performs packet routing control such as transfer processing and filtering processing based on the identification result. In low-cost routers that are mass-produced, packet identification is possible by referring to the header information of packets up to layer 4 of the OSI reference model, but packet identification at the application layer level from layer 5 that handles variable-length packets Is difficult. Therefore, for the packet identification in the fifth to upper layers, an expensive dedicated device is used for each software or application executed on the server.

一方、近年の通信トラヒックの爆発的な増加に伴い、アプリケーション層レベルでのパケット識別による、より高度なパケット経路制御の実現が求められている。例えば、DNS(Domain Name System)プロトコルのペイロード情報に格納されているURL情報に含まれるドメイン名識別によるパケット経路制御が挙げられる。ペイロード情報内のドメイン名識別が可能となると、例えば、ドメインDAに関するパケットは通信装置UAへ転送し、ドメインDBに関するパケットは通信装置UBへ転送するなどの、より細かな経路制御が可能となる。   On the other hand, with the explosive increase of communication traffic in recent years, realization of more advanced packet routing control by packet identification at the application layer level is required. For example, packet routing control based on domain name identification included in URL information stored in payload information of DNS (Domain Name System) protocol may be mentioned. When domain name identification in the payload information becomes possible, for example, packets related to the domain DA are transferred to the communication device UA, and packets related to the domain DB are transferred to the communication device UB, etc., enabling finer routing control.

さらに、近年、通信ネットワークに仮想化技術を適用する動きが加速しており、1つの物理サーバ上に複数のVM(Virtual Machine)を構築し、1つのサーバで複数のアプリケーションを動作させる事例もある。VMごとに異なるアプリケーションを処理する場合も、パケット識別に基づく振り分け制御技術が必要であり、このような制御をソフトウェア処理のみで実現しようとすると性能が不足する。また、専用装置で実現しようとすると、アプリケーションごとに専用装置が必要となるため、コストが増大する。したがって、1つの装置により、様々な通信プロトコルをアプリケーションレベルで識別可能なパケット識別技術が必要とされている。   Furthermore, in recent years, the movement to apply virtualization technology to communication networks is accelerating, and there are cases where multiple VMs (Virtual Machines) are built on one physical server and multiple applications are operated on one server. . Even in the case of processing different applications for each VM, distribution control technology based on packet identification is required, and if such control is to be realized only by software processing, the performance is insufficient. In addition, if it is intended to realize by a dedicated device, the cost increases because a dedicated device is required for each application. Therefore, there is a need for a packet identification technique that can identify various communication protocols at an application level by one device.

従来、このようなパケットを識別するパケット識別装置として、第5層から上位層で用いるペイロード情報を含むパケットを識別可能な、ハードウェアベースのパケット識別装置がある。
図12に示す従来のパケット識別装置50は、ヘッダ処理部51、キー情報抽出部52、および検索部53とを備えている。
Conventionally, as a packet identification device for identifying such a packet, there is a hardware-based packet identification device capable of identifying a packet including payload information used in the fifth to upper layers.
The conventional packet identification device 50 shown in FIG. 12 includes a header processing unit 51, a key information extraction unit 52, and a search unit 53.

このパケット識別装置50では、まず、ヘッダ処理部51が、入力パケットのヘッダ情報を識別し、DNSやHTTP(Hyper Text Transfer Protocol)などのプロトコル種別を特定する。キー情報抽出部52は、ヘッダ処理部51で得られたプロトコル種別に基づいて、入力パケットの特定領域をキー情報として抽出する。検索部53は、予め登録されている、識別対象のペイロード情報を示す各エントリを参照して、キー情報抽出部52で抽出されたキー情報とペイロード情報が一致するエントリを検索し、得られた検索結果すなわち登録有無に基づいて、入力パケットが識別対象となるペイロード情報を含むパケットであるかどうかを識別している。   In the packet identification device 50, first, the header processing unit 51 identifies header information of the input packet, and identifies a protocol type such as DNS or HTTP (Hyper Text Transfer Protocol). The key information extraction unit 52 extracts a specific area of the input packet as key information, based on the protocol type obtained by the header processing unit 51. The search unit 53 refers to each entry indicating payload information to be identified, which is registered in advance, and searches for an entry in which the key information extracted by the key information extraction unit 52 matches the payload information. Based on the search result, that is, the presence or absence of registration, it is identified whether the input packet is a packet including payload information to be identified.

なお、ヘッダ処理部51でのヘッダ処理はあくまでも、入力パケットのパケットフォーマットに従い、パケットの先頭から順次ヘッダ情報を解析していく識別処理であり、一般的な公知のパーサー処理方法で実現可能である(例えば、非特許文献1や非特許文献2など参照)。
また、検索部53は、一般的な連想メモリである、CAM(Content Addressable Memory)やTCAM(Ternary Content Addressable Memory)を用いて実現することができる。
The header processing in the header processing unit 51 is an identification processing in which header information is sequentially analyzed from the head of the packet according to the packet format of the input packet, and can be realized by a general known parser processing method (See, for example, Non-Patent Document 1 and Non-Patent Document 2).
In addition, the search unit 53 can be realized using a general content addressable memory (CAM) or a TCAM (Ternary Content Addressable Memory).

一方、キー情報抽出部52における、入力パケットのペイロード情報から特定領域をキー情報として抽出する方法については、プロトコル種別ごとにキー情報として抽出すべきペイロード情報や最適な抽出方法が異なるため、従来ではプロトコル種別ごとに抽出回路が設けられている。
図13に示す従来のキー情報抽出部52では、前段にプロトコル種別ごとにキー情報を抽出する抽出器52Aが設けられており、後段には、指定されたプロトコル種別に基づいて、これら抽出器52Aのうち、対応するプロトコル種別の抽出器52Aの出力を切替選択するセレクタ52Bが設けられている。この回路構成により、プロトコル種別に応じて検索部53へのキー情報出力を切り替えられるようになっている。
On the other hand, the method of extracting a specific area as key information from the payload information of the input packet in the key information extraction unit 52 is different from the prior art because the payload information to be extracted as key information and the optimum extraction method differ for each protocol type An extraction circuit is provided for each protocol type.
In the conventional key information extraction unit 52 shown in FIG. 13, an extractor 52A for extracting key information for each protocol type is provided at the former stage, and these extractors 52A are provided at the latter stage based on the designated protocol type. A selector 52B is provided to switch and select the output of the corresponding protocol type extractor 52A. According to this circuit configuration, the key information output to the search unit 53 can be switched according to the protocol type.

「SDNet Packet Processor User Guide」、UG1012 (v2017.1)、Xilinx社、June 15,2017"SDNet Packet Processor User Guide", UG1012 (v2017.1), Xilinx, June 15, 2017 「P416 Language Specification version1.0.0」、The P4 Language Consortium、2017-05-22"P416 Language Specification version 1.0.0", The P4 Language Consortium, 2017-05-22

しかしながら、このような従来技術では、複数のプロトコル種別に関するパケットを識別する場合、これらプロトコル種別ごとにキー情報抽出回路を設ける必要があるため、パケット識別装置全体の回路規模が増大するという問題点があった。また、キー情報抽出回路をASIC(Application Specific Integrated Circuit)に実装した場合、設計時に想定したプロトコル以外のキー情報抽出処理ができない。このため、将来の新たなプロトコルへの対応という観点からすれば、柔軟性に欠けるという問題点があった。なお、キー情報抽出回路をFPGA(Field Programmable Gate Array)に実装した場合、後から回路の書き換え・追加が可能であるが、回路変更のための全体設計の見直しが必要となり、結果として設計コストが増大することになる。   However, in such prior art, when identifying packets relating to a plurality of protocol types, it is necessary to provide a key information extraction circuit for each of these protocol types, so that the circuit scale of the entire packet identification device increases. there were. In addition, when the key information extraction circuit is mounted on an application specific integrated circuit (ASIC), key information extraction processing other than the protocol assumed at the time of design can not be performed. For this reason, there is a problem that it lacks flexibility from the viewpoint of the correspondence to the new protocol in the future. When the key information extraction circuit is mounted on an FPGA (Field Programmable Gate Array), the circuit can be rewritten / added later, but a review of the entire design for circuit change is necessary, resulting in a design cost. It will increase.

本発明はこのような課題を解決するためのものであり、アプリケーションに特有のキー情報を用いたパケット識別処理を、小規模かつ低コストな回路構成で柔軟に行うことができるパケット識別技術を提供することを目的としている。   The present invention is intended to solve such problems, and provides a packet identification technology that can flexibly perform packet identification processing using application-specific key information with a small-scale and low-cost circuit configuration. The purpose is to

このような目的を達成するために、本発明にかかるパケット識別装置は、入力パケットから特定した、前記入力パケットのプロトコル種別と、前記入力パケットのアプリケーションに特有のキー情報とに基づいて、前記入力パケットをアプリケーションごとに識別するパケット識別装置であって、前記入力パケットのヘッダ情報を識別することにより、前記入力パケットのプロトコル種別を特定するヘッダ処理回路と、前記入力パケットのプロトコル種別ごとに、前記入力パケットに含まれるキー情報を特定するためのデリミタ情報を記憶するデリミタ情報記憶回路と、前記入力パケットを一定の遅延時間だけ遅延させて出力する遅延回路と、前記ヘッダ処理回路で特定された前記プロトコル種別に応じて前記デリミタ情報記憶回路から出力された、前記入力パケットのプロトコル種別に関するデリミタ情報に基づいて、前記遅延回路から出力された前記入力パケットのうち前記デリミタ情報の近傍から前記キー情報を抽出するキー情報抽出回路と、前記キー情報抽出回路で抽出された前記キー情報で、識別対象となるアプリケーションごとに当該アプリケーションに特有のキー情報が予め登録されている検索テーブルを検索し、得られた検索結果に基づいて前記入力パケットに関する識別結果を出力する検索回路とを備えている。   In order to achieve such an object, the packet identification device according to the present invention is configured to input the input packet based on the protocol type of the input packet and key information specific to the application of the input packet, which are identified from the input packet. A packet identification device for identifying a packet for each application, the header processing circuit identifying a protocol type of the input packet by identifying header information of the input packet, and the protocol type of the input packet. A delimiter information storage circuit for storing delimiter information for specifying key information contained in an input packet, a delay circuit for delaying the input packet by a predetermined delay time and outputting the same, and the header information specified by the header processing circuit Output from the delimiter information storage circuit according to the protocol type A key information extraction circuit for extracting the key information from the vicinity of the delimiter information in the input packet output from the delay circuit based on the delimiter information on the protocol type of the input packet; With the key information extracted by the circuit, a search table in which key information specific to the application is registered in advance is searched for each application to be identified, and an identification result regarding the input packet based on the obtained search result And a search circuit for outputting

また、本発明にかかる上記パケット識別装置の一構成例は、前記デリミタ情報記憶回路が、前記入力パケットのプロトコル種別ごとに、前記デリミタ情報と前記デリミタ情報に対する前記キー情報の位置を示す位置情報とを記憶し、前記キー情報抽出回路は、前記デリミタ情報記憶回路から出力された前記デリミタ情報と前記位置情報とに基づいて、前記入力パケットから前記キー情報を抽出するようにしたものである。   In one configuration example of the packet identification device according to the present invention, the delimiter information storage circuit is configured to indicate the delimiter information and the position of the key information relative to the delimiter information for each protocol type of the input packet. The key information extraction circuit is configured to extract the key information from the input packet based on the delimiter information and the position information output from the delimiter information storage circuit.

また、本発明にかかる上記パケット識別装置の一構成例は、前記位置情報が、前記キー情報が前記デリミタ情報の前方または後方のいずれに位置するかを示す情報であり、前記キー情報抽出回路は、前記入力パケットのうち、前記位置情報が示す前記デリミタ情報の前方または後方から、指定長のデータを前記キー情報として抽出するようにしたものである。   In one configuration example of the packet identification device according to the present invention, the position information is information indicating whether the key information is located forward or backward of the delimiter information, and the key information extraction circuit In the input packet, data of a designated length is extracted as the key information from the front or rear of the delimiter information indicated by the position information.

また、本発明にかかる上記パケット識別装置の一構成例は、前記デリミタ情報記憶回路が、前記入力パケットのプロトコル種別ごとに複数の前記デリミタ情報を記憶し、前記キー情報抽出回路は、前記デリミタ情報ごとに設けられて、対応する前記デリミタ情報に基づいて、前記入力パケットからそれぞれ個別のキー情報を抽出し、前記キー情報抽出回路のそれぞれで抽出された複数のキー情報を1つの結合キー情報に結合するキー情報結合回路をさらに備え、前記検索回路は、前記キー情報結合回路から出力された前記結合キー情報で前記検索テーブルを検索することにより、前記入力パケットに関するアプリケーションを示す識別結果を出力するようにしたものである。   Further, in one configuration example of the packet identification device according to the present invention, the delimiter information storage circuit stores a plurality of pieces of delimiter information for each protocol type of the input packet, and the key information extraction circuit stores the delimiter information. The key information is extracted from the input packet based on the corresponding delimiter information, and a plurality of key information extracted by each of the key information extraction circuits are combined into one combined key information. The search circuit further includes a key information combination circuit to be coupled, and the search circuit outputs an identification result indicating an application related to the input packet by searching the search table with the combination key information output from the key information combination circuit. It is something like that.

また、本発明にかかる上記パケット識別装置の一構成例は、前記遅延回路が、一定の長さで分割入力される前記入力パケットを、前記遅延時間だけ順次遅延させて遅延データとして出力し、前記キー情報抽出回路は、前記遅延データをバッファデータとして保持するバッファと、前記バッファデータ内で前記デリミタ情報を探索することにより、前記デリミタ情報が存在するデリミタ情報位置を特定する比較器と、前記デリミタ情報位置を基準とした位置範囲のデータを、前記キー情報として前記バッファデータから抽出する抽出器とを備えるものである。   In one configuration example of the packet identification device according to the present invention, the delay circuit sequentially delays the input packets divided and input with a predetermined length by the delay time and outputs the delayed data as delay data. The key information extraction circuit is a buffer for holding the delay data as buffer data, a comparator for specifying the delimiter information position where the delimiter information exists by searching for the delimiter information in the buffer data, and the delimiter And an extractor for extracting data of a position range based on an information position as the key information from the buffer data.

また、本発明にかかるパケット識別方法は、入力パケットから特定した、前記入力パケットのプロトコル種別と、前記入力パケットのアプリケーションに特有のキー情報とに基づいて、予め設定されているアプリケーションごとに前記入力パケットを識別するパケット識別装置で用いられるパケット識別方法であって、ヘッダ処理回路が、前記入力パケットのヘッダ情報を識別することにより、前記入力パケットのプロトコル種別を特定するヘッダ処理ステップと、デリミタ情報記憶回路が、前記入力パケットのプロトコル種別ごとに、前記入力パケットに含まれるキー情報を特定するためのデリミタ情報を記憶するデリミタ情報記憶ステップと、遅延回路が、前記入力パケットを一定の遅延時間だけ遅延させて出力する遅延ステップと、キー情報抽出回路が、前記ヘッダ処理回路で特定された前記プロトコル種別に応じて前記デリミタ情報記憶回路から出力された、前記入力パケットのプロトコル種別に関するデリミタ情報に基づいて、前記遅延回路から出力された前記入力パケットのうち前記デリミタ情報の近傍から前記キー情報を抽出するキー情報抽出ステップと、検索回路が、前記キー情報抽出回路で抽出された前記キー情報で、識別対象となるアプリケーションごとに当該アプリケーションに特有のキー情報が予め登録されている検索テーブルを検索し、得られた検索結果に基づいて前記入力パケットに関する識別結果を出力する検索ステップと備えている。   In the packet identification method according to the present invention, the input is set for each application set in advance based on a protocol type of the input packet and key information specific to an application of the input packet, which are specified from the input packet. A packet identification method for use in a packet identification device for identifying a packet, the header processing step of identifying a protocol type of the input packet by identifying header information of the input packet by a header processing circuit, delimiter information A delimiter information storing step of storing delimiter information for specifying key information included in the input packet for each protocol type of the input packet; and a delay circuit storing the input packet for a predetermined delay time. Delay step to delay and output, The information extraction circuit may output the delay circuit based on the delimiter information on the protocol type of the input packet, which is output from the delimiter information storage circuit according to the protocol type specified by the header processing circuit. A key information extraction step for extracting the key information from the vicinity of the delimiter information in the input packet, and a search circuit using the key information extracted by the key information extraction circuit for each application to be identified The search step comprises searching a search table in which specific key information is registered in advance, and outputting an identification result regarding the input packet based on the obtained search result.

本発明によれば、入力パケットのプロトコル種別が異なる場合でも、プロトコル種別間で同一のキー情報抽出回路を共用して、所望のキー情報Keyを抽出できる。このため、プロトコル種別ごとにキー情報抽出回路を設ける必要がなくなり、デリミタ情報記憶回路のデリミタ情報を再設定するだけで、新たなプロトコルからもキー情報を抽出できる。したがって、アプリケーションに特有のキー情報を用いたパケット識別処理を、小規模かつ低コストな回路構成で柔軟に行うことが可能となる。   According to the present invention, even when the protocol type of the input packet is different, it is possible to extract the desired key information Key by sharing the same key information extraction circuit between the protocol types. For this reason, it is not necessary to provide a key information extraction circuit for each protocol type, and key information can be extracted from a new protocol only by resetting the delimiter information of the delimiter information storage circuit. Therefore, packet identification processing using application-specific key information can be flexibly performed with a small-scale and low-cost circuit configuration.

第1の実施の形態にかかるパケット識別装置の構成を示すブロック図である。It is a block diagram showing composition of a packet identification device concerning a 1st embodiment. 第1の実施の形態にかかるデリミタ情報の構成例である。It is an example of composition of delimiter information concerning a 1st embodiment. 入力パケットの構成例である。It is an example of composition of an input packet. 第1の実施の形態にかかるキー情報抽出回路の構成例である。It is a structural example of the key information extraction circuit concerning 1st Embodiment. 第1の実施の形態にかかるキー情報抽出処理を示すフローチャートである。It is a flow chart which shows key information extraction processing concerning a 1st embodiment. キー情報抽出動作を示す説明図である。It is an explanatory view showing key information extraction operation. 第1の実施の形態にかかるパケット識別装置の他の構成を示すブロック図である。It is a block diagram which shows the other structure of the packet identification device concerning 1st Embodiment. 第2の実施の形態にかかるキー情報抽出回路の構成例である。It is a structural example of the key information extraction circuit concerning 2nd Embodiment. 第2の実施の形態にかかるデリミタ情報の構成例である。It is an example of composition of delimiter information concerning a 2nd embodiment. 第2の実施の形態にかかるキー情報抽出処理を示すフローチャートである。It is a flow chart which shows key information extraction processing concerning a 2nd embodiment. 第2の実施の形態にかかるキー情報抽出処理(続き)を示すフローチャートである。It is a flowchart which shows the key information extraction process (continuation) concerning 2nd Embodiment. 第3の実施の形態にかかるパケット識別装置の構成を示すブロック図である。It is a block diagram which shows the structure of the packet identification device concerning 3rd Embodiment. 従来のパケット識別装置の構成例である。It is an example of a structure of the conventional packet identification apparatus. 従来のキー情報抽出回路の構成例である。It is a structural example of the conventional key information extraction circuit.

次に、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
まず、図1を参照して、本発明の第1の実施の形態にかかるパケット識別装置10について説明する。
図1に示すパケット識別装置10は、通信ネットワーク(図示せず)を介してパケットを送受信する各種のネットワーク装置(図示せず)に接続されて、当該ネットワーク装置から入力された入力パケットから特定した、入力パケットのプロトコル種別と、入力パケットのアプリケーションに特有のキー情報とに基づいて、入力パケットをアプリケーションごとに識別する装置である。
Next, embodiments of the present invention will be described with reference to the drawings.
First Embodiment
First, with reference to FIG. 1, a packet identification device 10 according to a first embodiment of the present invention will be described.
The packet identification device 10 shown in FIG. 1 is connected to various network devices (not shown) that transmit and receive packets via a communication network (not shown) and identified from input packets inputted from the network device. This is an apparatus for identifying an input packet for each application based on the protocol type of the input packet and key information specific to the application of the input packet.

以下では、本発明にかかるパケット識別装置10を、パケットを受信して予めアプリケーションごとに指定されている処理を実行するネットワーク装置(パケット受信端)に接続して、受信したパケットのアプリケーションを識別する場合を例として説明するが、これに限定されるものではない。例えば、パケットを中継転送するネットワーク装置(パケット中継端)やパケットを送信するネットワーク装置(パケット送信端)で、パケットのアプリケーションを識別する場合にも、以下と同様にして本発明にかかるパケット識別装置10を適用することができる。   In the following, the packet identification device 10 according to the present invention is connected to a network device (packet receiving end) that receives a packet and executes processing specified in advance for each application, and identifies the application of the received packet. Although the case will be described as an example, it is not limited thereto. For example, also in the case of identifying the application of a packet by a network device (packet relay end) that relays and transfers a packet or a network device (packet transmission end) that transmits a packet, the packet identification device according to the present invention 10 can be applied.

[発明の原理]
一般に、可変長パケットは、ペイロード情報のデータ長が送信されるデータ量に応じて変動するため、ドメイン情報などのアプリケーションに特有のキー情報が、ペイロード情報のどの位置に格納されているかわからない。一方で、パケットフォーマットは既知なので、所望のキー情報の近傍には必ず目印となるデリミタ情報が存在する。DNSプロトコルのドメイン情報を例に挙げると、ドメイン情報「xxx.jp(x:Don’t care)」のうち、「jp」をデリミタ情報とすれば「jp」を含むパケットを識別することが可能となる。
[Principle of the invention]
In general, since the variable-length packet varies in accordance with the amount of data to be transmitted, the data length of the payload information does not know in which position of the payload information the application specific key information such as domain information is stored. On the other hand, since the packet format is known, delimiter information to be a mark always exists in the vicinity of desired key information. Taking domain information of DNS protocol as an example, it is possible to identify a packet including "jp" if "jp" is the delimiter information among domain information "xxx.jp (x: Don't care)" It becomes.

本発明は、このような可変長パケットに、各プロトコル種別に特有のデリミタ情報が含まれていること、および、可変長パケットのうちデリミタ情報の近傍に位置するキー情報に基づいて、可変長パケットに関するアプリケーションを識別可能であることに着目したものである。そして、可変長パケットのプロトコル種別に基づいて、キー情報を抽出するためのデリミタ情報を切替制御するようにしたものである。   The present invention is based on the fact that such variable-length packets include delimiter information specific to each protocol type, and variable-length packets based on key information located near the delimiter information in the variable-length packets. It is focused on the fact that the application related to Then, on the basis of the protocol type of the variable-length packet, switching control of delimiter information for extracting key information is performed.

具体的には、パケット識別装置10において、プロトコル種別ごとにデリミタ情報を予め登録しておき、入力パケットのプロトコル種別と対応するデリミタ情報に基づいて、入力パケットのうちデリミタ情報の近傍から各アプリケーションに特有のキー情報を抽出し、得られたキー情報に基づいて入力パケットに関するアプリケーションを示す識別結果を出力するようにしたものである。   Specifically, in the packet identification device 10, delimiter information is registered in advance for each protocol type, and based on delimiter information corresponding to the protocol type of the input packet, each application is received from the vicinity of the delimiter information among the input packets. Specific key information is extracted, and an identification result indicating an application related to an input packet is output based on the obtained key information.

[パケット識別装置]
次に、図1を参照して、本実施の形態にかかるパケット識別装置10の回路構成について詳細に説明する。
図1に示すように、パケット識別装置10は、主な回路部として、ヘッダ処理回路11、デリミタ情報記憶回路12、遅延回路13、キー情報抽出回路14、および検索回路15を備えている。これら回路部は、1つまたは複数のASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路により実現されている。
[Packet identification device]
Next, the circuit configuration of the packet identification device 10 according to the present embodiment will be described in detail with reference to FIG.
As shown in FIG. 1, the packet identification device 10 includes, as main circuit units, a header processing circuit 11, a delimiter information storage circuit 12, a delay circuit 13, a key information extraction circuit 14, and a search circuit 15. These circuit units are realized by integrated circuits such as one or more application specific integrated circuits (ASICs) and field programmable gate arrays (FPGAs).

ヘッダ処理回路11は、順次入力されるパケットデータDinに基づいて、入力パケットのヘッダ情報を識別することにより、DNSやHTTPなどのプロトコル種別を特定する機能と、特定したプロトコル種別を示すプロトコル情報PIDを出力する機能とを有している。この際、パケットデータDinが比較的短い場合には、例えば複数のパケットデータDinをヘッダ情報の長さ分だけ蓄積した後、プロトコル種別を特定すればよい。なお、ヘッダ処理回路11でプロトコル種別を特定する手法については、前述した従来技術などの公知の手法を用いればよい。   The header processing circuit 11 identifies the header information of the input packet based on the sequentially input packet data Din, thereby specifying a protocol type such as DNS or HTTP, and protocol information PID indicating the specified protocol type. And the function of outputting At this time, if the packet data Din is relatively short, for example, a plurality of packet data Din may be stored for the length of the header information, and then the protocol type may be specified. As a method of specifying the protocol type by the header processing circuit 11, a known method such as the above-mentioned prior art may be used.

デリミタ情報記憶回路12は、全体として半導体メモリからなり、プロトコル種別ごとにデリミタ情報を記憶する機能と、ヘッダ処理回路11から出力されたプロトコル情報PIDに基づいて、プロトコル情報PIDと対応するデリミタ情報DLを出力する機能とを有している。
デリミタ情報記憶回路12は、例えば図2に示すように、アドレスADRごとにそれぞれのプロトコル種別と対応するデリミタ情報DLを記憶するように構成してもよい。この際、数値で表わされたプロトコル情報PIDをそのまま、あるいは整数倍することにより、アドレスADRとして用いてもよい。
The delimiter information storage circuit 12 as a whole comprises a semiconductor memory, and based on the function of storing delimiter information for each protocol type, and the protocol information PID output from the header processing circuit 11, delimiter information DL corresponding to the protocol information PID And the function of outputting
For example, as shown in FIG. 2, the delimiter information storage circuit 12 may be configured to store delimiter information DL corresponding to each protocol type for each address ADR. At this time, the protocol information PID represented by a numerical value may be used as the address ADR as it is or by being multiplied by an integer.

遅延回路13は、パケットデータDinを一定の遅延時間だけ遅延させた遅延データDdを出力する機能を有している。この遅延時間は、ヘッダ処理回路11でプロトコル情報PIDが特定されて、デリミタ情報記憶回路12から入力パケットのプロトコル種別と対応するデリミタ情報DLが出力されるのに要する時間長を有している。   The delay circuit 13 has a function of outputting delay data Dd obtained by delaying the packet data Din by a predetermined delay time. This delay time has a time length required for the header information processing circuit 11 to specify the protocol information PID and for the delimiter information storage circuit 12 to output the delimiter information DL corresponding to the protocol type of the input packet.

以下では、図3に示すように、パケット識別装置10に入力される入力パケットは、ヘッダ情報とペイロード情報からなる所与のパケットフォーマットを有する可変長パケットであり、そのデータ長は可変長Lbyteであるものとする。この際、入力パケットがNbyte長のパケットデータDinごとに分割されて順次入力されるものと想定した場合、可変長Lは、L=N×H+α(Hは0以上の整数、αは0以上N未満の整数)byteで表される。Hは入力パケットに含まれるDinの個数を示し、αはNに満たない端数分のDinを示している。   In the following, as shown in FIG. 3, the input packet input to the packet identification device 10 is a variable-length packet having a given packet format consisting of header information and payload information, and the data length is variable-length Lbyte. There shall be. At this time, assuming that the input packet is divided into N-byte packet data Din and sequentially input, the variable length L is L = N × H + α (H is an integer of 0 or more, α is 0 or more and N Is an integer less than or equal to byte. H indicates the number of Din contained in the input packet, and α indicates Din for a fraction less than N.

キー情報抽出回路14は、デリミタ情報記憶回路12から出力された、入力パケットのプロトコル種別に関するデリミタ情報DLに基づいて、遅延回路13から順次出力される遅延データDdのうち、デリミタ情報DLの近傍から、入力パケットのアプリケーションに特有のキー情報Keyを抽出する機能を有している。
図3では、デリミタ情報DLがAbyteのデータ長を有し、入力パケットのうち、PからP+Aの位置にDLが存在しており、PからMbyte前方のP−Mまでの範囲からキー情報Keyが抽出される例が示されている。なお、KeyにDLを含めて抽出してもよい。
The key information extraction circuit 14 selects the vicinity of the delimiter information DL among the delay data Dd sequentially output from the delay circuit 13 based on the delimiter information DL related to the protocol type of the input packet output from the delimiter information storage circuit 12. , And has a function of extracting key information Key specific to the application of the input packet.
In FIG. 3, the delimiter information DL has a data length of Abyte, DL is present at the position from P to P + A in the input packet, and the key information Key is from the range from P to P-M ahead of Mbyte. An example to be extracted is shown. Note that DL may be included in Key and extracted.

検索回路15は、識別対象となるアプリケーションを示す識別情報とキー情報Keyとの対応関係が予め登録されている検索テーブル15Aを有し、キー情報抽出回路14で抽出されたキー情報Keyに基づいて検索テーブル15Aを検索する機能と、得られた検索結果に基づいて当該キー情報Keyと対応する識別情報を入力パケットの識別結果Rとして出力する機能とを有している。なお、検索回路15で識別結果Rを特定する手法については、前述した従来技術などの公知の手法を用いればよい。   The search circuit 15 has a search table 15A in which the correspondence between the identification information indicating the application to be identified and the key information Key is registered in advance, and based on the key information Key extracted by the key information extraction circuit 14 It has a function of searching the search table 15A, and a function of outputting identification information corresponding to the key information Key as an identification result R of the input packet based on the obtained search result. As a method of specifying the identification result R by the search circuit 15, a known method such as the above-mentioned prior art may be used.

これにより、例えば、DNSプロトコルを用いるアプリケーションごとに、ドメイン情報「AAA.co.jp」とドメイン情報「BBB.co.jp」を識別する場合、図2に示すように、デリミタ情報記憶回路12に、DNSプロトコルに関するデリミタ情報DLとして、「jp」に相当するキャラクタコードを登録しておく。これにより、キー情報抽出回路14において、DNSプロトコルのキー情報としてドメイン情報「xxx.jp」(x:Don't care)が抽出される。   Thus, for example, when identifying domain information “AAA.co.jp” and domain information “BBB.co.jp” for each application using the DNS protocol, as shown in FIG. A character code corresponding to "jp" is registered as delimiter information DL related to the DNS protocol. As a result, the key information extraction circuit 14 extracts domain information “xxx.jp” (x: Don't care) as key information of the DNS protocol.

したがって、検索回路15の検索テーブル15Aに、ドメイン情報「AAA.co.jp」と対応するアプリケーションを示す識別情報RAと、ドメイン情報「BBB.co.jp」と対応するアプリケーションを示す識別情報RBとを登録しておけば、キー情報である「xxx.jp」と対応するアプリケーションを示す識別情報が、検索回路15から識別結果Rとして出力されることになる。   Therefore, in the search table 15A of the search circuit 15, identification information RA indicating an application corresponding to domain information "AAA.co.jp" and identification information RB indicating an application corresponding to domain information "BBB.co.jp" Is registered, identification information indicating an application corresponding to the key information “xxx.jp” is output from the search circuit 15 as the identification result R.

[キー情報抽出回路]
次に、図4を参照して、本実施の形態にかかるキー情報抽出回路14について詳細に説明する。
キー情報抽出回路14は、主な回路部として、バッファ14A、比較器14B、抽出器14C、OR回路14D、およびキーレジスタ14Eを備えている。
[Key information extraction circuit]
Next, the key information extraction circuit 14 according to the present embodiment will be described in detail with reference to FIG.
The key information extraction circuit 14 includes, as main circuit units, a buffer 14A, a comparator 14B, an extractor 14C, an OR circuit 14D, and a key register 14E.

バッファ14Aは、遅延回路13から出力された遅延データDdをバッファデータQとして一時保持する機能を有している。バッファデータQは、少なくともキー情報Keyのデータ長Mbyteとデリミタ情報DLのデータ長Abyteを加えたデータ長Lqを有し、1つまたは複数の遅延データDdに相当する。   The buffer 14A has a function of temporarily holding the delay data Dd output from the delay circuit 13 as buffer data Q. The buffer data Q has a data length Lq obtained by adding at least the data length Mbyte of the key information Key and the data length Abyte of the delimiter information DL, and corresponds to one or more delay data Dd.

比較器14Bは、バッファデータQ内でデリミタ情報DLを探索し、デリミタ情報DLが存在するデリミタ情報位置Pを特定する機能を有している。
具体的には、比較器14Bは、バッファ14AのバッファデータQから1byteずつシフトして順に取得した、デリミタ情報DLと等しいデータ長Abyteを有するブロックBLKと、デリミタ情報記憶回路12から出力されたデリミタ情報DLとを比較する機能と、これらBLKごとに得られた一致/不一致を示す1ビットの比較結果を、バッファデータQごとにまとめたビットマップBmapで一括出力する機能とを有している。
The comparator 14B has a function of searching for the delimiter information DL in the buffer data Q and specifying the delimiter information position P where the delimiter information DL exists.
Specifically, the comparator 14B shifts the buffer data Q of the buffer 14A by 1 byte and sequentially acquires the block BLK having a data length Abyte equal to the delimiter information DL, and the delimiter output from the delimiter information storage circuit 12 It has a function of comparing with the information DL and a function of collectively outputting a 1-bit comparison result indicating match / mismatch obtained for each of these BLKs as a bitmap Bmap which is summarized for each buffer data Q.

また、比較器14Bは、入力パケットの先頭タイミングを示すパケット先頭信号SOP(Start of Packet)に基づいて、BLKとDLとの比較動作を開始する機能と、入力パケットの末尾タイミングを示すパケット末尾信号EOP(End of Packet)に基づいてBLKとDLとの比較動作を終了する機能とを有している。これらSOPとEOPは、例えば、ネットワーク装置からパケットデータDinと同期して並列的に入力される。   Also, the comparator 14B has a function of starting comparison operation between BLK and DL based on a packet start signal SOP (Start of Packet) indicating the start timing of the input packet, and a packet end signal indicating the end timing of the input packet. It has a function of ending the comparison operation between BLK and DL based on EOP (End of Packet). These SOPs and EOPs are input in parallel in synchronization with packet data Din, for example, from a network device.

抽出器14Cは、比較器14Bから出力されたビットマップBmapに基づいて、バッファデータQのうち、DLが存在するデリミタ情報位置Pを基準として予め設定されているPの近傍位置から、Mbyteのキー情報Keyを抽出する機能を有している。   Based on the bitmap Bmap output from the comparator 14B, the extractor 14C sets the Mbyte key from the position near P of the buffer data Q, which is preset with reference to the delimiter information position P where DL is present. It has a function to extract information Key.

OR回路14Dは、比較器14Bから出力されたビットマップBmapの各ビットを論理和(OR)演算することにより、バッファデータQ内にデリミタ情報DLが存在するか否かを検査し、得られた検査結果Txを出力する機能を有している。これにより、Q内にDLが存在すればTx=1が出力され、Q内にDLが存在しなければTx=0が出力される。   The OR circuit 14D checks whether or not the delimiter information DL is present in the buffer data Q by performing an OR operation on each bit of the bit map Bmap output from the comparator 14B. It has a function of outputting the inspection result Tx. Thereby, if DL exists in Q, Tx = 1 is output, and if DL does not exist in Q, Tx = 0 is output.

キーレジスタ14Eは、OR回路14Dから出力された検査結果TxがDLの存在あり(Tx=1)を示す場合、抽出器14Cから出力されているキー情報Keyを保持して出力する機能を有している。   The key register 14E has a function of holding and outputting the key information Key output from the extractor 14C when the inspection result Tx output from the OR circuit 14D indicates the presence of DL (Tx = 1). ing.

[キー情報抽出動作]
次に、図5および図6を参照して、本実施の形態にかかるパケット識別装置10の動作として、キー情報抽出回路14におけるキー情報抽出動作について説明する。
ここでは、バッファ14Aに蓄積されているバッファデータQのうち、デリミタ情報DLが存在するデリミタ情報位置Pから前方Mbyte分のデータをキー情報Keyとして抽出する場合を例として説明する。
[Key information extraction operation]
Next, the key information extraction operation in the key information extraction circuit 14 will be described as the operation of the packet identification device 10 according to the present embodiment with reference to FIGS. 5 and 6.
Here, a case will be described as an example in which data of forward M bytes is extracted as key information Key from the delimiter information position P where the delimiter information DL exists among the buffer data Q accumulated in the buffer 14A.

図5のキー情報抽出処理に示すように、比較器14Bは、パケット先頭信号SOPが「1」に変化するまで待機し(ステップS100:NO)、SOPが「1」に変化してバッファデータQにパケット先頭が含まれることが確認された場合(ステップS100:YES)、以下のようなQから取得したBLKとDLとの比較動作を開始する。   As shown in the key information extraction process of FIG. 5, the comparator 14B waits until the packet start signal SOP changes to “1” (step S100: NO), and the SOP changes to “1” and the buffer data Q is changed. When it is confirmed that the packet head is included in (step S100: YES), the following comparison operation between BLK and DL acquired from Q is started.

まず、バッファ14Aは、自己のバッファ長Lqbyte分の遅延データDdがバッファデータQとして蓄積されるまで待機し(ステップS101:NO)、Qの蓄積が完了した時点で(ステップS101:YES)、バッファデータQの先頭からキー情報Key分のMbyteを除いた、それ以外の探索領域Sから、Abyte長のBLKを1byteずつシフトして順に読み出して比較器14Bへ出力する(ステップS102)。   First, the buffer 14A waits until the delay data Dd of its own buffer length Lq byte is accumulated as the buffer data Q (step S101: NO), and when the accumulation of Q is completed (step S101: YES), the buffer An Abyte long BLK is shifted by 1 byte from the search area S except the M bytes for the key information Key from the head of the data Q, and sequentially read out and output to the comparator 14B (step S102).

比較器14Bは、これらBLKとDLとを順次比較する(ステップS103)。
図6に示すキー情報抽出動作例のように、バッファ長LqbyteのバッファデータQの先頭からMbyteがキー情報Keyであるものと想定し、それ以外のデータ長β(=Lq−M)byte分が探索領域Sであるものとする。デリミタ情報DLが2byte長(A=2)である場合、QのうちSの先頭位置M+1byte目から2byteずつブロックBLKとして読み出されて比較器14BでDLと比較される。
The comparator 14B sequentially compares these BLK and DL (step S103).
As in the example of key information extraction operation shown in FIG. 6, it is assumed that Mbyte is the key information Key from the beginning of buffer data Q of buffer length Lqbyte, and the remaining data length β (= Lq−M) bytes is It is assumed to be the search area S. When the delimiter information DL is 2 bytes long (A = 2), 2 bytes of Q are read as a block BLK from the head position M + 1 byte of S and compared with DL by the comparator 14B.

この際、1回目の比較では、QのM+1byte目とM+2byte目のデータqM+1,qM+2からなるBLK#1がDLのDL1,DL2と比較され、その一致/不一致を示す比較結果がBmapの1bit目のb1に格納される。
次の2回目の比較では、1byte分シフトした位置、すなわちQのM+2byte目とM+3byte目のデータqM+2,qM+3からなるBLK#2がDLのDL1,DL2と比較され、その一致/不一致を示す比較結果がBmapの2bit目のb2に格納される。
At this time, in the first comparison, BLK # 1 consisting of data qM + 1 and qM + 2 of the (M + 1) th byte and M + 2th byte of Q is compared with DL1 and DL2 of DL, and the comparison result indicating the match / mismatch is the 1st bit of Bmap It is stored in b1.
In the next second comparison, BLK # 2, which is a position shifted by 1 byte, that is, the data at the M + 2th byte of Q and the M + 3th byte qM + 2, qM + 3, is compared with DL1 Is stored in b2 of the 2nd bit of Bmap.

この後、Qの末尾までBLKとDLがβ回分繰り返し比較され、最後はQのβbyte目とβ+1byte目のデータqβ,qβ+1からなるBLK#2がDLのDL1,DL2と比較され、その一致/不一致を示す比較結果がBmapのβbit目のbβに格納される。
したがって、図6に示すように、データqβ−1がDL1であり、データqβがDL2である場合、これらデータqβ−1,qβがDLと一致するため、Bmapのβ−1bit目のbβ−1が「1」となり、Bmapのうちその他のビットはすべて不一致を示す「0」となる。
After this, BLK and DL are repeatedly compared β times until the end of Q, and finally BLK # 2 consisting of data qβ and qβ + 1 of β byte and β + 1 byte of Q is compared with DL1 and DL2 of DL, and the match / mismatch The comparison result indicating B is stored in bβ of the β bit at Bmap.
Therefore, as shown in FIG. 6, when the data qβ-1 is DL1 and the data qβ is DL2, these data qβ-1 and qβ match the DL, so bβ-1 at the β-1st bit of Bmap Becomes “1”, and all the other bits in Bmap become “0” indicating non-coincidence.

比較器14Bは、このようにして、比較ごとに得られた一致/不一致を示す1ビットの比較結果を、Qごとにまとめたβbit長のビットマップBmapで一括出力する(ステップS104)。
抽出器14Cは、比較器14Bから出力されたBmapに基づいて、バッファデータQのうちデリミタ情報DLが存在するデリミタ情報位置Pを特定し(ステップS105)、QのうちPから前方Mbyte分のデータをキー情報Keyとして抽出する(ステップS106)。
Thus, the comparator 14B collectively outputs the 1-bit comparison result indicating the match / mismatch obtained for each comparison as a β-bit bitmap Bmap summarized for each Q (step S104).
The extractor 14C specifies the delimiter information position P where the delimiter information DL exists in the buffer data Q based on the Bmap output from the comparator 14B (step S105), and data of forward M bytes from P of Q are extracted. Are extracted as key information Key (step S106).

また、OR回路14Dは、比較器14Bから出力されたBmapの各ビットを論理和演算することにより、Q内にDLが存在するか否かを検査し、得られた検査結果Txを出力する(ステップS107)。
ここで、Tx=1の場合(ステップS107:YES)、キーレジスタ14Eは、抽出器14Cから出力されているKeyで保持内容を更新する(ステップS108)。また、Tx=0の場合(ステップS107:NO)、キーレジスタ14Eは、保持内容を更新しない(ステップS109)。
Further, the OR circuit 14D performs an OR operation on each bit of Bmap output from the comparator 14B to check whether DL exists in Q and outputs the obtained test result Tx (see FIG. Step S107).
Here, in the case where Tx = 1 (step S107: YES), the key register 14E updates the held content with the Key output from the extractor 14C (step S108). If Tx = 0 (step S107: NO), the key register 14E does not update the held content (step S109).

この後、バッファ14Aは、バッファデータQの末尾からキー情報Keyのデータ長Mbyte分のデータを取得し、バッファデータQの先頭にシフトする(ステップS110)。これにより、今回のキー情報抽出処理で用いた探索領域Sの末尾のデータが、次回のキー情報抽出処理でQのキー情報Keyに相当するデータとして用いられる。ただし、比較後のバッファデータを更新する際には、探索領域Sの末尾にデリミタが分割されて保存される場合を想定して、ある程度データを重複させて更新するものとする。この場合、ステップS110で先頭にシフトするデータのデータ長をMbyteより重複させる分だけ長くすればよい。   Thereafter, the buffer 14A acquires data of the data length Mbyte of the key information Key from the end of the buffer data Q, and shifts it to the beginning of the buffer data Q (step S110). Thus, the data at the end of the search area S used in the key information extraction process this time is used as data corresponding to the key information Key Q in the next key information extraction process. However, when the buffer data after comparison is updated, it is assumed that the data is updated to some extent and updated on the assumption that the delimiter is divided and stored at the end of the search area S. In this case, the data length of the data to be shifted to the beginning in step S110 may be increased by an amount corresponding to overlapping of M bytes.

次に、比較器14Bは、パケット末尾信号EOPが「1」であるか確認し(ステップS111)、パケット末尾信号EOPが「0」を示す場合には(ステップS111:NO)、ステップS101に戻って、新たな遅延データDdをQに順次追加する。
一方、パケット末尾信号EOPが「1」を示す場合(ステップS111:YES)、一連のキー情報抽出処理を終了する。
Next, the comparator 14B confirms whether the packet end signal EOP is "1" (step S111), and if the packet end signal EOP indicates "0" (step S111: NO), the process returns to step S101. New delay data Dd are sequentially added to Q.
On the other hand, when the packet end signal EOP indicates "1" (step S111: YES), a series of key information extraction processing is ended.

[第1の実施の形態の効果]
このように、本実施の形態は、入力パケットのプロトコル種別ごとに、入力パケットに含まれるキー情報Keyを特定するためのデリミタ情報DLを記憶するデリミタ情報記憶回路12を設け、キー情報抽出回路14が、ヘッダ処理回路11で特定されたプロトコル種別に応じてデリミタ情報記憶回路12から出力された、入力パケットのプロトコル種別に関するデリミタ情報DLに基づいて、遅延回路13から出力された入力パケットのうちデリミタ情報の近傍からキー情報を抽出するようにしたものである。
[Effect of First Embodiment]
As described above, in the present embodiment, the delimiter information storage circuit 12 for storing the delimiter information DL for specifying the key information Key included in the input packet is provided for each protocol type of the input packet, and the key information extraction circuit 14 Of the input packet output from the delay circuit 13 based on the delimiter information DL related to the protocol type of the input packet output from the delimiter information storage circuit 12 according to the protocol type specified by the header processing circuit 11. The key information is extracted from the vicinity of the information.

より具体的には、遅延回路13が、入力パケットが一定の長さで分割入力されるパケットデータDinを、遅延時間だけ順次遅延させて遅延データDdとして出力し、キー情報抽出回路14において、バッファ14Aが、遅延データDdをバッファデータQとして保持し、比較器14Bが、バッファデータQ内でデリミタ情報DLを探索することにより、DLが存在するデリミタ情報位置Pを特定し、抽出器14Cがデリミタ情報位置Pを基準とした位置範囲のデータを、キー情報KeyとしてバッファデータQから抽出するようにしたものである。   More specifically, the delay circuit 13 sequentially delays the packet data Din, in which the input packet is divided and input with a fixed length, by the delay time and outputs it as the delay data Dd, and the key information extraction circuit 14 14A holds delay data Dd as buffer data Q, and comparator 14B searches delimiter information DL in buffer data Q to specify delimiter information position P where DL is present, and extractor 14C determines delimiter Data of a position range based on the information position P is extracted from the buffer data Q as key information Key.

これにより、入力パケットのプロトコル種別に応じたデリミタ情報DLが、デリミタ情報記憶回路12から切替出力され、このDLに基づいて入力パケットから、アプリケーションに特有のキー情報Keyがキー情報抽出回路14で抽出されることになる。したがって、入力パケットのプロトコル種別が異なる場合でも、プロトコル種別間で同一のキー情報抽出回路14を共用して、所望のキー情報Keyを抽出できる。
このため、従来技術のように、プロトコル種別ごとにキー情報抽出部を設ける必要がなくなり、デリミタ情報記憶回路12のデリミタ情報DLを再設定するだけで、新たなプロトコルからもキー情報を抽出できる。したがって、アプリケーションに特有のキー情報Keyを用いたパケット識別処理を、小規模かつ低コストな回路構成で柔軟に行うことが可能となる。
As a result, the delimiter information DL corresponding to the protocol type of the input packet is switched and output from the delimiter information storage circuit 12, and the key information Key specific to the application is extracted by the key information extraction circuit 14 from the input packet based on this DL. It will be done. Therefore, even if the protocol type of the input packet is different, the same key information extraction circuit 14 can be shared between the protocol types to extract the desired key information Key.
Therefore, as in the prior art, it is not necessary to provide a key information extraction unit for each protocol type, and key information can be extracted from a new protocol only by resetting the delimiter information DL of the delimiter information storage circuit 12. Therefore, it is possible to flexibly perform packet identification processing using application-specific key information Key with a small-scale and low-cost circuit configuration.

また、本実施の形態において、デリミタ情報記憶回路12で記憶する、プロトコル種別とデリミタ情報DLとの対応関係を再設定する場合、図7に示すように、パケット識別装置10の内部または外部に設けられた制御回路(CPU)から、プロトコル種別とデリミタ情報DLとの対応関係を書き換えるようにしてもよい。また、遅延回路13の遅延時間についても、ヘッダ処理回路11で入力パケットのプロトコル種別を特定してから、デリミタ情報記憶回路12で対応するデリミタ情報DLを読み出すまでの所要時間は、実装ごとに依存する。このため、実装ごとに最適な遅延時間を、図7に示すように、パケット識別装置10の内部または外部に設けられた制御回路(CPU)から、遅延回路13に設定するようにしてもよい。   Further, in the present embodiment, when the correspondence between the protocol type and the delimiter information DL stored in the delimiter information storage circuit 12 is to be re-set, as shown in FIG. The correspondence between the protocol type and the delimiter information DL may be rewritten from the control circuit (CPU). Further, with regard to the delay time of the delay circuit 13, the required time from the specification of the protocol type of the input packet by the header processing circuit 11 to the reading of the corresponding delimiter information DL by the delimiter information storage circuit 12 depends on each implementation. Do. Therefore, as shown in FIG. 7, the delay time optimum for each mounting may be set in the delay circuit 13 from a control circuit (CPU) provided inside or outside the packet identification device 10.

[第2の実施の形態]
次に、図8を参照して、本発明の第2の実施の形態にかかるパケット識別装置10について説明する。
第1の実施の形態では、各プロトコル種別に共通して、デリミタ情報DLの前方にキー情報Keyが存在する場合を例として説明した。本実施の形態では、プロトコル種別ごとに、キー情報Keyが存在する位置を任意に設定する場合について説明する。
Second Embodiment
Next, the packet identification device 10 according to the second embodiment of the present invention will be described with reference to FIG.
In the first embodiment, the case where the key information Key exists ahead of the delimiter information DL has been described as an example in common to each protocol type. In the present embodiment, the case where the position where the key information Key is present is arbitrarily set will be described for each protocol type.

本実施の形態において、デリミタ情報記憶回路12は、図9に示すように、入力パケットのプロトコル種別ごとに、デリミタ情報DLとこのDLに対するキー情報Keyの位置を示す位置情報とを記憶する機能を有している。具体的には、位置情報LOCは、キー情報Keyがデリミタ情報DLの前方または後方のいずれに位置するかを示す、1bitの位置情報からなる。   In the present embodiment, as shown in FIG. 9, the delimiter information storage circuit 12 has a function of storing the delimiter information DL and the position information indicating the position of the key information Key with respect to this DL for each protocol type of the input packet. Have. Specifically, the position information LOC includes 1-bit position information indicating whether the key information Key is located in front of or behind the delimiter information DL.

キー情報抽出回路14の抽出器14Cは、デリミタ情報記憶回路12から出力されたデリミタ情報DLと位置情報LOCとに基づいて、入力パケットからキー情報Keyを抽出する機能を有している。この際、位置情報LOCが前方Fを示す場合、キー情報抽出回路14は、DLの前方MbyteをKeyとして抽出し、位置情報LOCが後方Bを示す場合、キー情報抽出回路14は、DLの後方MbyteをKeyとして抽出する。   The extractor 14C of the key information extraction circuit 14 has a function of extracting the key information Key from the input packet based on the delimiter information DL and the position information LOC output from the delimiter information storage circuit 12. At this time, when the position information LOC indicates the forward F, the key information extraction circuit 14 extracts the forward Mbyte of DL as a key, and when the position information LOC indicates the backward B, the key information extraction circuit 14 detects the rear of DL. Extract Mbyte as Key.

また、キー情報抽出回路14のバッファ14Aは、デリミタ情報記憶回路12から出力された位置情報LOCに基づいて、バッファデータQのうちブロックBLKを探索する探索領域Sを特定する機能を有している。   Further, the buffer 14A of the key information extraction circuit 14 has a function of specifying a search area S for searching the block BLK in the buffer data Q based on the position information LOC output from the delimiter information storage circuit 12. .

[第2の実施の形態の動作]
次に、図10Aおよび図10Bを参照して、本実施の形態にかかるパケット識別装置10の動作として、キー情報抽出回路14におけるキー情報抽出動作について説明する。
ここでは、バッファ14Aに蓄積されているバッファデータQのうち、デリミタ情報DLが存在するデリミタ情報位置Pから、位置情報LOCが示す前方または後方のMbyte分のデータをキー情報Keyとして抽出する場合を例として説明する。なお、図10A,図10Bのうち前述した図5と同じまたは同等部分には同一符号を付してある。
[Operation of Second Embodiment]
Next, with reference to FIGS. 10A and 10B, as an operation of the packet identification device 10 according to the present embodiment, a key information extraction operation in the key information extraction circuit 14 will be described.
Here, from the delimiter information position P where the delimiter information DL is present among the buffer data Q accumulated in the buffer 14A, data of M bytes ahead or behind indicated by the position information LOC is extracted as the key information Key. An example will be described. The same reference numerals as in FIG. 5 described above denote the same or equivalent parts in FIGS. 10A and 10B.

図10Aのキー情報抽出処理に示すように、比較器14Bは、パケット先頭信号SOPが「1」に変化するまで待機し(ステップS100:NO)、SOPが「1」に変化してバッファデータQにパケット先頭が含まれることが確認された場合(ステップS100:YES)、以下のようなQから取得したBLKとDLとの比較動作を開始する。   As shown in the key information extraction process of FIG. 10A, the comparator 14B waits until the packet start signal SOP changes to “1” (step S100: NO), and the SOP changes to “1”, and buffer data Q changes. When it is confirmed that the packet head is included in (step S100: YES), the following comparison operation between BLK and DL acquired from Q is started.

まず、バッファ14Aは、自己のバッファ長Lqbyte分の遅延データDdがバッファデータQとして蓄積されるまで待機し(ステップS101:NO)、Qの蓄積が完了した時点で(ステップS101:YES)、LOCを確認する(ステップS200)。
ここで、LOCがFを示す場合(ステップS200:YES)、バッファ14Aは、Qの先頭からMbyteを除いた部分をSとし(ステップS201)、LOCがBを示す場合(ステップS200:NO)、Qの末尾からMbyteを除いた部分をSとする(ステップS200)。この後、バッファ14Aは、バッファデータQのうち上記探索領域Sから、Abyte長のBLKを1byteずつシフトして順に読み出して比較器14Bへ出力する(ステップS203)。
First, the buffer 14A waits until the delay data Dd of its own buffer length Lq byte is stored as the buffer data Q (step S101: NO), and when the storage of Q is completed (step S101: YES), (Step S200).
Here, when LOC indicates F (step S200: YES), the buffer 14A sets a portion excluding Mbyte from the beginning of Q as S (step S201), and when LOC indicates B (step S200: NO), A portion excluding Mbyte from the end of Q is S (step S200). Thereafter, the buffer 14A shifts the ALK-length BLK by 1 byte from the search area S in the buffer data Q, sequentially reads out it, and outputs it to the comparator 14B (step S203).

比較器14Bは、これらBLKとDLとを順次比較し(ステップS103)、比較ごとに得られた一致/不一致を示す1ビットの比較結果を、Qごとにまとめたβbit長のビットマップBmapで一括出力する(ステップS104)。   The comparator 14B sequentially compares the BLK and the DL (step S103), and collectively compares the 1-bit comparison result indicating the match / mismatch obtained for each comparison for each Q with the β-bit bitmap Bmap. It outputs (step S104).

この後、図10Bのキー情報抽出処理(続き)に示すように、抽出器14Cは、比較器14Bから出力されたBmapに基づいて、バッファデータQのうちデリミタ情報DLが存在するデリミタ情報位置Pを特定し(ステップS105)、LOCを確認する(ステップS210)。
ここで、LOCがFの場合(ステップS210:YES)、抽出器14Cは、QのうちPから前方Mbyte分のデータをキー情報Keyとして抽出し(ステップS211)、LOCがBの場合、抽出器14Cは、QのうちPから後方Mbyte分のデータをキー情報Keyとして抽出する(ステップS212)。
After that, as shown in the key information extraction process (cont.) Of FIG. 10B, the extractor 14C determines the delimiter information position P where the delimiter information DL exists in the buffer data Q based on the Bmap output from the comparator 14B. Are identified (step S105), and the LOC is confirmed (step S210).
Here, when LOC is F (step S210: YES), the extractor 14C extracts data for the forward Mbyte from P of Q as key information Key (step S211), and when LOC is B, the extractor is The 14C extracts data of backward M bytes from P of Q as key information Key (step S212).

また、OR回路14Dは、比較器14Bから出力されたBmapの各ビットを論理和演算することにより、Q内にDLが存在するか否かを検査し、得られた検査結果Txを出力する(ステップS107)。
ここで、Tx=1の場合(ステップS107:YES)、キーレジスタ14Eは、抽出器14Cから出力されているKeyで保持内容を更新する(ステップS108)。また、Tx=0の場合(ステップS107:NO)、キーレジスタ14Eは、保持内容を更新しない(ステップS109)。
Further, the OR circuit 14D performs an OR operation on each bit of Bmap output from the comparator 14B to check whether DL exists in Q and outputs the obtained test result Tx (see FIG. Step S107).
Here, in the case where Tx = 1 (step S107: YES), the key register 14E updates the held content with the Key output from the extractor 14C (step S108). If Tx = 0 (step S107: NO), the key register 14E does not update the held content (step S109).

この後、バッファ14Aは、バッファデータQの末尾からキー情報Keyのデータ長Mbyte分のデータを取得し、バッファデータQの先頭にシフトする(ステップS110)。これにより、デリミタ情報DLの前方にキー情報Keyが存在する場合には、今回のキー情報抽出処理で用いた探索領域Sの末尾のデータが、次回のキー情報抽出処理でQのキー情報Keyに相当するデータとして用いられる。   Thereafter, the buffer 14A acquires data of the data length Mbyte of the key information Key from the end of the buffer data Q, and shifts it to the beginning of the buffer data Q (step S110). Thereby, when the key information Key exists ahead of the delimiter information DL, the data at the end of the search area S used in the key information extraction processing this time is the key information Key of Q in the next key information extraction processing. It is used as the corresponding data.

また、デリミタ情報DLの後方にキー情報Keyが存在する場合には、今回のキー情報抽出処理で用いたQのキー情報Keyに相当するデータが、次回のキー情報抽出処理で探索領域Sの先頭のデータとして用いられる。ただし、比較後のバッファデータを更新する際には、探索領域Sの末尾にデリミタが分割されて保存される場合を想定して、ある程度データを重複させて更新するものとする。この場合、ステップS110で先頭にシフトするデータのデータ長をMbyteより重複させる分だけ長くすればよい。   In addition, when the key information Key exists behind the delimiter information DL, the data corresponding to the key information Key Q used in the key information extraction process at this time is the head of the search area S at the next key information extraction process. It is used as data of However, when the buffer data after comparison is updated, it is assumed that the data is updated to some extent and updated on the assumption that the delimiter is divided and stored at the end of the search area S. In this case, the data length of the data to be shifted to the beginning in step S110 may be increased by an amount corresponding to overlapping of M bytes.

次に、比較器14Bは、パケット末尾信号EOPが「1」であるか確認し(ステップS111)、パケット末尾信号EOPが「0」を示す場合には(ステップS111:NO)、ステップS101に戻って、新たな遅延データDdをQに順次追加する。
一方、パケット末尾信号EOPが「1」を示す場合(ステップS111:YES)、一連のキー情報抽出処理を終了する。
Next, the comparator 14B confirms whether the packet end signal EOP is "1" (step S111), and if the packet end signal EOP indicates "0" (step S111: NO), the process returns to step S101. New delay data Dd are sequentially added to Q.
On the other hand, when the packet end signal EOP indicates "1" (step S111: YES), a series of key information extraction processing is ended.

[第2の実施の形態の効果]
このように、本実施の形態は、デリミタ情報記憶回路12が、入力パケットのプロトコル種別ごとに、デリミタ情報DLとこのDLに対するキー情報Keyの位置を示す位置情報LOCとを記憶し、キー情報抽出回路14は、デリミタ情報記憶回路12から出力されたデリミタ情報DLと位置情報LOCとに基づいて、入力パケットからキー情報Keyを抽出するようにしたものである。
[Effect of Second Embodiment]
As described above, according to the present embodiment, the delimiter information storage circuit 12 stores, for each protocol type of the input packet, the delimiter information DL and the position information LOC indicating the position of the key information Key with respect to this DL, and extracts the key information The circuit 14 extracts key information Key from the input packet based on the delimiter information DL and the position information LOC output from the delimiter information storage circuit 12.

具体的には、位置情報LOCは、キー情報Keyがデリミタ情報DLの前方Fまたは後方Bのいずれに位置するかを示す情報であり、キー情報抽出回路14は、入力パケットのうち、位置情報LOCが示すデリミタ情報DLの前方Fまたは後方Bから、指定長のデータをキー情報Keyとして抽出するようにしたものである。
これにより、プロトコル種別ごとに、キー情報Keyが存在する位置を任意に設定することができ、1つのパケット識別装置10で識別できるパケットのプロトコル種別を大幅に拡張することが可能となる。
Specifically, the position information LOC is information indicating whether the key information Key is located at the front F or the back B of the delimiter information DL, and the key information extraction circuit 14 detects the position information LOC in the input packet. Data of a specified length is extracted as key information Key from the front F or rear B of the delimiter information DL indicated by.
Thereby, the position where the key information Key exists can be arbitrarily set for each protocol type, and it becomes possible to greatly expand the protocol type of the packet that can be identified by one packet identification device 10.

なお、本実施の形態において、位置情報LOCは、入力パケットのうちキー情報Keyがデリミタ情報DLの前方Fまたは後方Bのいずれに位置するかを示す情報からなる場合を例として説明したが、これに限定されるものではない。例えば、位置情報LOCとして、デリミタ情報位置Pからキー情報Keyの先頭位置または末尾位置までの相対位置を示す情報を用いてもよく、さらにキー情報Keyのデータ長を含んでもよい。
これにより、プロトコル種別ごとに個別の位置からキー情報Keyを抽出することが可能となる。
In the present embodiment, the position information LOC is described as an example of information indicating whether the key information Key is located forward F or backward B of the delimiter information DL in the input packet. It is not limited to For example, information indicating the relative position from the delimiter information position P to the head position or the end position of the key information Key may be used as the position information LOC, and the data length of the key information Key may be further included.
This makes it possible to extract key information Key from individual positions for each protocol type.

[第3の実施の形態]
次に、図11を参照して、本発明の第3の実施の形態にかかるパケット識別装置10について説明する。
第1および第2の実施の形態では、入力パケットから抽出した1つのキー情報Keyに基づいて、入力パケットをアプリケーションごとに識別する場合を例として説明した。本実施の形態では、入力パケットから抽出した複数のキー情報Keyに基づいて、入力パケットをアプリケーションごとに識別する場合を例として説明する。
Third Embodiment
Next, a packet identification device 10 according to a third embodiment of the present invention will be described with reference to FIG.
In the first and second embodiments, the case where the input packet is identified for each application based on one key information Key extracted from the input packet has been described as an example. In the present embodiment, the case of identifying an input packet for each application based on a plurality of key information Key extracted from the input packet will be described as an example.

本実施の形態において、デリミタ情報記憶回路12は、入力パケットのプロトコル種別ごとに複数のデリミタ情報DLを記憶する機能を有している。
キー情報抽出回路14は、デリミタ情報DLごとに設けられて、対応するデリミタ情報DLと位置情報LOCとに基づいて、入力パケットからそれぞれ個別のキー情報Keyを独立して抽出する機能を有している。
In the present embodiment, the delimiter information storage circuit 12 has a function of storing a plurality of pieces of delimiter information DL for each protocol type of the input packet.
The key information extraction circuit 14 is provided for each delimiter information DL, and has a function of independently extracting the individual key information Key from the input packet based on the corresponding delimiter information DL and the position information LOC. There is.

キー情報結合回路16は、キー情報抽出回路14のそれぞれで抽出された複数のキー情報Keyを1つの結合キー情報Keyに結合する機能を有している。
検索回路15は、キー情報結合回路16から出力された結合キー情報Keyで検索テーブル15Aを検索することにより、入力パケットに関するアプリケーションを示す識別結果Rを出力する機能を有している。
The key information combining circuit 16 has a function of combining a plurality of key information Key extracted by each of the key information extraction circuits 14 into one combined key information Key.
The search circuit 15 has a function of outputting an identification result R indicating an application related to an input packet by searching the search table 15A with the combined key information Key output from the key information combination circuit 16.

図11の例では、入力パケットのプロトコル種別ごとに2つのデリミタ情報DLX,DLYが登録されており、それぞれのデータ長がXbyte,Ybyteである。
また、これらDLX,DLYごとに、キー情報抽出回路14X,14Yが設けられており、それぞれでキー情報KeyX,KeyYが抽出される。キー情報抽出回路14X,14Yの具体的なキー情報抽出処理については、前述した図10A,図10Bと同等である。
In the example of FIG. 11, two pieces of delimiter information DLX and DLY are registered for each protocol type of the input packet, and their data lengths are X byte and Y byte.
Further, key information extraction circuits 14X and 14Y are provided for each of the DLX and DLY, and the key information KeyX and KeyY are extracted respectively. The specific key information extraction processing of the key information extraction circuits 14X and 14Y is the same as that of FIG. 10A and FIG. 10B described above.

これらキー情報KeyX,KeyYは、キー情報結合回路16で1つの結合キー情報Keyに結合されている。結合方法としては、KeyXとKeyYを連結することにより、X+Ybyteの結合キー情報Keyを生成すればよい。
検索回路15の検索テーブル15Aには、識別対象となるアプリケーションごとに当該アプリケーションに特有の結合キー情報Keyが予め登録されている。したがって、結合キー情報Keyと対応するアプリケーションを示す識別結果Rが出力される。
The key information KeyX and KeyY are combined into one combined key information Key by the key information combining circuit 16. As a combining method, combining key X and key Y may generate combined key information Key of X + Y bytes.
In the search table 15A of the search circuit 15, combined key information Key specific to the application to be identified is registered in advance. Therefore, the identification result R indicating the application corresponding to the combined key information Key is output.

[第3の実施の形態の効果]
このように、本実施の形態は、デリミタ情報記憶回路12が、入力パケットのプロトコル種別ごとに複数のデリミタ情報DLを記憶し、キー情報抽出回路14が、デリミタ情報DLごとに設けられて、対応するデリミタ情報DLと位置情報LOCとに基づいて、入力パケットからそれぞれ個別のキー情報Keyを抽出し、キー情報結合回路16が、キー情報抽出回路14のそれぞれで抽出された複数のキー情報Keyを1つの結合キー情報Keyに結合するようにしたものである。
これにより、入力パケットから抽出した複数のキー情報Keyに基づいて、入力パケットをアプリケーションごとに識別することができ、より高度なパケット識別を実現することが可能となる。
[Effect of Third Embodiment]
As described above, in the present embodiment, the delimiter information storage circuit 12 stores a plurality of pieces of delimiter information DL for each protocol type of the input packet, and the key information extraction circuit 14 is provided for each delimiter information DL. The individual key information Key is extracted from the input packet based on the delimiter information DL to be transmitted and the position information LOC, and the key information combination circuit 16 extracts a plurality of key information keys extracted by each of the key information extraction circuits 14 It combines with one combined key information Key.
As a result, the input packet can be identified for each application based on a plurality of key information Key extracted from the input packet, and more sophisticated packet identification can be realized.

本実施の形態では、入力パケットのプロトコル種別ごとに2つのデリミタ情報DLX,DLYを登録した場合を例として説明したが、デリミタ情報DLの数は、3以上であってもよい。その場合、キー情報抽出回路14をデリミタ情報DLの数に合わせて設ければよい。   In the present embodiment, the case where two pieces of delimiter information DLX and DLY are registered for each protocol type of the input packet is described as an example, but the number of pieces of delimiter information DL may be three or more. In that case, the key information extraction circuit 14 may be provided in accordance with the number of delimiter information DL.

また、本実施の形態において、複数のキー情報Keyを連結することにより結合キー情報Keyを生成する場合を例として説明したが、これに限定されるものではない。例えば、複数のキー情報Keyを論理演算したり数値計算処理したりすることにより、結合キー情報Keyを生成してもよい。   Further, in the present embodiment, the case where the combined key information Key is generated by connecting a plurality of key information keys has been described as an example, but the present invention is not limited to this. For example, the combined key information Key may be generated by performing a logical operation or numerical calculation on a plurality of key information Key.

また、プロトコル種別ごと、結合キー情報Keyの生成方法を示す結合種別情報をデリミタ情報記憶回路12に登録しておき、入力パケットのプロトコル種別に応じて、デリミタ情報記憶回路12から出力された結合種別情報に基づいて、キー情報結合回路16が結合キー情報Keyを生成するようにしてもよい。これにより、より高度で詳細なパケット識別を実現することが可能となる。   Further, connection type information indicating a method of generating connection key information Key is registered in the delimiter information storage circuit 12 for each protocol type, and the connection type output from the delimiter information storage circuit 12 according to the protocol type of the input packet. The key information combining circuit 16 may generate combined key information Key based on the information. This makes it possible to realize more sophisticated and detailed packet identification.

[実施の形態の拡張]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
[Extension of the embodiment]
As mentioned above, although this invention was demonstrated with reference to embodiment, this invention is not limited to the said embodiment. 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. Moreover, about each embodiment, it can combine arbitrarily and can be implemented in the not conflicting range.

10…パケット識別装置、11…ヘッダ処理回路、12…デリミタ情報記憶回路、13…遅延回路、14,14X,14Y…キー情報抽出回路、14A…バッファ、14B…比較器、14C…抽出器、14D…OR回路、14E…キーレジスタ、15…検索回路、15A…検索テーブル、16…キー情報結合回路、20…制御回路、Din…パケットデータ、Dd…遅延データ、PID…プロトコル情報、DL,DLX,DLY…デリミタ情報、Q…バッファデータ、S…探索領域、BLK…ブロック、Bmap…ビットマップ、P…デリミタ情報位置、LOC…位置情報、Key,KeyX,KeyY…キー情報(結合キー情報)、Tx…検査結果、R…識別結果。   DESCRIPTION OF SYMBOLS 10 ... Packet identification device, 11 ... Header processing circuit, 12 ... Delimiter information storage circuit, 13 ... Delay circuit, 14, 14X, 14Y ... Key information extraction circuit, 14A ... Buffer, 14B ... Comparator, 14C ... Extractor, 14D ... OR circuit, 14 E ... Key register, 15 ... Search circuit, 15 A ... Search table, 16 ... Key information combining circuit, 20 ... Control circuit, Din ... Packet data, Dd ... Delay data, PID ... Protocol information, DL, DLX, DLY: Delimiter information, Q: Buffer data, S: Search area, BLK: Block, Bmap: Bitmap, P: Delimiter information position, LOC: Position information, Key, KeyX, KeyY: Key information (combined key information), Tx ... inspection result, R ... identification result.

Claims (6)

入力パケットから特定した、前記入力パケットのプロトコル種別と、前記入力パケットのアプリケーションに特有のキー情報とに基づいて、前記入力パケットをアプリケーションごとに識別するパケット識別装置であって、
前記入力パケットのヘッダ情報を識別することにより、前記入力パケットのプロトコル種別を特定するヘッダ処理回路と、
前記入力パケットのプロトコル種別ごとに、前記入力パケットに含まれるキー情報を特定するためのデリミタ情報を記憶するデリミタ情報記憶回路と、
前記入力パケットを一定の遅延時間だけ遅延させて出力する遅延回路と、
前記ヘッダ処理回路で特定された前記プロトコル種別に応じて前記デリミタ情報記憶回路から出力された、前記入力パケットのプロトコル種別に関するデリミタ情報に基づいて、前記遅延回路から出力された前記入力パケットのうち前記デリミタ情報の近傍から前記キー情報を抽出するキー情報抽出回路と、
前記キー情報抽出回路で抽出された前記キー情報で、識別対象となるアプリケーションごとに当該アプリケーションに特有のキー情報が予め登録されている検索テーブルを検索し、得られた検索結果に基づいて前記入力パケットに関する識別結果を出力する検索回路と
を備えることを特徴とするパケット識別装置。
A packet identification device that identifies the input packet for each application based on a protocol type of the input packet identified from the input packet and key information specific to an application of the input packet,
A header processing circuit that identifies a protocol type of the input packet by identifying header information of the input packet;
A delimiter information storage circuit that stores delimiter information for specifying key information included in the input packet for each protocol type of the input packet;
A delay circuit for delaying the input packet by a predetermined delay time and outputting the delayed signal;
Among the input packets output from the delay circuit based on delimiter information related to the protocol type of the input packet output from the delimiter information storage circuit according to the protocol type specified by the header processing circuit A key information extraction circuit for extracting the key information from the vicinity of delimiter information;
The key information extracted by the key information extraction circuit searches a search table in which key information specific to the application is registered in advance for each application to be identified, and the input is performed based on the obtained search result. What is claimed is: 1. A packet identification device comprising:
請求項1に記載のパケット識別装置において、
前記デリミタ情報記憶回路は、前記入力パケットのプロトコル種別ごとに、前記デリミタ情報と前記デリミタ情報に対する前記キー情報の位置を示す位置情報とを記憶し、
前記キー情報抽出回路は、前記デリミタ情報記憶回路から出力された前記デリミタ情報と前記位置情報とに基づいて、前記入力パケットから前記キー情報を抽出する
ことを特徴とするパケット識別装置。
In the packet identification device according to claim 1,
The delimiter information storage circuit stores, for each protocol type of the input packet, the delimiter information and position information indicating the position of the key information with respect to the delimiter information.
A packet identification device characterized in that the key information extraction circuit extracts the key information from the input packet based on the delimiter information and the position information output from the delimiter information storage circuit.
請求項2に記載のパケット識別装置において、
前記位置情報は、前記キー情報が前記デリミタ情報の前方または後方のいずれに位置するかを示す情報であり、
前記キー情報抽出回路は、前記入力パケットのうち、前記位置情報が示す前記デリミタ情報の前方または後方から、指定長のデータを前記キー情報として抽出する
ことを特徴とするパケット識別装置。
In the packet identification device according to claim 2,
The position information is information indicating whether the key information is located forward or backward of the delimiter information,
The packet identification device characterized in that the key information extraction circuit extracts data of a specified length from the front or back of the delimiter information indicated by the position information among the input packets as the key information.
請求項1〜請求項3のいずれかに記載のパケット識別装置において、
前記デリミタ情報記憶回路は、前記入力パケットのプロトコル種別ごとに複数の前記デリミタ情報を記憶し、
前記キー情報抽出回路は、前記デリミタ情報ごとに設けられて、対応する前記デリミタ情報に基づいて、前記入力パケットからそれぞれ個別のキー情報を抽出し、
前記キー情報抽出回路のそれぞれで抽出された複数のキー情報を1つの結合キー情報に結合するキー情報結合回路をさらに備え、
前記検索回路は、前記キー情報結合回路から出力された前記結合キー情報で前記検索テーブルを検索することにより、前記入力パケットに関するアプリケーションを示す識別結果を出力する
ことを特徴とするパケット識別装置。
The packet identification device according to any one of claims 1 to 3.
The delimiter information storage circuit stores a plurality of pieces of delimiter information for each protocol type of the input packet,
The key information extraction circuit is provided for each of the delimiter information and extracts individual key information from the input packet based on the corresponding delimiter information.
The information processing apparatus further includes a key information combination circuit that combines a plurality of key information extracted by each of the key information extraction circuits into one combination key information,
The packet identification device, wherein the search circuit searches the search table with the combined key information output from the key information combination circuit, and outputs an identification result indicating an application related to the input packet.
請求項1に記載のパケット識別装置において、
前記遅延回路は、一定の長さで分割入力される前記入力パケットを、前記遅延時間だけ順次遅延させて遅延データとして出力し、
前記キー情報抽出回路は、
前記遅延データをバッファデータとして保持するバッファと、
前記バッファデータ内で前記デリミタ情報を探索することにより、前記デリミタ情報が存在するデリミタ情報位置を特定する比較器と、
前記デリミタ情報位置を基準とした位置範囲のデータを、前記キー情報として前記バッファデータから抽出する抽出器とを備える
ことを特徴とするパケット識別装置。
In the packet identification device according to claim 1,
The delay circuit sequentially delays the input packets divided and input with a predetermined length by the delay time and outputs the delayed data as delay data.
The key information extraction circuit
A buffer for holding the delayed data as buffer data;
A comparator that specifies the delimiter information position where the delimiter information exists by searching for the delimiter information in the buffer data;
And a extractor for extracting data of a position range based on the delimiter information position as the key information from the buffer data.
入力パケットから特定した、前記入力パケットのプロトコル種別と、前記入力パケットのアプリケーションに特有のキー情報とに基づいて、予め設定されているアプリケーションごとに前記入力パケットを識別するパケット識別装置で用いられるパケット識別方法であって、
ヘッダ処理回路が、前記入力パケットのヘッダ情報を識別することにより、前記入力パケットのプロトコル種別を特定するヘッダ処理ステップと、
デリミタ情報記憶回路が、前記入力パケットのプロトコル種別ごとに、前記入力パケットに含まれるキー情報を特定するためのデリミタ情報を記憶するデリミタ情報記憶ステップと、
遅延回路が、前記入力パケットを一定の遅延時間だけ遅延させて出力する遅延ステップと、
キー情報抽出回路が、前記ヘッダ処理回路で特定された前記プロトコル種別に応じて前記デリミタ情報記憶回路から出力された、前記入力パケットのプロトコル種別に関するデリミタ情報に基づいて、前記遅延回路から出力された前記入力パケットのうち前記デリミタ情報の近傍から前記キー情報を抽出するキー情報抽出ステップと、
検索回路が、前記キー情報抽出回路で抽出された前記キー情報で、識別対象となるアプリケーションごとに当該アプリケーションに特有のキー情報が予め登録されている検索テーブルを検索し、得られた検索結果に基づいて前記入力パケットに関する識別結果を出力する検索ステップと
を備えることを特徴とするパケット識別方法。
A packet used by a packet identification device for identifying the input packet for each preset application based on the protocol type of the input packet identified from the input packet and key information specific to the application of the input packet The identification method,
A header processing step of specifying a protocol type of the input packet by a header processing circuit identifying header information of the input packet;
A delimiter information storage step of storing delimiter information for specifying key information included in the input packet for each protocol type of the input packet;
A delay step of delaying the input packet by a predetermined delay time and outputting the input packet;
A key information extraction circuit is output from the delay circuit based on delimiter information on the protocol type of the input packet output from the delimiter information storage circuit according to the protocol type specified by the header processing circuit. A key information extraction step of extracting the key information from the vicinity of the delimiter information in the input packet;
A search circuit searches a search table in which key information specific to the application is registered in advance for each application to be identified with the key information extracted by the key information extraction circuit, and the obtained search result is And D. a search step of outputting an identification result on the input packet based on the selected packet.
JP2017225639A 2017-11-24 2017-11-24 Packet identification device and method Active JP6907903B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017225639A JP6907903B2 (en) 2017-11-24 2017-11-24 Packet identification device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017225639A JP6907903B2 (en) 2017-11-24 2017-11-24 Packet identification device and method

Publications (2)

Publication Number Publication Date
JP2019097053A true JP2019097053A (en) 2019-06-20
JP6907903B2 JP6907903B2 (en) 2021-07-21

Family

ID=66972234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017225639A Active JP6907903B2 (en) 2017-11-24 2017-11-24 Packet identification device and method

Country Status (1)

Country Link
JP (1) JP6907903B2 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6238054A (en) * 1985-08-13 1987-02-19 Fujitsu Ltd Communication system for reserving reception side
JP2002368793A (en) * 2001-06-06 2002-12-20 Toshiba Corp Inter-network relay device and packet flow identification method
JP2003023437A (en) * 2001-07-11 2003-01-24 Nec Corp Packet-processing unit
JP2003209558A (en) * 2002-01-10 2003-07-25 Toyo Commun Equip Co Ltd Node device
JP2007272628A (en) * 2006-03-31 2007-10-18 Nec Corp Information detection processing method and apparatus
JP2009219065A (en) * 2008-03-12 2009-09-24 Nec Corp Protocol processor and processing method
JP2014236268A (en) * 2013-05-31 2014-12-15 Kddi株式会社 I/o device, method and program for collating payload of data packet with inspection key
JP2015095768A (en) * 2013-11-12 2015-05-18 国立大学法人 東京大学 Information transmission device and program

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6238054A (en) * 1985-08-13 1987-02-19 Fujitsu Ltd Communication system for reserving reception side
JP2002368793A (en) * 2001-06-06 2002-12-20 Toshiba Corp Inter-network relay device and packet flow identification method
JP2003023437A (en) * 2001-07-11 2003-01-24 Nec Corp Packet-processing unit
JP2003209558A (en) * 2002-01-10 2003-07-25 Toyo Commun Equip Co Ltd Node device
JP2007272628A (en) * 2006-03-31 2007-10-18 Nec Corp Information detection processing method and apparatus
JP2009219065A (en) * 2008-03-12 2009-09-24 Nec Corp Protocol processor and processing method
JP2014236268A (en) * 2013-05-31 2014-12-15 Kddi株式会社 I/o device, method and program for collating payload of data packet with inspection key
JP2015095768A (en) * 2013-11-12 2015-05-18 国立大学法人 東京大学 Information transmission device and program

Also Published As

Publication number Publication date
JP6907903B2 (en) 2021-07-21

Similar Documents

Publication Publication Date Title
US11637774B2 (en) Service routing packet processing method and apparatus, and network system
JP3627697B2 (en) Packet destination search system
CN110381054B (en) Message analysis method, device, equipment and computer readable storage medium
JP3489573B2 (en) Packet processing device
CN104881422B (en) Engine, method and software defined network for generating lookups and making decisions
US7650429B2 (en) Preventing aliasing of compressed keys across multiple hash tables
US9606781B2 (en) Parser engine programming tool for programmable network devices
RU2608874C2 (en) Method and device for modifying and forwarding messages in data network
CN112787927B (en) Segmented routing message forwarding method and device and preset logic circuit unit
US7599364B2 (en) Configurable network connection address forming hardware
CN107547407B (en) Message transmission method, device and implementation device
US20200228448A1 (en) Packet processing method and apparatus
JP2001326679A (en) Information unit, table retrieval device, table retrieval method, and recording medium
CN112929419B (en) Data packet transmission method and device, electronic equipment and readable storage medium
JP6762911B2 (en) Packet identification device and packet identification method
CN105187330A (en) A method of using a unique packet identifier to identify structure of a packet and an apparatus thereof
JP6907903B2 (en) Packet identification device and method
CN116319553A (en) Table item searching method and network equipment
CN105450527B (en) The method and device for handling message, sending information, receiving information
US20180287939A1 (en) Transfer device
JP6073706B2 (en) Communication apparatus and program
CN116471344B (en) Keyword extraction method, device and medium for data message
WO2014183525A1 (en) Packet processing method and cascade chip
JP4879728B2 (en) Search device and data processing device
US11916789B2 (en) Prefix length expansion in packet processors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210105

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: 20210601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210614

R150 Certificate of patent or registration of utility model

Ref document number: 6907903

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150