(57)【要約】ネットワーク（１，２）を接続するネットワーク接続部（１２ａ，１２ｂ）と、各々が独立してパケット中継処理を行う複数のパケット中継処理部（１１ａ〜１１ｎ）と、セッション管理を行うセッション管理部（１３）と、前記セッション管理部（１３）によるセッション管理に基づいて、新規セッション登録毎に前記セッションを前記複数のパケット中継処理部（１１ａ〜１１ｎ）の何れかに振り分けるセッション振り分け部（１４）と、を有することを特徴とするパケット中継装置（１０）。
2003103233.tif 000002
【特許請求の範囲】
【請求項１】
各々が独立してパケット中継処理を行う複数のパケット中継処理手段と、
セッション管理を行うセッション管理手段と、
該セッション管理手段によるセッション管理に基づいて、新規セッション登録毎に該セッションを前記複数のパケット中継処理部の何れかに振り分けるセッション振り分け手段と、
を有することを特徴とするパケット中継装置。
【請求項２】
前記複数のパケット中継処理手段をサーバに備え、
前記セッション管理手段、及びセッション振り分け手段を、前記サーバに接続するネットワーク接続デバイスに備えることを特徴とする請求項１記載のパケット中継装置。
【請求項３】
前記複数のパケット中継処理手段、セッション管理手段、及びセッション振り分け手段を、サーバに接続するネットワーク接続デバイスに備えることを特徴とする請求項１記載のパケット中継装置。
【請求項４】
前記パケット中継処理手段は、パケットを終端することにより、プロトコルの変換を行うことを特徴とする請求項１記載のパケット中継装置。
【請求項５】
前記セッション振り分け手段は、セッションを振り分けるパケット中継処理手段を、新規セッション登録毎に順番に変えて行くことを特徴とする請求項１記載のパケット中継装置。
【請求項６】
前記セッション振り分け手段は、セッションを振り分けるパケット中継処理手段を、パケット内の情報に対してハッシュ関数を適用することで得られるハッシュ値に基づいて決定することを特徴とする請求項１記載のパケット中継装置。
【請求項７】
前記パケット中継処理手段は、更に負荷情報取得手段を有し、
前記セッション振り分け手段は、該負荷情報取得手段より取得した負荷情報に基づいて、セッションを振り分けることを特徴とする請求項１記載のパケット中継装置。
【請求項８】
複数のパケット中継処理手段を有するサーバに接続する１または複数のネットワーク接続デバイスであって、
セッション管理を行うセッション管理手段と、
該セッション管理手段によるセッション管理に基づいて、新規セッション登録毎に該セッションを前記複数のパケット中継処理部の何れかに振り分けるセッション振り分け手段と、
を有することを特徴とするネットワーク接続デバイス。
【請求項９】
新規セッション登録毎に該セッションを複数のパケット中継処理部の何れかに振り分け、該セッションのパケットは該振り分けたパケット中継処理部に渡してパケット中継処理を行わせることを特徴とするパケット中継装置。
【請求項１０】
コンピュータに、
各々が独立してパケット中継処理を行う複数のパケット中継処理手段と、
セッション管理を行うセッション管理手段と、
該セッション管理手段によるセッション管理に基づいて、新規セッション登録毎に該セッションを前記複数のパケット中継処理部の何れかに振り分けるセッション振り分け手段と、
を実現させるプログラムを記録した前記コンピュータ読取り可能な記録媒体。
【請求項１１】
コンピュータに、
各々が独立してパケット中継処理を行う複数のパケット中継処理手段と、
セッション管理を行うセッション管理手段と、
該セッション管理手段によるセッション管理に基づいて、新規セッション登録毎に該セッションを前記複数のパケット中継処理部の何れかに振り分けるセッション振り分け手段と、
を実現させる為のプログラム。
【発明の詳細な説明】
技術分野
本発明は、パケット中継装置等に関する。
背景技術
従来より、例えばプロキシー・サーバやファイアウォールのような高機能のパケット中継装置を構築する場合、図１５に示すように、サーバ２００に、各ネットワーク２３０、２４０との接続を行う各ネットワークインタフェースカード（ＮＩＣ）２１０、２２０を装備し、サーバ２００上のパケット中継処理部２０１においてパケットフィルタリングやＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）、プロトコル変換などを伴うパケット中継処理を行う構成のパケット中継装置が一般的である。各ＮＩＣ２１０，２２０は、各々、ネットワーク接続部２１１、２２１を有する。尚、上記ネットワーク２３０、２４０は、例えば、一方が外部ネットワーク（インターネット等）、他方が内部ネットワーク（社内ＬＡＮ等）である。
ここで、最近の急激なインターネットの大規模化のため、ネットワークを流れるパケットの量は指数関数的な伸びを示している。このため、従来のパケット中継装置では、高速化するためにＣＰＵの性能を向上させたり、ＣＰＵを複数搭載して処理性能を上げることが行われている。
しかし、従来のパケット中継装置では、ＣＰＵを複数搭載しても、複数のＣＰＵを効率的に扱うことができないため、ＣＰＵの数に応じた処理性能を出せないことが知られている。
本発明の課題は、複数のＣＰＵを載せたパケット中継処理装置において、ＣＰＵ数に応じた性能を引き出すことにより、処理を高速化させることである。
発明の開示
本発明のパケット中継装置は、各々が独立してパケット中継処理を行う複数のパケット中継処理手段と、セッション管理を行うセッション管理手段と、該セッション管理手段によるセッション管理に基づいて、新規セッション登録毎に該セッションを前記複数のパケット中継処理部の何れかに振り分けるセッション振り分け手段とを有するように構成する。
上記構成のパケット中継装置によれば、複数のパケット中継処理部が並列して動作することが可能になるため、ＣＰＵ数に応じたパケット中継処理性能を得ることができる。
上記パケット中継装置は、例えば、前記複数のパケット中継処理手段をサーバに備え、前記セッション管理手段、及びセッション振り分け手段を、前記サーバに接続するネットワーク接続デバイスに備えるように構成する。
この場合、複数のＣＰＵを備えるサーバに対して、上記構成のネットワーク接続デバイスを接続するだけで、上記本発明のパケット中継装置を実現できる。
あるいは、このような構成例に限らず、例えば、前記複数のパケット中継処理手段、セッション管理手段、及びセッション振り分け手段を、サーバに接続するネットワーク接続デバイスに備えるように構成してもよい。
また、上記セッション振り分け手段によるセッション振り分け方法は、具体的には、例えば、新規セッション登録毎に順番に振り分け先を変えて行く方法や、パケット内の情報に対してハッシュ関数を適用することで得られるハッシュ値に基づいて決定する方法や、各パケット中継処理手段の負荷情報に基づいてセッションを振り分ける方法等である。
また、本発明は、上記構成のネットワーク接続デバイス自体として構成することもできるし、パケット中継方法として構成することもできるし、上記パケット中継装置の各種手段をコンピュータにより実現させる為のプログラムや、このプログラムを記録した記録媒体として構成することもできる。
発明を実施するための最良の形態
以下、図面を参照して、本発明の実施の形態について説明する。
図１は、本実施の形態によるパケット中継装置の原理構成ブロック図である。
同図に示すパケット中継装置１０は、複数のパケット中継処理部１１ａ、１１ｂ、・・・１１ｎと、２つのネットワーク接続部１２ａ、１２ｂとを有する構成となっている。各パケット中継処理部１１ａ、１１ｂ、・・・１１ｎは、各々、別々のＣＰＵにより実現している。すなわち、本例によるパケット中継装置２０は、複数のＣＰＵを搭載した構成であることを前提としている。
また、パケット中継処理部１１、ネットワーク接続部１２の機能自体は、上記従来のパケット中継装置におけるパケット中継処理部２０１、ネットワーク接続部２１１（２２１）と同様であり、例えばパケット中継処理部１１では、パケットフィルタリングやＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）、プロトコル変換処理などを伴うパケット中継処理が行われる。
そして、本実施の形態によるパケット中継装置１０では、上記のような構成に対して、セッション管理部１３とセッション振り分け部１４が追加されていることを特徴とする。
セッション管理部１３は、パケットのヘッダ情報を解析することにより、同じセッションのパケットには同じセッションＩＤが割り当てられるように管理する。この管理には、不図示のセッションテーブルを用いる。セッションテーブルについては、後に詳述する。
セッション振り分け部１４は、複数のパケット中継処理部１１に対して、各セッションを適切に振り分けるように制御する機能部であり、例えば後述するラウンドロビン方式やハッシュ方式、動的負荷分散などが具体的な方式としてある。これら各方式については後に詳しく説明する。
セッション振り分け部１４は、同じセッションのパケットは必ず同じパケット中継処理部１１に送る。プロキシー・サーバやファイアウォールのような高機能のパケット中継処理を行う装置においては、同じセッションのパケットは同じパケット中継処理部１１で処理させるようにしないと、現実上、処理できなくなるからである（パケット中継処理部１１間でやりとりすれば処理可能ではあるが、余計な処理負荷が掛かり、現実的ではない）。
このように、本例によるパケット中継装置では、複数のＣＰＵを備えるパケット中継装置において、ＣＰＵを効率的に使うことができるため、ＣＰＵ数に応じたパケット中継処理性能を得ることが可能となる。
以下、まず、図２〜図５を参照して、第１の実施例について説明する。
図２は、第１の実施例によるパケット中継装置の機能ブロック図である。
図２に示すパケット中継装置２０は、複数のパケット中継処理部２１ａ、２１ｂ、・・・２１ｎ、複数のネットワーク接続部２２ａ、２２ｂ、・・・２２ｍ、セッション管理部２３、セッション振り分け部２４、及びセッションテーブル２５を有する。
上記構成において、まず、不図示のネットワークからネットワーク接続部２２ａ〜２２ｍの何れかを介して入力されたパケットは、セッション管理部２３に送られる。ネットワーク接続部２２ａ〜２２ｍは、例えば、イーサネット（登録商標）コントローラである。尚、パケットの構成は、一般的なものであるので、特に図示しないが、例えばイーサネットヘッダ、ＩＰヘッダ、ＴＣＰ／ＵＤＰヘッダより成るヘッダ部と、データ部とを有する構成である。
上記パケットを受けたセッション管理部２３、及びセッション振り分け部２４の処理について、以下、図３、図４を参照して説明する。
まず、セッション管理部２３では、図４のフローに示すようにまずセッションテーブル２５を検索し（ステップＳ１１）、入力されたパケットのセッションが登録されているかどうかを判定する（ステップＳ１２）。セッションテーブルは例えば、図３に示すような構成をとる。
図３に示すセッションテーブル３０は、セッションを管理する為のセッション情報を格納するテーブルであり、ＩＤ（セッションＩＤ）３１、送信元ＩＰアドレス３２、送信元ポート３３、送信先ＩＰアドレス３４、送信先ポート３５、セッション状態３６、及びセッション振り分け先３７の各データ項目より成る。
セッションは、上記パケットのＩＰヘッダ内の送信元／送信先ＩＰアドレスおよびＴＣＰヘッダ内の送信元／送信先ポートの組で一意に決定することができるので、この組をセッション検索キーとして、セッションテーブル３０の検索を行う。そして、セッションテーブル３０における送信元ＩＰアドレス３２／送信先ＩＰアドレス３４、及び送信元ポート３３／送信先ポート３５の組が、上記セッション検索キーと一致するレコードが存在するか否かにより、上記ステップＳ１２の判定を行う。
ＩＤ（セッションＩＤ）３１は、各セッションを識別する識別番号である。セッション振り分け先３７については、後にセッション振り分け部２４の説明の際に説明する。
再び図４を参照した説明に戻る。
上記ステップＳ１２の判定において、もし、入力されたパケットのセッションが、セッションテーブル３０に登録されていないと判定された場合には（ステップＳ１２，ＮＯ）、このパケットは新規のセッションとしてＩＤ３１が割り当てられ、セッションテーブル３０に上記セッション検索キーとしての各データが新規登録される（ステップＳ１７）。新規登録されたパケットは、セッション振り分け部２４に送られる。
一方、セッションテーブル３０を検索した結果、セッションテーブル３０に既に登録されていた場合には（ステップＳ１２、ＹＥＳ）、そのパケットのヘッダ内情報からセッション状態遷移を検査して、状態が遷移しているかどうかを判定する（ステップＳ１３）。
状態が遷移している場合は（ステップＳ１３、ＹＥＳ）、セッションテーブル３０のセッション状態３６を書き換える。セッション状態３６の書き換えについては、本出願人が既に提案している特願２０００−３０８３８７号「パケット中継処理装置」と同様であってよく、ここでは詳細には説明しないが、例えばＴＣＰプロトコルの場合、セッションが登録されていない状態でＳＹＮパケットを受信すると、このパケットのセッションを登録すると共にセッション状態は’ＳＹＮ＿ＲＥＣＶ’とし、続いて、セッション状態は’ＥＳＴＡＢ’（Ｅｓｔａｂｌｉｓｈｅｄ）に遷移し、この状態でパケット送受信が行われていく。そして、ＦＩＮパケットを受信すると（ステップＳ１５、ＹＥＳ）、セッションテーブル３０から当該セッションのエントリを削除してから（ステップＳ１６）、当該パケットをセッション振り分け部２４に送る。セッション状態が遷移していない場合は（ステップＳ１３、ＮＯ）、当該パケットは、そのまま、セッション振り分け部２４に送る。
セッション振り分け部２４は、送られてきたパケットが、セッション管理部２３が上記ステップＳ１７の処理を行ってから送ってきたパケットである場合、つまりそのセッションがセッションテーブル３０に新規登録されたパケットである場合には、セッション振り分け先を決定する（ステップＳ２２）。つまり、このセッションのパケットの処理を、どのパケット中継処理部２１に行わせるかを決定する。そして、決定した内容をセッションテーブル３０のセッション振り分け先３７に登録する（ステップＳ２３）。
一方、セッション管理部２３から上記ステップＳ１３〜Ｓ１６の処理を経て送られてきたパケットは、既にセッションテーブル３０にセッション振り分け先３７が登録されているので、これを参照することで、当該パケットをどのパケット中継処理部２１に送るべきかを判別することができる（ステップＳ２１）。
そして、セッション振り分け部２４は、上述したステップＳ２１の処理により判別したパケット中継処理部２１、又はステップＳ２２の処理により決定したパケット中継処理部２１に、当該パケットを転送する。
パケット中継処理部２１では、パケットのフィルタリング、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）、プロトコル変換などのパケット中継処理が行われる。また、ルーティング処理（どのネットワーク（ネットワーク接続部２２）に送るかを決定する処理）も行われる。
上記パケット中継処理部２１により中継・出力されるパケットは、図５のフローに示す処理によって、ルーティング先となるネットワーク接続部２２に送られる。
まず、上記パケットは、パケット中継処理部２１からセッション管理部２３に渡される。
セッション管理部２３は、このパケットを受け取ると、上記図４に示す処理と同様に、まずセッションテーブル３０を検索し（ステップＳ３１）、セッション登録済みである場合（ステップＳ３２、ＹＥＳ）、更に、セッション状態遷移がある場合には（ステップＳ３３，ＹＥＳ）セッション状態３６の書き換え処理を実行し（ステップＳ３４）、セッションクローズである場合には（ステップＳ３５，ＹＥＳ）セッション削除処理を実行する（ステップＳ３６）。そして、当該パケットを上記ルーティング先となるネットワーク接続部２２に渡す。
一方、セッション未登録である場合には（ステップＳ３２、ＮＯ）、セッション新規登録処理を実行する（ステップＳ３７）。そして、セッション振り分け先３７をセッションテーブル３０に登録する（ステップＳ３８）。つまり、この場合、既にどのパケット中継処理部２１から送られてきているかは決定しているので、セッション振り分け部２４で振り分け先を決定する必要はない。
セッション管理部２３で処理されたパケットは、上記ルーティング先となるネットワーク接続部２２に送られる。
尚、図２において、パケット中継装置２０により中継されるパケットは、パケット中継装置２０に入力する方向と、パケット中継装置２０により中継・出力される方向とでは、異なるセッションとして管理される。例えば、図２に示す例では、パケット中継処理部２１ａが振り分け先となった任意のパケットは、ネットワーク接続部２２ａを介して入力される方向ではセッション１（ＩＤ＝１）として管理され、ネットワーク接続部２２ｂを介して出力される方向ではセッション２（ＩＤ＝２）として管理される。同様に、例えばパケット中継処理部２１ｂが振り分け先となった任意のパケットは、ネットワーク接続部２２ａを介して入力される方向ではセッション３（ＩＤ＝３）として管理され、ネットワーク接続部２２ｂを介して出力される方向ではセッション４（ＩＤ＝４）として管理される。
よって、あるパケットを中継するとき、上記図４の処理と図５の処理とでは、異なるセッションとして処理することになる。
セッション振り分け部２４によるセッション振り分け方法は、ＣＰＵ数に応じた性能を出せるようにできるものであれば何でもよいが、ここでは３つの手法を提案する。すなわち、ラウンドロビン方式、ハッシュ方式、動的負荷分散方式について、以下、説明する。
まず、ラウンドロビン方式について説明する。
図６は、上記図４のステップＳ１７、Ｓ２２、Ｓ２３の処理において、ステップＳ２２のセッション振り分け先決定処理を、ラウンドロビン方式により行うことを示す図である。すなわち、セッション管理部２３においてステップＳ１７のセッション新規登録処理が行われた場合、セッション振り分け部２４は、ラウンドロビン方式によって振り分け先を決定し（ステップＳ４１）、決定したセッション振り分け先をセッションテーブル２５に登録する（ステップＳ２３）。
上記ラウンドロビン方式によるセッション振り分け処理では、セッション新規登録毎に、振り分けるパケット中継処理部２１を順番に替えていく。
例えば、最初にセッション１が新規登録された場合、パケット中継処理部２１ａをセッション振り分け先とし、次にセッション２が新規登録された場合、パケット中継処理部２１ｂをセッション振り分け先とする、という様にセッションが新規登録される毎に、振り分け先のパケット中継処理部２１を順次変えていき、最後のパケット中継処理部２１ｎまで振り分けたら、次のセッションの振り分け先はパケット中継処理部２１ａに戻る。
このようにして、各パケット中継処理部２１に平均してセッションが割り当てられるようにすることで、複数のＣＰＵを効率的に使用でき、ＣＰＵ数に応じた処理性能を出すことが可能になる。
次に、以下、ハッシュ方式について説明する。
図７は、上記図４のステップＳ１７、Ｓ２２、Ｓ２３の処理において、ステップＳ２２のセッション振り分け先決定処理を、ハッシュ方式により行うことを示す図である。すなわち、セッション管理部２３においてステップＳ１７のセッション新規登録処理が行われた場合、セッション振り分け部２４は、ハッシュ方式によって振り分け先を決定し（ステップＳ４２）、決定したセッション振り分け先をセッションテーブル２５に登録する（ステップＳ２３）。
上記ハッシュ方式による振り分け先決定処理では、受信したパケットに含まれる特定の情報に、ハッシュ関数を適用して得たハッシュ値に基づいて、振り分け先を決定する。例えば、振り分け先がパケット中継処理部２１ａとパケット中継処理部２１ｂの２つであるとした場合、例えばハッシュ値が″００００″〜″７ＦＦＦ″の範囲であった場合にはパケット中継処理部２１ａに振り分け、ハッシュ値が″８０００″〜″ＦＦＦＦ″の範囲であった場合にはパケット中継処理部２１ｂに振り分ける、などというように、生成されたハッシュ値を、予め設定されている所定の範囲（又は閾値等）と比較することにより、振り分け先を決定する。
ハッシュ関数に入力する情報としては、例えば送信元ＩＰアドレスなどを用いる。送信元ＩＰアドレスを用いた場合、そのＩＰアドレスの情報処理端末から送られてくるパケットは、必ず同じパケット中継処理部２１に送られるようになる。このように、何らかの理由で特定のパケット中継処理部２１で処理を行いたい場合、このハッシュ方式が有効である。
図８（ａ）、（ｂ）は、動的負荷分散方式を説明する図である。
本方式では、図８（ａ）に示すように、各パケット中継処理部２１に負荷情報取得部４０を設けて、セッション振り分け部２４が、各パケット中継処理部２１の負荷情報を参照できるようにする。負荷情報としては、例えばＣＰＵの使用率やセッションの処理数などを用いることができる。
図８（ｂ）は、上記図４のステップＳ１７、Ｓ２２、Ｓ２３の処理において、ステップＳ２２のセッション振り分け先決定処理を、動的負荷分散方式により行うことを示す図である。すなわち、セッション管理部２３においてステップＳ１７のセッション新規登録処理が行われた場合、セッション振り分け部２４は、動的負荷分散方式によって振り分け先を決定し（ステップＳ４３）、決定したセッション振り分け先をセッションテーブル２５に登録する（ステップＳ２３）。
動的負荷分散方式によるセッション振り分け決定処理では、上記負荷情報取得部４０から負荷情報を参照し、例えばＣＰＵの使用率が比較的低いパケット中継処理部２１、または現在のセッション処理数が比較的少ないパケット中継処理部２１を、振り分け先として決定する。あるいは、ＣＰＵの使用率とセッション処理数の両方を考慮して、振り分け先を決定してもよい。
このようにして、各パケット中継処理部２１の処理負荷が略平均化するようにセッションを割り当てられることで、複数のＣＰＵを効率的に使用でき、ＣＰＵ数に応じた処理性能を出すことが可能になる。
上記第１の実施例によるパケット中継装置２０では、図２に示す各機能部（パケット中継処理部２１〜セッション振り分け部２４）を、各々、どの様なハードウェアに実装するかは自由であり、特に限定するものではなかった。
これに対して、以下、第２の実施例、第３の実施例について説明する。
図９は、第２の実施例を説明するための図である。
図９に示す第２の実施例の構成では、サーバ５０は複数のパケット中継処理部５１ａ〜５１ｎを備え、ネットワークインタフェースカード（ＮＩＣ）６０が、複数のネットワーク接続部６１ａ〜６１ｍ、セッション管理部６２、セッションテーブル６３、セッション振り分け部６４を有する。ＮＩＣ６０は、サーバ５０のバス５２（例えばＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス）のスロットに装着する。ＮＩＣ６０は、１枚でもいいが、複数枚をサーバ５０に装着することにより、性能を上げることができる。また、ＮＩＣ６０は、ネットワーク接続デバイスの一例を示しているのであり、これに限るわけではない。
上述したように、従来より、サーバに複数のＣＰＵ（複数のパケット中継処理部）を設けることが行われており、第２の実施例ではこの様な既存のサーバの構成を変更する必要なく、上記ＮＩＣ６０を装着することで、複数のＣＰＵを効率的に扱うことができるようになり、ＣＰＵの数に応じた処理性能が得られるようになる。
尚、上記パケット中継処理部５１ａ〜５１ｎ、ネットワーク接続部６１ａ〜６１ｍ、セッション管理部６２、セッションテーブル６３、セッション振り分け部６４による処理の流れ自体は、第１の実施例とほぼ同様であるので、その説明は省略する。第１の実施例と異なる点は、セッション振り分け部６４とパケット中継処理部５１との間のパケットの送受信が、サーバ５０のバス５２を介して行われる点等であり、処理の流れ自体には特に影響しないので、上記の通り、説明は省略するものとする。
図１０は、第３の実施例を説明する為の図である。
図１０に示す通り、第３の実施例では、ネットワークインタフェースカード（ＮＩＣ）７０が、複数のパケット中継処理部７１ａ〜７１ｎ、複数のネットワーク接続部７２ａ〜７２ｍ、セッション管理部７３、セッションテーブル７４、セッション振り分け部７５を有する。この第３実施例も、処理の流れ自体は、第１の実施例と同様であるので、その説明は省略する。
上記第２の実施例は、複数のパケット中継処理部を有するサーバ５０に、ＮＩＣ６０を装着することで、本例によるパケット中継装置を実現できるものであったが、第３の実施例では、パケット中継機能を有しないサーバ８０であっても、ＮＩＣ７０を装着することで、本例によるパケット中継装置を実現できるものである。
第３の実施例では、サーバ８０のＣＰＵは、パケット処理には使われないで、他の何らかの処理に使用されることになる。
尚、第３の実施例においても、上記他の実施例と同様、複数のＣＰＵを効率的に扱うことができるようになり、ＣＰＵの数に応じた処理性能が得られるようになる。
図１１は、本例によるパケット中継装置の具体的な使用例を説明する為の図である。
上述してあるように、本例によるパケット中継装置は、複数のネットワーク間でパケットを中継する装置である。よって、当然、この複数のネットワーク各々のプロトコルが異なる場合がある。ここでは、一方のネットワークのプロトコルがＴＣＰ／ＩＰｖ６で、他方がＴＣＰ／ＩＰｖ４である場合を例にして、これに対応して、パケット中継処理部においてプロトコル変換する構成を示す。
図１１に示す構成では、各パケット中継処理部９０において、ＴＣＰ／ＩＰｖ６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ  ６）のプロトコルスタック９２と、ＴＣＰ／ＩＰｖ４（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ  ４）のプロトコルスタック９３を用意し、パケットを終端する。一旦終端することにより、２つのコネクション各々を別々に制御できる。また、一旦終端することにより、パケット内のデータをキャッシュすることができるようになる。
そして、プロトコル変換部９１においてプロトコルの変換を行う。例えば、セッション１をＩＰｖ６ネットワークで終端し、セッション２をＩＰｖ４ネットワークで終端することにより、ＩＰｖ４／ｖ６のプロトコル変換を行う。
勿論、プロトコル変換は、ＩＰｖ４／ｖ６のプロトコル変換に限るものではない。
図１２は、上記サーバ（コンピュータ）のハードウェア構成の一例を示す図である。
同図に示すコンピュータ１１０は、ＣＰＵ１１１、メモリ１１２、入力装置１１３、出力装置１１４、外部記憶装置１１５、媒体駆動装置１１６、ネットワーク接続装置１１７等を有し、これらがバス１１８に接続された構成となっている。同図に示す構成は一例であり、これに限るものではない。
ＣＰＵ１１１は、当該コンピュータ１１０全体を制御する中央処理装置である。
メモリ１１２は、プログラム実行、データ更新等の際に、外部記憶装置１１５（あるいは可搬記録媒体１１９）に記憶されているプログラムあるいはデータを一時的に格納するＲＡＭ等のメモリである。ＣＰＵ１１１は、メモリ１１２に読み出したプログラム／データを用いて、上述してある各種処理を実行する。
入力装置１１３は、例えばキーボード、マウス、タッチパネル等である。
出力装置１１４は、例えばディスプレイ、プリンタ等である。
尚、入力装置１１３、出力装置１１４は、無くてもよい。
外部記憶装置１１５は、例えばハードディスク装置等であり、上記各種機能を実現させる為のプログラム／データ等が格納されている。
媒体駆動装置１１６は、可搬型記録媒体１１９に記録されているプログラム／データ等を読み出す（又は書き込む）。可搬型記録媒体は、例えばＦＤ（フレキシブルディスク）、ＣＤ−ＲＯＭ、ＤＶＤ，光磁気ディスク等、持ち運び可能であって、ある程度以上の記憶容量を有する記録媒体であれば、何でも良い。
ネットワーク接続装置１１７は、ネットワーク（インターネット等）に接続して、外部の情報処理装置とプログラム／データ等の送受信を可能にする構成である。
図１３は、上記プログラムを記録した記録媒体又はプログラムのダウンロードの一例を示す図である。
図示のように、上記本発明の機能を実現するプログラム／データが記憶されている可搬型記録媒体１１９をコンピュータ１１０の本体に挿入する等して、当該プログラム／データを読み出してメモリ１１２に格納し実行するものであってもよいし、また、上記プログラム／データは、ネットワーク接続装置１１７により接続しているネットワーク１３０（インターネット等）を介して、外部のプログラム／データ提供者側のサーバ１２０に記憶されているプログラム（データ）１２１をダウンロードするものであってもよい。
また、本発明は、装置／方法に限らず、上記プログラム／データを格納した記録媒体（可搬型記録媒体１１９等）自体として構成することもできるし、これらプログラム自体として構成することもできるし、これらプログラムが有線／無線を介して伝送される伝送信号として構成することもできる。
図１４は、ネットワークインタフェースカード（ＮＩＣ）のハードウェア構成の一例を示す図である。
図示の例のネットワークインタフェースカード（ＮＩＣ）１４０は、ネットワークプロセッサ１４１、メモリ１４２、ギガビット・イーサネットコントローラ１４３、１４４を有する。
ネットワークプロセッサ１４１は、一般的な構成でよく、特に説明しないが、メモリ１４２に格納されているプログラム／データを読み出して、処理を実行する。メモリ１４２に格納されているプログラム／データは、上述した各種処理（図４〜図８に示す処理）を実現させるプログラムや、図３に示すテーブル等である。
ネットワークプロセッサ１４１は、サーバ５０（８０）の内部バス（ＰＣＩ１５０）に接続している。各ギガビット・イーサネットコントローラ１４３、１４４は、各々、上記ネットワーク１，２の一例である光テーブル１６０、１７０に接続している。勿論、これは一例であり、ネットワークは光ケーブルに限るものではなく、またイーサネットコントローラも、ギガビットタイプに限るものではない。
産業上の利用の可能性
以上、詳細に説明したように、本発明のパケット中継装置、ネットワーク接続デバイス、パケット中継方法、記録媒体、プログラムによれば、セッション管理部とセッション振り分け部とによって、複数のパケット中継処理部に対してセッション毎に適切にパケットを振り分けることにより、複数のＣＰＵを効率的に扱うことができるようになり、ＣＰＵ数に応じたパケット中継処理性能が得られるようになる。
【図面の簡単な説明】
本発明は、後述する詳細な説明を、下記の添付図面と共に参照すればより明らかになるであろう。
図１は、本実施の形態によるパケット中継装置の原理構成ブロック図である。
図２は、第１の実施例によるパケット中継装置の機能ブロック図である。
図３は、セッションテーブルの一例を示す図である。
図４は、中継するパケットの入力時の処理を説明する為のフローチャート図である。
図５は、中継するパケットの中継・出力時の処理を説明する為のフローチャート図である。
図６は、セッション振り分け先決定処理を、ラウンドロビン方式により行うことを示す図である。
図７は、セッション振り分け先決定処理を、ハッシュ方式により行うことを示す図である。
図８（ａ）、（ｂ）は、動的負荷分散方式によるセッション振り分け先決定処理を説明する為の図である。
図９は、第２の実施例を説明するための図である。
図１０は、第３の実施例を説明する為の図である。
図１１は、本例によるパケット中継装置の具体的な使用例を説明する為の図である。
図１２は、サーバ（コンピュータ）のハードウェア構成の一例を示す図である。
図１３は、プログラムを記録した記録媒体又はプログラムのダウンロードの一例を示す図である。
図１４は、ネットワーク・インタフェースカード（ＮＩＣ）のハードウェア構成の一例を示す図である。
図１５は、従来のパケット中継装置の構成図である。
【図１】
2003103233.tif 000003
【図２】
2003103233.tif 000004
【図３】
2003103233.tif 000005
【図４】
2003103233.tif 000006
【図５】
2003103233.tif 000007
【図６】
2003103233.tif 000008
【図７】
2003103233.tif 000009
【図８】
2003103233.tif 000010
【図９】
2003103233.tif 000011
【図１０】
2003103233.tif 000012
【図１１】
2003103233.tif 000013
【図１２】
2003103233.tif 000014
【図１３】
2003103233.tif 000015
【図１４】
2003103233.tif 000016
【図１５】
2003103233.tif 000017
【国際調査報告】
2003103233.tif 000018
2003103233.tif 000019
2003103233.tif 000020
2003103233.tif 000021