JP2011229093A - ネットワーク装置 - Google Patents
ネットワーク装置 Download PDFInfo
- Publication number
- JP2011229093A JP2011229093A JP2010099386A JP2010099386A JP2011229093A JP 2011229093 A JP2011229093 A JP 2011229093A JP 2010099386 A JP2010099386 A JP 2010099386A JP 2010099386 A JP2010099386 A JP 2010099386A JP 2011229093 A JP2011229093 A JP 2011229093A
- Authority
- JP
- Japan
- Prior art keywords
- connection
- search table
- identification information
- hash
- cam
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】
サーバなど大量のコネクションのパケットを処理するネットワーク装置において、コネクションを識別する処理負荷が大きくなりつつある。低コストで高速にコネクションを識別する方法としてハッシュ値を用いるものがあるが、コネクション数が多くなると処理時間のばらつきが大きくなり、安定した性能を実現することが困難である。
【解決手段】
IPアドレスやポート番号などのコネクション識別情報を、それらから算出したハッシュ値で管理するハッシュ検索テーブルと、CAMを用いて管理するCAM検索テーブルの2種類の検索テーブルを有する。コネクション識別情報の新規登録時は、ハッシュ検索テーブルを優先し、ハッシュ衝突が起きた場合にCAM検索テーブルに登録するようにする。
【選択図】図1
サーバなど大量のコネクションのパケットを処理するネットワーク装置において、コネクションを識別する処理負荷が大きくなりつつある。低コストで高速にコネクションを識別する方法としてハッシュ値を用いるものがあるが、コネクション数が多くなると処理時間のばらつきが大きくなり、安定した性能を実現することが困難である。
【解決手段】
IPアドレスやポート番号などのコネクション識別情報を、それらから算出したハッシュ値で管理するハッシュ検索テーブルと、CAMを用いて管理するCAM検索テーブルの2種類の検索テーブルを有する。コネクション識別情報の新規登録時は、ハッシュ検索テーブルを優先し、ハッシュ衝突が起きた場合にCAM検索テーブルに登録するようにする。
【選択図】図1
Description
本発明は、ネットワーク装置におけるコネクション識別に関し、特にTCP/IPネットワークにおけるコネクション識別に関する。
ネットワーク技術の発展により、PCやサーバに加え、センサや監視カメラといった様々な装置が同一のネットワークに接続されるようになり、多種多様なコネクションのTCPパケットが大量にネットワーク上を流れるようになってきている。TCPパケット処理では、パケットヘッダに含まれるIPアドレスのペアやポート番号のペアなどのコネクション識別情報から、そのパケットがどのコネクションに属するのかを識別する必要がある。例えば特許文献1では、コネクション識別情報からハッシュ値を算出し、そのハッシュ値をコネクションIDとして用いることにより、コネクションの識別処理を高速に行う方法が述べられている。
特許文献1では、ハッシュ衝突時、すなわち異なるコネクション識別情報から同一のハッシュ値が求まった時に問題が生じる。その場合、一方のコネクション識別情報に対し、線形走査法や二重ハッシュ法などのハッシュ衝突対策法を用いて、別のハッシュ値を割り当てる必要があるが、割り当てのための時間にばらつきが生じるため、一定時間内での識別処理完了が保証できない。また、ハッシュ値の範囲を実際に使用される範囲よりも十分に広く取ることにより、ハッシュ衝突を避ける方法も考えられるが、コネクション数が多くなるにつれて無駄なメモリ領域が大きくなり、メモリリソースが圧迫される。
本発明は、上記の問題を解決するために行われたものであり、コネクション数が多い場合でも、無駄なメモリ領域を増やすことなく、一定時間内にコネクションの検出を完了することを目的とする。
本発明は、上記の問題を解決するために行われたものであり、コネクション数が多い場合でも、無駄なメモリ領域を増やすことなく、一定時間内にコネクションの検出を完了することを目的とする。
上記課題を解決するために、本発明は以下の構成を備える。すなわち、ネットワークを介してデータの送受信を行うネットワーク装置において、
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段と、
前記コネクション識別手段においてコネクション識別情報から算出されたハッシュ値を受け取り、当該ハッシュ値が登録されているかを検索するハッシュ検索テーブルと、
前記コネクション識別情報が登録されているか検索するCAM検索テーブルと、
を備え、
前記コネクション識別手段は、前記ハッシュ検索テーブルの検索を前記CAM検索テーブルの検索に優先して使用する。
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段と、
前記コネクション識別手段においてコネクション識別情報から算出されたハッシュ値を受け取り、当該ハッシュ値が登録されているかを検索するハッシュ検索テーブルと、
前記コネクション識別情報が登録されているか検索するCAM検索テーブルと、
を備え、
前記コネクション識別手段は、前記ハッシュ検索テーブルの検索を前記CAM検索テーブルの検索に優先して使用する。
本発明によれば、ハッシュ検索テーブルの探索と同時に、ハッシュ衝突が起きたコネクション情報が登録されているCAM検索テーブルを探索するため、ハッシュ衝突が生じた場合でも、一定時間内にコネクション検出が可能となる。また、ハッシュ衝突回数がCAM検索テーブルの最大登録数以下の場合であれば、上記一定時間内のコネクション検出が有効であるため、1回でもハッシュ衝突を避けたい従来方式に比べて確保すべきハッシュ値の範囲が狭くてよく、無駄なメモリ領域を減らすことができる。
以下、本発明を実施するための最良の形態について説明する。まず、第一の実施形態について説明する。
図1は、本発明の第一の実施形態における、ネットワーク装置の構成を例示した図である。
図1は、本発明の第一の実施形態における、ネットワーク装置の構成を例示した図である。
ここでは、ネットワーク装置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内の各種テーブルのデータ構成について、図2〜図6を用いて説明する。
まず、コネクション情報テーブル116のデータ構成を図2を用いて説明する。なお、図中のテーブルの各項目はあくまで一例であり、必要に応じて項目数が増減してもよい。
コネクション情報テーブル116は、コネクション毎に、コネクションの内部状態を記憶するテーブルであり、「コネクションID」と「TCP状態」「SEQ番号」「ACK番号」「送信ウィンドウ」等のコネクションに依存した各種パラメータが格納される領域によって構成される。
「コネクションID」205の行は、各TCPコネクションを一意に識別して管理するために、TOE内部で独自に割り当てられる識別子であるコネクションIDを格納する領域である。
「TCP状態」206の行は、各TCPコネクションの現在のTCP状態が記載される領域である。
「SEQ番号」207の行は、各TCPコネクションの現在のシーケンス番号が記載される領域である。
「ACK番号」208の行は、各TCPコネクションの現在のACK番号が記載される領域である。
「送信ウィンドウ」209の行は、各TCPコネクションの現在の送信ウィンドウサイズが記載される領域である。
図2において、例えば列201は、「コネクションID」が「0x00」であるコネクションの現在TCP状態は「SYN_SENT」であり、現在のSEQ番号は「103546」であり、現在のACK番号は「7840」であり、現在の送信ウィンドウは「65536」であることを意味している。
次に、CAM検索テーブル114のデータ構成を、図3を用いて説明する。なお、図中のテーブルの各項目はあくまで一例であり、必要に応じて項目数が増減してもよい。
CAM検索テーブル114は、CAMを用いて、コネクションIDと対応するコネクション識別情報(IPアドレス、ポート番号等)を管理するテーブルであり、「CAMアドレス」、「コネクションID」、「ローカルIPアドレス」、「ローカルポート番号」、「リモートIPアドレス」、「リモートポート番号」、「プロトコル」が格納される領域によって構成される。
「CAMアドレス」305の行は、各コネクションIDやコネクション識別情報を格納しているCAM内の領域の先頭アドレスを格納する領域である。
「コネクションID」306の行は、前述したコネクションIDが記載される領域である。
「ローカルIPアドレス」307の行は、自マシンに割り当てられたIPアドレスが記載される領域である。
「ローカルポート番号」308の行は、自マシンが使用しているポート番号が記載される領域である。
「リモートIPアドレス」309の行は、通信相手の装置に割り当てられたIPアドレスが記載される領域である。
「リモートIPアドレス」309の行は、通信相手の装置に割り当てられたIPアドレスが記載される領域である。
「リモートポート番号」310の行は、通信相手の装置が使用しているポート番号が記載される領域である。
「プロトコル」311の行は、TOE108が通信に使用しているプロトコルが記載される領域である。
図3において、例えば列301は、CAMの「0x00」の領域には、コネクションIDとして「0x15」が割り当てられているコネクションの識別情報が格納されていることを意味している。
次に、ハッシュ検索テーブル110のデータ構成を、図4を用いて説明する。なお、図中のテーブルの各項目はあくまで一例であり、必要に応じて項目数が増減してもよい。
ハッシュ検索テーブル110は、ハッシュ値を用いて、コネクションIDと対応するコネクション識別情報(IPアドレス、ポート番号等)を管理するテーブルであり、「ハッシュ値」、「コネクションID」、「ローカルIPアドレス」、「ローカルポート番号」、「リモートIPアドレス」、「リモートポート番号」、「プロトコル」が格納される領域によって構成される。
「ハッシュ値」405の行は、各コネクション識別情報から算出したハッシュ値が記載される領域である。
「コネクションID」406〜「プロトコル」411の行は、図3の「コネクションID」306〜「プロトコル」311の行と同等であるため、説明は省略する。
図4において、例えば列401は、ローカルIPアドレス「0x1234」、ローカルポート番号「0x25」、リモートIPアドレス「0x2179」、リモートポート番号「0x2F」、プロトコル「TCP」のコネクション識別情報から算出されたハッシュ値が「0x00」であり、このコネクションに割り当てられたコネクションIDが「0x87」であることを意味している。
なお、ここではハッシュ値とコネクションIDを別々に管理しているが、ハッシュ値をコネクションIDそのものとして扱ってもよい。
なお、ここではハッシュ値とコネクションIDを別々に管理しているが、ハッシュ値をコネクションIDそのものとして扱ってもよい。
また、ここではハッシュ値とコネクション識別情報を同一テーブルで管理しているが、例えば図6のように、コネクション情報は別のテーブル(コネクション識別情報管理テーブル)にて管理し、図5のようにコネクション情報が格納されているアドレスのみをハッシュ値と共に管理してもよい。通常、ハッシュ値を検索キーとして用いる検索テーブルでは、テーブルに登録されるデータが多くなるほどハッシュ値の衝突確率が高くなり、検索性能が低下してしまうため、一定のテーブル利用率以上にならないように、必要以上に多くのメモリ領域を確保する必要がある。そのため、ハッシュ値と共に格納するデータ量が多くなるほど、使用されない無駄なメモリ領域が大きくなる。図5のように、アドレスのみをハッシュ値と格納することで、無駄なメモリ領域を最小限にすることが可能となる。
次に、第一の実施例における、コネクション識別手段113の動作フローを、図7〜図8を用いて説明する。
次に、第一の実施例における、コネクション識別手段113の動作フローを、図7〜図8を用いて説明する。
図7は、第一の実施例における、コネクション識別情報の新規登録時のコネクション識別手段113 のフローチャートである。本処理フローは、例えばTOE108が新規にコネクションを確立する際に呼び出されるものである。
ステップ701は、コネクション識別情報からハッシュ値を計算する処理である。ここで、ハッシュ値の算出方法は、同一コネクション識別情報から必ず同一の値が得られるものであれば、特に限定しない。例えば、コネクション識別情報を結合して一つのビット列とみなし、CRC16やMD5などのハッシュ関数に入力して求めてもよいし、単純に上位数ビットを切り出すといったものでもよい。
ステップ702は、登録したいコネクション識別情報が、まだハッシュ検索テーブルおよびCAM検索テーブルのどちらにも登録されていないことを確認する処理である。具体的な確認手順は、図8の検索時のフローチャートにて詳細に説明する。
ステップ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検索テーブルに登録している例を示しているが、処理時間に余裕があるのであれば、例えば線形走査法や二重ハッシュ法などの既知の衝突回避法を用いてハッシュ検索テーブルへの登録を複数回試みてもよい。
図8は、第一の実施例における、コネクション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検索テーブルの結果より優先する。
次に、第二の実施形態について説明する。
図9は、本発明の第二の実施形態における、ネットワーク装置の構成を例示した図である。
符号901〜符号916は、図1における符号101〜符号116と同等の機能を有するため説明を省略する。検索テーブル制御手段917は、ハッシュ検索テーブル910の利用状況に応じて、CAM検索テーブル914の有効/無効を切り替える機能を有する。
以下、第二の実施形態における、コネクション識別手段913および検索テーブル制御手段917の動作フローについて、図10〜図11を用いて説明する。
図10は、第二の実施例における、コネクション識別情報の検索または登録時のコネクション識別手段913のフローチャートである。
ステップ1001は、CAM検索テーブルが有効かどうか調べる処理である。もしCAM検索テーブルが有効であれば、ステップ1002へ進む。もしCAM検索テーブルが無効であれば、ステップ1003へ進む。
ステップ1002は、ハッシュ検索テーブルとCAM検索テーブルの双方を用いて検索または登録する処理である。詳細については、図7〜図8で説明済みである。
ステップ1003は、ハッシュ検索テーブルのみを用いて検索または登録する処理である。もしハッシュ衝突が起きた場合は、エラーを出力するか、衝突回避法を用いて複数回検索または登録を試みる。
図11は、第二の実施例における、 検索テーブル制御手段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…検索テーブル制御手段
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…検索テーブル制御手段
Claims (6)
- ネットワークを介してデータの送受信を行うネットワーク装置において、
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段と、
前記コネクション識別手段においてコネクション識別情報から算出されたハッシュ値を受け取り、当該ハッシュ値が登録されているかを検索するハッシュ検索テーブルと、
前記コネクション識別情報が登録されているか検索するCAM検索テーブルと、
を備え、
前記コネクション識別手段は、前記ハッシュ検索テーブルの検索を前記CAM検索テーブルの検索に優先して使用することを特徴とするネットワーク装置。 - 請求項1記載のネットワーク装置において、
前記コネクション識別手段は、前記ハッシュ検索テーブルの検索結果と前期CAM検索テーブル検索結果がともに登録なしの旨を出力した場合は、空きコネンクション識別情報を取得することを特徴とするネットワーク装置。 - 請求項2記載のネットワーク装置において、
前記コネクション識別手段は、前記空きコネクション識別情報から算出したハッシュ値が既に別のコネクション識別情報と共に前記ハッシュ検索テーブルに登録されている場合は、CAM検索テーブルに前記空きコネクション識別情報を登録することを特徴とするネットワーク装置。 - ネットワークを介してデータの送受信を行うネットワーク装置において、
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段と、
検索用のテーブルの利用可能範囲を制御する検索テーブル制御手段と、
前記コネクション識別手段においてコネクション識別情報から算出されたハッシュ値を受け取り、当該ハッシュ値が登録されているかを検索するハッシュ検索テーブルと、
前記コネクション識別情報が登録されているか検索するCAM検索テーブルと、
を備え、
前記検索テーブル制御手段は、前記ハッシュ検索テーブルの利用状況に応じて、前記CAM検索テーブルの利用可能領域を動的に決定することを特徴とするネットワーク装置。 - ネットワークを介してデータの送受信を行うネットワーク処理ハードウェアにおいて、
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段を備え、
前記コネクション識別手段は、確立済みのコネクションの識別情報をその識別情報から算出したハッシュ値と共に管理しているハッシュ検索テーブルおよび、確立済みのコネクションの識別情報をCAMで管理しているCAM検索テーブルを参照し、パケットデータに含まれる、コネクションを一意に識別するためのコネクション識別情報と一致するエントリを検索することを特徴とするネットワーク処理ハードウェア。 - ネットワークを介してデータの送受信を行うネットワーク処理ハードウェアにおいて、
ネットワークを介して受信したパケットデータがどのコネクションに属するのかを識別するコネクション識別手段と、検索用のテーブルの利用可能範囲を制御する検索テーブル制御手段とを備え、
前記コネクション識別手段は、確立済みのコネクションの識別情報をその識別情報から算出したハッシュ値と共に管理しているハッシュ検索テーブルおよび、確立済みのコネクションの識別情報をCAMで管理しているCAM検索テーブルを参照し、パケットデータに含まれる、コネクションを一意に識別するためのコネクション識別情報と一致するエントリを検索することを特徴とし、
前記検索テーブル制御手段は、前記ハッシュ検索テーブルの利用状況に応じて、前記CAM検索テーブルの利用可能領域を動的に決定することを特徴とするネットワーク処理ハードウェア。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010099386A JP2011229093A (ja) | 2010-04-23 | 2010-04-23 | ネットワーク装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010099386A JP2011229093A (ja) | 2010-04-23 | 2010-04-23 | ネットワーク装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011229093A true JP2011229093A (ja) | 2011-11-10 |
Family
ID=45043916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010099386A Pending JP2011229093A (ja) | 2010-04-23 | 2010-04-23 | ネットワーク装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011229093A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014082762A (ja) * | 2012-10-15 | 2014-05-08 | Samsung Electronics Co Ltd | データ圧縮装置及び方法、データ圧縮装置を含むメモリシステム |
CN104079489A (zh) * | 2013-03-28 | 2014-10-01 | 日立金属株式会社 | 网络中继装置 |
CN112671940A (zh) * | 2019-10-15 | 2021-04-16 | 瑞萨电子株式会社 | 网络处理设备以及通信帧的网络处理方法 |
JPWO2021240586A1 (ja) * | 2020-05-25 | 2021-12-02 | ||
WO2022049751A1 (ja) * | 2020-09-07 | 2022-03-10 | 日本電信電話株式会社 | コネクション数計測装置、方法、およびプログラム |
-
2010
- 2010-04-23 JP JP2010099386A patent/JP2011229093A/ja active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014082762A (ja) * | 2012-10-15 | 2014-05-08 | Samsung Electronics Co Ltd | データ圧縮装置及び方法、データ圧縮装置を含むメモリシステム |
CN104079489A (zh) * | 2013-03-28 | 2014-10-01 | 日立金属株式会社 | 网络中继装置 |
US9413661B2 (en) | 2013-03-28 | 2016-08-09 | Hitachi Metals, Ltd. | Network relay device |
CN104079489B (zh) * | 2013-03-28 | 2018-08-28 | 日立金属株式会社 | 网络中继装置 |
CN112671940A (zh) * | 2019-10-15 | 2021-04-16 | 瑞萨电子株式会社 | 网络处理设备以及通信帧的网络处理方法 |
JP2021064877A (ja) * | 2019-10-15 | 2021-04-22 | ルネサスエレクトロニクス株式会社 | ネットワーク処理装置、および、ネットワーク通信フレームの処理方法 |
JP7330055B2 (ja) | 2019-10-15 | 2023-08-21 | ルネサスエレクトロニクス株式会社 | ネットワーク処理装置、および、ネットワーク通信フレームの処理方法 |
JPWO2021240586A1 (ja) * | 2020-05-25 | 2021-12-02 | ||
JP7315099B2 (ja) | 2020-05-25 | 2023-07-26 | 日本電信電話株式会社 | コネクション数計測装置、コネクション状態検出装置、コネクション状態検出方法、およびコネクション数計測プログラム |
WO2022049751A1 (ja) * | 2020-09-07 | 2022-03-10 | 日本電信電話株式会社 | コネクション数計測装置、方法、およびプログラム |
JPWO2022049751A1 (ja) * | 2020-09-07 | 2022-03-10 | ||
JP7414149B2 (ja) | 2020-09-07 | 2024-01-16 | 日本電信電話株式会社 | コネクション数計測装置、方法、およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8971342B2 (en) | Switch and flow table controlling method | |
CN107872486B (zh) | 通信方法和装置 | |
US20200382578A1 (en) | Communication Method, System and Apparatus | |
US8650326B2 (en) | Smart client routing | |
JP6982104B2 (ja) | Brasシステムベースのパケットカプセル化方法および装置 | |
CN114025021B (zh) | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 | |
JP2005044353A (ja) | 複数のnicrdma対応デバイスにおける状態の移行 | |
WO2020038443A1 (zh) | 桥接通信的方法和设备 | |
WO2014089799A1 (zh) | 一种确定虚拟机漂移的方法和装置 | |
US20070223494A1 (en) | Method for the resolution of addresses in a communication system | |
CN107360268B (zh) | 一种数据包处理方法、装置及设备 | |
KR102217114B1 (ko) | 엣지 플랫폼 네트워크의 가속화 제어 방법 및 이를 사용하는 전자 장치 | |
JP5994190B2 (ja) | パケット転送方法およびシステム | |
US11231983B2 (en) | Fault tolerance processing method, apparatus, and server | |
JP2011229093A (ja) | ネットワーク装置 | |
CN113553184A (zh) | 一种实现负载均衡的方法、装置、电子设备和可读存储介质 | |
US8886913B2 (en) | Apparatus and method for identifier management | |
JP6701377B2 (ja) | Sip情報分析方法、装置、サーバ及び媒体 | |
CN104426816A (zh) | 一种虚拟机通信方法及装置 | |
US6859895B2 (en) | Method of monitoring life-or-death state of host computer connected to network and life-and-death monitoring system | |
CN114978950B (zh) | 基于fpga、cpu协同的网络算法调用方法及系统 | |
US9563388B2 (en) | Sharing a hosted device in a computer network | |
KR102420606B1 (ko) | 캐시 경로를 이용하는 패킷 데이터 처리 방법 및 이를 사용하는 전자 장치 | |
US9961043B2 (en) | Automatic discovery and configuration of stack ports | |
CN109462609B (zh) | 一种arp抑制表项生成方法和装置 |