JP4791347B2 - エントリの圧縮伸長方法およびエントリの圧縮伸長を行う装置 - Google Patents

エントリの圧縮伸長方法およびエントリの圧縮伸長を行う装置 Download PDF

Info

Publication number
JP4791347B2
JP4791347B2 JP2006356919A JP2006356919A JP4791347B2 JP 4791347 B2 JP4791347 B2 JP 4791347B2 JP 2006356919 A JP2006356919 A JP 2006356919A JP 2006356919 A JP2006356919 A JP 2006356919A JP 4791347 B2 JP4791347 B2 JP 4791347B2
Authority
JP
Japan
Prior art keywords
entry
pattern
packet
entries
flow
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.)
Expired - Fee Related
Application number
JP2006356919A
Other languages
English (en)
Other versions
JP2008167340A (ja
Inventor
宏明 玉井
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006356919A priority Critical patent/JP4791347B2/ja
Priority to US11/905,351 priority patent/US7933201B2/en
Publication of JP2008167340A publication Critical patent/JP2008167340A/ja
Application granted granted Critical
Publication of JP4791347B2 publication Critical patent/JP4791347B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

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

Description

本発明は、エントリの圧縮伸長方法およびエントリの圧縮伸長を行う装置に関する。
従来よりネットワークにおいて、パケットに対し、フィルタリングやQoS(Quality of Service)を行うパケット中継装置がある。これらのパケット中継装置では、装置内に保持されたテーブルに記載された情報とパケットとを比較し、条件に一致した場合に所定の処理を行っている。
図17は、従来のパケット中継装置のブロック図である。
パケット中継装置1701は、パケット受信部1702、パケット解析部1703、パケットフロー識別部1704、パケットフィルタリング処理部1705、パケット中継処理部1706、トラフィック管理処理部1707、パケット送信部1708、パケットバッファ部1709、CPU処理部1710を備える。
パケットフロー識別部1704は、フロー識別の対象となるパケットが持つパターンが記述されたフローテーブル1711を備える。
CPU処理部1710は、フロー識別対象パターン登録削除部1712を備える。
パケット受信部1702は、ネットワークに接続された回線1700からパケットを受信する。
パケット解析部1703は、受信したパケットのパケットヘッダを解析し、パケット種別(どの情報がパケットのどの位置にあるか)を特定する。
パケットフロー識別部1704は、パケット解析部1703で得た情報とCPU処理部1710により設定されたフローテーブルに基づき、パケット中継装置1701でそのパケットがどのような処理をされるべきパケットかを特定する。すなわち、フロー識別を行う。例えば、パケットフィルタリングやQoSの適用するパケットを特定する。
パケットフィルタリング処理部1705は、パケットフロー識別部1704から得た情報を元に、不必要なパケットの廃棄を行う。
パケット中継処理部1706は、CPU処理部1710から得た情報から送信先を特定する処理や、パケットフロー識別部1704の識別結果からCPU処理部1710へパケットをコピー送信する判断をする等の処理を行う。
トラフィック管理処理部1707は、パケットフロー識別部1704の識別結果に対応してQoSを提供する等、優先制御および帯域制御を管理する。
パケット送信部1708は、パケットを回線に送信する。
パケットバッファ部1709は、送信回線が輻輳している場合、QoSの提供などのため、パケットを滞留させる。
CPU処理部1710は、ハード中継処理できないパケットのソフト中継処理および経路情報管理やフロー識別情報管理などのテーブル管理処理を行う。
フロー識別対象パターン登録削除部1712は、ユーザからの指示に基づき、パケットフロー識別部1704のフローテーブルの内容を更新する。
図18は、従来のパケット中継装置のパケットフロー識別部の詳細な図である。
パケットフロー識別部1704は、受信したパケット1801がどのようなパケットであるかを判別するためのテーブル(フローテーブル)1711を備えている。
フローテーブル1711は、CPU処理部1710により設定される。フローテーブル1711の項目としては、パケットと比較するためのフロー識別パターン、フロー識別パターンのドントケアビットを指定するマスクパターン、比較位置を示すオフセット情報、パケットの種別を示すパケット種別、および後の処理でどのような処理が行われるべきパケットかを識別するためのフローIDなどがある。
パケットフロー識別部1704は、フロー識別パターンと受信したパケットが一致するかどうか調べる。一致した場合は、そのフロー識別パターンに対応するフローIDをパケットに付加し、パケットフィルタリング処理部1705に出力する。
パケットフロー識別部1704以降の処理部においては、パケットに付されたフローIDに基づき、どのような処理を行うかを判断する。
上記のようなパケット中継装置においては、ユーザがフィルタリングやQoSの対象となるパケットのパターンをあらかじめCPU処理部1710からフローテーブル1711に登録していた。そして、パケットフィルタリング処理部1705やパケット中継処理部1706等でフローIDに対応した処理していた。
この場合、エントリ登録数の上限や、マスクパターンを用いた登録エントリの圧縮は、ユーザがパターンの登録時に静的に考慮可能である。
また、上記のようにフィルタリング等の対象とするパターンをあらかじめ登録できる場合の他に、ウィルスに感染したパソコンを持ち込んだ場合など、フィルタリング等の対象となるパターンをあらかじめ登録できない場合がある。
図19は、あらかじめ対象となるパターンを登録できない場合の従来のパケット中継装置のブロック図である。
図19のパケット中継装置は、図17のパケット中継装置に比べ、フロー識別対象パターン登録削除部1712の代わりにフロー識別対象パターン検出登録削除部1713を備える点が異なる。
図19のパケット中継装置では、CPU処理部1710がトラフィック管理処理部1707からパケット1714を受信し、該パケット1714をチェックする。そして該パケット1714が一定の条件を満たしている場合、例えば該パケット1714が怪しい動作をしている場合は、該パケット1714のパターンをフィルタリング対象として、パケットフロー識別部1704のフローテーブル1711に登録する。
このようにあらかじめパターンを登録できないパケット中継装置においては、パケットフロー識別部のフローテーブルのエントリが動的に追加登録または削除されていく。
特許文献1には、外部からのアクセスがあった際に、所定の設定に基づいてフィルタリングし、外部からの不正なアクセスを防止するネットワークアクセス制御方法および装置が記載されている。
特開2003−8662号公報
しかしながら、従来のパケット中継装置では、フィルタリング等の対象となるパターンをエントリとしてテーブルに動的に追加登録していく場合、エントリの圧縮を行っていないため、すぐにエントリ登録数の上限に達してしまうという問題があった。
本発明は上記問題を鑑みてなされたもので、エントリを動的に追加および削除していったときに、エントリの圧縮および伸長を行う方法および装置を提供することである。
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のエントリ圧縮伸長方法は、フロー識別の対象となるパケットのパターンが記述されたフローテーブルのエントリに基づきフロー識別を行うパケット中継装置におけるエントリ圧縮伸長方法において、新たに登録する新規パターンが前記エントリのフロー識別パターンに対し差分が1ビットであるインクリメンタルパターンであるか判定するステップと、前記新規パターンがインクリメンタルパターンであった場合、フロー識別において前記フロー識別パターンに対するドントケアビットの位置を示す前記エントリのマスクパターンを変更するステップと、前記新規パターンがインクリメンタルパターンでなかった場合、前記新規パターンを前記フローテーブルにエントリとして追加登録するステップと、を備えることを特徴とする。
また、本発明のエントリ圧縮伸長方法は、前記フローテーブルに登録されたエントリの数があらかじめ定められた値以上になったときに、前記登録されたエントリのうち、圧縮されているエントリを伸長するステップと、解除パターンを示すエントリおよび前記伸長したエントリのうち該解除パターンに対応するエントリを削除するステップと、残ったエントリをソートするステップと、ソートした順番に再登録を指示するステップと、をさらに備えることが望ましい。
また、本発明のエントリ圧縮伸長方法は、前記新規パターンを前記フローテーブルにエントリとして追加登録するステップにおいて、登録可能な残りのエントリ数を一定時間あたりのエントリの登録速度で除算するステップと、算出した値があらかじめ定められた条件を満たした場合、前記登録されたエントリのうち、圧縮されているエントリを伸長するステップと、前記伸長したエントリのうち、解除パターンを示すエントリおよび該解除パターンに対応するエントリを削除するステップと、残ったエントリをソートするステップと、ソートした順番に再登録を指示するステップと、をさらに備えることが望ましい。
また、本発明のエントリ圧縮伸長方法は、前記フローテーブルの前記エントリから特定のパターンを削除するときに、該パターンが圧縮されたエントリにある場合には、該パターンをフロー識別に用いないことを示すフラグを含むエントリを登録するステップと、をさらに備えることが望ましい。
また、本発明のエントリ圧縮伸長方法は、圧縮されたエントリに含まれるエントリ数が1になった場合に、該圧縮されているエントリを伸長するステップと、解除パターンを示すエントリおよび前記伸長したエントリのうち該解除パターンに対応するエントリを削除するステップとをさらに備えることが望ましい。
本発明によれば、フロー識別の対象となるパターンを大量に保持することが可能となる。
図1は、本発明の第1の実施に形態に係るパケット中継装置のブロック図である。
パケット中継装置101は、LANやWAN等のネットワーク間に配置され、パケットフィルタリングやQoSの提供等を行う。
パケット中継装置101は、パケット受信部102、パケット解析部103、パケット
フロー識別部104、パケットフィルタリング処理部105、パケット中継処理部106、トラフィック管理処理部107、パケット送信部108、パケットバッファ部109、およびCPU処理部110を備え、各構成部はバスにより接続される。
パケットフロー識別部104は、フローテーブル111を備える。フローテーブル111には、フロー識別の対象となるパケットが持つパターンが記述される。
CPU処理部110は、動的エントリ圧縮伸長部112およびフロー識別対象パターン検出登録削除部113を備える。
本発明の第1の実施の形態に係るパケット中継装置101の構成は、従来のパケット中継装置と比べて、CPU処理部110にさらに動的エントリ圧縮伸長部112を備える点が異なる。そして、フローテーブル111へのエントリの登録や削除は、動的エントリ圧縮伸長部112を介して行われるため、エントリの圧縮または伸長を行うことが出来る。
パケット受信部102は、ネットワークに接続された回線100からパケットを受信する。
パケット解析部103は、受信したパケットのパケットヘッダを解析し、パケット種別(どの情報がパケットのどの位置にあるか)を特定する。
パケットフロー識別部104は、パケット解析部103で得た情報とCPU処理部110によりフロー識別の対象となるパケットが持つパターンが記述されたパケットフロー識別部104内のフローテーブル111に基づき、パケット中継装置101でそのパケットがどのような処理をされるべきパケットかを特定する。例えば、パケットフィルタリングやQoSの適用可否を判断する。
パケットフィルタリング処理部105は、パケットフロー識別部104から得た情報を元に、不必要なパケットの廃棄を行う。
パケット中継処理部106は、CPU処理部110から得た経路情報から送信先を特定する処理や、パケットフロー識別部104の識別結果に基づいて、CPU処理部110へパケットをコピー送信するか否かの判断をする等の処理を行う。
トラフィック管理処理部107は、パケットフロー識別部104の識別結果に対応したQoSを提供する等、優先制御および帯域制御を管理する。また、パケットをフロー識別対象パターン検出登録削除部にコピー送信する。
パケット送信部108は、パケットを回線に送信する。
パケットバッファ部109は、送信回線が輻輳している場合、QoSの提供などのため、パケットを滞留させる。
CPU処理部110は、ハード中継処理できないパケットのソフト中継処理、および経路情報管理やフロー識別情報管理などのテーブル管理処理を行う。
動的エントリ圧縮伸長部112は、フローテーブルのエントリの圧縮、伸長、登録、および削除を行う。
フロー識別対象パターン検出登録削除部113は、トラフィック管理処理部107から受信したパケットをチェックして、特定のパターンをフィルタリング等の対象とするか判断し、動的エントリ圧縮伸長部に特定のパターンの登録または削除を指示する。
図2は、CPU処理部110のブロック図である。
フロー識別対象パターン検出登録削除部113は、セキュリティ処理部201を備え、
動的エントリ圧縮伸長部112は、パターン登録処理部202、平均エントリ登録速度測定部203、登録エントリ数管理部204、エントリ削除処理部205、削除タイマ値更新部206、エントリ圧縮伸長処理部207、ミラーテーブル管理部208を備える。また、パターン登録処理部202は、インクリメンタルパターン判定部209を備える。
セキュリティ処理部201は、受信したパケットに対し種々のセキュリティチェックを実施し、特定のパターンを持つパケットのフロー識別(エントリ登録)およびフロー識別解除(エントリ削除)を判断する。
パターン登録処理部202およびインクリメンタルパターン判定部209は、セキュリティ処理部301から得た特定のパターンについて、フローテーブル111に登録済みのエントリのフロー識別パターンに対しインクリメンタルパターンであるかを判定し、インクリメンタルパターンであれば該特定のパターンの圧縮登録指示をエントリ圧縮伸長処理部207に対して行い、そうでなければ通常の登録指示を行う。インクリメンタルパターンとは、あるパターンに対し、差分が1ビットであるパターンである。
圧縮登録指示をした場合は、削除タイマ値更新部206に対し、削除タイマ値の更新を指示する。
通常の登録指示をした場合は、登録エントリに対し削除タイマ値を新規に設定し、さらに平均エントリ登録速度測定部203および登録エントリ数管理部204に対し、エントリを登録したことを通知する。
平均エントリ登録速度測定部203は、単位時間あたりの登録エントリ数を管理し、残エントリ数÷平均エントリ登録速度の値が、指定された閾値未満となった場合に、テーブル内のエントリを圧縮する指示をエントリ圧縮伸長処理部207に出す。なお、残エントリ数はフローテーブルが保持可能なエントリ数から現在登録されているエントリ数を引いたものであり、平均エントリ登録速度は、単位時間あたりのフローテーブルへのエントリの登録数である。
登録エントリ数管理部204は、登録エントリ数を管理し、登録エントリ数が指定された閾値以上となった場合に、テーブル内のエントリを圧縮する指示をエントリ圧縮伸長処理部207に出す。また、フロー識別の対象としないことを示す解除パターンについても圧縮を行う。
エントリ削除処理部205は、セキュリティ処理部201および削除タイマ値更新部206から指定されたエントリに対する削除を指示する。また、登録エントリ数管理部204に対しエントリを削除したことを通知する。
削除タイマ値更新部206は、エントリの登録時に指定された初期値にタイマを設定し、タイマが更新されることなく、タイマが満了した場合にエントリ削除処理部205へ該当する登録エントリの削除を指示する。削除タイマ値の初期値への更新は、インクリメンタルパターンの圧縮登録時や、エントリ圧縮時に実施される。また削除タイマ値により削除がされないようにすることも可能である。
エントリ圧縮伸長処理部207は、インクリメンタルパターンの登録指示をパターン登録処理部202から受けた場合、登録エントリ数管理部204または平均エントリ登録速度測定部203からエントリ圧縮指示を受けた場合に、フローテーブル111と同様の内容をもつミラーテーブルを用いて圧縮エントリを作成し、圧縮エントリの登録および圧縮により不要になったエントリの削除を実施する。
またエントリ圧縮伸長処理部207は、エントリ削除処理部205からの削除指示を受けたときに、圧縮エントリ内のパターンの削除の場合には、エントリの項目の解除フラグが1であるエントリを追加するが、解除パターン数が圧縮されているエントリ数−1となる場合には、圧縮エントリを伸長し、解除フラグが1である解除パターン(→定義なし)および解除パターンに対応するエントリを削除する。解除パターンに対応するエントリとは、解除パターンと同じフロー識別パターンを持つエントリである。
ミラーテーブル管理部208は、パケットフロー識別部104にあるフローテーブルと同じ内容のミラーテーブルを持つ。
図3は、本発明の第1の実施の形態に係るフローテーブルの例を示す図である。
上述の通り、フローテーブル111はパケットフロー識別部104内にあり、パケットフロー識別部104はフローテーブル111とパケット解析部103からの情報により、フロー識別を行う。
フローテーブルの項目としては、フロー識別パターン、マスクパターン、比較位置(オフセット)情報、パケット種別、フローID、圧縮エントリ数、解除パターン数、削除タイマ値、解除フラグがある。
フロー識別パターンには、通常、特定の処理を行いたいパケットが有するパターンが記載される。フローテーブル111においては、フロー識別パターンとしてMACアドレスが記載されており、1行目のエントリ(第1エントリ)のフロー識別パターンとして00000e000001、2行目のエントリ(第2エントリ)のフロー識別パターンとして00000e000002が記載されている。尚、フローテーブル401においては、それぞれの値は16進数で表示されている。以下の説明において、説明を簡単にするため、00000e000001および00000e000002の上位11桁を省略し、それぞれ1および2と表示することもある。そして1および2を2進数に変換し、それぞれ0001および0010と表示することもある。
マスクパターンには、フロー識別パターンに対してドントケアビット(don't care bit)の位置を指定するパターンが記載される。すなわち任意の論理値をとることが可能なビットの位置が指定される。
本発明の第1の実施の形態においては、マスクパターンのうち0の位置のビットがドントケアビットとなる。フローテーブル111においては、1行目のエントリ(第1エントリ)のマスクパターンとしてffffffffffff、2行目のエントリ(第2エントリ)のマスクパターンとしてfffffffffffeが記載されている。fを2進数にすると、1111であるためドントケアビットの指定はない。そこで、説明を簡単にするため、上位11桁を省略すると、第1エントリのマスクパターンはfであり、第2エントリのマスクパターンはeである。そしてfおよびeを2進数で表示すると、それぞれ1111および1110となる。
第1エントリのマスクパターンはすべて1のため、ドントケアビットの指定はない。
一方、第2エントリのマスクパターンはe、すなわち1110であるため、最下位ビットがドントケアビットになる。第2エントリのフロー識別パターンは2、すなわち0010であるため、最下位ビットがドントケアビットであることを考慮すると、0010および0011がフロー識別パターンに登録されているのと同様の状態となり、これら2つのパターンがフロー識別の対象となる。すなわち、フロー識別パターンが0010と0011のエントリが圧縮されている。このように、マスクパターンを使用することによって、複数のエントリを1つのエントリに圧縮することができ、メモリを節約することが出来る。
比較位置(オフセット)情報には、フロー識別パターンと比較する受信パケットの比較
位置が記載される。図3のフローテーブル111においては、比較位置(オフセット)情報として0が記載されている。これはパケットの先頭と比較することを示している。すなわち、イーサネットフレームの構造に基づくパケットの場合、宛先のMACアドレスと比較することを意味する。例えば、比較位置(オフセット)情報として6が記載されていた場合は、フロー識別パターンとパケットの送信元MACアドレスとを比較することになる。
パケット種別には、パケットの種別が記載される。フローテーブル111においては、TAG無し、IPが記載されている。実施の形態においては、フロー識別パターンと受信パケットの比較位置(オフセット)情報の位置と比較するが、例えばMACアドレスではなく、IPアドレスと比較したい場合、TAGの有無によって比較位置が4バイトずれてしまうという問題がある。そこで、TAGの有無情報、プロトコル情報を検出条件に加えることで、正しく検出できるようにしている。
フローIDには、パケット中継装置においてパケットを識別するためのIDが記載される。フローIDは、後段の処理においてパケットの種類を識別するためにパケットに付加される情報である。
圧縮エントリ数には、そのエントリに圧縮されているエントリの数が記載される。フローテーブル111において、第1エントリの圧縮エントリ数は0である。これは、圧縮されているエントリが無いためである。圧縮されているエントリがないことを示すのに0の代わりに1を用いても良い。
上記の通り、第2エントリにはフロー識別パターンが0010と0011の2つのエントリが圧縮されて登録されている。従って、第2エントリの圧縮エントリ数は2となる。
解除パターン数には、圧縮されて登録されているエントリのうち、解除されたパターンの数が記載される。解除されたパターン(解除パターン)とは、フロー識別の対象としないパターンである。
削除タイマ値には、エントリが削除されるまでのタイマ値が記載される。エントリの登録後、一定時間経過すると、通常、そのエントリのフロー識別パターンを持つパケットは、送信されて来なくなるため、そのエントリは不要となる。そのため、本発明の第2の実施の形態においては、削除タイマ値を設定し、タイマ値が満了したら、そのタイマ値が設定されたエントリを削除する。
フローテーブル111において、第1エントリの削除タイマ値はfffffff0、第2エントリの削除タイマ値はffffffffとなっている。
本発明の第1の実施の形態においては、削除タイマ値の設定時にffffffffを設定し、タイマ値を減算していく。例えば、タイマ値を減算していき00000001となった場合に、タイマ満了と判断する。また、タイマ値に00000000を設定した場合には、タイマ値によるエントリの削除を行わないようにしても良い。
解除フラグには、0または1が記載される。これは、そのエントリがフロー識別の対象であるかそうでないかを判断するためのものである。本発明の第1の実施の形態においては、フローテーブルの上部に登録されたエントリが優先されるため、解除フラグが1のエントリが上部にあれば、該エントリのフロー識別パターンと同一のフロー識別パターンを持つエントリが下部にあっても、そのフロー識別パターンはフロー識別の対象とならない。
図4は、本発明の第1の実施の形態に係るパケット中継装置の処理の流れを示すフロー
チャートである。
パケット中継装置が1パケットを受信した場合の動作を述べる。
ステップS401において、パケット受信部102はパケットを受信する。
ステップS402において、パケット解析部103は受信したパケットのパケットヘッダを解析し、パケット種別(どの情報がパケットのどの位置にあるか)を特定する。
ステップS403において、パケットフロー識別部104はパケット解析部103で得た情報とCPU処理部110から得た情報から、パケット中継装置101でそのパケットがどのような処理をされるべきパケットかを特定する。例えば、パケットフィルタリングやQoS(Quality of Service) の適用可否を判断する。尚、パケットフロー識別部104の処理の詳細については後述する。
ステップS404において、パケットフィルタリング処理部105は、パケットフロー識別部104から得た情報を元にフィルタリング処理、すなわち不必要なパケットの廃棄を行う。尚、パケットフローフィルタリング処理部105の処理の詳細については後述する。
ステップS405において、パケット中継処理部106は、CPU処理部110から得た情報から送信先を特定する処理や、パケットフロー識別部104の識別結果からCPU処理部110へ、パケットをコピー送信する判断をする等の処理を行う。
ステップS406において、トラフィック管理処理部107は、パケットフロー識別部104の識別結果に対応したQoSを提供する等、優先制御および帯域制御を管理する。また、パケット送信部108およびCPU処理部110へパケットを送信する。尚、CPU処理部110におけるパケットの処理については後述する。
ステップS407において、パケット送信部108は、パケットを送信する。
次にステップS403におけるパケットフロー識別部104の処理の詳細について説明する。
図5は、本発明の第1の実施の形態に係るパケット中継装置のパケットフロー識別部の処理の流れを示すフローチャートである。
ステップS501において、パケット解析部103からパケットおよび解析情報を受信する。
ステップS502において、パケット解析部103で解析されたパケット種別ごとにCPU処理部110から指定されたフロー識別パターンに一致するかどうかを判定する。
ステップS503において、一致する場合はステップ504に進み、一致しない場合は終了する。
ステップS504において、一致したエントリのフローIDを装置内情報に追加し、パケットフィルタリング処理部105に通知する。フローIDは以降、フィルタリング処理や帯域制御、優先制御処理のためのパケット識別に用いられる。
次にステップS404におけるパケットフィルタリング処理部105の処理の詳細について説明する。
図6は、本発明の第1の実施の形態に係るパケット中継装置のパケットフィルタリング処理部の処理の流れを示すフローチャートである。
ステップS601において、パケットフィルタリグ処理部105は、パケットフロー識別部104からパケットおよび装置内情報(フローIDを含む)を受信する。
ステップS602において、パケットに付されたフローIDを参照して該パケットが廃棄対象か判定し、廃棄対象だった場合はステップS603に進み、そうでない場合は終了する。
ステップS603において、パケットを廃棄する。
次にステップS406において送信されたパケットを受信したCPU処理部110の処理について説明する。
図7は、本発明の第1の実施の形態に係るパケット中継装置のCPU処理部の処理の流れを示すフローチャートである。
ステップS701において、CPU処理部110はトラフィック管理処理部107から送信されたパケットを受信する。
ステップS702において、セキュリティ処理部201は、受信したパケットに対して種々のセキュリティチェックを行い、特定のパターンを持つパケットに対し、フィルタリングの対象とすべきパケットかどうかを判定する。セキュリティチェックの方法としては、パケットが使用するポート番号等から判断するなど任意の方法が用いられ、従来より様々な方法が知られている。
ステップS703において、フィルタリング対象となるパケットが持つ特定のパターンの登録削除処理を行う。
次にステップS703の登録削除処理の詳細について説明する。
図8は、登録削除処理の詳細なフローチャートである。
ステップS801において、登録処理の場合はステップS802に進み、そうでない場合、すなわち削除処理の場合はステップS815に進む。
ステップS802において、登録するパターン(新規パターン)がインクリメンタルパターンであるかを判定する。インクリメンタルパターンであるかの判定処理については後述する。
ステップS803において、新規パターンがインクリメンタルパターンである場合には、ステップS804に進み、そうでない場合にはステップS807に進む。
ステップS804において、エントリの圧縮登録処理を行う。尚、エントリの圧縮登録処理についての詳細は後述する。
ステップS805において、削除タイマ値更新部206はエントリの削除タイマ値を更新する。
ステップS806において、エントリのマスクパターンより圧縮されているエントリ数を求め、圧縮エントリ数を更新する。
ステップS807において、通常の登録処理を行う。すなわち、フローテーブルにフロー識別パターンとして新規パターンを持つエントリを追加する。
ステップS808において、削除タイマ値更新部206は登録したエントリの削除タイマ値を設定する。
ステップS809において、登録エントリ数管理部204は登録エントリ数を現在フローテーブルに登録されているエントリ数に更新する。
ステップS810において、登録エントリ数管理部204は、エントリの圧縮を行うかどうかを判定する。具体的には、登録エントリ数管理2304は、登録エントリ数があらかじめ定められた値(登録数閾値)以上の場合は、圧縮登録を行うためステップS813に進み、そうでない場合はステップS811に進む。
図9は、圧縮処理判定の例を説明するための図である。
図9において、例えば、メモリテーブル901は登録可能なエントリの総数が20であるとする。メモリテーブル901において、斜線部分は既にエントリが登録されていることを示し、白色部分はエントリが登録されていないことを示す。ここでは、9個のエントリが登録されている。また、登録数閾値は10とする。
この場合、新たなエントリが登録されると、エントリの登録数は10となり、登録数閾値以上となるため、登録エントリ数管理部204は登録エントリの圧縮を行う(ステップS813に進む)と判断する。このように、一定数以上のエントリが登録されると登録エントリの圧縮処理を行う。
ステップS811において、平均エントリ登録速度測定部203は、単位時間あたりのエントリの登録数(平均エントリ登録速度)を計測する。
ステップS812において、平均エントリ登録速度測定部203は、エントリの圧縮を行うかどうかを判定する。具体的には、平均エントリ登録速度測定部203は、残エントリ数(総エントリ数−現在登録されているエントリ数)を平均エントリ登録速度で割った値(登録余裕度)を求め、あらかじめ定められた値(閾値)と比較する。
登録余裕度が、閾値未満の場合はステップS813に進み、閾値以上の場合は終了する。
例えば、閾値は5とし、平均エントリ登録速度は1秒あたりの登録数とする。そして、登録エントリがない状態で、1秒あたり4エントリが登録されると、登録余裕度は、残エントリ数÷平均エントリ登録速度=16÷4=4となる。よって、閾値未満であるので、平均エントリ登録速度測定部203は登録エントリの圧縮を行う(ステップS813に進む)と判断する。また、登録エントリがない状態で、1秒あたり1エントリの速度で4エントリが登録されると、登録余裕度は、16÷1=16となる。よって、閾値以上であるので、平均エントリ登録速度測定部203は登録エントリの圧縮を行わないと判断する。このように、残エントリ数に対し、単位時間あたりの登録エントリ数が増加した場合に、登録エントリの圧縮処理を行う。
ステップS813において、ミラーテーブル管理部208に保持されているエントリの伸長を行う。尚、エントリの伸長処理の詳細については後述する。
ステップS814において、ステップS813で伸長したエントリのソートを実施する。ソートは、オフセット情報、パケット種別、フローID、および解除フラグが共通の値を持つエントリ同士で行われ、フロー識別パターンが昇順にソートされる。そしてソートされた順番で、エントリの登録依頼処理を行い、ステップS802に進む。圧縮エントリの伸長やソートは、CPU処理部のミラーテーブル管理部208のテーブルを用いて行われる。再登録後、ミラーテーブル管理部208のテーブルの内容がパケットフロー識別部104のフローテーブルに書き込まれる。
ステップS815において、要求された識別フローパターンを含むエントリの削除処理を行う。尚、削除処理の詳細については後述する。
次にステップS802のインクリメンタルパターン判定処理について説明する。
図10は、インクリメンタルパターン判定処理の詳細なフローチャートである。
ステップS1001において、フローテーブルに登録する新規パターンと既に登録されている登録済みエントリのフロー識別パターンとを比較する。ここで、ステップS802から来た処理の場合は、最近の登録エントリを比較対象とし、ステップS814から来た処理に場合は、登録されている全てのエントリを比較対象とする。
ステップS1002において、両者のマスクパターンが一致していればステップS1003に進み、一致していなければステップS1005に進む。また、新規パターンには、ドントケアビットはないため、新規パターンのマスクパターンは全て1である。従って、登録済みエントリのマスクパターンが全て1であるかどうかで判断しても良い。すなわち登録済みエントリのマスクパターンが全て1の場合はステップS1003に進み、そうでない場合はステップS1005に進む。
ステップS1003において、新規パターンと登録済みエントリのフロー識別パターンとの差分が1ビットである場合、ステップS1004に進み、そうでない場合ステップS1005に進む。
ステップS1004において、新規パターンはインクリメンタルパターンであると判断される。
ステップS1005において、新規パターンは非インクリメンタルパターンであると判断される。
例として、新規パターン0001を登録する場合を説明する。新規パターンには、ドントケアビットに指定するビットがないので、そのマスクパターンは1111である。登録済みのエントリのフロー識別パターンおよびマスクパターンをそれぞれ0000および1111とする。以下の説明において、簡単のためにフロー識別パターンとマスクパターンをまとめて、フロー識別パターン(マスクパターン)と表現する。
ステップS1002において、両者のマスクパターンを比較すると、共に1111である。従ってステップS1003に進む。
ステップS1003において、新規パターン0001と登録済みエントリのフロー識別パターン0000を比較すると、下位1桁目のビットのみが異なる。すなわち、差分が1ビット(1ビット変化)である。従って、ステップS1004進み、新規パターン0001はインクリメンタルパターンであると判断される。
次に例として、新規パターン0101を登録する場合を説明する。新規パターンには、ドントケアビットに指定するビットがないので、そのマスクパターンは1111である。登録済みのエントリのフロー識別パターンおよびマスクパターンをそれぞれ0000および1111とする。
ステップS1002において、両者のマスクパターンを比較すると、共に1111である。従ってステップS1003に進む。
ステップS1003において、新規パターン0101と登録済みエントリのフロー識別パターン0000を比較すると、下位1桁目と3桁目のビットが異なる。すなわち、差分が2ビット(2ビット変化)である。従って、ステップS1005進み、新規パターン0011は非インクリメンタルパターンであると判断される。
次にステップS803の圧縮登録処理について説明する。
図11は、圧縮登録処理の詳細なフローチャートである。
ステップS1101において、ステップS1001で比較対象とした登録済みエントリのフロー識別パターンと登録要求されたパターンとの差分の位置のビットをドントケアビ
ットに指定するように、該登録済みエントリのマスクパターンを変更する。
ステップS1102において、マスクパターンを変更したエントリ、すなわち圧縮したエントリのフロー識別情報と1つ前のエントリのフロー識別情報とを比較する。
ステップS1103において、圧縮したエントリのマスクパターンと1つ前のエントリのマスクパターンを比較する。それらが一致していればステップ1104に進み、一致していなければ終了する。
ステップS1104において、圧縮したエントリの識別パターンと1つ前のエントリのフロー識別情報との差分が1ビットであればステップ1105に進み、そうでなければ終了する。
S1105ステップにおいて、差分の位置のビットをドントケアビットに指定するように1つ前のエントリのマスクパターンを更新する。
図12は、圧縮エントリ伸長処理の詳細なフローチャートである。
ステップS1201において、伸長するエントリのマスクパターンの0の位置を検出する。
ステップS1202において、フロー識別パターンのマスクパターンの0の位置に対応する位置(すなわち、ドントケアビットの位置)を「2の“マスクパターンの0の個数乗”」個の伸長パターン(00…0から11…1まで、すなわちマスクパターンの0の個数桁のパターンにおける0と1の全ての組み合せ)に伸長する。
例として、フロー識別パターンが00000e000004、マスクパターンがfffffffffffcのエントリを伸長する場合を説明する。
簡単のため、フロー識別パターンおよびマスクパターンの上位11桁の表示を省略して説明する。フロー識別パターンおよびマスクパターンは4およびcなので、それぞれ2進数で表すと0100と1100となる。
ステップS1201において、マスクパターンの0の位置を検出すると、マスクパターンは1100なので下位1桁目と2桁目が該当する。
ステップS1202において、フロー識別パターンのドントケアビットの位置を2の0の個数乗個の伸長パターンに伸長する。すなわち、フロー識別パターン0100の下位1桁目と2桁目のビットを00、01、10、11に伸長する。これによりフロー識別パターンは、0100、0101、0110、0111の4つのパターンに伸長される。すなわち16進数で全ての桁を表示すると、フロー識別パターンが00000e000004、マスクパターンがfffffffffffcのエントリはフロー識別パターンが00000e000004、00000e000005、00000e000006、00000e000007の4つのエントリに伸長される。尚、伸長されたエントリのマスクパターンはffffffffffffである。
図13は、削除処理の詳細なフローチャートである。
ステップS1301において、フロー識別に用いないパターンである解除パターンが圧縮エントリ内にあるか判定し、圧縮エントリ内にある場合はステップS1302に進み、圧縮されたエントリ内に無い場合は、ステップS1306に進む。
ステップS1302において、解除パターンをフローテーブルに追加する。このとき、解除パターンは、フロー識別に用いるパターンを含むエントリの上部に追加される。
ステップS1303において、解除パターンを含んでいたエントリの解除パターン数を更新する。具体的には解除パターン数に1を加える。
ステップS1304において、解除パターンを更新したエントリの圧縮エントリ数から解除パターン数を引いた値を求める。その値が1より大きいときは、ステップS1305に進み、1以下のときはステップS1307に進む。
ステップS1305において、登録エントリ数管理部は登録エントリ数を更新する。
ステップS1306において、フローテーブルに登録されているエントリから、解除パターンに対応するエントリを削除する。
ステップS1307において、圧縮エントリの伸長処理を行う。
ステップS1308において、解除フラグが1のエントリと該エントリに対応するエントリ(すなわち、解除フラグが0のエントリで各種情報(フロー識別パターンや比較位置(オフセット)情報など)と解除フラグが1のエントリの各種情報とが一致するエントリ)を削除する。
ステップS1309において、伸長したエントリの解除パターン数を更新する。具体的には、解除パターン数を0にする。
次にタイマ満了によるエントリの削除について説明する。
図14は、削除タイマ値更新部の一部の処理の流れを示すフローチャートである。
ステップS1401において、削除タイマ値更新部206は、各エントリの削除タイマ値を減算する。
ステップS1402のおいて、タイマが満了したかを判定する。すなわち、削除タイマ値が所定の値になったかを判定する。例えば、削除タイマ値を減算していき、削除タイマ値が00000001になったら満了したと判定する。タイマ満了と判定した場合はステップS1403に進み、そうでない場合はステップS1401に戻る。
ステップS1403において、削除タイマ値更新部206は、タイマが満了したエントリをフローテーブルから削除するようにエントリ削除処理部205に指示を行う。
次に実際に登録、削除、圧縮、および伸長を行った場合の例について説明する。
図15A、B、およびCは、フローテーブルの例を示す図である。
現在、フローテーブル1501には、フロー識別バターン、マスクパターン、比較位置(オフセット)情報、パケット種別、フローID、圧縮エントリ数、解除パターン数、削除タイマ値、解除フラグがそれぞれ、00000e000001、ffffffffffff、0、TAG無し,IP、3、0、0、ffffffffffff、0のエントリが登録されている。ここでは、MAC DA(Destination Address)が登録されている例を示す。フローID=3は、装置内で廃棄対象となるパケットであることを示す。
ここで新たにフロー識別パターンが00000e000002と00000e000003であるパターンを登録すると、フローテーブル1502のようになる。
00000e000002を登録する時、00000e000002は00000e000001に対して圧縮できるか、すなわちインクリメンタルパターンであるか判定される(ステップS802)。
第1行目のエントリのフロー識別パターン00000e000001と第2行目のエントリのフロー識別パターン00000e000002およびそれぞれのマスクパターンを比較する(ステップS1001)。
両者のマスクパターンは共にffffffffffffなので一致している(ステップS1002)
以下の説明のおいて、各フロー識別パターンの上位11桁は共通しているため、省略し
て表示することもある。第1行目および第2行目のエントリのフロー識別パターン1および2をそれぞれ2進数で表すと、0001および0010となる。これらを比較すると、下位1桁目と2桁目のビットが異なっている。従って、差分は2ビットである。よって、非インクリメンタルパターンであると判定され(ステップS1005)、通常の登録処理が行われる(ステップS807)。
また、00000e000003を登録する時、00000e000003は00000e000002に対して圧縮できるか、すなわちインクリメンタルパターンであるか判定される(ステップS802)。
同様にインクリメンタルパターン判定処理が行われる。2および3をそれぞれ2進数で表すと、0010および0011となるため、下位1桁目のビットのみが異なる。従って、差分は1ビットであり、インクリメンタルパターンであると判定される(ステップS10004)。
00000e000003はインクリメンタルパターンであるため、圧縮登録処理(ステップS804)が行われ、フローテーブル1503に示されるように圧縮登録される。すなわち、第2行目のエントリのマスクパターンがfffffffffffe、圧縮エントリ数が2に変更される。また、削除タイマ値も新たに設定される。
次に00000e000004、00000e000005、00000e000006、および00000e000007を登録する場合、同様にインクリメンタルパターン判定処理や圧縮登録処理等が行われ、フローテーブル1504のようになる。
次にフロー識別パターンが00000e000004および00000e000005のエントリを削除する場合を説明する。これらの識別パターンが圧縮エントリ内にあるか判定すると(ステップS1301)、フローテーブル1504の3行目のエントリ00000e000004(fffffffffffc)内にあるため、解除パターンとして00000e000004および00000e000005がフローテーブルに登録される(ステップS1302)。すなわち、これらはフローテーブルの上部に登録され、解除フラグは1となっている。そして、3行目のエントリの解除パターン数の更新(ステップS1303)や圧縮エントリ数の更新(ステップS1305)が行われ、フローテーブル1505のようになる。
さらにフローパターンが00000e000007のエントリを削除すると、上記と同様の処理が行われ、解除パターンとして00000e000007がフローテーブルに登録され(ステップS1302)、テーブル1506のようになる。
そして、圧縮エントリ数−解除パターン数を計算すると(ステップS1304)、4−3=1となるため、圧縮エントリ伸長処理(ステップS1307)が行われ、フローテーブル1507のようになる。さらに、解除パターン(第1行目から第3行目までのエントリ)の削除および該解除パターンに対応するエントリ(第6行目、第7行目、および第9行目のエントリ)の削除が行われる(ステップ1308)。解除パターン数の更新(ステップ1309)が行われた後、フローテーブル1508のようになる。
次にフロー識別パターンが00000e000000であるパターンを登録すると、通常登録処理(ステップS807)され、フローテーブル1509にようになる。この時、圧縮処理判定(ステップS810またはS812)において、圧縮処理を行うと判定されると、圧縮エントリの伸長処理(ステップS813)が行われ、昇順にソートされ(ステップS814)、フローテーブル1510のようになる。
そして、ソートされたエントリを昇順に再度、登録処理を行う。すると、フローテーブルの第1行から第4行までのエントリが圧縮され、フローテーブル1511に示されるよ
うに1つのエントリに圧縮される。
このように、動的にエントリを追加や削除をした場合にも、エントリの圧縮や伸長を動的に行うことにより、多くのパターンを登録することが出来る。
図16は、本発明の第2の実施に形態に係るパケット中継装置のブロック図である。
第2の実施に形態に係るパケット中継装置101は、第1の実施に形態に係るパケット中継装置と同様にパケット受信部102、パケット解析部103、パケットフロー識別部104、パケットフィルタリング処理部105、パケット中継処理部106、トラフィック管理処理部107、パケット送信部108、パケットバッファ部109、およびCPU処理部110を備え、各構成部はバスにより接続される。
パケットフロー識別部104は、フローテーブル111を備える。
CPU処理部110は、動的エントリ圧縮伸長部112およびフロー識別対象パターン検出登録削除部113を備える。
第2の実施に形態に係るパケット中継装置101の構成は、パケットフィルタリング処理部105がフィルタリングテーブル114を備え、パケットフィルタリング処理部105が動的エントリ圧縮伸長部112と接続している点が第1の実施の形態に係るパケット中継装置と異なる。
フィルタリングテーブル114には、フローテーブル111と同様にパケットフィルタリング等の対象となるパケットのパターンが記述されている。また、動的エントリ圧縮伸長部112により、フィルタリングテーブル114のエントリの登録、削除、圧縮、および伸長が行われる。そして、パケットフィルタリング処理部105においても、フィルタリングテーブル114のエントリに基づき、どのような処理をされるべきパケットかを特定する。
このようにパケットフロー識別部104およびパケットフィルタリング処理部105の両方でパケットの特定を行うことにより、二段階のフィルタリング処理が可能となる。
以上説明したことを概観すれば本発明は以下のような構成を備えるものである。
(付記1)フロー識別の対象となるパケットのパターンが記述されたフローテーブルのエントリに基づきフロー識別を行うパケット中継装置におけるエントリ圧縮伸長方法において、
前記フローテーブルに新たに登録する新規パターンが前記エントリのフロー識別パターンに対し差分が1ビットであるインクリメンタルパターンであるか判定するステップと、
前期新規パターンがインクリメンタルパターンであった場合、フロー識別において前記フロー識別パターンに対するドントケアビットの位置を示す前記エントリのマスクパターンを変更するステップと、
前記新規パターンがインクリメンタルパターンでなかった場合、前記新規パターンを前記フローテーブルにエントリとして追加登録するステップと、
を備えるエントリ圧縮伸長方法。
(付記2)前記フローテーブルに登録されたエントリの数があらかじめ定められた値以上になったときに、
前記登録されたエントリのうち、圧縮されているエントリを伸長するステップと、
解除パターンを示すエントリおよび前記伸長したエントリのうち該解除パターンに対応するエントリを削除するステップと、
残ったエントリをソートするステップと、
ソートした順番に再登録を指示するステップと、
をさらに備えることを特徴とする付記1記載のエントリ圧縮伸長方法。
(付記3)前記新規パターンを前記フローテーブルにエントリとして追加登録するステップにおいて、
登録可能な残りのエントリ数を一定時間あたりのエントリの登録速度で除算するステップと、
除算により算出した値があらかじめ定められた条件を満たした場合、
前記登録されたエントリのうち、圧縮されているエントリを伸長するステップと、
解除パターンを示すエントリおよび前記伸長したエントリのうち該解除パターンに対応するエントリを削除するステップと、
残ったエントリをソートするステップと、
ソートした順番に再登録を指示するステップと、
をさらに備えることを特徴とする請求項1記載のエントリ圧縮伸長方法。
(付記4)前記フローテーブルの前記エントリから特定のパターンを削除するときに、
該パターンが圧縮されたエントリにある場合には、該パターンをフロー識別に用いないことを示すフラグを含むエントリを登録するステップと、
をさらに備えることを特徴とする付記1乃至3記載のいずれか1項に記載のエントリ圧縮方法。
(付記5)
圧縮されたエントリに含まれるエントリ数が1になった場合に、
該圧縮されているエントリを伸長するステップと、
解除パターンを示すエントリおよび前記伸長したエントリのうち該解除パターンに対応するエントリを削除するステップと、
をさらに備えることを特徴とする付記4記載のエントリ圧縮伸長方法。
(付記6)
エントリが登録されている時間を計測し、前記登録されている時間があらかじめ定められた値以上になった場合に該エントリを削除するステップ、
をさらに備えることを特徴とする付記1乃至5記載のいずれか1項に記載のエントリ圧縮方法。
(付記7)フロー識別の対象となるパケットのパターンが記述されたフローテーブルのエントリに基づきフロー識別を行うパケット中継装置において、
新規パターンを前記フローテーブルに登録する時に前記新規パターンが前記エントリのフロー識別パターンに対し差分が1ビットであるインクリメンタルパターンであるかどうか判定するインクリメンタルパターン判定手段と、
インクリメンタルパターンであると判定された場合に、前記フローテーブルのエントリに対し圧縮を行うエントリ圧縮伸長手段と、
を備えることを特徴とするパケット中継装置。
(付記8)前記フローテーブルに登録されているエントリ数を管理する登録エントリ数管理手段をさらに備え、
前記登録エントリ数管理手段は、登録されているエントリ数があらかじめ定められた値以上になったときに、前記エントリの圧縮指示を行うことを特徴とする付記7記載のパケット中継装置。
(付記9)前記フローテーブルに登録されるエントリの単位時間あたりの登録速度を測定する平均エントリ登録速度測定手段をさらに備え、
前記平均エントリ登録速度測定手段は、登録可能な残りのエントリ数を前記単位時間あたりの登録速度
で除算し、その値に基づきエントリの圧縮を指示することを特徴とする請求子7または8記載のパケット中継装置。
(請求項10)前記エントリ圧縮伸長手段は、エントリの圧縮エントリ数が1の場合に、該エントリを伸長し、解除パターンを示すエントリおよび前記伸長したエントリのうち該解除パターンに対応するエントリを削除すことを特徴とする付記7乃至9のいずれか1項
に記載のパケット中継装置。
(請求項11)
エントリの登録されている時間を測定する削除タイマ値更新手段をさらに備え、
前記削除タイマ値更新部は、エントリの登録されている時間が一定時間以上になった場合に、該エントリの削除を指示することを特徴とする付記7乃至10のいずれか1項に記載のパケット中継装置。
本発明の第1の実施の形態に係るパケット中継装置のブロック図である。 CPU処理部のブロック図である。 本発明の第1の実施の形態に係るフローテーブルの例を示す図である。 本発明の第1の実施の形態に係るパケット中継装置の処理の流れを示すフローチャートである。 本発明の第1の実施の形態に係るパケット中継装置のパケットフロー識別部の処理の流れを示すフローチャートである。 本発明の第1の実施の形態に係るパケット中継装置のパケットフィルタリング処理部の処理の流れを示すフローチャートである。 本発明の第1の実施の形態に係るパケット中継装置のCPU処理部の処理の流れを示すフローチャートである。 登録削除処理の詳細なフローチャートである。 圧縮処理判定の例を説明するための図である。 インクリメンタルパターン判定処理の詳細なフローチャートである。 圧縮登録処理の詳細なフローチャートである。 圧縮エントリ伸長処理の詳細なフローチャートである。 削除処理の詳細なフローチャートである。 削除タイマ更新部の処理の一部の流れを示すフローチャートである。 フローテーブルの例を示す図。 フローテーブルの例を示す図。 フローテーブルの例を示す図。 本発明の第2の実施の形態に係るパケット中継装置のブロック図である。 従来のパケット中継装置のブロック図である。 従来のパケット中継装置のパケットフロー識別部の詳細な図である。 従来のパケット中継装置のブロック図である。
符号の説明
100 回線
101 パケット中継装置
102 パケット受信部
103 パケット解析部
104 パケットフロー識別部
105 パケットフィルタリング処理部
106 パケットバッファ部
107 パケット中継処理部
108 パケット送信部
109 トラフィック管理処理部
110 CPU処理部
111 フローテーブル
112 動的エントリ圧縮伸長部
113 フロー識別対象検出登録削除部
114 フィルタリングテーブル
201 セキュリティ処理部
202 パターン登録処理部
203 平均エントリ登録速度測定部
204 登録エントリ数管理部
205 エントリ削除処理部
206 削除タイマ値更新部
207 エントリ圧縮伸長処理部
208 ミラーテーブル管理部
209 インクリメンタルパターン判定部
901 メモリテーブル
1700 回線
1701 パケット中継装置
1702 パケット受信部
1703 パケット解析部
1704 パケットフロー識別部
1705 パケットフィルタリング処理部
1706 パケットバッファ部
1707 パケット中継処理部
1708 パケット送信部
1709 トラフィック管理処理部
1710 CPU処理部
1711 フローテーブル
1712 フロー識別対象パターン登録削除部
1713 フロー識別対象パターン検出登録削除部
1714 パケット

Claims (5)

  1. フロー識別の対象となるパケットのパターンが記述されたフローテーブルのエントリに基づきフロー識別を行うパケット中継装置におけるエントリ圧縮伸長方法において、
    前記フローテーブルに新たに登録する新規パターンが前記エントリのフロー識別パターンに対し差分が1ビットであるインクリメンタルパターンであるか判定するステップと、
    前記新規パターンがインクリメンタルパターンであった場合、フロー識別において前記フロー識別パターンに対するドントケアビットの位置を示す前記エントリのマスクパターンを変更するステップと、
    前記新規パターンがインクリメンタルパターンでなかった場合、前記新規パターンを前記フローテーブルにエントリとして追加登録するステップと、
    前記フローテーブルに登録されたエントリの数があらかじめ定められた値以上になったときに、
    前記登録されたエントリのうち、圧縮されているエントリを伸長するステップと、
    解除パターンを示すエントリおよび前記伸長したエントリのうち該解除パターンに対応するエントリを削除するステップと、
    残ったエントリをソートするステップと、
    ソートした順番に再登録を指示するステップと、
    を備えるエントリ圧縮伸長方法。
  2. 前記新規パターンを前記フローテーブルにエントリとして追加登録するステップにおいて、
    登録可能な残りのエントリ数を一定時間あたりのエントリの登録速度で除算するステップと、
    除算により算出した値があらかじめ定められた条件を満たした場合、
    前記登録されたエントリのうち、圧縮されているエントリを伸長するステップと、
    解除パターンを示すエントリおよび前記伸長したエントリのうち該解除パターンに対応するエントリを削除するステップと、
    残ったエントリをソートするステップと、
    ソートした順番に再登録を指示するステップと、
    をさらに備えることを特徴とする請求項1記載のエントリ圧縮伸長方法。
  3. 前記フローテーブルの前記エントリから特定のパターンを削除するときに、
    該パターンが圧縮されたエントリにある場合には、該パターンをフロー識別に用いないことを示すフラグを含むエントリを登録するステップ
    をさらに備えることを特徴とする請求項1または2のいずれか1項に記載のエントリ圧縮方法。
  4. 圧縮されたエントリに含まれるエントリ数が1になった場合に、
    該圧縮されているエントリを伸長するステップと、
    解除パターンを示すエントリおよび前記伸長したエントリのうち該解除パターンに対応するエントリを削除するステップと、
    をさらに備えることを特徴とする請求項記載のエントリ圧縮伸長方法。
  5. フロー識別の対象となるパケットのパターンが記述されたフローテーブルのエントリに基づきフロー識別を行うパケット中継装置において、
    新規パターンを前記フローテーブルに登録する時に前記新規パターンが前記エントリのフロー識別パターンに対し差分が1ビットであるインクリメンタルパターンであるかどうか判定するインクリメンタルパターン判定手段と、
    インクリメンタルパターンであると判定された場合に、前記フローテーブルのエントリに対し圧縮を行うエントリ圧縮伸長手段と、
    を備え、
    前記フローテーブルに登録されたエントリの数があらかじめ定められた値以上になったときに、
    前記登録されたエントリのうち、圧縮されているエントリを伸長し、
    解除パターンを示すエントリおよび前記伸長したエントリのうち該解除パターンに対応するエントリを削除し、
    残ったエントリをソートし、
    ソートした順番に再登録を指示する
    ことを特徴とするパケット中継装置。
JP2006356919A 2006-12-29 2006-12-29 エントリの圧縮伸長方法およびエントリの圧縮伸長を行う装置 Expired - Fee Related JP4791347B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006356919A JP4791347B2 (ja) 2006-12-29 2006-12-29 エントリの圧縮伸長方法およびエントリの圧縮伸長を行う装置
US11/905,351 US7933201B2 (en) 2006-12-29 2007-09-28 Entry compression/decompression method and apparatus performing an entry compression and decompression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006356919A JP4791347B2 (ja) 2006-12-29 2006-12-29 エントリの圧縮伸長方法およびエントリの圧縮伸長を行う装置

Publications (2)

Publication Number Publication Date
JP2008167340A JP2008167340A (ja) 2008-07-17
JP4791347B2 true JP4791347B2 (ja) 2011-10-12

Family

ID=39583890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006356919A Expired - Fee Related JP4791347B2 (ja) 2006-12-29 2006-12-29 エントリの圧縮伸長方法およびエントリの圧縮伸長を行う装置

Country Status (2)

Country Link
US (1) US7933201B2 (ja)
JP (1) JP4791347B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102369703B (zh) * 2009-03-30 2014-10-29 日本电气株式会社 通信流控制系统、通信流控制方法和通信流处理程序
EP2562970B1 (en) 2010-04-19 2015-01-07 Nec Corporation Switch, and flow table control method
EP2530874B1 (en) * 2011-06-03 2020-04-29 AirMagnet, Inc. Method and apparatus for detecting network attacks using a flow based technique
ES2640871T3 (es) * 2011-09-21 2017-11-07 Nec Corporation Aparato de comunicación, sistema de comunicación, método de control de comunicación y programa
JP2013161122A (ja) * 2012-02-01 2013-08-19 Canon Inc データ処理装置、情報処理方法、及びプログラム
CN102970239B (zh) * 2012-11-28 2015-07-22 福建星网锐捷网络有限公司 流处理方法、流处理装置、路由器及流处理系统
US9602367B2 (en) * 2013-03-15 2017-03-21 Teoco Corporation System, method, and computer program product for creating a header detail record
JP6287443B2 (ja) 2014-03-26 2018-03-07 富士通株式会社 制御装置、及びそのテーブル作成方法
US11456952B2 (en) * 2020-08-04 2022-09-27 Pensando Systems, Inc. Methods and systems for removing expired flow table entries using an extended packet processing pipeline
US11838209B2 (en) * 2021-06-01 2023-12-05 Mellanox Technologies, Ltd. Cardinality-based traffic control

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63158628A (ja) * 1986-12-23 1988-07-01 Toshiba Corp ビツトパタ−ン重複検出方式
JPH10215279A (ja) * 1996-11-28 1998-08-11 Nippon Telegr & Teleph Corp <Ntt> ルート情報の検索方法及び装置並びにこれに用いる検索テーブルの作成方法
JP3628894B2 (ja) * 1999-01-11 2005-03-16 ソニー株式会社 データ中継装置及びデータ中継方法並びにデータ中継プログラムが記録された記録媒体
JP2002199025A (ja) 2000-12-26 2002-07-12 Mitsubishi Electric Corp ネットワーク防御装置
JP2003008662A (ja) 2001-06-22 2003-01-10 Furukawa Electric Co Ltd:The ネットワークアクセス制御方法、その装置およびその装置を用いたネットワークアクセス制御システム
JP3965283B2 (ja) 2001-07-02 2007-08-29 株式会社日立製作所 複数種類のパケット制御機能を備えたパケット転送装置
WO2004032435A1 (ja) * 2002-10-03 2004-04-15 In4S Inc. ビットストリングの照合方法および装置
JP4341413B2 (ja) * 2003-07-11 2009-10-07 株式会社日立製作所 統計収集装置を備えたパケット転送装置および統計収集方法
JP4216223B2 (ja) 2004-05-10 2009-01-28 日本電信電話株式会社 ネットワーク攻撃検知装置および方法ならびにプログラム
US7711893B1 (en) * 2004-07-22 2010-05-04 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
JP2006135660A (ja) * 2004-11-05 2006-05-25 Alaxala Networks Corp 連想メモリ及びパケット転送装置

Also Published As

Publication number Publication date
JP2008167340A (ja) 2008-07-17
US20080159293A1 (en) 2008-07-03
US7933201B2 (en) 2011-04-26

Similar Documents

Publication Publication Date Title
JP4791347B2 (ja) エントリの圧縮伸長方法およびエントリの圧縮伸長を行う装置
JP6859795B2 (ja) 中継通信方法、中継通信プログラム、及び中継通信装置
US6772223B1 (en) Configurable classification interface for networking devices supporting multiple action packet handling rules
US20160072717A1 (en) Reducing packet reordering in flow-based networks
JP6369175B2 (ja) パケット処理装置、制御プログラム、及びパケット処理装置の制御方法
US6700891B1 (en) Apparatus and method for providing a device level security mechanism in a network
WO2012093335A1 (en) Network device with a programmable core
JPWO2005036831A1 (ja) フレーム中継装置
US20120147892A1 (en) Analysis of network packets using a generated hash code
JP3149926B2 (ja) アドレス変換方法及び装置
KR101724231B1 (ko) 이더넷 헤더 압축을 통한 네트워크 전송 효율 향상 방법 및 장치
JP5534033B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
JP4454661B2 (ja) フレーム転送装置
JP6623849B2 (ja) 通信装置、通信システム、通信制御装置、通信方法、及び、通信制御方法
JP2007274056A (ja) データグラム再組立装置
JP4263718B2 (ja) 通信処理装置及び通信処理方法
US9473401B2 (en) Network separation method and network separation device
JP6877278B2 (ja) 中継装置
KR20050038028A (ko) 이더넷 (r) 에서의 프레임 전송 방법 및 노드
JP2002141931A (ja) ルータ装置及び経路制御方法
EP3298745B1 (en) Small form-factor pluggable module
KR100626719B1 (ko) 헤더변환을 이용한 데이터 패킷 압축 전송방법
JP5206788B2 (ja) データ中継装置、データ中継プログラム、データ受信装置および通信システム
US20070280128A1 (en) Band control program, band control device, and band control method
WO2022003882A1 (ja) L2スイッチ、通信制御方法、および、通信制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110408

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110721

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4791347

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees