(57)【要約】【課題】サーバなど大量のコネクションのパケットを処理するネットワーク装置において、コネクションを識別する処理負荷が大きくなりつつある。低コストで高速にコネクションを識別する方法としてハッシュ値を用いるものがあるが、コネクション数が多くなると処理時間のばらつきが大きくなり、安定した性能を実現することが困難である。【解決手段】IPアドレスやポート番号などのコネクション識別情報を、それらから算出したハッシュ値で管理するハッシュ検索テーブルと、CAMを用いて管理するCAM検索テーブルの2種類の検索テーブルを有する。コネクション識別情報の新規登録時は、ハッシュ検索テーブルを優先し、ハッシュ衝突が起きた場合にCAM検索テーブルに登録するようにする。【選択図】図１
2011229093.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してデータの送受信を行うネットワーク装置において、
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段と、
前記コネクション識別手段においてコネクション識別情報から算出されたハッシュ値を受け取り、当該ハッシュ値が登録されているかを検索するハッシュ検索テーブルと、
前記コネクション識別情報が登録されているか検索するCAM検索テーブルと、
を備え、
前記コネクション識別手段は、前記ハッシュ検索テーブルの検索を前記CAM検索テーブルの検索に優先して使用することを特徴とするネットワーク装置。
【請求項２】
請求項１記載のネットワーク装置において、
前記コネクション識別手段は、前記ハッシュ検索テーブルの検索結果と前期CAM検索テーブル検索結果がともに登録なしの旨を出力した場合は、空きコネンクション識別情報を取得することを特徴とするネットワーク装置。
【請求項３】
請求項２記載のネットワーク装置において、
前記コネクション識別手段は、前記空きコネクション識別情報から算出したハッシュ値が既に別のコネクション識別情報と共に前記ハッシュ検索テーブルに登録されている場合は、CAM検索テーブルに前記空きコネクション識別情報を登録することを特徴とするネットワーク装置。
【請求項４】
ネットワークを介してデータの送受信を行うネットワーク装置において、
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段と、
検索用のテーブルの利用可能範囲を制御する検索テーブル制御手段と、
前記コネクション識別手段においてコネクション識別情報から算出されたハッシュ値を受け取り、当該ハッシュ値が登録されているかを検索するハッシュ検索テーブルと、
前記コネクション識別情報が登録されているか検索するCAM検索テーブルと、
を備え、
前記検索テーブル制御手段は、前記ハッシュ検索テーブルの利用状況に応じて、前記CAM検索テーブルの利用可能領域を動的に決定することを特徴とするネットワーク装置。
【請求項５】
ネットワークを介してデータの送受信を行うネットワーク処理ハードウェアにおいて、
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段を備え、
前記コネクション識別手段は、確立済みのコネクションの識別情報をその識別情報から算出したハッシュ値と共に管理しているハッシュ検索テーブルおよび、確立済みのコネクションの識別情報をCAMで管理しているCAM検索テーブルを参照し、パケットデータに含まれる、コネクションを一意に識別するためのコネクション識別情報と一致するエントリを検索することを特徴とするネットワーク処理ハードウェア。
【請求項６】
ネットワークを介してデータの送受信を行うネットワーク処理ハードウェアにおいて、
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段と、検索用のテーブルの利用可能範囲を制御する検索テーブル制御手段とを備え、
前記コネクション識別手段は、確立済みのコネクションの識別情報をその識別情報から算出したハッシュ値と共に管理しているハッシュ検索テーブルおよび、確立済みのコネクションの識別情報をCAMで管理しているCAM検索テーブルを参照し、パケットデータに含まれる、コネクションを一意に識別するためのコネクション識別情報と一致するエントリを検索することを特徴とし、
前記検索テーブル制御手段は、前記ハッシュ検索テーブルの利用状況に応じて、前記CAM検索テーブルの利用可能領域を動的に決定することを特徴とするネットワーク処理ハードウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク装置におけるコネクション識別に関し、特にTCP/IPネットワークにおけるコネクション識別に関する。
【背景技術】
【０００２】
ネットワーク技術の発展により、PCやサーバに加え、センサや監視カメラといった様々な装置が同一のネットワークに接続されるようになり、多種多様なコネクションのTCPパケットが大量にネットワーク上を流れるようになってきている。TCPパケット処理では、パケットヘッダに含まれるIPアドレスのペアやポート番号のペアなどのコネクション識別情報から、そのパケットがどのコネクションに属するのかを識別する必要がある。例えば特許文献１では、コネクション識別情報からハッシュ値を算出し、そのハッシュ値をコネクションIDとして用いることにより、コネクションの識別処理を高速に行う方法が述べられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平10-260921
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、ハッシュ衝突時、すなわち異なるコネクション識別情報から同一のハッシュ値が求まった時に問題が生じる。その場合、一方のコネクション識別情報に対し、線形走査法や二重ハッシュ法などのハッシュ衝突対策法を用いて、別のハッシュ値を割り当てる必要があるが、割り当てのための時間にばらつきが生じるため、一定時間内での識別処理完了が保証できない。また、ハッシュ値の範囲を実際に使用される範囲よりも十分に広く取ることにより、ハッシュ衝突を避ける方法も考えられるが、コネクション数が多くなるにつれて無駄なメモリ領域が大きくなり、メモリリソースが圧迫される。
本発明は、上記の問題を解決するために行われたものであり、コネクション数が多い場合でも、無駄なメモリ領域を増やすことなく、一定時間内にコネクションの検出を完了することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は以下の構成を備える。すなわち、ネットワークを介してデータの送受信を行うネットワーク装置において、
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段と、
前記コネクション識別手段においてコネクション識別情報から算出されたハッシュ値を受け取り、当該ハッシュ値が登録されているかを検索するハッシュ検索テーブルと、
前記コネクション識別情報が登録されているか検索するCAM検索テーブルと、
を備え、
前記コネクション識別手段は、前記ハッシュ検索テーブルの検索を前記CAM検索テーブルの検索に優先して使用する。
【発明の効果】
【０００６】
本発明によれば、ハッシュ検索テーブルの探索と同時に、ハッシュ衝突が起きたコネクション情報が登録されているCAM検索テーブルを探索するため、ハッシュ衝突が生じた場合でも、一定時間内にコネクション検出が可能となる。また、ハッシュ衝突回数がCAM検索テーブルの最大登録数以下の場合であれば、上記一定時間内のコネクション検出が有効であるため、1回でもハッシュ衝突を避けたい従来方式に比べて確保すべきハッシュ値の範囲が狭くてよく、無駄なメモリ領域を減らすことができる。
【図面の簡単な説明】
【０００７】
【図１】第一の実施例におけるネットワーク処理手段を適用したネットワーク装置の構成を示す図である。
【図２】コネクションの内部状態を記憶するテーブルである
【図３】CAMを用いて、コネクションIDと対応するコネクション識別情報（IPアドレス、ポート番号等）を管理するテーブルである
【図４】ハッシュ値を用いて、コネクションIDと対応するコネクション識別情報（IPアドレス、ポート番号等）を管理するテーブルである
【図５】ハッシュ値を用いて、コネクションIDと対応するコネクション識別情報（IPアドレス、ポート番号等）を管理するテーブルである
【図６】ハッシュ値を用いて、コネクションIDと対応するコネクション識別情報（IPアドレス、ポート番号等）を管理するテーブルである
【図７】第一の実施例における、コネクション識別情報の新規登録時のコネクション識別手段113 のフローチャートである
【図８】第一の実施例における、コネクションID検索時のコネクション識別手段113 のフローチャートである
【図９】第二の実施例における、ネットワーク処理手段を適用したネットワーク装置の構成を示す図である。
【図１０】第二の実施例における、コネクション識別情報の検索または登録時のコネクション識別手段913 のフローチャートである
【図１１】第二の実施例における、 検索テーブル制御手段917 のフローチャートである
【発明を実施するための形態】
【実施例１】
【０００８】
以下、本発明を実施するための最良の形態について説明する。まず、第一の実施形態について説明する。
図１は、本発明の第一の実施形態における、ネットワーク装置の構成を例示した図である。
【０００９】
ここでは、ネットワーク装置101が、ネットワーク104経由でTCPパケットを受信する場合を例に説明する。このネットワーク104は、電波、光、音、電気信号等を用いてメッセージやパケットを交換するためのネットワークであり、ルータやケーブル等を備える。
【００１０】
ネットワーク装置101は、各種処理を実行するホストCPU102、ホストメモリ103、不揮発記憶装置105、周辺I/F106、バス107、TOE108から構成されており、ホストCPU102、ホストメモリ103、不揮発記憶装置105、周辺I/F106、TOE108はそれぞれバス107を介して相互に接続されている。ホストメモリ103は、ソフトウェアのワーキングエリアや、一時バッファとして用いられるデータ領域である。不揮発記憶装置105は、磁気ディスク装置、フラッシュROM等から構成され、Operating System(OS)、各種ドライバ、各種アプリケーション等のソフトウェアや、様々なデータを格納する。周辺I/F106は、マウス、キーボード、モニタなどの入出力装置や、USBメモリ等の外部ストレージなど、各種周辺機器と接続するためのインタフェースを提供する。TOE108は、各種パケット処理を行ったり、受信パケットから再構築したアプリケーションデータをホストメモリに転送するなどの処理を行う。以下、TOE108の構成について説明する。
【００１１】
TOE108は、パケット処理手段109、ハッシュ検索テーブル110、ホストI/F111、パケットバッファ112、コネクション識別手段113、CAM検索テーブル114、ネットワークI/F115、コネクション情報テーブル116から構成されている。ホストI/F111は、TOE108がネットワーク装置内のバス107と通信するためのインタフェースを提供しており、バス107上に流れる各種電気信号をデコードしてTOE108内の各手段に送ったり、TOE108内の各手段から渡されたデータや通知をバス107上に流したりする機能を有する。ネットワークI/F115は、TOE108がネットワーク104と通信を行うためのインタフェースを提供する。パケットバッファ112は、送受信パケットや、アプリケーションデータの一時バッファとして用いられるデータ領域である。パケット処理手段109は、コネクション情報テーブル116を参照し、ネットワークI/F115を介して受信したパケットを解析し、パケットから抽出したアプリケーションデータをコネクション単位で再構築する受信処理機能、および、パケットバッファ112に格納されている送信用のアプリケーションデータに対し、分割やヘッダ付与などのパケット化処理を行い、ネットワークI/F115を介してネットワーク上に送信する送信機能を有する。コネクション情報テーブル116の構成の詳細については、後段で説明する。
【００１２】
コネクション識別手段113は、CAM検索テーブル114やハッシュ検索テーブル110を参照し、IPアドレス、ポート番号、プロトコル番号等の、各コネクションを識別するためのコネクション識別情報から、そのコネクションに割り当てられたコネクションIDを特定する機能を有する。コネクション識別手段113の動作詳細、およびCAM検索テーブル114、ハッシュ検索テーブル110の構成の詳細については後段で説明する。
【００１３】
なお、ここではホストCPU102、ホストメモリ103、不揮発記憶装置105、周辺I/F106、TOE108が一つの装置内に存在する例を示しているが、これの形態に限らない。例えば、TOE108、不揮発記憶装置105などに相当する手段が、それぞれ単一の機能を有した装置となり、バス107の代わりにネットワークを介して相互に接続されていても良い。また、TOE108内の各種テーブルは、例えばホストメモリ103や不揮発記憶装置105に格納されていてもよい。
【００１４】
次に、本実施形態のTOE108内の各種テーブルのデータ構成について、図２〜図６を用いて説明する。
【００１５】
まず、コネクション情報テーブル116のデータ構成を図２を用いて説明する。なお、図中のテーブルの各項目はあくまで一例であり、必要に応じて項目数が増減してもよい。
【００１６】
コネクション情報テーブル116は、コネクション毎に、コネクションの内部状態を記憶するテーブルであり、「コネクションID」と「TCP状態」「SEQ番号」「ACK番号」「送信ウィンドウ」等のコネクションに依存した各種パラメータが格納される領域によって構成される。
【００１７】
「コネクションID」205の行は、各TCPコネクションを一意に識別して管理するために、TOE内部で独自に割り当てられる識別子であるコネクションIDを格納する領域である。
【００１８】
「TCP状態」206の行は、各TCPコネクションの現在のTCP状態が記載される領域である。
【００１９】
「SEQ番号」207の行は、各TCPコネクションの現在のシーケンス番号が記載される領域である。
【００２０】
「ACK番号」208の行は、各TCPコネクションの現在のACK番号が記載される領域である。
【００２１】
「送信ウィンドウ」209の行は、各TCPコネクションの現在の送信ウィンドウサイズが記載される領域である。
【００２２】
図２において、例えば列201は、「コネクションID」が「0x00」であるコネクションの現在TCP状態は「SYN_SENT」であり、現在のSEQ番号は「103546」であり、現在のACK番号は「7840」であり、現在の送信ウィンドウは「65536」であることを意味している。
【００２３】
次に、CAM検索テーブル114のデータ構成を、図３を用いて説明する。なお、図中のテーブルの各項目はあくまで一例であり、必要に応じて項目数が増減してもよい。
【００２４】
CAM検索テーブル114は、CAMを用いて、コネクションIDと対応するコネクション識別情報（IPアドレス、ポート番号等）を管理するテーブルであり、「CAMアドレス」、「コネクションID」、「ローカルIPアドレス」、「ローカルポート番号」、「リモートIPアドレス」、「リモートポート番号」、「プロトコル」が格納される領域によって構成される。
【００２５】
「CAMアドレス」305の行は、各コネクションIDやコネクション識別情報を格納しているCAM内の領域の先頭アドレスを格納する領域である。
【００２６】
「コネクションID」306の行は、前述したコネクションIDが記載される領域である。
【００２７】
「ローカルIPアドレス」307の行は、自マシンに割り当てられたIPアドレスが記載される領域である。
【００２８】
「ローカルポート番号」308の行は、自マシンが使用しているポート番号が記載される領域である。
「リモートIPアドレス」309の行は、通信相手の装置に割り当てられたIPアドレスが記載される領域である。
【００２９】
「リモートポート番号」310の行は、通信相手の装置が使用しているポート番号が記載される領域である。
【００３０】
「プロトコル」311の行は、TOE108が通信に使用しているプロトコルが記載される領域である。
【００３１】
図３において、例えば列301は、CAMの「0x00」の領域には、コネクションIDとして「0x15」が割り当てられているコネクションの識別情報が格納されていることを意味している。
【００３２】
次に、ハッシュ検索テーブル110のデータ構成を、図４を用いて説明する。なお、図中のテーブルの各項目はあくまで一例であり、必要に応じて項目数が増減してもよい。
【００３３】
ハッシュ検索テーブル110は、ハッシュ値を用いて、コネクションIDと対応するコネクション識別情報（IPアドレス、ポート番号等）を管理するテーブルであり、「ハッシュ値」、「コネクションID」、「ローカルIPアドレス」、「ローカルポート番号」、「リモートIPアドレス」、「リモートポート番号」、「プロトコル」が格納される領域によって構成される。
【００３４】
「ハッシュ値」405の行は、各コネクション識別情報から算出したハッシュ値が記載される領域である。
【００３５】
「コネクションID」406〜「プロトコル」411の行は、図３の「コネクションID」306〜「プロトコル」311の行と同等であるため、説明は省略する。
【００３６】
図４において、例えば列401は、ローカルIPアドレス「0x1234」、ローカルポート番号「0x25」、リモートIPアドレス「0x2179」、リモートポート番号「0x2F」、プロトコル「TCP」のコネクション識別情報から算出されたハッシュ値が「0x00」であり、このコネクションに割り当てられたコネクションIDが「0x87」であることを意味している。
なお、ここではハッシュ値とコネクションIDを別々に管理しているが、ハッシュ値をコネクションIDそのものとして扱ってもよい。
【００３７】
また、ここではハッシュ値とコネクション識別情報を同一テーブルで管理しているが、例えば図６のように、コネクション情報は別のテーブル（コネクション識別情報管理テーブル）にて管理し、図５のようにコネクション情報が格納されているアドレスのみをハッシュ値と共に管理してもよい。通常、ハッシュ値を検索キーとして用いる検索テーブルでは、テーブルに登録されるデータが多くなるほどハッシュ値の衝突確率が高くなり、検索性能が低下してしまうため、一定のテーブル利用率以上にならないように、必要以上に多くのメモリ領域を確保する必要がある。そのため、ハッシュ値と共に格納するデータ量が多くなるほど、使用されない無駄なメモリ領域が大きくなる。図５のように、アドレスのみをハッシュ値と格納することで、無駄なメモリ領域を最小限にすることが可能となる。
次に、第一の実施例における、コネクション識別手段113の動作フローを、図７〜図８を用いて説明する。
【００３８】
図７は、第一の実施例における、コネクション識別情報の新規登録時のコネクション識別手段113 のフローチャートである。本処理フローは、例えばTOE108が新規にコネクションを確立する際に呼び出されるものである。
【００３９】
ステップ701は、コネクション識別情報からハッシュ値を計算する処理である。ここで、ハッシュ値の算出方法は、同一コネクション識別情報から必ず同一の値が得られるものであれば、特に限定しない。例えば、コネクション識別情報を結合して一つのビット列とみなし、CRC16やMD5などのハッシュ関数に入力して求めてもよいし、単純に上位数ビットを切り出すといったものでもよい。
【００４０】
ステップ702は、登録したいコネクション識別情報が、まだハッシュ検索テーブルおよびCAM検索テーブルのどちらにも登録されていないことを確認する処理である。具体的な確認手順は、図８の検索時のフローチャートにて詳細に説明する。
【００４１】
ステップ703は、ステップ702の検索結果を調べる処理である。もし検索結果が「検索ヒット」（すでにどちらかの検索テーブルに登録済み）である場合は、登録エラーを所定の出力先に出力して（ステップ704）、終了する。もし検索結果が「検索エラー」（まだ未登録）の場合は、ステップ705へ進む。
【００４２】
ステップ705は、まだ使用されていないコネクションIDを取得する処理である。使用されていないコネクションIDは、例えばFIFOで管理されており、コネクション識別情報を新規登録する際にFIFOから取得し、コネクション切断等でコネクション識別情報を削除する際にFIFOに登録する。
【００４３】
ステップ704は、ステップ701で求めたハッシュ値の示す、ハッシュ検索テーブルの領域が空かどうか調べる処理である。もし空であれば、ステップ705へ進む。もし、別のコネクション識別情報が登録済み、すなわち異なるコネクション識別情報のハッシュ値が一致（ハッシュ衝突）した場合は、ステップ706へ進む。
【００４４】
ステップ705は、ハッシュ検索テーブルに、コネクションIDとコネクション識別情報を登録する処理である。
【００４５】
ステップ706は、CAM検索テーブルの空き領域に、コネクションIDとコネクション識別情報を登録する処理である。
【００４６】
ステップ707は、所定の出力先にコネクションIDを出力する処理である。
【００４７】
なお、本フローチャートでは、1回目のハッシュ衝突が起きた時点（ステップ704の結果がNOである場合）でハッシュ検索テーブルへの登録を中止して、CAM検索テーブルに登録している例を示しているが、処理時間に余裕があるのであれば、例えば線形走査法や二重ハッシュ法などの既知の衝突回避法を用いてハッシュ検索テーブルへの登録を複数回試みてもよい。
【００４８】
図８は、第一の実施例における、コネクションIDを検索する時のコネクション識別手段113 のフローチャートである。本処理フローは、例えばTOE108が確立済みのコネクションのパケットを受信した際に、パケットに含まれるコネクション識別情報からコネクションIDを取得するために呼び出される。
【００４９】
ステップ801は、入力されたコネクション識別情報から、ハッシュ値を計算する処理である。
【００５０】
ステップ802は、ステップ801で算出したハッシュ値を用い、ハッシュ検索テーブルの所定の領域にアクセスする処理である。
【００５１】
ステップ803は、ステップ802でアクセスした領域からデータを読み出し、入力されたコネクション識別情報と一致するかどうかを調べる処理である。もし、何もデータが登録されていないもしくは、別のコネクション識別情報が登録されていた場合は、ステップ804へ進む。もし一致、すなわち検索ヒットした場合は、ステップ808へ進む。
【００５２】
ステップ804は、CAM検索テーブルに検索キーとしてコネクション識別情報を入力し、検索する処理である。
【００５３】
ステップ805は、CAM検索テーブルで検索ヒットしたかどうか調べる処理である。もしヒットした場合は、ステップ806へ進む。もしヒットしなければ、ステップ807へ進む。
【００５４】
ステップ806は、CAM検索テーブルにコネクション識別情報と共に登録されていたコネクションIDを、所定の出力先に出力する処理である。
【００５５】
ステップ807は、ハッシュ検索テーブルとCAM検索テーブルのどちらにも登録されていないため、所定の出力先に検索エラーを出力する処理である。
【００５６】
ステップ808は、ハッシュ検索テーブルにコネクション識別情報と共に登録されていたコネクションIDを、所定の出力先に出力する処理である。
【００５７】
なお、本フローチャートでは、ハッシュ検索テーブルの検索結果が出てからCAM検索テーブルの検索を行っているが、検索にかかる時間を短縮するため、ハッシュ検索テーブルの検索とCAM検索テーブルの検索を同時に開始してもよい。その場合、ハッシュ検索テーブルの結果をCAM検索テーブルの結果より優先する。
【実施例２】
【００５８】
次に、第二の実施形態について説明する。
【００５９】
図９は、本発明の第二の実施形態における、ネットワーク装置の構成を例示した図である。
【００６０】
符号901〜符号916は、図１における符号101〜符号116と同等の機能を有するため説明を省略する。検索テーブル制御手段917は、ハッシュ検索テーブル910の利用状況に応じて、CAM検索テーブル914の有効/無効を切り替える機能を有する。
【００６１】
以下、第二の実施形態における、コネクション識別手段913および検索テーブル制御手段917の動作フローについて、図１０〜図１１を用いて説明する。
【００６２】
図１０は、第二の実施例における、コネクション識別情報の検索または登録時のコネクション識別手段913のフローチャートである。
【００６３】
ステップ1001は、CAM検索テーブルが有効かどうか調べる処理である。もしCAM検索テーブルが有効であれば、ステップ1002へ進む。もしCAM検索テーブルが無効であれば、ステップ1003へ進む。
【００６４】
ステップ1002は、ハッシュ検索テーブルとCAM検索テーブルの双方を用いて検索または登録する処理である。詳細については、図７〜図８で説明済みである。
【００６５】
ステップ1003は、ハッシュ検索テーブルのみを用いて検索または登録する処理である。もしハッシュ衝突が起きた場合は、エラーを出力するか、衝突回避法を用いて複数回検索または登録を試みる。
【００６６】
図１１は、第二の実施例における、 検索テーブル制御手段917 のフローチャートである。
【００６７】
ステップ1101は、ハッシュ検索テーブルの登録状況をチェックする処理である。登録状況とは、例えば登録済みのコネクション数、検索や登録時のハッシュ衝突回数の合計数や平均数、検索や登録にかかる平均処理時間といったものである。
【００６８】
ステップ1102は、ステップ1101でチェックした登録状況が、規定の条件を満たしているかどうか調べる処理である。例えば登録済みコネクション数であれば、全登録可能数の50％以下であるかどうか、などである。もし規定の条件を満たしていた場合は、ステップ1103へ進む。もし規定の条件を満たさない場合は、ステップ1107へ進む。
【００６９】
ステップ1103、ステップ1104は、CAM検索テーブルを無効にするために、CAM検索テーブルに登録済みの全情報をハッシュ検索テーブルに移動可能かをチェックする処理である。もし移動可能であれば、ステップ1105へ進む。ハッシュ値の衝突や、衝突回避法でも処理時間が多くかかってしまう等の理由で移動できない場合は、終了する。
【００７０】
ステップ1105は、CAM検索テーブルの全情報をハッシュ検索テーブルに移動する処理である。
【００７１】
ステップ1106は、CAM検索テーブルを無効にする処理である。
【００７２】
ステップ1107は、CAM検索テーブルを有効にする処理である。
【００７３】
これにより、ハッシュ検索テーブルのコネクションの登録数が少なくて、ハッシュ衝突が起きにくいような場合は、CAM検索テーブルを使用せず消費電力を抑え、登録数が増えてきてハッシュ衝突の頻度が高くなってきたらCAM検索テーブルを使用するといった、状況に応じた細かい消費電力制御が可能となる。また、単純にCAM検索テーブルの有効/無効を切り替えるだけではなく、段階的にCAM検索テーブルの有効領域を増減させてもよい。
【符号の説明】
【００７４】
101…ネットワーク装置
102…ホストCPU
103…ホストメモリ
104…ネットワーク
105…不揮発記憶装置
106…周辺I/F
107…バス
108…TOE
109…パケット処理手段
110…ハッシュ検索テーブル
111…ホストI/F
112…パケットバッファ
113…コネクション識別手段
114…CAM検索テーブル
115…ネットワークI/F
116…コネクション情報テーブル
901…ネットワーク装置
902…ホストCPU
903…ホストメモリ
904…ネットワーク
905…不揮発記憶装置
906…周辺I/F
907…バス
908…TOE
909…パケット処理手段
910…ハッシュ検索テーブル
911…ホストI/F
912…パケットバッファ
913…コネクション識別手段
914…CAM検索テーブル
915…ネットワークI/F
916…コネクション情報テーブル
917…検索テーブル制御手段
【図１】
2011229093.tif 000003
【図２】
2011229093.tif 000004
【図３】
2011229093.tif 000005
【図４】
2011229093.tif 000006
【図５】
2011229093.tif 000007
【図６】
2011229093.tif 000008
【図７】
2011229093.tif 000009
【図８】
2011229093.tif 000010
【図９】
2011229093.tif 000011
【図１０】
2011229093.tif 000012
【図１１】
2011229093.tif 000013