JP6907903B2 - パケット識別装置および方法 - Google Patents
パケット識別装置および方法 Download PDFInfo
- Publication number
- JP6907903B2 JP6907903B2 JP2017225639A JP2017225639A JP6907903B2 JP 6907903 B2 JP6907903 B2 JP 6907903B2 JP 2017225639 A JP2017225639 A JP 2017225639A JP 2017225639 A JP2017225639 A JP 2017225639A JP 6907903 B2 JP6907903 B2 JP 6907903B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- key information
- circuit
- packet
- delimiter
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
図12に示す従来のパケット識別装置50は、ヘッダ処理部51、キー情報抽出部52、および検索部53とを備えている。
また、検索部53は、一般的な連想メモリである、CAM(Content Addressable Memory)やTCAM(Ternary Content Addressable Memory)を用いて実現することができる。
図13に示す従来のキー情報抽出部52では、前段にプロトコル種別ごとにキー情報を抽出する抽出器52Aが設けられており、後段には、指定されたプロトコル種別に基づいて、これら抽出器52Aのうち、対応するプロトコル種別の抽出器52Aの出力を切替選択するセレクタ52Bが設けられている。この回路構成により、プロトコル種別に応じて検索部53へのキー情報出力を切り替えられるようになっている。
[第1の実施の形態]
まず、図1を参照して、本発明の第1の実施の形態にかかるパケット識別装置10について説明する。
図1に示すパケット識別装置10は、通信ネットワーク(図示せず)を介してパケットを送受信する各種のネットワーク装置(図示せず)に接続されて、当該ネットワーク装置から入力された入力パケットから特定した、入力パケットのプロトコル種別と、入力パケットのアプリケーションに特有のキー情報とに基づいて、入力パケットをアプリケーションごとに識別する装置である。
一般に、可変長パケットは、ペイロード情報のデータ長が送信されるデータ量に応じて変動するため、ドメイン情報などのアプリケーションに特有のキー情報が、ペイロード情報のどの位置に格納されているかわからない。一方で、パケットフォーマットは既知なので、所望のキー情報の近傍には必ず目印となるデリミタ情報が存在する。DNSプロトコルのドメイン情報を例に挙げると、ドメイン情報「xxx.jp(x:Don’t care)」のうち、「jp」をデリミタ情報とすれば「jp」を含むパケットを識別することが可能となる。
次に、図1を参照して、本実施の形態にかかるパケット識別装置10の回路構成について詳細に説明する。
図1に示すように、パケット識別装置10は、主な回路部として、ヘッダ処理回路11、デリミタ情報記憶回路12、遅延回路13、キー情報抽出回路14、および検索回路15を備えている。これら回路部は、1つまたは複数のASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路により実現されている。
デリミタ情報記憶回路12は、例えば図2に示すように、アドレスADRごとにそれぞれのプロトコル種別と対応するデリミタ情報DLを記憶するように構成してもよい。この際、数値で表わされたプロトコル情報PIDをそのまま、あるいは整数倍することにより、アドレスADRとして用いてもよい。
図3では、デリミタ情報DLがAbyteのデータ長を有し、入力パケットのうち、PからP+Aの位置にDLが存在しており、PからMbyte前方のP−Mまでの範囲からキー情報Keyが抽出される例が示されている。なお、KeyにDLを含めて抽出してもよい。
次に、図4を参照して、本実施の形態にかかるキー情報抽出回路14について詳細に説明する。
キー情報抽出回路14は、主な回路部として、バッファ14A、比較器14B、抽出器14C、OR回路14D、およびキーレジスタ14Eを備えている。
具体的には、比較器14Bは、バッファ14AのバッファデータQから1byteずつシフトして順に取得した、デリミタ情報DLと等しいデータ長Abyteを有するブロックBLKと、デリミタ情報記憶回路12から出力されたデリミタ情報DLとを比較する機能と、これらBLKごとに得られた一致/不一致を示す1ビットの比較結果を、バッファデータQごとにまとめたビットマップBmapで一括出力する機能とを有している。
次に、図5および図6を参照して、本実施の形態にかかるパケット識別装置10の動作として、キー情報抽出回路14におけるキー情報抽出動作について説明する。
ここでは、バッファ14Aに蓄積されているバッファデータQのうち、デリミタ情報DLが存在するデリミタ情報位置Pから前方Mbyte分のデータをキー情報Keyとして抽出する場合を例として説明する。
図6に示すキー情報抽出動作例のように、バッファ長LqbyteのバッファデータQの先頭からMbyteがキー情報Keyであるものと想定し、それ以外のデータ長β(=Lq−M)byte分が探索領域Sであるものとする。デリミタ情報DLが2byte長(A=2)である場合、QのうちSの先頭位置M+1byte目から2byteずつブロックBLKとして読み出されて比較器14BでDLと比較される。
次の2回目の比較では、1byte分シフトした位置、すなわちQのM+2byte目とM+3byte目のデータqM+2,qM+3からなるBLK#2がDLのDL1,DL2と比較され、その一致/不一致を示す比較結果がBmapの2bit目のb2に格納される。
したがって、図6に示すように、データqβ−1がDL1であり、データqβがDL2である場合、これらデータqβ−1,qβがDLと一致するため、Bmapのβ−1bit目のbβ−1が「1」となり、Bmapのうちその他のビットはすべて不一致を示す「0」となる。
抽出器14Cは、比較器14Bから出力されたBmapに基づいて、バッファデータQのうちデリミタ情報DLが存在するデリミタ情報位置Pを特定し(ステップS105)、QのうちPから前方Mbyte分のデータをキー情報Keyとして抽出する(ステップS106)。
ここで、Tx=1の場合(ステップS107:YES)、キーレジスタ14Eは、抽出器14Cから出力されているKeyで保持内容を更新する(ステップS108)。また、Tx=0の場合(ステップS107:NO)、キーレジスタ14Eは、保持内容を更新しない(ステップS109)。
一方、パケット末尾信号EOPが「1」を示す場合(ステップS111:YES)、一連のキー情報抽出処理を終了する。
このように、本実施の形態は、入力パケットのプロトコル種別ごとに、入力パケットに含まれるキー情報Keyを特定するためのデリミタ情報DLを記憶するデリミタ情報記憶回路12を設け、キー情報抽出回路14が、ヘッダ処理回路11で特定されたプロトコル種別に応じてデリミタ情報記憶回路12から出力された、入力パケットのプロトコル種別に関するデリミタ情報DLに基づいて、遅延回路13から出力された入力パケットのうちデリミタ情報の近傍からキー情報を抽出するようにしたものである。
このため、従来技術のように、プロトコル種別ごとにキー情報抽出部を設ける必要がなくなり、デリミタ情報記憶回路12のデリミタ情報DLを再設定するだけで、新たなプロトコルからもキー情報を抽出できる。したがって、アプリケーションに特有のキー情報Keyを用いたパケット識別処理を、小規模かつ低コストな回路構成で柔軟に行うことが可能となる。
次に、図8を参照して、本発明の第2の実施の形態にかかるパケット識別装置10について説明する。
第1の実施の形態では、各プロトコル種別に共通して、デリミタ情報DLの前方にキー情報Keyが存在する場合を例として説明した。本実施の形態では、プロトコル種別ごとに、キー情報Keyが存在する位置を任意に設定する場合について説明する。
次に、図10Aおよび図10Bを参照して、本実施の形態にかかるパケット識別装置10の動作として、キー情報抽出回路14におけるキー情報抽出動作について説明する。
ここでは、バッファ14Aに蓄積されているバッファデータQのうち、デリミタ情報DLが存在するデリミタ情報位置Pから、位置情報LOCが示す前方または後方のMbyte分のデータをキー情報Keyとして抽出する場合を例として説明する。なお、図10A,図10Bのうち前述した図5と同じまたは同等部分には同一符号を付してある。
ここで、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)。
ここで、LOCがFの場合(ステップS210:YES)、抽出器14Cは、QのうちPから前方Mbyte分のデータをキー情報Keyとして抽出し(ステップS211)、LOCがBの場合、抽出器14Cは、QのうちPから後方Mbyte分のデータをキー情報Keyとして抽出する(ステップS212)。
ここで、Tx=1の場合(ステップS107:YES)、キーレジスタ14Eは、抽出器14Cから出力されているKeyで保持内容を更新する(ステップS108)。また、Tx=0の場合(ステップS107:NO)、キーレジスタ14Eは、保持内容を更新しない(ステップS109)。
一方、パケット末尾信号EOPが「1」を示す場合(ステップS111:YES)、一連のキー情報抽出処理を終了する。
このように、本実施の形態は、デリミタ情報記憶回路12が、入力パケットのプロトコル種別ごとに、デリミタ情報DLとこのDLに対するキー情報Keyの位置を示す位置情報LOCとを記憶し、キー情報抽出回路14は、デリミタ情報記憶回路12から出力されたデリミタ情報DLと位置情報LOCとに基づいて、入力パケットからキー情報Keyを抽出するようにしたものである。
これにより、プロトコル種別ごとに、キー情報Keyが存在する位置を任意に設定することができ、1つのパケット識別装置10で識別できるパケットのプロトコル種別を大幅に拡張することが可能となる。
これにより、プロトコル種別ごとに個別の位置からキー情報Keyを抽出することが可能となる。
次に、図11を参照して、本発明の第3の実施の形態にかかるパケット識別装置10について説明する。
第1および第2の実施の形態では、入力パケットから抽出した1つのキー情報Keyに基づいて、入力パケットをアプリケーションごとに識別する場合を例として説明した。本実施の形態では、入力パケットから抽出した複数のキー情報Keyに基づいて、入力パケットをアプリケーションごとに識別する場合を例として説明する。
キー情報抽出回路14は、デリミタ情報DLごとに設けられて、対応するデリミタ情報DLと位置情報LOCとに基づいて、入力パケットからそれぞれ個別のキー情報Keyを独立して抽出する機能を有している。
検索回路15は、キー情報結合回路16から出力された結合キー情報Keyで検索テーブル15Aを検索することにより、入力パケットに関するアプリケーションを示す識別結果Rを出力する機能を有している。
また、これらDLX,DLYごとに、キー情報抽出回路14X,14Yが設けられており、それぞれでキー情報KeyX,KeyYが抽出される。キー情報抽出回路14X,14Yの具体的なキー情報抽出処理については、前述した図10A,図10Bと同等である。
検索回路15の検索テーブル15Aには、識別対象となるアプリケーションごとに当該アプリケーションに特有の結合キー情報Keyが予め登録されている。したがって、結合キー情報Keyと対応するアプリケーションを示す識別結果Rが出力される。
このように、本実施の形態は、デリミタ情報記憶回路12が、入力パケットのプロトコル種別ごとに複数のデリミタ情報DLを記憶し、キー情報抽出回路14が、デリミタ情報DLごとに設けられて、対応するデリミタ情報DLと位置情報LOCとに基づいて、入力パケットからそれぞれ個別のキー情報Keyを抽出し、キー情報結合回路16が、キー情報抽出回路14のそれぞれで抽出された複数のキー情報Keyを1つの結合キー情報Keyに結合するようにしたものである。
これにより、入力パケットから抽出した複数のキー情報Keyに基づいて、入力パケットをアプリケーションごとに識別することができ、より高度なパケット識別を実現することが可能となる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
Claims (5)
- 入力パケットから特定した、前記入力パケットのプロトコル種別と、前記入力パケットのアプリケーションに特有のキー情報とに基づいて、前記入力パケットをアプリケーションごとに識別するパケット識別装置であって、
前記入力パケットのヘッダ情報を識別することにより、前記入力パケットのプロトコル種別を特定するヘッダ処理回路と、
前記入力パケットのプロトコル種別ごとに、前記入力パケットに含まれるキー情報を特定するためのデリミタ情報を記憶するデリミタ情報記憶回路と、
前記入力パケットを一定の遅延時間だけ遅延させて出力する遅延回路と、
前記ヘッダ処理回路で特定された前記プロトコル種別に応じて前記デリミタ情報記憶回路から出力された、前記入力パケットのプロトコル種別に関するデリミタ情報に基づいて、前記遅延回路から出力された前記入力パケットのうち前記デリミタ情報の近傍から前記キー情報を抽出するキー情報抽出回路と、
前記キー情報抽出回路で抽出された前記キー情報で、識別対象となるアプリケーションごとに当該アプリケーションに特有のキー情報が予め登録されている検索テーブルを検索し、得られた検索結果に基づいて前記入力パケットに関する識別結果を出力する検索回路と
を備え、
前記デリミタ情報記憶回路は、前記入力パケットのプロトコル種別ごとに複数の前記デリミタ情報を記憶し、
前記キー情報抽出回路は、前記デリミタ情報ごとに設けられて、対応する前記デリミタ情報に基づいて、前記入力パケットからそれぞれ個別のキー情報を抽出し、
前記キー情報抽出回路のそれぞれで抽出された複数のキー情報を1つの結合キー情報に結合するキー情報結合回路をさらに備え、
前記検索回路は、前記キー情報結合回路から出力された前記結合キー情報で前記検索テーブルを検索することにより、前記入力パケットに関するアプリケーションを示す識別結果を出力する
ことを特徴とするパケット識別装置。 - 請求項1に記載のパケット識別装置において、
前記デリミタ情報記憶回路は、前記入力パケットのプロトコル種別ごとに、前記デリミタ情報と前記デリミタ情報に対する前記キー情報の位置を示す位置情報とを記憶し、
前記キー情報抽出回路は、前記デリミタ情報記憶回路から出力された前記デリミタ情報と前記位置情報とに基づいて、前記入力パケットから前記キー情報を抽出する
ことを特徴とするパケット識別装置。 - 請求項2に記載のパケット識別装置において、
前記位置情報は、前記キー情報が前記デリミタ情報の前方または後方のいずれに位置するかを示す情報であり、
前記キー情報抽出回路は、前記入力パケットのうち、前記位置情報が示す前記デリミタ情報の前方または後方から、指定長のデータを前記キー情報として抽出する
ことを特徴とするパケット識別装置。 - 請求項1に記載のパケット識別装置において、
前記遅延回路は、一定の長さで分割入力される前記入力パケットを、前記遅延時間だけ順次遅延させて遅延データとして出力し、
前記キー情報抽出回路は、
前記遅延データをバッファデータとして保持するバッファと、
前記バッファデータ内で前記デリミタ情報を探索することにより、前記デリミタ情報が存在するデリミタ情報位置を特定する比較器と、
前記デリミタ情報位置を基準とした位置範囲のデータを、前記キー情報として前記バッファデータから抽出する抽出器とを備える
ことを特徴とするパケット識別装置。 - 入力パケットから特定した、前記入力パケットのプロトコル種別と、前記入力パケットのアプリケーションに特有のキー情報とに基づいて、予め設定されているアプリケーションごとに前記入力パケットを識別するパケット識別装置で用いられるパケット識別方法であって、
ヘッダ処理回路が、前記入力パケットのヘッダ情報を識別することにより、前記入力パケットのプロトコル種別を特定するヘッダ処理ステップと、
デリミタ情報記憶回路が、前記入力パケットのプロトコル種別ごとに、前記入力パケットに含まれるキー情報を特定するためのデリミタ情報を記憶するデリミタ情報記憶ステップと、
遅延回路が、前記入力パケットを一定の遅延時間だけ遅延させて出力する遅延ステップと、
キー情報抽出回路が、前記ヘッダ処理回路で特定された前記プロトコル種別に応じて前記デリミタ情報記憶回路から出力された、前記入力パケットのプロトコル種別に関するデリミタ情報に基づいて、前記遅延回路から出力された前記入力パケットのうち前記デリミタ情報の近傍から前記キー情報を抽出するキー情報抽出ステップと、
検索回路が、前記キー情報抽出回路で抽出された前記キー情報で、識別対象となるアプリケーションごとに当該アプリケーションに特有のキー情報が予め登録されている検索テーブルを検索し、得られた検索結果に基づいて前記入力パケットに関する識別結果を出力する検索ステップと
を備え、
前記デリミタ情報記憶ステップでは、前記デリミタ情報記憶回路が、前記入力パケットのプロトコル種別ごとに複数の前記デリミタ情報を記憶し、
前記キー情報抽出ステップでは、前記デリミタ情報ごとに設けられた前記キー情報抽出回路が、対応する前記デリミタ情報に基づいて、前記入力パケットからそれぞれ個別のキー情報を抽出し、
キー情報結合回路が、前記キー情報抽出回路のそれぞれで抽出された複数のキー情報を1つの結合キー情報に結合するキー情報結合ステップをさらに備え、
前記検索ステップでは、前記検索回路が、前記キー情報結合回路から出力された前記結合キー情報で前記検索テーブルを検索することにより、前記入力パケットに関するアプリケーションを示す識別結果を出力する
ことを特徴とするパケット識別方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017225639A JP6907903B2 (ja) | 2017-11-24 | 2017-11-24 | パケット識別装置および方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017225639A JP6907903B2 (ja) | 2017-11-24 | 2017-11-24 | パケット識別装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019097053A JP2019097053A (ja) | 2019-06-20 |
JP6907903B2 true JP6907903B2 (ja) | 2021-07-21 |
Family
ID=66972234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017225639A Active JP6907903B2 (ja) | 2017-11-24 | 2017-11-24 | パケット識別装置および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6907903B2 (ja) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6238054A (ja) * | 1985-08-13 | 1987-02-19 | Fujitsu Ltd | 受信側予約通信方式 |
JP2002368793A (ja) * | 2001-06-06 | 2002-12-20 | Toshiba Corp | ネットワーク間中継装置及びパケットフロー識別方法 |
JP3489573B2 (ja) * | 2001-07-11 | 2004-01-19 | 日本電気株式会社 | パケット処理装置 |
JP2003209558A (ja) * | 2002-01-10 | 2003-07-25 | Toyo Commun Equip Co Ltd | ノード装置 |
JP4872412B2 (ja) * | 2006-03-31 | 2012-02-08 | 日本電気株式会社 | 情報検知処理方法及び装置 |
JP4858468B2 (ja) * | 2008-03-12 | 2012-01-18 | 日本電気株式会社 | プロトコル処理装置及び処理方法 |
JP6147095B2 (ja) * | 2013-05-31 | 2017-06-14 | Kddi株式会社 | データパケットのペイロードを検査キーと照合する入出力装置、方法及びプログラム |
JP2015095768A (ja) * | 2013-11-12 | 2015-05-18 | 国立大学法人 東京大学 | 情報伝送装置、及びプログラム |
-
2017
- 2017-11-24 JP JP2017225639A patent/JP6907903B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019097053A (ja) | 2019-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3627697B2 (ja) | パケットの宛先検索システム | |
JP3489573B2 (ja) | パケット処理装置 | |
US9606781B2 (en) | Parser engine programming tool for programmable network devices | |
Wang et al. | Wire Speed Name Lookup: A {GPU-based} Approach | |
CN103067353B (zh) | 将来自远程发送者的数据流传递到远程目的地的方法 | |
EP0993144B1 (en) | Packet relaying apparatus and method and circuit thereof | |
US7599364B2 (en) | Configurable network connection address forming hardware | |
KR100586461B1 (ko) | 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체 | |
JP2006005636A (ja) | パケット転送装置 | |
CN107431660B (zh) | 检索装置、检索方法及记录介质 | |
CN102035738B (zh) | 一种获取路由信息的方法及装置 | |
JP2001326679A (ja) | 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体 | |
US8331368B2 (en) | Method of processing information packets and telecommunication apparatus using the same | |
JP6623849B2 (ja) | 通信装置、通信システム、通信制御装置、通信方法、及び、通信制御方法 | |
JP6907903B2 (ja) | パケット識別装置および方法 | |
CN105187330A (zh) | 使用唯一分组标识符来标识分组的结构的方法及其装置 | |
US11258885B2 (en) | Flexible parser in a networking device | |
CN105282137A (zh) | 将分组拆分成各层以供修改且之后将层拼接的方法及装置 | |
CN116319553A (zh) | 一种表项查找方法以及网络设备 | |
JP2000151709A (ja) | ルーティングアドレス検索システム | |
WO2018159677A1 (ja) | データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法 | |
CN105450527B (zh) | 处理报文、发送信息、接收信息的方法及装置 | |
CN105282033A (zh) | 允许报头层的扩展和塌缩以实现灵活修改的方法及其装置 | |
JP4726310B2 (ja) | 情報検索装置、情報検索用マルチプロセッサおよびルータ | |
JP6073706B2 (ja) | 通信装置及びプログラム |
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 | Written amendment |
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 |