(57)【要約】【課題】アプリケーション層のパケットを含むパケットの識別処理をより高速にかつ柔軟に行うことができるパケット識別装置を提供する。【解決手段】本発明のパケット識別装置は、マスク処理部と一致処理部とを備え、マスク処理部は、所与のオフセットとマスク長に従って、可変長パケットの後方からパケットデータの一部を取得することにより、第１のフィールド値を生成するように構成され、一致処理部は、第１のフィールド値と所与の第１のキーワードの比較処理を行う。【選択図】図１
2019004398.tif 000002
【特許請求の範囲】
【請求項１】
マスク処理部と一致処理部とを備えたパケット識別装置であって、
前記マスク処理部は、所与のオフセットとマスク長に従って、可変長パケットの後方からパケットデータの一部を取得することにより、第１のフィールド値を生成するように構成され、
前記一致処理部は、前記第１のフィールド値と所与の第１のキーワードの比較処理を行って、比較結果を出力するように構成されること
を特徴とするパケット識別装置。
【請求項２】
ヘッダ処理部をさらに備え、
前記ヘッダ処理部は、ヘッダデータとボディデータからなる所与のパケットフォーマットを有する前記可変長パケットの前方から、前記ヘッダデータの少なくとも一部のパケットデータを取得することにより、第２のフィールド値を生成するように構成され、
前記一致処理部は、前記第２のフィールド値と所与の第２のキーワードの比較処理を行って、前記第１のフィールド値および前記第２のフィールド値に関わる比較結果を組み合わせて出力するように構成されること、
を特徴とする請求項１記載のパケット識別装置。
【請求項３】
前記第１のキーワードは、Ｄｏｎ’ｔＣａｒｅビットを含むこと
を特徴とする請求項１または２記載のパケット識別装置。
【請求項４】
マスク処理部と一致処理部とを備えたパケット識別装置におけるパケット識別方法であって、
前記マスク処理部が、所与のオフセットとマスク長に従って、可変長パケットの後方からパケットデータの一部を取得することにより、第１のフィールド値を生成するステップと、
前記一致処理部が、前記第１のフィールド値と所与の第１のキーワードの比較処理を行って、比較結果を出力するステップと
を含むことを特徴とするパケット識別方法。
【請求項５】
ヘッダ処理部とマスク処理部と一致処理部とを備えたパケット識別装置におけるパケット識別方法であって、
前記ヘッダ処理部が、ヘッダデータとボディデータからなる所与のパケットフォーマットを有する前記可変長パケットの前方から、前記ヘッダデータの少なくとも一部のパケットデータを取得することにより、第２のフィールド値を生成するステップと、
前記一致処理部が、前記第２のフィールド値と所与の第２のキーワードの比較処理を行い、前記第１のフィールド値および前記第２のフィールド値に関わる比較結果を組み合わせて出力するステップと、
を含むことを特徴とする請求項４記載のパケット識別方法。
【請求項６】
前記第１のキーワードは、Ｄｏｎ’ｔＣａｒｅビットを含むこと
を特徴とする請求項４または５記載のパケット識別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアを用いた可変長パケットの識別装置および方法に関する。
【背景技術】
【０００２】
従来のパケット識別方法では、ルータ装置のような安価に量産された装置においてＯＳＩ参照モデルの第４層までのパケットのヘッダ領域を識別し、サーバ上で実行されるソフトウェアや高価な専用装置を用いて第５層以降のアプリケーション層のパケットの識別処理を行うのが一般的である（例えば、「非特許文献１」参照。）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】K Oztoprak, MA Yazici, ”A hybrid asymmetric traffic classifier for deep packet inspection systems with route asymmetry”, Performance Computing and Communications Conference (IPCCC), 2016 IEEE 35th International
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年の通信ネットワークにおけるデータ通信量の増加に伴い、より高度なパケット識別によるネットワーク制御の需要が増大しており、従来のソフトウェアによるアプリケーション層のパケットの識別処理では処理能力が不足し、パケットの識別処理のための専用装置は高価でコスト負担が大きいという問題がある。
【０００５】
本発明は、以上のような問題を解決するためになされたものであり、アプリケーション層のパケットを含むパケットの識別処理をより高速にかつ柔軟に行うことができるパケット識別装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明のパケット識別装置は、マスク処理部と一致処理部とを備えたパケット識別装置であって、前記マスク処理部は、所与のオフセットとマスク長に従って、可変長パケットの後方からパケットデータの一部を取得することにより、第１のフィールド値を生成するように構成され、前記一致処理部は、前記第１のフィールド値と所与の第１のキーワードの比較処理を行って、比較結果を出力するように構成される。
【０００７】
また、ヘッダ処理部をさらに備え、前記ヘッダ処理部は、ヘッダデータとボディデータからなる所与のパケットフォーマットを有する前記可変長パケットの前方から、前記ヘッダデータの少なくとも一部のパケットデータを取得することにより、第２のフィールド値を生成するように構成され、前記一致処理部は、前記第２のフィールド値と所与の第２のキーワードの比較処理を行って、前記第１のフィールド値および前記第２のフィールド値に関わる比較結果を組み合わせて出力するように構成されてもよい。
【０００８】
また、前記第１のキーワードは、Ｄｏｎ’ｔＣａｒｅビットを含んでもよい。
【０００９】
上記の課題を解決するために、本発明のパケット識別方法は、マスク処理部と一致処理部とを備えたパケット識別装置におけるパケット識別方法であって、前記マスク処理部が、所与のオフセットとマスク長に従って、可変長パケットの後方からパケットデータの一部を取得することにより、第１のフィールド値を生成するステップと、前記一致処理部が、前記第１のフィールド値と所与の第１のキーワードの比較処理を行って、比較結果を出力するステップとを含む。
【００１０】
また、ヘッダ処理部とマスク処理部と一致処理部とを備えたパケット識別装置におけるパケット識別方法であって前記ヘッダ処理部が、ヘッダデータとボディデータからなる所与のパケットフォーマットを有する前記可変長パケットの前方から、前記ヘッダデータの少なくとも一部のパケットデータを取得することにより、第２のフィールド値を生成するステップと、前記一致処理部が、前記第２のフィールド値と所与の第２のキーワードの比較処理を行い、前記第１のフィールド値および前記第２のフィールド値に関わる比較結果を組み合わせて出力するステップと、を含んでもよい。
【００１１】
また、前記第１のキーワードは、Ｄｏｎ’ｔＣａｒｅビットを含んでもよい。
【発明の効果】
【００１２】
本願発明によれば、アプリケーション層のパケットを含むパケットの識別処理をより高速にかつ柔軟に行うことができるパケット識別装置を提供することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の第１の実施の形態におけるパケット識別装置の構成である。
【図２】図２は、本発明の第１の実施の形態におけるパケットの識別処理を説明するための図である。
【図３】図３は、本発明の第１の実施の形態におけるパケット識別方法のフローチャートである。
【図４】図４は、本発明の第２の実施の形態におけるパケット識別装置の構成である。
【図５】図５は、本発明の第２の実施の形態におけるパケットの識別処理を説明するための図である。
【図６】図６は、本発明の第２の実施の形態におけるパケット識別方法のフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本願発明の実施の形態について図面を用いて説明する。但し、本願発明は、多くの異なる形態で実施することが可能であり、以下に説明する実施の形態の記載内容に限定して解釈されるものではない。
【００１５】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態におけるパケット識別装置の構成である。図２は、本発明の第１の実施の形態におけるパケットの識別処理を説明するための図であり、図３は、本発明の第１の実施の形態におけるパケット識別方法のフローチャートである。
【００１６】
図１のパケット識別装置１は、マスク処理部２、一致処理部３および制御部５からなる。図１の構成における各部は、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）上に構成されるプログラムないし回路データとして実装されるが、これらに限られるものではなく、一般に利用されているスイッチまたはルータのような汎用デバイス上のプログラム、あるいは汎用サーバ上の仮想スイッチなどを利用して構成することもできる。
【００１７】
本実施形態は、パケット受信端におけるパケットの識別を想定しており、パケット識別装置１にはパケット形式のデータが入力される。入力されるパケットは、ヘッダデータとボディデータからなる所与のパケットフォーマットを有する可変長パケットである。
【００１８】
マスク処理部２には、制御部５から識別したいアプリケーションデータのパケット上のビット位置に応じて、オフセットとマスク長の情報があらかじめ与えられており、これらのオフセットとマスク長の情報に従って、可変長パケットの後方からパケットデータの一部を取得することにより、第１のフィールド値＃１を生成する。ここで、フィールド値とは、パケット内のそれぞれが特定の属性を示すデータブロック（プロトコルの各フィールド）から、任意の１つあるいは複数のデータブロックを抜粋して生成した値のことであり、第２の実施形態においても同様である。
【００１９】
可変長パケットにおいては、ボディデータのデータ長が送信されるデータ量に応じて変動するため、パケットフォーマットが既知であったとしても、パケットの前方から検索したのでは、所望のアプリケーションデータを識別することができない。そこで、本実施の形態では、識別したいアプリケーションデータのパケット上のビット位置に応じて、パケットの後方からオフセットとマスク長を設定して、これらのオフセットとマスク長の情報に従って、可変長パケットの後方からパケットデータの一部を取得する。
【００２０】
例えば、ＤＮＳ（Domain Name Server）に対して送信されるＵＲＬ情報を含むパケットの特定のドメインを識別したい場合には、パケットの後方から、識別したいドメイン名を表すビット列のうちｃｏ．ｊｐに相当するビット（１２バイト）をオフセットした位置からのマスク長を設定し、これらに従ってパケットデータの一部を取得することにより、アプリケーションデータに特定のドメインが含まれるパケットを識別することができる。
【００２１】
ここで、ビットマスクによって取得されたパケットデータが、第１のフィールド値＃１の所定のデータ長より短い場合には、ビットマスクによって取得されたパケットデータ以外の部分については、第１のフィールド値＃１のデータ長に合わせて０値が埋められている。マスク処理部２において生成された第１のフィールド値＃１は一致処理部３へ送信され、受信したパケットは、そのまま外部装置に送信される。
【００２２】
一致処理部３には、制御部５から一致処理対象において正解となる第１のキーワード＃１があらかじめ与えられており、第１のフィールド値＃１と比較するための第１のキーワード＃１は、識別したいビット列にＤｏｎ’ｔｃａｒｅビットを追加し、第１のフィールド値＃１と同一のデータ長としている。
【００２３】
一致処理部３では、マスク処理部２で生成された第１のフィールド値＃１と第１のキーワード＃１において、Ｄｏｎ’ｔｃａｒｅビットを含む３値比較処理を行い、比較結果を外部装置（図示しない）に送信する。外部装置では、パケットデータとともにパケットの識別結果を受け取ることができる。
【００２４】
以上述べたように、本実施の形態によれば、パケットの識別処理を、パケットの後方から取得したパケットデータに対して３値識別処理をすることで実現しているので、アプリケーション層を含むパケットデータに対する識別処理をハードウェア処理により高速に行うことが可能となる。さらに、パケットを識別するためのオフセットやマスク長を識別したいパケットに応じて設定可能とすることにより、より柔軟なパケットの識別処理が可能となる。
【００２５】
＜第２の実施の形態＞
第２の実施の形態では、第１の実施の形態におけるアプリケーション層を含むパケットデータに対する識別処理に加えて、パケットのヘッダデータの識別処理を行い、両方の処理結果を組み合わせた結果を出力する。
【００２６】
図４は、本発明の第２の実施の形態におけるパケット識別装置の構成である。パケット識別装置１は、ヘッダ処理部４、マスク処理部２、一致処理部３および制御部５からなる。図５は、本発明の第２の実施の形態におけるパケットの識別処理を説明するための図であり、図６は、本発明の第２の実施の形態におけるパケット識別方法のフローチャートである。
【００２７】
図４のパケット識別装置１は、図１のパケット識別装置１に、パケットのヘッダデータによるパケットの識別を行うヘッダ処理部４が追加されている。図４の構成における各部は、図１と同様に、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Ｃircuit）上に構成されるプログラムないし回路データとして実装されるが、これらに限られるものではなく、一般に利用されているスイッチまたはルータのような汎用デバイス上のプログラム、あるいは汎用サーバ上の仮想スイッチなどを利用して構成することもできる。
【００２８】
本実施形態においても、パケット受信端におけるパケットの識別を想定しており、パケット識別装置１には、ヘッダデータとボディデータからなる所与のパケットフォーマットを有する可変長パケットが入力される。マスク処理部２の動作は第１の実施の形態と同様であるが、本実施の形態では、マスク処理部２で処理されるパケットは、ヘッダ処理部４から供給されるように構成している。
【００２９】
ヘッダ処理部４には、制御部５から識別したいパケットのパケットフォーマットの情報があらかじめ与えられている。ヘッダ処理部４では、このパケットフォーマットの情報に従って、可変長パケットの前方からヘッダデータの一部を取得することにより、第２のフィールド値＃２を生成する。パケットのヘッダデータのどのフィールド値を取得するかについても制御部５から設定すればよい。パケットのデータ長が変動したとしても、パケットのパケットフォーマットが既知であれば、識別したいパケットのヘッダデータの一部、例えば、特定のＩＰアドレス等を取得することができる。
【００３０】
ここで、マスク処理部２では、フィールド値＃１のデータ長に合わせて０埋め処理を行ったが、ヘッダ処理部４では、パケットのヘッダデータの所定のフィールド値を取得するので、取得するフィールド＃２のフィールド長と比較する第２のキーワード＃２の長さは予め設定された値となる。ヘッダ処理部４では、生成された第２のフィールド値＃２を一致処理部３へ送信し、受信したパケットは、そのままマスク処理部２に送信される。
【００３１】
一致処理部３には、マスク処理部２で生成されたフィールド値＃１と比較するための第１のキーワード＃１に加えて、ヘッダ処理部４で生成されたフィールド値＃２と比較する第２のキーワード＃２があらかじめ与えられており、第２のキーワード＃２は、第２のフィールド値＃２と同一のデータ長を有する。
【００３２】
一致処理部３では、マスク処理部２で生成された第１のフィールド値＃１と第１のキーワード＃１の比較処理と、ヘッダ処理部４で生成された第２のフィールド値＃２と第２のキーワード＃２の比較処理を行い、両方の比較処理の結果を組み合わせて出力する。これにより、第１の実施形態と比較してより高度なパケットデータの識別を行うことができる。
【００３３】
例えば、第１の実施の形態で例示した、特定のドメインを含むパケットを識別する処理に、ヘッダ処理部４によるＩＰアドレスの識別処理等を組み合わせることにより、特定のＵＲＬをターゲットとしたパケットの中から特定の送信元ＩＰアドレスを有するパケットを識別する等の処理を行うことができる。
【００３４】
一致処理部３は、組み合わせた比較結果を外部装置（図示しない）に送信し、外部装置では、パケットデータとともにパケットの識別結果を受け取ることができる。
【００３５】
このように、本実施の形態によれば、アプリケーション層を含むパケットデータに対する識別処理とパケットのヘッダデータの識別処理とを組み合わせることにより、より高度なパケットデータの識別処理が可能となる。
【符号の説明】
【００３６】
１…パケット識別装置、２…マスク処理部、３…一致処理部、４…ヘッダ処理部、５…制御部。
【図１】
2019004398.tif 000003
【図２】
2019004398.tif 000004
【図３】
2019004398.tif 000005
【図４】
2019004398.tif 000006
【図５】
2019004398.tif 000007
【図６】
2019004398.tif 000008