(57)【要約】中継装置（１）は、同一の機能、構成を有する複数のネットワーク処理部（２００−１〜２００−Ｎ）を備えている。或るネットワーク処理部（例えば、２００−１）内のセッション管理部（２０２−１）は、自処理部内のＩＦ部（例えば、２０４−１−１）を介して外部ネットワークからパケットを受信すると、セッションテーブル（２３０−１）から上記パケットが属するセッションに対して定められている、出力先のＩＦ部を示すＩＦ特定情報を検索する。パケット処理部（２０１−１）は、上記ＩＦ特定情報が他のネットワーク処理部（例えば、２００−Ｎ）内のＩＦ部（例えば、２０４−Ｎ−Ｍ）を示している場合は、上記ＩＦ特定情報と上記パケットとをスイッチ部（３００）を介してネットワーク処理部（２００−Ｎ）に転送する。ネットワーク処理部（２００−Ｎ）内のパケット処理部（２０１−Ｎ）は、上記パケットをＩＦ特定情報によって示されるＩＦ部（２０４−Ｎ−Ｍ）に出力する。
2004107683.tif 000002
【特許請求の範囲】
【請求項１】
パケットを中継するパケット中継装置において、
複数のネットワーク処理部を備え、
該複数のネットワーク処理部が、それぞれ、
外部ネットワークから受信したパケットの属するセッションに対して定められている出力先であるＩＦ部が、他のネットワーク処理部に存在することを条件として、
前記パケットと前記ＩＦ部を特定するＩＦ特定情報とを前記他のネットワーク処理部に送信することを特徴とするパケット中継装置。
【請求項２】
請求項１に記載のパケット中継装置において、
前記各ネットワーク処理部が、
他のネットワーク処理部からパケットとＩＦ特定情報とを受信したとき、前記パケットを前記ＩＦ特定情報によって特定されるＩＦ部に出力することを特徴とするパケット中継装置。
【請求項３】
パケットを中継するパケット中継装置において、
複数のネットワーク処理部と、
該複数のネットワーク処理部を相互に接続するスイッチ部とを備え、
前記複数のネットワーク処理部が、それぞれ、
外部ネットワークからパケットを受信したとき、該パケットの属するセッションに対して定められている出力先のＩＦ部が他のネットワーク処理部に存在することを条件にして、前記パケットと前記ＩＦ部を特定するＩＦ特定情報とを前記スイッチ部に入力し、
前記スイッチ部が、
入力されたパケットとＩＦ特定情報とを、該ＩＦ特定情報によって特定されるＩＦ部を備えたネットワーク処理部に転送する構成を有することを特徴とするパケット中継装置。
【請求項４】
請求項３に記載のパケット中継装置において、
前記各ネットワーク処理部が、前記スイッチ部を介してパケットとＩＦ特定情報とを受信したとき、前記パケットを前記ＩＦ特定情報によって特定されるＩＦ部に出力する構成を有することを特徴とするパケット中継装置。
【請求項５】
請求項３又は請求項４に記載のパケット中継装置において、
前記複数のネットワーク処理部が、それぞれ、
セッションを特定するセッション特定情報に対応付けて、そのセッションに属するパケットの出力先とするＩＦ部のＩＦ特定情報が登録されたセッションテーブルと、
前記外部ネットワークからパケットを受信したとき、該パケットの出力先にするＩＦ部のＩＦ特定情報を前記セッションテーブルから検索するセッション管理部と、
該セッション管理部が前記セッションテーブルから検索した前記パケットの出力先にするＩＦ部のＩＦ特定情報が、他のネットワーク処理部に存在するＩＦ部を示している場合は、前記パケットと前記ＩＦ特定情報とを前記スイッチ部に入力し、前記スイッチ部を介して他のネットワーク処理部からパケットとＩＦ特定情報とが送られてきた場合は、前記パケットを前記ＩＦ特定情報によって特定されるＩＦ部に出力するパケット処理部とを備えたことを特徴とするパケット中継装置。
【請求項６】
請求項５に記載のパケット中継装置において、
前記各ネットワーク処理部が、それぞれ、
パケットの宛先ＩＰアドレスに対応付けて、パケットの出力先にするＩＦ部のＩＦ特定情報が登録されたルーティングテーブルを備え、且つ、
前記セッション管理部が、
前記セッションテーブルから前記パケットの出力先にするＩＦ部のＩＦ特定情報を検索できなかった場合は、前記ルーティングテーブルから前記パケットの出力先にするＩＦ部のＩＦ特定情報を検索し、該検索したＩＦ特定情報と前記パケットが属するセッションのセッション特定情報とを対応付けて前記セッションテーブルに登録し、前記スイッチ部を介してパケット、ＩＦ特定情報および追加指示が送られてきた場合は、前記セッションテーブルに、前記追加指示に含まれているＩＦ特定情報を出力先のＩＦ部を示すＩＦ特定情報として登録すると共に、該ＩＦ特定情報に対応付けて前記パケットが属するセッションのセッション特定情報を登録する構成を有し、
前記パケット処理部が、
前記セッション管理部によって前記ルーティングテーブルから検索された前記パケットの出力先にするＩＦ部のＩＦ特定情報が、他のネットワーク処理部に存在するＩＦ部を示している場合は、前記パケット、前記ＩＦ特定情報および前記パケットを受信したＩＦ部のＩＦ特定情報を含む追加指示を前記スイッチ部に入力する構成を有し、
前記スイッチ部が、
入力されたパケット、ＩＦ特定情報および追加指示を、前記ＩＦ特定情報によって特定されるＩＦ部を備えたネットワーク処理部に転送する構成を有することを特徴とするパケット中継装置。
【請求項７】
請求項６に記載のパケット中継装置において、
前記複数のネットワーク処理部が、それぞれ、
セッションを特定するセッション特定情報に対応付けて、そのセッションのポリシーが登録されたポリシーテーブルを備え、且つ、
前記セッション管理部が、
前記セッションテーブルから前記パケットの出力先にするＩＦ部のＩＦ特定情報を検索できなかった場合は、前記ポリシーテーブルに登録されている前記パケットが属するセッションのポリシーがパケット通過となっていることを条件にして、前記ルーティングテーブルから前記パケットの出力先にするＩＦ部のＩＦ特定情報を検索し、該検索したＩＦ特定情報と前記パケットが属するセッションのセッション特定情報とを対応付けて前記セッションテーブルに登録し、前記スイッチ部を介してパケット、ＩＦ特定情報および追加指示が送られてきた場合は、前記セッションテーブルに、前記追加指示に含まれているＩＦ特定情報を出力先のＩＦ部を示すＩＦ特定情報として登録すると共に、該ＩＦ特定情報に対応付けて前記パケットが属するセッションのセッション特定情報を登録する構成を有することを特徴とするパケット中継装置。
【請求項８】
請求項６に記載のパケット中継装置において、
前記セッション管理部が、
前記外部ネットワークからセッションを終了させるパケットを受信したとき、前記セッションテーブルから前記パケットが属するセッションに関する情報を削除し、前記スイッチ部を介してパケット、ＩＦ特定情報および削除指示が入力されたとき、前記セッションテーブルから前記パケットが属するセッションに関する情報を削除する構成を有し、
前記パケット処理部が、
前記セッションを終了させるパケットの出力先とするＩＦ部が他のネットワーク処理装置に存在する場合は、前記パケット、前記パケットの出力先とするＩＦ部のＩＦ特定情報および削除指示を前記スイッチ部に入力する構成を有することを特徴とするパケット中継装置。
【請求項９】
請求項６に記載のパケット中継装置において、
前記セッション管理部が、
前記セッションテーブルに、セッション特定情報とＩＦ特定情報との対を登録する際、予め定められているタイムアウト値も併せて登録する構成を有すると共に、所定時間毎にセッションテーブルに登録されている各タイムアウト値を一定値ずつ減算し、減算後のタイムアウト値が所定値以下となったエントリを削除する構成を有することを特徴とするパケット中継装置。
【請求項１０】
請求項５に記載のパケット中継装置において、
前記複数のネットワーク処理部が、それぞれ、
パケットの宛先ＩＰアドレスに対応付けて、パケットの出力先にするＩＦ部のＩＦ特定情報が登録されたルーティングテーブルと、
パケットの送信元ＩＰアドレス及び宛先ＩＰアドレスに対応付けて、フラグメントオフセット及びパケットの出力先にするＩＦ部のＩＦ特定情報が登録されたエントリを有するＩＰフラグメンテーションテーブルとを備え、且つ、
前記セッション管理部が、
外部ネットワークを介してフラグメントＩＰパケットを受信したとき、前記ＩＰフラグメンテーションテーブルを検索し、前記フラグメントＩＰパケットの送信元ＩＰアドレス、宛先ＩＰアドレス及びフラグメントオフセットと同一の送信元ＩＰアドレス、宛先ＩＰアドレス及びフラグメントオフセットが登録されているエントリが存在する場合は、前記エントリ中のＩＦ特定情報を取得すると共に、前記フラグメントＩＰパケットのパケット長に基づいて、前記エントリ中のフラグメントオフセットを更新し、前記ＩＰフラグメンテーションテーブルに該当するエントリが存在しない場合は、前記セッションテーブル或いは前記ルーティングテーブルから前記フラグメントＩＰパケットの出力先にするＩＦ部のＩＦ特定情報を検索し、該検索したＩＦ特定情報と、前記フラグメントＩＰパケット中の送信元ＩＰアドレス、宛先ＩＰアドレス、フラグメントオフセットとを含むエントリを追加登録する構成を有することを特徴とするパケット中継装置。
【請求項１１】
複数のネットワーク処理部を備えたパケット中継装置におけるパケット中継方法であって、
該複数のネットワーク処理部が、それぞれ、
外部ネットワークからパケットを受信したとき、該パケットの属するセッションに対して定められている出力先のＩＦ部が他のネットワーク処理部に存在することを条件にして、前記パケットと前記ＩＦ部を特定するＩＦ特定情報とを前記他のネットワーク処理部に送信し、他のネットワーク処理部からパケットとＩＦ特定情報とを受信したとき、前記パケットを前記ＩＦ特定情報によって特定されるＩＦ部に出力することを特徴とするパケット中継方法。
【請求項１２】
コンピュータを、複数のネットワーク処理部を備えたパケット中継装置の構成要素であるネットワーク処理部として機能させるためのプログラムであって、
前記コンピュータを、
外部ネットワークからパケットを受信したとき、該パケットの属するセッションに対して定められている出力先のＩＦ部が他のネットワーク処理部に存在することを条件にして、前記パケットと前記ＩＦ部を特定するＩＦ特定情報とを前記他のネットワーク処理部に送信し、他のネットワーク処理部からパケットとＩＦ特定情報とを受信したとき、前記パケットを前記ＩＦ特定情報によって特定されるＩＦ部に出力する手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】  本発明は、セッション管理を必要とするパケット中継装置に関する。
【背景技術】  現在ＷｅｂやＥ−ｍａｉｌ、携帯電話、Ｅ−ｃｏｍｍｅｒｃｅ等によりインターネットが急速に拡大している。またＶｏｉｃｅ  ｏｖｅｒ  ＩＰ（ＶｏＩＰ）、Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）によるＷｅｂサービス等の新しいサービスが伸長してきている。それに伴いネットワークの高速化及びセキュリティ等の高機能の要望が高まっている。中でもＴＣＰセッションや、Ｗｅｂトラヒック、ＶｏＩＰトラヒックに代表される、送信元と宛先の組によって識別できる一連のトラヒックフローを「セッション」とみなして、セッション毎の通過可否判定、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）制御、優先制御の実現が望まれている。
ＴＣＰセッションとは、ＴＣＰ／ＩＰパケットにおいて「送信元ＩＰアドレス」、「宛先ＩＰアドレス」、「プロトコル」、「送信元ポート番号」、「宛先ポート番号」で特定されるパケットトラヒックフローである。ＴＣＰセッションでは、ＴＣＰヘッダ内のＳＹＮフラグがセットされたパケット（ＳＹＮパケットと呼ぶ）の送信を契機にセッションが開始（オープン）され、ＦＩＮフラグがセットされたパケット（ＦＩＮパケット）の送信を契機にセッションが終了（クローズ）される。
図１９にＴＣＰの場合のセッション開始から終了までの状態遷移の一例を示す。クライアントとサーバ間のＴＣＰ通信の場合、まずクライアントからＳＹＮパケットを送信する。サーバはＳＹＮパケット受信後、ＳＹＮ  ＡＣＫパケットを送信し、これに応答してクライアントがＡＣＫパケットを送信する。ここまでの処理によってクライアントとサーバ間でＴＣＰのセッションが確立（Ｅｓｔａｂｌｉｓｈ）する。以後、クライアントとサーバは相互にパケットの送受信を行う。セッションを終了する場合、例えばクライアントからセッション終了する場合は、クライアントからＦＩＮパケットを送信し、サーバがＦＩＮパケット受信後、ＡＣＫパケット及びＦＩＮパケットを送信し、これに応答してクライアントがＡＣＫパケットを送信する。以上でセッションが終了（Ｃｌｏｓｅｄ）する。
ＵＤＰにおいても「送信元ＩＰアドレス」、「宛先ＩＰアドレス」、「プロトコル」、「送信元ポート番号」、「宛先ポート番号」にてパケットトラヒックフローを特定することが可能である。これを擬似セッションと呼ぶ。ＴＣＰと異なり、ＵＤＰにはＳＹＮ，ＦＩＮフラグがパケット内に定義されていないため、明示的なセッションの開始と終了が規定されない。そこでＵＤＰの擬似セッションでは、パケット到着をセッション開始として、タイマーによって一定時間該当するＵＤＰパケットが到着しないことを検知して、セッション終了と判定することが一般に行われている。またＶｏＩＰにおいては、Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｅ  Ｐｒｏｔｏｃｏｌ（ＳＩＰ）によってＵＤＰの擬似セッションの開始と終了が明示的に通知される。
更に、Ｗｅｂの通信プロトコルであるｈｔｔｐ，ｈｔｔｐｓでは、クライアント側であるＷｅｂブラウザとサーバ側であるＷｅｂサーバとの間で、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ（ＵＲＬ）やＣｏｏｋｉｅによるセッション同定機能が存在する。クライアントとサーバ間の通信で、送信元ポートと宛先ポートの組が異なるパケットでも、同位置のＵＲＬやＣｏｏｋｉｅを有していることをもって同一セッションに属したトラヒックと判定する。これらもＵＤＰ擬似セッションと同様に、パケット到着と、タイマーによるタイムアウトないしは上位プロトコルによる明示的セッション終了通知でセッション管理を実現できる。
以上に挙げた各「セッション」では、その開始と終了の判定がパケット毎の頻度で実施することが要求される。「セッション」の高速動的管理がパケット中継装置に求められてきている。
従来のセッション管理を行うパケット中継装置としては、例えば、図２０に示す構成を有するものが知られている（例えば、特開２００２−３５９６３７号公報参照）。
図２０を参照すると、従来のパケット中継装置は、サーバ１００ａとネットワーク処理部２００とから構成される。図中、制御信号線は細線矢印、パケット伝送路は太矢印にて示している。
サーバ１００ａは、内部にネットワーク制御部１１０ａを備えており、ネットワーク制御部１１０ａは、管理者が入力したルーティング情報、ポリシー情報を、ネットワーク処理部２００内のルーティングテーブル２１０、ポリシーテーブル２２０に書き込む。
ネットワーク処理部２００は、パケット処理部２０１、セッション管理部２０２、ルーティング処理部２０３、ＩＦ（インタフェース）部２０４−１〜２０４−Ｍ、ルーティングテーブル２１０、ポリシーテーブル２２０及びセッションテーブル２３０を備える。パケット送受信処理、セッション管理処理、ルーティング処理等は、ネットワーク処理部２００内で行われる。
ＩＦ部２０４−ｉ（１≦ｉ≦Ｍ）を介して外部ネットワークから入力されたパケット（未図示）は、パケット処理部２０１に送信され、パケット受信処理が行われた後、セッション管理部２０２に送信される。セッション管理部２０２では、セッションテーブル２３０を参照して、到着パケットに関する登録済セッション判定を実施する。該当するパケットの登録をセッションテーブルにて検出した場合は、セッション管理部２０２は、登録内容に従って当該パケットを出力先のＩＦ部２０４−ｊ（１≦ｊ≦Ｍ）へ転送するために、パケット処理部２０１に転送する。セッションテーブル２３０に未登録の場合は、セッション管理部２０２は、ポリシーテーブル２２０を参照して通過可否判定を実施する。併せてルーティング処理部２０３が、ルーティングテーブル２１０を参照して出力先のＩＦ部２０４−ｊを同定する。ポリシーテーブル２２０、ルーティングテーブル２１０にて検索した結果を、セッション管理部２０２が、新規登録セッション情報としてセッションテーブル２３０に登録する。当該パケットは、出力先インタフェースへ転送するために、パケット処理部２０１に転送する。パケット処理部２０１に転送された当該パケットは、パケット送信処理が行われた後、ＩＦ部２０４−ｊを介して外部ネットワークに出力される。
上述した構成の従来のパケット中継装置は、全ての入出力パケットが１つのセッション管理部にて集中処理される構成となっており、セッション管理部でのパケット処理性能が装置全体の性能ボトルネックとなってしまう問題点があった。
また、上述した従来のパケット中継装置では、フラグメント化したＩＰパケットに対するセッション管理が実現できていないという問題点があった。
そこで、本発明の目的は、パケット中継装置におけるセッション管理処理性能を向上させることにある。
また、本発明の他の目的は、フラグメントＩＰパケットに対するセッション管理を実現することにある。
【発明の開示】
本発明にかかる第１のパケット中継装置は、セッション管理処理性能を向上させるため、パケットを中継するパケット中継装置において、複数のネットワーク処理部（２００−１〜２００−Ｎ）を備え、該複数のネットワーク処理部（２００−１〜２００−Ｎ）が、それぞれ、外部ネットワークからパケットを受信したとき、該パケットの属するセッショに対して定められている出力先のＩＦ部が他のネットワーク処理部に存在することを条件にして、前記パケットと前記ＩＦ部を特定するＩＦ特定情報とを前記他のネットワーク処理部に送信し、他のネットワーク処理部からパケットとＩＦ特定情報とを受信したとき、前記パケットを前記ＩＦ特定情報によって特定されるＩＦ部に出力する構成を有することを特徴とする。
本発明にかかる第２のパケット中継装置は、セッション管理処理性能を向上させるため、パケットを中継するパケット中継装置において、複数のネットワーク処理部（２００−１〜２００−Ｎ）と、該複数のネットワーク処理部（２００−１〜２００−Ｎ）を相互に接続するスイッチ部（３００）とを備え、前記複数のネットワーク処理部（２００−１〜２００−Ｎ）が、それぞれ、外部ネットワークからパケットを受信したとき、該パケットの属するセッションに対して定められている出力先のＩＦ部が他のネットワーク処理部に存在することを条件にして、前記パケットと前記ＩＦ部を特定するＩＦ特定情報とを前記スイッチ部（３００）に入力し、前記スイッチ部（３００）を介してパケットとＩＦ特定情報とを受信したとき、前記パケットを前記ＩＦ特定情報によって特定されるＩＦ部に出力する構成を有し、前記スイッチ部（３００）が、入力されたパケットとＩＦ特定情報とを、該ＩＦ特定情報によって特定されるＩＦ部を備えたネットワーク処理部に転送する構成を有することを特徴とする。
より具体的には、本発明にかかる第３のパケット中継装置は、第２のパケット中継装置において、前記複数のネットワーク処理部（２００−１〜２００−Ｎ）が、それぞれ、セッションを特定するセッション特定情報に対応付けて、そのセッションに属するパケットの出力先とするＩＦ部のＩＦ特定情報が登録されたセッションテーブル（２３０−１〜２３０−Ｎ）と、前記外部ネットワークからパケットを受信したとき、該パケットの出力先にするＩＦ部のＩＦ特定情報を前記セッションテーブル（２３０−１〜２３０−Ｎ）から検索するセッション管理部（２０２−１〜２０２−Ｎ）と、該セッション管理部（２０２−１〜２０２−Ｎ）が前記セッションテーブル（２３０−１〜２３０−Ｎ）から検索した前記パケットの出力先にするＩＦ部のＩＦ特定情報が、他のネットワーク処理部に存在するＩＦ部を示している場合は、前記パケットと前記ＩＦ特定情報とを前記スイッチ部（３００）に入力し、前記スイッチ部（３００）を介して他のネットワーク処理部からパケットとＩＦ特定情報とが送られてきた場合は、前記パケットを前記ＩＦ特定情報によって特定されるＩＦ部に出力するパケット処理部（２０１−１〜２０１−Ｎ）とを備えたことを特徴とする。
また、本発明にかかる第４のパケット中継装置は、新たなセッションが確立した場合、テーブルの複写処理などの処理時間がかかる処理を行わずに、各ネットワーク処理部内のセッションテーブルの整合性を保てるようにするため、第３のパケット中継装置において、前記各ネットワーク処理部（２００−１〜２００−Ｎ）が、それぞれ、パケットの宛先ＩＰアドレスに対応付けて、パケットの出力先にするＩＦ部のＩＦ特定情報が登録されたルーティングテーブル（２１０−１〜２１０−Ｎ）を備え、且つ、前記セッション管理部（２０２−１〜２０２−Ｎ）が、前記セッションテーブル（２３０−１〜２３０−Ｎ）から前記パケットの出力先にするＩＦ部のＩＦ特定情報を検索できなかった場合は、前記ルーティングテーブル（２１０−１〜２１０−Ｎ）から前記パケットの出力先にするＩＦ部のＩＦ特定情報を検索し、該検索したＩＦ特定情報と前記パケットが属するセッションのセッション特定情報とを対応付けて前記セッションテーブル（２３０−１〜２３０−Ｎ）に登録し、前記スイッチ部（３００）を介してパケット、ＩＦ特定情報および追加指示が送られてきた場合は、前記セッションテーブル（２３０−１〜２３０−Ｎ）に、前記追加指示に含まれているＩＦ特定情報を出力先のＩＦ部を示すＩＦ特定情報として登録すると共に、該ＩＦ特定情報に対応付けて前記パケットが属するセッションのセッション特定情報を登録する構成を有し、前記パケット処理部（２０１−１〜２０１−Ｎ）が、前記セッション管理部（２０２−１〜２０２−Ｎ）によって前記ルーティングテーブル（２１０−１〜２１０−Ｎ）から検索された前記パケットの出力先にするＩＦ部のＩＦ特定情報が、他のネットワーク処理部に存在するＩＦ部を示している場合は、前記パケット、前記ＩＦ特定情報および前記パケットを受信したＩＦ部のＩＦ特定情報を含む追加指示を前記スイッチ部（３００）に入力する構成を有し、前記スイッチ部（３００）が、入力されたパケット、ＩＦ特定情報および追加指示を、前記ＩＦ特定情報によって特定されるＩＦ部を備えたネットワーク処理部に転送する構成を有することを特徴とする。
また、本発明にかかる第５のパケット中継装置は、セッション毎にポリシーを管理できるようにするため、第４のパケット中継装置において、前記複数のネットワーク処理部（２００−１〜２００−Ｎ）が、それぞれ、セッションを特定するセッション特定情報に対応付けて、そのセッションのポリシーが登録されたポリシーテーブル（２２０−１〜２２０−Ｎ）を備え、且つ、前記セッション管理部（２０２−１〜２０２−Ｎ）が、前記セッションテーブル（２３０−１〜２３０−Ｎ）から前記パケットの出力先にするＩＦ部のＩＦ特定情報を検索できなかった場合は、前記ポリシーテーブルに登録されている前記パケットが属するセッションのポリシーがパケット通過となっていることを条件にして、前記ルーティングテーブル（２１０−１〜２１０−Ｎ）から前記パケットの出力先にするＩＦ部のＩＦ特定情報を検索し、該検索したＩＦ特定情報と前記パケットが属するセッションのセッション特定情報とを対応付けて前記セッションテーブル（２３０−１〜２３０−Ｎ）に登録し、前記スイッチ部（３００）を介してパケット、ＩＦ特定情報および追加指示が送られてきた場合は、前記セッションテーブル（２３０−１〜２３０−Ｎ）に、前記追加指示に含まれているＩＦ特定情報を出力先のＩＦ部を示すＩＦ特定情報として登録すると共に、該ＩＦ特定情報に対応付けて前記パケットが属するセッションのセッション特定情報を登録する構成を有することを特徴とする。
また、本発明にかかる第６のパケット中継装置は、セッション終了時に、そのセッションに関する情報をセッションテーブルから削除するために、第４のパケット中継装置において、前記セッション管理部（２０２−１〜２０２−Ｎ）が、前記外部ネットワークからセッションを終了させるパケットを受信したとき、前記セッションテーブル（２３０−１〜２３０−Ｎ）から前記パケットが属するセッションに関する情報を削除し、前記スイッチ部（３００）を介してパケット、ＩＦ特定情報および削除指示が入力されたとき、前記セッションテーブル（２３０−１〜２３０−Ｎ）から前記パケットが属するセッションに関する情報を削除する構成を有し、前記パケット処理部（２０１−１〜２０１−Ｎ）が、前記セッションを終了させるパケットの出力先とするＩＦ部が他のネットワーク処理装置に存在する場合は、前記パケット、前記パケットの出力先とするＩＦ部のＩＦ特定情報および削除指示を前記スイッチ部（３００）に入力する構成を有することを特徴とする。
また、本発明にかかる第７のパケット中継装置は、回線ダウンなどによりＦＩＮパケットを受信できない状態になっても、上記ＦＩＮパケットが属するセッションによって、セッションテーブルのエントリが無駄に使用されないようにするため、第４のパケット中継装置において、前記セッション管理部（２０２−１〜２０２−Ｎ）が、前記セッションテーブル（２３０−１〜２３０−Ｎ）に、セッション特定情報とＩＦ特定情報との対を登録する際、予め定められているタイムアウト値も併せて登録する構成を有すると共に、所定時間毎にセッションテーブルに登録されている各タイムアウト値を一定値ずつ減算し、減算後のタイムアウト値が所定値以下となったエントリを削除する構成を有することを特徴とする。
また、本発明にかかる第８のパケット中継装置は、フラグメントＩＰパケットに対するセッション管理を実現できるようにするため、第３のパケット中継装置において、前記複数のネットワーク処理部（２００−１〜２００−Ｎ）が、それぞれ、パケットの宛先ＩＰアドレスに対応付けて、パケットの出力先にするＩＦ部のＩＦ特定情報が登録されたルーティングテーブル（２１０−１〜２１０−Ｎ）と、パケットの送信元ＩＰアドレス及び宛先ＩＰアドレスに対応付けて、フラグメントオフセット及びパケットの出力先にするＩＦ部のＩＦ特定情報が登録されたエントリを有するＩＰフラグメンテーションテーブル（２４０−１〜２４０−Ｎ）とを備え、且つ、前記セッション管理部（２０２−１〜２０２−Ｎ）が、外部ネットワークを介してフラグメントＩＰパケットを受信したとき、前記ＩＰフラグメンテーションテーブル（２４０−１〜２４０−Ｎ）を検索し、前記フラグメントＩＰパケットの送信元ＩＰアドレス、宛先ＩＰアドレス及びフラグメントオフセットと同一の送信元ＩＰアドレス、宛先ＩＰアドレス及びフラグメントオフセットが登録されているエントリが存在する場合は、前記エントリ中のＩＦ特定情報を取得すると共に、前記フラグメントＩＰパケットのパケット長に基づいて、前記エントリ中のフラグメントオフセットを更新し、前記ＩＰフラグメンテーションテーブル（２４０−１〜２４０−Ｎ）に該当するエントリが存在しない場合は、前記セッションテーブル（２３０−１〜２３０−Ｎ）或いは前記ルーティングテーブル（２１０−１〜２１０−Ｎ）から前記フラグメントＩＰパケットの出力先にするＩＦ部のＩＦ特定情報を検索し、該検索したＩＦ特定情報と、前記フラグメントＩＰパケット中の送信元ＩＰアドレス、宛先ＩＰアドレス、フラグメントオフセットとを含むエントリを追加登録する構成を有することを特徴とする。
本発明のパケット中継装置は、セッション管理部を複数のネットワーク処理部に分散して配置しているので、セッション管理部におけるセッション検索処理およびセッション登録追加・削除処理がボトルネックとならないようにすることができる。
また、本発明のパケット中継装置では、セッションテーブル、ポリシーテーブル、ＩＰフラグメンテーションテーブルの検索処理は、外部ネットワークからパケットを受信したネットワーク処理部内のセッション管理部において、１回だけ実施されるため、テーブルの検索処理がボトルネックとなることはない。
また、本発明のパケット中継装置では、外部ネットワークから受信したパケットが新規セッションのパケットであった場合、即ちセッションテーブルに上記パケットが属するセッションに関する情報が登録されていなかった場合、入力側ネットワーク処理部にて自処理部内のセッションテーブルへセッションエントリを追加をすると共に、パケットを出力先となるＩＦ部を有する出力側のネットワーク処理部に転送する際に追加指示も転送し、出力側ネットワーク処理部にて自処理部内のセッションテーブルへのセッションエントリの追加処理を実施している。これにより、入力・出力の対になる各ネットワーク処理部内のセッションテーブルにおいて、セッションテーブルの内容の同一化が自動的に実施されることとなり、特別なセッションテーブルの複写化処理を行うことなく、異なるネットワーク処理部内のセッションテーブルの同一性を保つことが可能となる。
また、セッション管理部が分散されていることにより、ネットワーク処理部とスイッチ部の組み合わせにてシステム全体のセッション処理能力を向上させることが可能である。
また、出力側ネットワーク処理部内では、新規セッションの登録処理のみを実施し、セッション検索処理、ポリシー取得処理を省略することで、入出力側ネットワーク処理部双方でセッション検索処理、ポリシー取得処理を行う方法と比較して、パケットの装置内通過時間（レイテンシー）を短縮することが可能である。
【図面の簡単な説明】  図１は、本発明の実施例のパケット中継装置の構成図である。
図２は、本発明の実施例のパケット中継装置１とクライアント２とサーバ３との接続図である。
図３は、外部ネットワークからのパケットの構成を示す図である。
図４は、入力側パケット転送処理の処理フローを示したフローチャートである。
図５は、セッション管理部２０２−１及びルーティング処理部２０３−１におけるセッション管理部処理の処理フローを示したフローチャートである。
図６は、ルーティング情報取得処理の処理フローを示したフローチャートである。
図７は、パケット転送処理の処理フローを示したフローチャートである。
図８は、出力側パケット転送処理の処理フローを示したフローチャートである。
図９は、セッション管理部２０２−１におけるセッションテーブル処理の処理フローを示したフローチャートである。
図１０は、セッションテーブルの構成例を示した図である。
図１１は、セッションテーブルの構成例を示した図である。
図１２は、セッションテーブルの構成例を示した図である。
図１３は、ポリシーテーブルマスタ１２０、及びポリシーテーブル２２０−１〜２２０−Ｎの構成例を示した図である。
図１４は、ＩＰフラグメンテーションテーブル２４０−１〜２４０−Ｎの構成例を示した図である。
図１５は、ルーティングテーブルマスタ１１０、及びルーティングテーブル２１０−１〜２１０−Ｎの構成例を示した図である。
図１６は、セッション処理用パケット情報の構成例を示した図である。
図１７は、装置内拡張ヘッダの構成例を示した図である。
図１８は、本発明の実施例における、パケット中継装置１の内部動作を示した図である。
図１９は、ＴＣＰセッションの開始から終了までの状態遷移の一例を示した図である。
図２０は、従来のパケット中継装置の構成を示した図である。
【発明を実施するための最良の形態】  次に本発明の実施例について図面を参照して詳細に説明する。
図１に本発明の実施例のパケット中継装置１の構成例を示す。
同図において、パケット中継装置１は、サーバ１００と、複数のネットワーク処理部２００−１〜２００−Ｎと、スイッチ部３００とから構成される。
サーバ１００は、ルーティングテーブルマスタ１１０及びポリシーテーブルマスタ１２０を含んでいる。
サーバ１００は、複数のネットワーク処理部２００−１〜２００−Ｎと制御信号線にて接続されている。またサーバ１００は、スイッチ部３００と制御信号線、およびパケット伝送路にて接続されている。図中、制御信号線は細線矢印、パケット伝送路は太矢印にて示している。
サーバ１００は、管理者が外部から入力したルーティング情報をルーティングテーブルマスタ１１０に書き込む。また、管理者が外部から入力したポリシー情報をポリシーテーブルマスタ１２０に書き込む。ルーティングテーブルマスタ１１０及びポリシーテーブルマスタ１２０に書き込まれたルーティング情報、ポリシー情報は、制御信号線を経由して、各ネットワーク処理部２００−１〜２００−Ｎ内のルーティングテーブル２１０−１〜２１０−Ｎ、ポリシーテーブル２２０−１〜２２０−Ｎに書き込まれる。
複数のネットワーク処理部２００−１〜２００−Ｎは、同じ構成を取っている。代表としてネットワーク処理部２００−１を基に説明を行う。
ネットワーク処理部２００−１は、パケット処理部２０１−１、セッション管理部２０２−１、ルーティング処理部２０３−１、複数のＩＦ部２０４−１−１〜２０４−１−Ｍ、ルーティングテーブル２１０−１、ポリシーテーブル２２０−１、セッションテーブル２３０−１及びＩＰフラグメンテーションテーブル２４０−１から構成される。
パケット処理部２０１−１は、複数のＩＦ部２０４−１−１〜２０４−１−Ｍ、スイッチ部３００とパケット伝送路にて接続されている。
セッション管理部２０２−１は、パケット処理部２０１−１、ルーティング処理部２０３−１、ルーティングテーブル２１０−１、ポリシーテーブル２２０−１、セッションテーブル２３０−１、ＩＰフラグメンテーションテーブル２４０−１と制御信号線にて接続されている。
ルーティング処理部２０３−１は、ルーティングテーブル２１０−１と制御信号線にて接続されている。
パケット処理部２０１−１は、ＩＦ部２０４−１−１〜２０４−１−Ｍから入力される図３に示すパケット（イーサネット（登録商標）ヘッダ、ＩＰヘッダ、ＴＣＰ／ＵＤＰヘッダ及びデータを含む）を受信し、後述の図４に示す入力側パケット転送処理を行う。その際、後述の図１６に示す形式のセッション処理用パケット情報を、パケット内のあらかじめ指定されたフィールドから抽出した情報に基づいて生成し、セッション管理部２０２−１に転送する。また、パケット処理部２０１−１は、スイッチ部３００を介して他のネットワーク処理部から入力されるパケットを受信し、後述の図８に示す出力側パケット転送処理を行う。
セッション管理部２０２−１では、セッション処理用パケット情報から各種検索キーを生成し、セッションテーブル２３０−１、ＩＰフラグメンテーションテーブル２４０−１、ポリシーテーブル２２０−１に対する検索を実施する。またセッションテーブル２３０−１、ＩＰフラグメンテーションテーブル２４０−１への新規エントリ追加・削除処理を実施する。更に、他のネットワーク処理部２００−２〜２００−Ｎ内のセッションテーブル２３０−２〜２３０−Ｎに対する新規エントリ追加・削除処理を実施するために必要になる情報（セッション処理動作情報など）を生成する。
ルーティング処理部２０３−１は、セッション管理部２０２−１からルーティングテーブル２１０−１用の検索キーを受け取り、ルーティングテーブル２１０−１に対する検索を実行する。検索結果をセッション管理部２０２−１に通知する。
セッションテーブル２３０−１〜２３０−Ｎは、本パケット中継装置１で中継されるパケットによる確立セッションを登録するテーブルである。
ポリシーテーブルマスタ１２０、及びポリシーテーブル２２０−１〜２２０−Ｎは、本パケット中継装置１で中継されるパケット通過規則を記載したテーブルである。
ＩＰフラグメンテーションテーブル２４０−１〜２４０−Ｎは、本パケット中継装置１で中継されるパケットで、ＩＰレイヤより上位のレイヤ情報でポリシー、セッション管理判定が行われる際に、フラグメント化されたＩＰパケットに対するポリシー、セッションを管理するためのテーブルである。
ルーティングテーブルマスタ１１０、及びルーティングテーブル２１０−１〜２１０−Ｎは、本パケット中継装置１で中継されるパケットの出力先ＩＦ部を管理するテーブルである。
ポリシーテーブルマスタ１２０、ポリシーテーブル２２０−１〜２２０−Ｎ、ルーティングテーブルマスタ１１０、及びルーティングテーブル２１０−１〜２１０−Ｎは、本パケット中継装置１の管理者、もしくはルーティングプロトコルのパケット内の情報にて設定されるのに対して、セッションテーブル２３０−１〜２３０−Ｎ、ＩＰフラグメンテーションテーブル２４０−１〜２４０−Ｎは、パケット到着毎にセッション情報のテーブル追加、更新、削除処理判定がなされる。
スイッチ部３００は、複数のネットワーク処理部２００−１〜２００−Ｎ、サーバ１００とパケット伝送路にて接続されている。複数のネットワーク処理部２００−１〜２００−Ｎ間でのパケット転送処理、外部ネットワークとサーバとのパケット転送処理（ルーティングプロトコルのパケット等の転送処理）を実施する。
図１０、図１１、図１２にセッションテーブルの構成例を示す。セッションテーブルは、セッションＩＤ、送信元ＩＰアドレス、送信元ポート番号、プロトコル、宛先ＩＰアドレス、宛先ポート番号、送信元セッション状態、入力物理ＩＦ番号、出力物理ＩＦ番号から構成される。これらの項目の内、送信元ＩＰアドレス、送信元ポート番号、プロトコル、宛先ＩＰアドレス、宛先ポート番号が検索キーとなり、送信元セッション状態、入力物理ＩＦ番号、出力物理ＩＦ番号が検索結果となる。
検索方法は、検索キーに対する完全一致である。セッションテーブル上に登録されているセッションエントリに属するパケットは通過とし、テーブル検索にヒットしなかったパケットの場合は、廃棄とする。
図１０、図１１、図１２では、例として３つのネットワーク処理部内のセッションテーブルを示している。図１０がネットワーク処理部２００−１内のセッションテーブル２３０−１、図１１がネットワーク処理部２００−２内のセッションテーブル２３０−２、図１２がネットワーク処理部２００−３内のセッションテーブル２３０−３の例である。
図１０、図１１、図１２では、２本のセッションが登録されている様子を示している。一本はＩＰアドレスが１９２．１６８．１．１、ポート番号が１０２５とＩＰアドレスが１９２．１６８．１０．１、ポート番号が８０のＴＣＰセッションである。もう一本は、ＩＰアドレスが１９２．１６８．６．２、ポート番号が１２３００とＩＰアドレスが１９２．１６８．１００．１５、ポート番号が８０のＴＣＰセッションである。
図１０には、セッションＩＤが１−１の、ＩＰアドレス：１９２．１６８．１．１、ポート番号：１０２５から、ＩＰアドレス：１９２．１６８．１０．１、ポート番号：８０向けのＴＣＰセッションと、セッションＩＤが１−２の、ＩＰアドレス：１９２．１６８．１００．１５、ポート番号：８０から、ＩＰアドレス：１９２．１６８．６．２、ポート番号：１２３００向けのＴＣＰセッションとが登録されている。また、セッションＩＤ：１−１に対応付けて送信元セッション状態：Ｅｓｔａｂｌｉｓｈ、入力物理ＩＦ番号：１−１、出力物理ＩＦ番号：２−１が登録され、セッションＩＤ：１−２に対応付けて送信元セッション状態：Ｅｓｔａｂｌｉｓｈ、入力物理ＩＦ番号：１−２、出力物理ＩＦ番号：３−２が登録されている。なお、物理ＩＦ番号：Ｊ−Ｋと記した場合、この物理ＩＦ番号は、ネットワーク処理部２００−Ｊ内のＩＦ部２０４−Ｊ−Ｋを示す。
図１１には、セッションＩＤが２−１のセッションが登録されている。本セッションエントリは、図１０のセッションＩＤ：１−１の登録内容と対になるエントリである。
同様に図１２にある、セッションＩＤ：３−１は図１０のセッションＩＤ：１−２と対になる。
図１３にポリシーテーブルマスタ１２０、及びポリシーテーブル２２０−１〜２２０−Ｎの構成例を示す。
ポリシーテーブルマスタ１２０及びポリシーテーブル２２０−１〜２２０−Ｎは、ＡＣＬ−ＩＤ、送信元ＩＰアドレス、送信元ポート番号、プロトコル、宛先ＩＰアドレス、宛先ポート番号、ポリシーから構成される。ポリシーは、パケットの通過・廃棄を示す情報である。これらの項目の内、送信元ＩＰアドレス、送信元ポート番号、プロトコル、宛先ＩＰアドレス、宛先ポート番号が検索キーとなり、ポリシーが検索結果となる。
ポリシーテーブルマスタ１２０及びポリシーテーブル２２０−１〜２２０−Ｎの検索方法は、ＡＣＬ−ＩＤの若い番号のエントリほど、優先度が高いものとして、ＡＣＬ−ＩＤの昇順に検索を行って最初に合致したエントリを検索結果とする。本ポリシーテーブルマスタ１２０及びポリシーテーブル２２０−１〜２２０−Ｎの検索方法はこれに限定されるものではなく、ＡＣＬ−ＩＤの若い番号のエントリほど、優先度が低いものとして、ＡＣＬ−ＩＤの昇順に検索を行い、最後に合致したエントリを検索結果とするルールでも良い。
図１４にＩＰフラグメンテーションテーブル２４０−１〜２４０−Ｎの構成例を示す。同図ではＩＰフラグメンテーションテーブル２４０−１の例を示す。
ＩＰフラグメンテーションテーブル２４０−１は、フラグメントＩＤ、送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル、フラグメントフラグ及びフラグメントオフセット、ポリシー、入力物理ＩＦ番号、出力物理ＩＦ番号から構成される。これらの項目の内、送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコルが検索キーとなり、フラグメントフラグ及びフラグメントオフセット、ポリシー、入力物理ＩＦ番号、出力物理ＩＦ番号が検索結果となる。検索方法は、検索キーに対する完全一致である。
図１５にルーティングテーブルマスタ１１０、及びルーティングテーブル２１０−１〜２１０−Ｎの構成例を示す。
ルーティングテーブルマスタ１１０及びルーティングテーブル２１０−１〜２１０−Ｎは、ルーティングＩＤ、宛先ＩＰアドレス、出力物理ＩＦ番号から構成される。これらの項目の内、宛先ＩＰアドレスが検索キーとなり、出力物理ＩＦ番号が検索結果となる。検索方法は検索キーに対する最長一致である。
図１６にセッション処理用パケット情報の構成例を示す。
セッション処理用パケット情報は、パケットＩＤ、入力物理ＩＦ番号、ＩＰヘッダ、ＴＣＰ／ＵＤＰヘッダ、セッション処理動作情報、ポリシー、出力物理ＩＦ番号から構成される。
このセッション処理用パケット情報は、パケット処理部２０１−１〜２０１−Ｎとセッション管理部２０２−１〜２０２−Ｎとの間でやり取りされる情報である。パケット処理部２０１−１〜２０１−Ｎは、外部ネットワークからパケットを受信したとき、上記パケットを特定するパケットＩＤと、上記パケットを受信したＩＦ部を示す入力物理ＩＦ番号と、上記パケットのＩＰヘッダおよびＴＣＰ／ＵＤＰヘッダを該当部分に設定し、且つセッション処理動作情報、ポリシー及び出力物理ＩＦ番号にデフォルト値を設定したセッション処理用パケット情報を生成し、セッション管理部２０２−１〜２０２−Ｎに渡す。セッション管理部２０２−１〜２０２−Ｎ及びルーティング処理部２０３−１〜２０３−Ｎは、セッション処理用パケット情報に基づいて、検索・判定処理を行い、セッション管理部２０２−１〜２０２−Ｎは、検索・判定処理結果に応じた値をセッション処理動作情報、ポリシー、出力物理ＩＦ番号に設定し、これらの情報を設定後のセッション処理用パケット情報をパケット処理部２０１−１〜２０１−Ｎに返却する。セッション処理動作情報は、セッションテーブル２３０−１〜２３０−Ｎに対する操作処理を示し、新規セッション追加、セッション維持、セッション終了がある。
図１７に装置内拡張ヘッダの構成例を示す。同図に示すように、装置内拡張ヘッダは、セッション処理動作情報、ポリシー、入力物理ＩＦ番号、出力物理ＩＦ番号から構成される。このような構成を有する装置内拡張ヘッダは、パケット処理部２０１−１〜２０１−Ｎによって生成されるものであり、受信パケットに付加される。
ネットワーク処理部２００−１が備えているパケット処理部２０１−１、セッション管理部２０２−１、ルーティング処理部２０３−１、ＩＦ部２０４−１−１〜２０４−１−Ｍは、ハードウェアで実現しても、プログラムで実現しても構わない。プログラムで実現する場合は、記録媒体（ディスク、半導体メモリ等）に上記各部を実現するためのプログラムを記録しておく。このプログラムは、コンピュータからなるネットワーク処理部２００−１によって読み取られ、その動作を制御することにより、ネットワーク処理部２００−１上にパケット処理部２０１−１、セッション管理部２０２−１、ルーティング処理部２０３−１、ＩＦ部２０４−１−１〜２０４−１−Ｍを実現する。
次に図を参照しながら本発明の実施例のパケット中継装置１の動作を示す。
図２は本発明の実施例のパケット中継装置１とクライアント２とサーバ３との接続関係を示している。
クライアント２は、パケット中継装置１のネットワーク処理部２００−１に属するＩＦ部２０４−１−１と接続している。サーバ３は、パケット中継装置１のネットワーク処理部２００−Ｎに属するＩＦ部２０４−Ｎ−１と接続している。クライアント２から送信される図３に示すパケットは、ＩＦ部２０４−１−１にて受信され、逆にクライアント２宛のパケットは、ＩＦ部２０４−１−１から送信される。サーバ３から送信されるパケットは、ＩＦ部２０４−Ｎ−１にて受信され、逆にサーバ３宛のパケットは、ＩＦ部２０４−Ｎ−１から送信される。
以下、クライアント２からサーバ３宛のパケットがパケット中継装置１を経由して転送される際の動作を図１，図２を用いて説明する。
クライアント２から送信されたパケットがＩＦ部２０４−１−１に到着すると、ネットワーク処理部２００−１が後述の図４に示す入力側パケット転送処理を実施する。
後述の図４に示す入力側パケット転送処理が行われた後、パケットはスイッチ部３００内を経由して、ネットワーク処理部２００−Ｎに転送される。
ネットワーク処理部２００−Ｎは、後述の図８に示す出力側パケット転送処理を実施して、パケットをＩＦ部２０４−Ｎ−１からサーバ３に送信する。
次に、図４を参照して入力側パケット転送処理を説明する。図４は入力側パケット転送処理の処理フローを示したフローチャートである。
ＩＦ部２０４−１−１よりパケットを受信すると（ステップ１）、パケット処理部２０１−１は、パケットのチェックサムをチェックし（ステップ２）、パケットのバッファリングを開始する（ステップ３）。
それから、パケット処理部２０１−１は、受信したパケット内のフィールドの内容に基づいて、図１６に示す形式のセッション処理用パケット情報を生成し（ステップ４）、セッション管理部２０２−１にセッション処理用パケット情報を通知することにより、後述の図５に示すセッション管理部２０２−１におけるセッション管理部処理を開始させる（ステップ５）。
セッション管理部２０２−１が検索結果を反映させたセッション処理用パケット情報を返答するまでの間、パケット処理部２０１−１は、パケットを保持する。この保持しているパケットと、セッション処理用パケット情報とは、セッション処理用パケット情報中のパケットＩＤにより対応付けられる。セッション管理部２０２−１が検索結果をセッション処理動作情報、ポリシー及び出力物理ＩＦ番号に反映させたセッション処理用パケット情報をパケット処理部２０１−１に返すと、パケット処理部２０１−１は、セッション処理用パケット情報内の検索・判定結果（セッション処理動作情報、ポリシー、出力物理ＩＦ番号）と、パケットを受信したＩＦ部２０４−１−１のＩＦ番号（入力物理ＩＦ番号）とから図１７に示す形式の装置内拡張ヘッダを生成し、パケットＩＤにより上記セッション処理用パケット情報と対応付けられている該当するパケットに装置内拡張ヘッダを付与する（装置内拡張ヘッダ追加処理：ステップ６）。装置内拡張ヘッダの形式は、ヘッダに限定されるものではなく、パケットとは別管理の種別情報（ディスクリプタ）でも良い。
パケット処理部２０１−１は、装置内拡張ヘッダの内容をもとに後述の図７に示すパケット転送処理を行い（ステップ７）、パケット処理部２０１−１の外部へパケットを出力する。
図５は、図４のステップ５において行われるセッション管理部２０２−１及びルーティング処理部２０３−１におけるセッション管理部処理の詳細な処理フローを示したフローチャートである。
はじめに、セッション管理部２０２−１は、パケット処理部２０１−１からセッション処理用パケット情報を受信し、各テーブル用の検索キーや判定用情報を作成する（ステップ２０）。例えば、セッションテーブル用には、セッション処理用パケット情報中のＩＰヘッダに基づいて、送信元ＩＰアドレス、送信元ポート番号、プロトコル、宛先ＩＰアドレス、宛先ポート番号を含む検索キーを作成する。また、例えば、ＩＰフラグメンテーションテーブル用には、セッション処理用パケット情報中のＩＰヘッダに基づいて、送信元ＩＰアドレス、プロトコル、宛先ＩＰアドレスを含む検索キーを作成すると共に、フラグメントオフセットを含む判定用情報を生成する。
次に、セッション管理部２０２−１は、ＩＰフラグメンテーションテーブル２４０−１の検索を実施する（ステップ２１）。
検索対象のパケットがフラグメントＩＰパケットであり、かつＩＰフラグメンテーションテーブル２４０−１にフラグメント登録があり、かつ対象パケットのオフセット値（判定用情報）がＩＰフラグメンテーションテーブル２４０−１内記載のオフセット予測値と一致するならば、ＩＰフラグメントとして連続したフラグメントであると判断する（ステップ２２−Ｙｅｓ）。このとき、セッション管理部２０２−１は、ＩＰフラグメンテーションテーブル２４０−１から該当パケットが属するセッションのポリシー、該当パケットの出力先とするＩＦ部を特定する出力物理ＩＦ番号を取得する（ステップ３０）。ＩＰフラグメンテーションテーブル２４０−１からポリシーを取得した場合は、ＴＣＰ、ＵＤＰのレイヤではデータが連続している状況なので、セッション状態の更新はない。
ステップ３０に続いて、対象パケットのフラグメントオフセット値とパケット長から、次のパケットのフラグメントオフセット値を計算（予測）して、ＩＰフラグメンテーションテーブル２４０−１の該当エントリのフラグメントオフセット値を更新する。また対象パケットが最終フラグメントの場合は該当エントリを削除する（ステップ３１）。その後ステップ６０に進む。
ＩＰフラグメントとして連続したフラグメントでないと判断した場合（ステップ２２−Ｎｏ）、セッションテーブル２３０−１の検索を実施する（ステップ２３）。
セッションテーブル２３０−１内に、ステップ２０で生成したセッションテーブル用の検索キーと一致するエントリが存在する場合（ステップ２４−Ｙｅｓ）、該当ＩＰパケットは登録済セッションに属するパケットと判断される。その後、セッション管理部２０２−１は、当該ＩＰパケットのポリシーが「パケット通過」であることを取得すると共に、セッションテーブル２３０−１から送信元セッション状態、出力物理ＩＦ番号を取得する（ステップ４０）。ここで、ポリシー「パケット通過」を取得するのは、セッションテーブル２３０−１には、ポリシーが「パケット通過」となっているセッションに関する情報しか登録されないからである。
ステップ４０に続いて、ＴＣＰパケットの場合、セッション状態更新チェックを実施する（ステップ４１）。ＴＣＰヘッダのＳＹＮ／ＡＣＫ／ＦＩＮフラグと、セッションテーブル２３０−１から取得した送信元セッション状態とに基づいて、送信元の新しいセッション状態を判定する。
判定した新しいセッション状態がセッションテーブル２３０−１内の該当エントリのセッション状態から変化している場合（ステップ４２−Ｙｅｓ）、セッションテーブル２３０−１内の該当エントリのセッション状態を、判定した新しいセッション状態に更新する。また、セッション終了と判定された場合は該当エントリを削除する（ステップ４３）。その後、ステップ５０に進む。
判定した新しいセッション状態がセッションテーブル２３０−１から取得した送信元セッション状態から変化していない場合（ステップ４２−Ｎｏ）、セッションテーブル２３０−１の更新は行わず、ステップ５０に進む。
セッションテーブル２３０−１内に該当するエントリがない場合（ステップ２４−Ｎｏ）、セッション管理部２０２−１は、ポリシーテーブル２２０−１から該当ＩＰパケットのポリシーを検索する（ステップ２５）。ポリシーテーブル２２０−１の検索では必ず該当パケットのポリシーが取得できる（ステップ２６）。エントリにない場合でも、デフォルトポリシーを決定しておけば良い。
ステップ２６で取得したポリシーが「パケット通過」である場合は、後述の図６に示すルーティング情報取得処理を実施した後（ステップ２７）、ステップ２８の処理を行う。
ステップ２８では、ＴＣＰヘッダのＳＹＮ／ＡＣＫ／ＦＩＮフラグから送信元のセッション状態を判定し、セッション開始であることが判明した場合には、セッションテーブル２３０−１へ新規セッションエントリを追加する。セッションテーブル２３０−１へのセッションエントリ追加では、入力パケットの送信元ＩＰアドレス、送信元ポート番号、プロトコル、宛先ＩＰアドレス、宛先ポート番号、送信元セッション状態、入力物理ＩＦ番号、出力物理ＩＦ番号をそのまま登録する。なお、出力物理ＩＦ番号と入力物理ＩＦ番号を比較して、パケットの転送先が同一ネットワーク処理部内のＩＦ部である場合は、上記エントリ追加に加えて、入力パケットの送信元ＩＰアドレス、送信元ポート番号、入力物理ＩＦ番号と、宛先ＩＰアドレス、宛先ポート番号、出力物理ＩＦ番号とを入れ替えたエントリも登録する。セッションテーブル２０３−１内に、本パケットと逆向きのパケットフローに関するエントリを登録する必要があるためである。セッション開始以外の場合は、セッション管理を行わないパケットと判定して、セッションテーブル２３０−１へのセッションエントリ追加を実施しない。その後、セッション管理部２０２−１の処理は、ステップ５０に進む。
これに対して、ステップ２６で取得したポリシーが「パケット廃棄」である場合は、セッション管理部２０２−１の処理は、ステップ２７及びステップ２８をスキップしてステップ５０に進む。
ステップ２８、ステップ４２−Ｎｏ、ステップ４３、ステップ２６（ポリシーが「パケット廃棄」の場合）に続いて、該当パケットがフラグメントＩＰパケットかどうかの判定を実施する（ステップ５０）。
該当パケットがフラグメントＩＰパケットであれば（ステップ５０−Ｙｅｓ）、ＩＰフラグメンテーションテーブル２４０−１のエントリ追加を実施して（ステップ５１）、ステップ６０に進む。
これに対して、該当パケットがフラグメントＩＰパケットでない場合（ステップ５０−Ｎｏ）は、ステップ６０に進む。
最後に、該当パケットに関して取得した情報を、図１６に示す形式を有するセッション処理用パケット情報中のセッション処理動作情報（新規セッション追加／セッション維持／セッション終了）、ポリシー（通過／廃棄）、出力物理ＩＦ番号に設定し、パケット処理部２０１−１に返却する（ステップ６０）。以上により、図５のフローを終了する。
図６は、図５のステップ２７で行うルーティング情報取得処理の詳細な処理フローを示したフローチャートである。本処理はルーティング処理部２０３−１にて実施する。ルーティング情報取得処理ではルーティングテーブル２１０−１の検索を行い（ステップ１０）、出力物理ＩＦ番号を取得して（ステップ１１）、終了する。
図７は、図４のステップ７で行うパケット転送処理の詳細な処理フローを示したフローチャートである。パケット処理部２０１−１は、装置内拡張ヘッダ内のポリシーを参照して、該当するパケットが廃棄対象かを判定する（ステップ７０）。廃棄対象パケットである場合（ステップ７０−Ｙｅｓ）、パケット廃棄を行う（ステップ７１）。
廃棄対象パケットでない場合（ステップ７０−Ｎｏ）、装置内拡張ヘッダ内の出力物理ＩＦ番号を参照して該当するパケットの転送先が自ネットワーク処理部２００−１内のＩＦ部か、他ネットワーク処理部内のＩＦ部かを判定する（ステップ７２）。パケットの転送先が他ネットワーク処理部内のＩＦ部である場合（ステップ７２−Ｎｏ）、スイッチ部３００にパケットを転送する（ステップ７３）。その際、装置内拡張ヘッダを付与したまま転送する。スイッチ部３００は、装置内拡張ヘッダが付与されたパケットを、装置内拡張ヘッダ中の出力物理ＩＦ番号によって特定されるＩＦ部を備えたネットワーク処理部（この例の場合は、ネットワーク処理部２００−Ｎ）に転送する。
パケットの転送先が自ネットワーク処理部２００−１内のＩＦ部２０４−１である場合（ステップ７２−Ｙｅｓ）、パケットから装置内拡張ヘッダを削除し（ステップ７４）、装置内拡張ヘッダ中の出力物理ＩＦ番号によって特定されるＩＦ部にパケットを出力する（ステップ７５）。
次に、図８を参照して、スイッチ部３００を経由してネットワーク処理部２００−Ｎに到着したパケットに対する、出力側パケット転送処理について説明する。図８は出力側パケット転送処理の処理フローを示したフローチャートである。
スイッチ部３００を介してネットワーク処理部２００−１からのパケットを受信すると（ステップ１０１）、パケット処理部２０１−Ｎは、パケットに付加されている装置内拡張ヘッダのチェックを行い（ステップ１０２）、パケットのバッファリングを開始する（ステップ１０３）。それから、パケット処理部２０１−Ｎは、後述の図９に示すセッション管理部２０２−Ｎにおけるセッションテーブル処理を実施する（ステップ１０４）。ステップ１０４が完了するまでの間、パケット処理部２０１−Ｎはパケットを保持する。ステップ１０４の完了後、装置内拡張ヘッダの内容をもとに前述の図７に示すパケット転送処理を行い（ステップ１０５）、パケット処理部２０１−Ｎの外部へパケットを出力して終了する。
図９は、図８のステップ１０４において行われるセッション管理部２０２−１におけるセッションテーブル処理の詳細な処理フローを示したフローチャートである。
セッション管理部２０２−Ｎが、ＩＰヘッダ、ＴＣＰヘッダ及び装置内拡張ヘッダをパケット処理部２０１−Ｎから受信し（ステップ１１１）、装置内拡張ヘッダ内のセッション処理動作情報が新規セッションエントリ追加となっているか否かの判定を行う（ステップ１２１）。
装置内拡張ヘッダ内のセッション処理動作情報が新規セッションエントリ追加となっている場合（ステップ１２１−Ｙｅｓ）、セッションテーブル２３０−Ｎに新規セッションエントリを追加する（ステップ１２２）。セッションテーブル２０３−Ｎへのセッションエントリ追加では、入力パケットの送信元ＩＰアドレス、送信元ポート番号、入力物理ＩＦ番号と、宛先ＩＰアドレス、宛先ポート番号、出力物理ＩＦ番号とを入れ替えて登録する。セッションテーブル２０３−Ｎにおけるセッションエントリは、本パケットと逆向きのパケットフローに関するエントリとして生成する必要があるためである。
装置内拡張ヘッダ内のセッション処理動作情報が新規セッションエントリ追加でない場合（ステップ１２１−Ｎｏ）、装置内拡張ヘッダ内のセッション処理動作情報がセッションエントリ削除となっているか否かの判定を行う（ステップ１３１）。
装置内拡張ヘッダ内のセッション処理動作情報がセッションエントリ削除となっている場合は（ステップ１３１−Ｙｅｓ）、セッションテーブル２３０−Ｎ内の該当するセッションエントリ削除を行う（ステップ１３２）。
装置内拡張ヘッダ内のセッション処理動作情報がセッションエントリ削除となっていない場合は（ステップ１３１−Ｎｏ）、装置内拡張ヘッダ内のセッション処理動作情報がセッションエントリ更新となっているか否かの判定を行う（ステップ１４１）。
装置内拡張ヘッダ内のセッション処理動作情報がセッションエントリ更新となっている場合は（ステップ１４１−Ｙｅｓ）、セッションテーブル２３０−Ｎ内の該当するセッションエントリ更新を行う（ステップ１４２）。
図８のパケット転送処理（ステップ１０５）の処理フローは、前出の図７にて説明した内容と同じである。なお、出力側パケット転送処理においては、当該ネットワーク処理部２００−Ｎ内のＩＦ部のいずれかから、パケットが外部ネットワークへ出力されることが、既に判明している。従って、図７に示すフローでは、（ステップ７０−Ｎｏ）→（ステップ７２−Ｙｅｓ）→（ステップ７４）→（ステップ７５）が選択される。
一例としてクライアント２からサーバ３に対してＴＣＰセッションが開始される際の動作を示す。
図１８に本発明の実施例における、クライアント２からサーバ３に対してＴＣＰセッションが張られる際のパケット中継装置の動作を示す。
（セッション開始）
（１）クライアント２→パケット中継装置１：ＳＹＮパケットポリシーテーブル２１０−１記載のポリシーにてパケット通過許可を判定し、セッションテーブル２３０−１に新規セッションを追加する。
（２）パケット中継装置１→サーバ３：ＳＹＮパケットセッションテーブル２３０−Ｎに新規セッションを追加する。
（３）サーバ３→パケット中継装置１：ＳＹＮ、ＡＣＫパケットセッションテーブル２３０−Ｎにてパケット通過許可を判定し、状態を更新する。
（４）クライアント２→パケット中継装置１：ＡＣＫパケットセッションテーブル２３０−１にてパケット通過許可を判定し、状態を更新する。
（５）サーバ３→パケット中継装置１：ＡＣＫパケットセッションテーブル２３０−Ｎにてパケット通過許可を判定し、状態を更新する。
（セッション終了）
（６）クライアント２→パケット中継装置１：ＦＩＮパケットセッションテーブル２３０−１にてパケット通過許可を判定。状態を更新し、セッション削除準備をする。
（７）サーバ３→パケット中継装置１：ＡＣＫパケットセッションテーブル２３０−Ｎにてパケット通過許可を判定。状態を更新し、セッション削除準備をする。
（８）サーバ３→パケット中継装置１：ＦＩＮパケットセッションテーブル２３０−Ｎにてパケット通過許可を判定。（セッション削除準備中）
（９）クライアント２→パケット中継装置１：ＡＣＫパケットセッションテーブル２３０−１にてパケット通過許可を判定。状態を更新し、セッション削除をする。
（１０）パケット中継装置１→サーバ３：ＡＣＫパケットセッションテーブル２３０−Ｎからセッション削除をする。
なお、上述した実施例において、ＴＣＰセッションに関するセッション管理についてその実現手段を説明したが、ＴＣＰセッションの終了判定をタイマーによるタイムアウト処理とすることも可能である。その場合は、図１０、図１１、図１２のセッションテーブルおよび図１４のＩＰフラグメンテーションテーブルにタイムアウト時間の項目を設け、図１のセッション管理部２０２−１〜２０２−Ｎ、セッションテーブル２３０−１〜２３０−Ｎ、ＩＰフラグメンテーションテーブル２４０−１〜２４０−Ｎにてタイムアウト管理処理を追加することで実現可能である。より具体的には、例えば、次のようにして実現可能である。セッションテーブル２３０−１〜２３０−Ｎ、ＩＰフラグメンテーションテーブル２４０−１〜２４０−Ｎに新規エントリを追加登録する際、セッション管理部２０２−１〜２０２−Ｎは、追加登録する新規エントリのタイムアウト時間の項目に予め定められているタイムアウト値を設定する。セッション管理部２０２−１〜２０２−Ｎは、一定時間毎に、セッションテーブル２３０−１〜２３０−Ｎ、ＩＰフラグメンテーションテーブル２４０−１〜２４０−Ｎの各エントリに設定されているタイムアウト値を所定値減少させる処理を行う。そして、タイムアウト値が所定値以下になったエントリを削除する。
本機能追加により、ＴＣＰセッションを張っていたクライアントやサーバもしくはそれらを結ぶ回線が突如ダウンし、ＴＣＰセッションの終了シーケンスが発生しない場合でも、自動的にＴＣＰセッション登録を解除することが可能となる。同様の手法によりＵＤＰの擬似セッションについてもセッション管理が実現可能である。また、ＷｅｂトラヒックにおけるＵＲＬやＣｏｏｋｉｅによるセッションの場合でも、ＴＣＰパケット内に含まれるＵＲＬやＣｏｏｋｉｅをセッションの識別子として抽出することによって、同様のセッション管理が実現可能である。
以上説明したように、本発明のパケット中継装置は、複数のネットワーク処理部でセッション管理を分散処理するため、システム全体のセッション管理能力を向上させることが可能となる。また、ネットワーク処理部単位でセッション管理能力を増設することができる。
また、本発明のパケット中継装置では、セッションテーブル、ポリシーテーブル、ＩＰフラグメンテーションテーブルの検索処理は、外部ネットワークからパケットを受信したネットワーク処理部内のセッション管理部において、１回だけ実施されるため、テーブルの検索処理がボトルネックとなることはない。
また、本発明のパケット中継装置では、外部ネットワークから受信したパケットが新規セッションのパケットであった場合、即ちセッションテーブルに上記パケットが属するセッションに関する情報が登録されていなかった場合、入力側ネットワーク処理部にて自処理部内のセッションテーブルへセッションエントリを追加をすると共に、パケットを出力先となるＩＦ部を有する出力側のネットワーク処理部に転送する際に追加指示も転送し、出力側ネットワーク処理部にて自処理部内のセッションテーブルへのセッションエントリの追加処理を実施している。これにより、入力・出力の対になる各ネットワーク処理部内のセッションテーブルにおいて、セッションテーブルの内容の同一化が自動的に実施されることとなり、特別なセッションテーブルの複写化処理を行うことなく、異なるネットワーク処理部内のセッションテーブルの同一性を保つことが可能となる。
また、本発明のパケット中継装置は、ＩＰフラグメンテーションテーブルを備えているので、フラグメントＩＰパケットに対するセッション管理を実現できる。
【図１】
2004107683.tif 000003
【図２】
2004107683.tif 000004
【図３】
2004107683.tif 000005
【図４】
2004107683.tif 000006
【図５】
2004107683.tif 000007
【図６】
2004107683.tif 000008
【図７】
2004107683.tif 000009
【図８】
2004107683.tif 000010
【図９】
2004107683.tif 000011
【図１０】
2004107683.tif 000012
【図１１】
2004107683.tif 000013
【図１２】
2004107683.tif 000014
【図１３】
2004107683.tif 000015
【図１４】
2004107683.tif 000016
【図１５】
2004107683.tif 000017
【図１６】
2004107683.tif 000018
【図１７】
2004107683.tif 000019
【図１８】
2004107683.tif 000020
【図１９】
2004107683.tif 000021
【図２０】
2004107683.tif 000022
【国際調査報告】
2004107683.tif 000023
2004107683.tif 000024
2004107683.tif 000025
2004107683.tif 000026