(57)【要約】【課題】ＣＡＭの検索性能の低下及び収容できるエントリ数の減少を改善する。【解決手段】第１のメモリと、第２のメモリと、検索部と、データ送受信部と、を有し、前記第１のメモリは、検索キーとアドレスとを対応付ける情報を保持し、前記第２のメモリは、前記アドレスと、前記検索キーの少なくとも一部に基づいて所定の生成方法で生成された照合情報と、を対応付ける情報を保持し、前記検索部は、受信したデータに基づいて前記検索キーを生成し、前記第１のメモリから、前記生成した検索キーに対応する前記アドレスを取得し、前記第２のメモリから、前記取得したアドレスに対応する前記照合情報を取得し、前記生成した検索キーの少なくとも一部に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報と、を照合し、前記データ送受信部は、前記照合の結果に基づく処理を実行する。【選択図】図１
2014143505.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されるデータ転送装置であって、
第１のメモリと、第２のメモリと、前記第１のメモリ及び前記第２のメモリに接続される検索部と、前記検索部に接続され、前記ネットワークから受信したデータを処理するデータ送受信部と、を有し、
前記第１のメモリは、検索キーとアドレスとを対応付ける情報を保持し、
前記第２のメモリは、前記アドレスと、前記検索キーの少なくとも一部に基づいて所定の生成方法で生成された照合情報と、を対応付ける情報を保持し、
前記検索部は、
前記受信したデータに基づいて前記検索キーを生成し、
前記第１のメモリから、前記生成した検索キーに対応する前記アドレスを取得し、
前記第２のメモリから、前記取得したアドレスに対応する前記照合情報を取得し、
前記生成した検索キーの少なくとも一部に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報と、を照合し、
前記データ送受信部は、前記照合の結果に基づく処理を実行することを特徴とするデータ転送装置。
【請求項２】
請求項１に記載のデータ転送装置であって、
前記第２のメモリは、前記アドレスと、前記照合情報と、前記受信したデータの出力先を示す情報を含む出力情報と、を対応付ける情報を保持し、
前記検索部は、
前記受信したデータに含まれるＯＳＩ参照モデル第３層のヘッダ情報のうち、少なくとも、前記第３層の仮想ネットワークの識別子を含む前記検索キーを生成し、
前記検索キーに含まれる前記第３層の仮想ネットワークの識別子に基づいて前記所定の生成方法で前記照合情報を生成し、
前記生成した検索キーに含まれる前記第３層の仮想ネットワークの識別子に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報と、を照合し、
前記データ送受信部は、
前記生成した検索キーに含まれる前記第３層の仮想ネットワークの識別子に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報とが一致する場合、前記アドレスに対応する前記出力情報に従って前記受信したデータを送信し、
前記生成した検索キーに含まれる前記第３層の仮想ネットワークの識別子に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報とが一致しない場合、前記受信したデータを廃棄することを特徴とするデータ転送装置。
【請求項３】
請求項２に記載のデータ転送装置であって、
前記第３層の仮想ネットワークの識別子がＶｉｒｔｕａｌ  Ｒｏｕｔｉｎｇ  ａｎｄ  Ｆｏｒｗａｒｄｉｎｇの識別子であり、
前記検索部は、前記検索キーから抽出した前記Ｖｉｒｔｕａｌ  Ｒｏｕｔｉｎｇ  ａｎｄ  Ｆｏｒｗａｒｄｉｎｇの識別子に所定の演算を行うことによって符号を生成し、
前記照合情報は前記生成された符号であることを特徴とするデータ転送装置。
【請求項４】
請求項２に記載のデータ転送装置であって、
前記第３層の仮想ネットワークの識別子がＶｉｒｔｕａｌ  Ｒｏｕｔｉｎｇ  ａｎｄ  Ｆｏｒｗａｒｄｉｎｇの識別子であり、
前記検索部は、前記検索キーから前記Ｖｉｒｔｕａｌ  Ｒｏｕｔｉｎｇ  ａｎｄ  Ｆｏｒｗａｒｄｉｎｇの識別子を抽出し、
前記照合情報は前記抽出されたＶｉｒｔｕａｌ  Ｒｏｕｔｉｎｇ  ａｎｄ  Ｆｏｒｗａｒｄｉｎｇの識別子であることを特徴とするデータ転送装置。
【請求項５】
請求項１に記載のデータ転送装置であって、
前記第２のメモリは、
前記アドレスと、前記照合情報と、前記受信したデータの出力先を示す情報を含む出力情報と、を対応付ける情報を保持し、
ＯＳＩ参照モデル第２層の仮想ネットワークの識別子と、前記受信したデータの出力先とを対応付ける情報をさらに保持し、
前記検索部は、
前記受信したデータに含まれるＯＳＩ参照モデル第２層のヘッダ情報のうち、少なくとも、前記第２層の仮想ネットワークの識別子を含む前記検索キーを生成し、
前記検索キーに含まれる前記第２層の仮想ネットワークの識別子に基づいて前記所定の生成方法で前記照合情報を生成し、
前記生成した検索キーに含まれる前記第２層の仮想ネットワークの識別子に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報と、を照合し、
前記データ送受信部は、
前記生成した検索キーに含まれる前記第２層の仮想ネットワークの識別子に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報とが一致する場合、前記アドレスに対応する前記出力情報に従って前記受信したデータを送信し、
前記生成した検索キーに含まれる前記第２層の仮想ネットワークの識別子に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報とが一致しない場合、前記受信したデータから取得された前記第２層の仮想ネットワークの識別子に対応する全ての前記出力先に前記受信したデータを送信することを特徴とするデータ転送装置。
【請求項６】
請求項５に記載のデータ転送装置であって、
前記第２層の仮想ネットワークの識別子がＶｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの識別子であり、
前記検索部は、前記検索キーから抽出した前記Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの識別子に所定の演算を行うことによって符号を生成し、
前記照合情報は前記生成された符号であることを特徴とするデータ転送装置。
【請求項７】
請求項５に記載のデータ転送装置であって、
前記第２層の仮想ネットワークの識別子がＶｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの識別子であり、
前記検索部は、前記検索キーから前記Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの識別子を抽出し、
前記照合情報は前記抽出されたＶｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの識別子であることを特徴とするデータ転送装置。
【請求項８】
請求項１に記載のデータ転送装置であって、
前記第２のメモリは、
各々が前記照合情報を含む複数のエントリからなる第１テーブルと、
互いに異なる複数の前記検索キーに基づいて前記所定の生成方法で同一の照合情報が生成される場合、前記複数の検索キーに対応する複数の前記アドレスと、前記同一の照合情報を含む一つのエントリとを対応付ける第２テーブルと、を保持することを特徴とするデータ転送装置。
【請求項９】
請求項１に記載のデータ転送装置であって、
前記検索キーと前記アドレスとを対応付ける情報を保持する第３のメモリをさらに有し、
所定のタイミングで、前記第３のメモリに保持された情報に基づいて、前記第１のメモリに保持された情報を修復することを特徴とするデータ転送装置。
【請求項１０】
請求項９に記載のデータ転送装置であって、
前記生成した検索キーの少なくとも一部に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報と、を照合した結果、両者が一致しない場合、前記第３のメモリに保持された情報に基づいて、前記生成した検索キーに対応する前記第１のメモリに保持された情報を修復することを特徴とするデータ転送装置。
【請求項１１】
請求項１０に記載のデータ転送装置であって、
前記第１のメモリがＣｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙであり、前記第２のメモリ及び前記第３のメモリがＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙであることを特徴とするデータ転送装置。
【請求項１２】
ネットワークに接続されるデータ転送装置が実行するデータ転送方法であって、
前記データ転送装置は、第１のメモリと、第２のメモリと、前記第１のメモリ及び前記第２のメモリに接続される検索部と、前記検索部に接続され、前記ネットワークから受信したデータを処理するデータ送受信部と、を有し、
前記第１のメモリは、検索キーとアドレスとを対応付ける情報を保持し、
前記第２のメモリは、前記アドレスと、前記検索キーの少なくとも一部に基づいて所定の生成方法で生成された照合情報と、を対応付ける情報を保持し、
前記データ転送方法は、
前記検索部が、前記受信したデータに基づいて前記検索キーを生成する手順と、
前記検索部が、前記第１のメモリから、前記生成した検索キーに対応する前記アドレスを取得する手順と、
前記検索部が、前記第２のメモリから、前記取得したアドレスに対応する前記照合情報を取得する手順と、
前記検索部が、前記生成した検索キーの少なくとも一部に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報と、を照合する手順と、
前記データ送受信部が、前記照合の結果に基づく処理を実行する手順と、を含むことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２００５−１１７１７１号公報（特許文献１）がある。この公報には、「パケットの転送先に関する検索キー及び該検索キーから生成された照合情報を転送情報記憶部に記憶される転送情報の記憶位置に関連して記憶する検索キー記憶部を備え、転送情報取得部は、前記ヘッダ情報に基づいて生成された検索キー及び該検索キーから生成された照合情報を用いて検索キー記憶部を検索し、検索キー記憶部に記憶された検索キー及び照合情報と一致すると、検索キー記憶部から転送情報の記憶位置情報を取得し、前記取得した記憶位置情報に基づいて転送情報記憶部に記憶された転送情報を取得し、転送部は前記取得した転送情報に基づいてパケットを転送する。」と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１１７１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワークを構成するデータ転送装置において、データの転送情報（例えばデータを出力するポートを決定する情報等）の検索を高速に行うために、ＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）が使用される。ＣＡＭにおいて放射線等に起因するソフトエラーが発生すると、検索によって誤ったＣＡＭのエントリがヒットし、それに基づいて誤った転送情報が取得され、最終的に誤った転送先にデータが転送される場合がある。高信頼なネットワークを構築するためには、このような誤転送を防止することが求められる。例えば、検索キー及び検索キーから生成された照合情報をＣＡＭのエントリに登録しておき、これらの組み合わせを用いて検索を実行することによって、ソフトエラーが発生した場合にも誤ったエントリをヒットしない、すなわちデータを誤転送しないデータ転送装置が実現される（特許文献１）。
【０００５】
近年、ＣＡＭのプロセスの微細化に伴い、マルチビットソフトエラーのエラー率が高くなる傾向にある。マルチビットソフトエラーを検出するためは、シングルビットソフトエラーの場合と比較して多くのビット数の照合情報を確保する必要がある。例えば、３２ビットのデータの１ビットエラーを検出するためには１ビットのパリティを確保すれば十分であるが、３２ビットのデータの２ビットエラーを検出するためには７ビットのＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）を確保する必要がある。一方、収容されるユーザ数の増加に対応するために、ＣＡＭに登録される検索キー自体のビット数も増える傾向にある。このように、ＣＡＭに登録される検索キー及び参照情報のビット数が増えると、検索性能の劣化及び収容できるエントリ数の減少といった問題が発生する。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明は、ネットワークに接続されるデータ転送装置であって、第１のメモリと、第２のメモリと、前記第１のメモリ及び前記第２のメモリに接続される検索部と、前記検索部に接続され、前記ネットワークから受信したデータを処理するデータ送受信部と、を有し、前記第１のメモリは、検索キーとアドレスとを対応付ける情報を保持し、前記第２のメモリは、前記アドレスと、前記検索キーの少なくとも一部に基づいて所定の生成方法で生成された照合情報と、を対応付ける情報を保持し、前記検索部は、前記受信したデータに基づいて前記検索キーを生成し、前記第１のメモリから、前記生成した検索キーに対応する前記アドレスを取得し、前記第２のメモリから、前記取得したアドレスに対応する前記照合情報を取得し、前記生成した検索キーの少なくとも一部に基づいて前記所定の生成方法で生成した照合情報と、前記第２のメモリから取得した照合情報と、を照合し、前記データ送受信部は、前記照合の結果に基づく処理を実行することを特徴とする。
【発明の効果】
【０００７】
本発明の一実施形態によれば、ＣＡＭの検索性能の低下、収容できるエントリ数の減少及びコストの上昇を抑えながら、ＣＡＭに発生したエラーに起因するデータの誤転送を防止することができる。
【０００８】
上記した以外の課題、構成及び効果は、以下の実施形態の説明によって明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例１のスイッチの構成を示すブロック図である。
【図２】本発明の実施例１のスイッチに含まれるインタフェース部の詳細な構成を示すブロック図である。
【図３】本発明の実施例１のスイッチが保持する検索テーブルの説明図である。
【図４】本発明の実施例１のスイッチが保持する検索中間テーブルの説明図である。
【図５】本発明の実施例１のスイッチが保持する宛先テーブルの説明図である。
【図６】本発明の実施例１のスイッチの検索エンジンが実行するＬ３宛先検索処理を示すフローチャートである。
【図７】本発明の実施例２のスイッチが保持する検索テーブルの説明図である。
【図８】本発明の実施例２のスイッチが保持する宛先テーブルの説明図である。
【図９】本発明の実施例２のスイッチが保持するフラッディング宛先テーブルの説明図である。
【図１０】本発明の実施例２のスイッチの検索エンジンが実行するＬ２宛先検索処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を用いて本発明の実施の形態を説明する。
【実施例１】
【００１１】
図１は、本発明の実施例１のスイッチ１００の構成を示すブロック図である。
【００１２】
実施例１において、スイッチ１００は、他のスイッチ（図示省略）、ゲートウェイ（図示省略）又はサーバ（図示省略）等と接続され、ＯＳＩ参照モデルの第３層（ネットワーク層、以下Ｌ３とも記載）のデータに基づいて、受信したデータの転送を行うデータ転送装置である。スイッチ１００は、相互に接続されたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２０、複数のインタフェース部１３０及びバックプレーンスイッチ１５０を有する。
【００１３】
ＣＰＵ１１０は、制御端末１６０と通信し、制御端末１６０からの指示に従ってスイッチ１００の各部の動作の制御及び各メモリに格納されたテーブルの設定等を行う。
【００１４】
ＲＡＭ１２０には、ＣＰＵ１１０によって参照される情報（例えば後述するマスターテーブル）等が格納される。
【００１５】
図１には、複数のインタフェース部１３０の例としてインタフェース部１３０Ａ〜１３０Ｃを示すが、スイッチ１００は任意の数のインタフェース部１３０を有する。インタフェース部１３０Ａは、フレーム送受信回路１３１、検索エンジン１３２、ＣＡＭ１３３及びＲＡＭ１３４を有する。
【００１６】
フレーム送受信回路１３１は、スイッチ１００の外部の他のスイッチ、ゲートウェイ又はサーバ等、及び、スイッチ１００の内部のバックプレーンスイッチ１５０と接続され、それらとの間でデータのフレームを送受信する。
【００１７】
検索エンジン１３２は、フレーム送受信回路１３１が受信したフレームのＬ３のヘッダ情報等に基づいて、ＣＡＭ１３３及びＲＡＭ１３４に格納されたデータを検索し、検索結果に基づいて出力情報を生成してフレーム送受信回路１３１に通知する。フレーム送受信回路１３１は、生成された出力情報に基づいてフレームを送信する。具体的には、検索エンジン１３２は、ＣＡＭ検索キー生成部１３５、照合情報生成部１３６及び照合情報判定部１３７等を含む。これらの各部が実行する処理の詳細については後述する（図６等参照）。
【００１８】
ＣＡＭ１３３及びＲＡＭ１３４は、それぞれ、検索テーブル１３８及び宛先テーブル１３９等を格納する。これらの詳細については後述する（図３、図５等参照）。
【００１９】
インタフェース部１３０Ｂ及び１３０Ｃの構成はインタフェース部１３０Ａと同様であるため図示及び説明を省略する。以下、例えばインタフェース部１３０Ａ〜１３０Ｃのいずれにも共通する説明をする場合等、インタフェース部１３０Ａ〜１３０Ｃを区別する必要がない場合には、これらを総称してインタフェース部１３０とも記載する。
【００２０】
バックプレーンスイッチ１５０は、検索エンジン１３２による検索結果に従って、複数のインタフェース部１３０間でフレームを受け渡す。
【００２１】
各インタフェース部１３０のフレーム送受信回路は、上記のように、他のスイッチ等に接続される。スイッチ１００及びそれに接続される複数の他のスイッチ等は、物理的には単一のネットワークを構成してもよいが、本実施例においては、そのネットワーク上に、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）のような複数の独立した仮想的なネットワークが設定される。図１の例では、仮想的なネットワークとして仮想ネットワーク１＿１７０Ａ及び仮想ネットワーク２＿１７０Ｂが設定される。スイッチ１００が有する複数のインタフェース部１３０のうちインタフェース部１３０Ａ及び１３０Ｂは仮想ネットワーク１＿１７０Ａの通信に使用され、インタフェース部１３０Ｃは仮想ネットワーク２＿１７０Ｂの通信に使用される。これらの仮想ネットワークは、いかなる種類のものであってもよい。実施例１において、受信したフレームがどの仮想ネットワークに属するかはインタフェース毎に設定されたＶＲＦ−ＩＤ（Ｖｉｒｔｕａｌ  Ｒｏｕｔｉｎｇ  ａｎｄ  Ｆｏｒｗａｒｄｉｎｇの識別子）によって識別される。
【００２２】
図２は、本発明の実施例１のスイッチ１００に含まれるインタフェース部１３０の詳細な構成を示すブロック図である。
【００２３】
フレーム送受信回路１３１は、他のスイッチ等又はバックプレーンスイッチ１５０からフレームを受信する複数の入力ポート２０１と、他のスイッチ等又はバックプレーンスイッチ１５０へフレームを送信する複数の出力ポート２０２と、を有する。フレーム送受信回路１３１は、入力ポート２０１から受信したフレームのＬ３のヘッダ情報等を検索エンジン１３２に通知する。そして、検索エンジン１３２から通知された出力情報によって指定された出力ポート２０２からフレームを出力する。
【００２４】
検索エンジン１３２は、ＣＡＭ検索キー生成部１３５、照合情報生成部１３６及び照合情報判定部１３７に加えて、検索結果解析部２０３、検索中間テーブル解析部２０４及び宛先テーブル解析部２０５を有する。これらが実行する処理の詳細については後述する（図６等参照）。
【００２５】
ＲＡＭ１３４は、宛先テーブル１３９に加えて検索中間テーブル２０６を格納する。検索中間テーブル２０６の詳細については後述する（図４参照）。
【００２６】
ＲＡＭ１２０は、マスタテーブル２０７を格納する。マスタテーブル２０７は、検索テーブル１３８と同等の情報を含むテーブルである。
【００２７】
図３は、本発明の実施例１のスイッチ１００が保持する検索テーブル１３８の説明図である。
【００２８】
検索テーブル１３８は、検索キー３０１とそれに対応するアドレスであるデータベースエントリ３０２との複数の組を含む。各検索キー３０１は複数のビット（図３の例ではＮ＋１ビット）の列である。ＣＡＭ１３３は、Ｎ＋１ビットの検索キー３０３を入力されると、それと同一の検索キー３０１に対応するデータベースエントリ３０２を検索して検索結果として出力する。後述するように、入力される検索キー３０３は、フレーム送受信回路１３１が受信したフレームのＬ３のヘッダ情報に基づいて生成される。実施例１における検索キーは、ＶＲＦ−ＩＤ及び当該フレームの宛先ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを含む。
【００２９】
検索キー３０１とデータベースエントリ３０２との複数の組は、あらかじめ、マスタテーブル２０７の内容に基づいて登録される。マスタテーブル２０７には、検索テーブル１３８に登録されるべき全ての検索キー３０１の値とそれぞれに対応するデータベースエントリ３０２の値とを示す情報が格納される。ＣＡＭ１３３にソフトエラーが発生し、検索テーブル１３８が誤った情報を含むこととなった場合には、マスタテーブル２０７を参照して正しい検索テーブル１３８を復元することができる。
【００３０】
図４は、本発明の実施例１のスイッチ１００が保持する検索中間テーブル２０６の説明図である。
【００３１】
検索中間テーブル２０６は、アドレス４０１と、テーブルアドレス４０２と、の複数の組を含む。アドレス４０１は、検索テーブル１３８のデータベースエントリ３０２に対応し、テーブルアドレス４０２は、後述する宛先テーブル１３９のアドレス５０１に対応する。検索中間テーブル２０６によって検索テーブル１３８のエントリと宛先テーブル１３９のエントリとが対応づけられる。
【００３２】
図５は、本発明の実施例１のスイッチ１００が保持する宛先テーブル１３９の説明図である。
【００３３】
宛先テーブル１３９は、アドレス５０１と、出力情報５０２と、照合情報５０３と、の複数の組を含む。アドレス５０１は、検索中間テーブル２０６のテーブルアドレス４０２に対応する。出力情報５０２は、フレームの出力を制御する情報であり、図５の例では、フレームの次の転送先のスイッチのＩＰアドレスであるＮｅｘｔｈｏｐＩＰ５０２Ａ、フレームを出力する出力ポート２０２を指定する出力ポート５０２Ｂ、及び、フレームを廃棄するか否かを示すフラグ等を含む転送制御情報５０２Ｃを含む。
【００３４】
照合情報５０３は、検索テーブル１３８の各検索キー３０１の一部のビット列に対して所定の演算を行うことによって生成した、当該ビット列の誤りを検出するための検査符号である。実施例１では、各検索キー３０１に含まれるＶＲＦ−ＩＤの誤りを検出するための照合情報５０３が生成され、宛先テーブル１３９に登録される。図５には照合情報５０３として「Ａ」〜「Ｇ」等の値が表示されているが、実際には、これらは１ビットのエラーを検出するための１ビットのパリティであってもよいし、２ビット以上のエラーを検出するための複数ビットのＥＣＣであってもよい。照合情報５０３は任意の公知の方法によって生成することができる。
【００３５】
ここで、図３〜図５に示すテーブルの具体例を説明する。例えば、検索テーブル１３８において、検索キー３０１の値「０００・・・０００１１」に対応するデータベースエントリ３０２の値として「０ｘ０００２」が登録され、検索中間テーブル２０６において、アドレス４０１の値「０ｘ０００２」に対応するテーブルアドレス４０２の値として「６」が登録され、宛先テーブル１３９において、アドレス５０１の値「０ｘ０００６」に対応する照合情報５０３の値として「Ｇ」が登録されている。この場合において、ＣＡＭ１３３に検索キー「０００・・・０００１１」が入力された場合、後で詳しく説明するように（図６参照）、最終的に照合情報として「Ｇ」が取得される。
【００３６】
一方、検索テーブル１３８において、検索キー３０１の値「０００・・・００１００」に対応するデータベースエントリ３０２の値として「０ｘ０００３」が登録され、検索中間テーブル２０６において、アドレス４０１の値「０ｘ０００３」に対応するテーブルアドレス４０２の値として「６」が登録されている。このため、ＣＡＭ１３３に検索キー「０００・・・００１００」が入力された場合にも、検索中間テーブル２０６からアドレス「０ｘ０００３」に対応するテーブルアドレス「６」が取得され、宛先テーブル１３９からアドレス「０ｘ０００６」に対応する照合情報「Ｇ」が取得される。これは、検索キー３０１の値「０００・・・０００１１」と「０００・・・００１００」は異なっているが、これらに含まれるＶＲＦ−ＩＤの部分は同一であるため、これらの検索キーから同一の照合情報「Ｇ」が生成されることを意味する。
【００３７】
なお、実施例１では上記のようにＶＲＦ−ＩＤから所定の演算によって生成した検査符号を照合情報として使用する例を説明するが、後述する実施例２と同様に、検索キーから抽出したＶＲＦ−ＩＤをそのまま照合情報として使用してもよい。
【００３８】
従来は、特許文献１に記載されているように、照合情報がＣＡＭ１３３内の検索テーブル１３８に含まれていたが、本実施例では上記のように照合情報がＲＡＭ１３４内の宛先テーブル１３９に含まれる。これによって照合情報をＣＡＭ１３３に格納する必要がなくなるため、ビット単価の高いＣＡＭの記憶容量を有効に利用することができる。言い換えると、本実施例によれば、照合情報のビット数が増加してもＣＡＭに起因するコストは増加しないため、例えばプロセスの微細化等のためにＣＡＭに発生するエラーのビット数が増加したとしても、コストを増加させることなく必要に応じて照合情報のビット数を増やすことができ、これによってＣＡＭのエラーの検出能力を向上させ、フレームの誤転送を防止することができる。
【００３９】
また、本実施例では、互いに異なる二つの検索キーから同一の照合情報が生成される場合、上記のように、検索中間テーブル２０６を介して検索テーブル１３８の二つのエントリと宛先テーブル１３９の一つのエントリとを対応付けることによって、二つの検索キーに対応する照合情報を一つのエントリに集約して保持することができる。三つ以上の検索キーから同一の照合情報が生成される場合にも、同様にその照合情報が宛先テーブル１３９の一つのエントリに集約される。これによって、ＲＡＭの記憶容量も有効に利用することができる。
【００４０】
図６は、本発明の実施例１のスイッチ１００の検索エンジン１３２が実行するＬ３宛先検索処理を示すフローチャートである。
【００４１】
フレーム送受信回路１３１は、いずれかの入力ポート２０１からフレームを受信すると、そのフレームのＬ３のヘッダ情報を検索エンジン１３２に出力する。検索エンジン１３２は、フレーム送受信回路１３１から入力されたヘッダ情報を解析する（ステップ６０１）。具体的には、検索エンジン１３２は、例えば、入力されたヘッダ情報が検索エンジン１３２によって処理可能なものであるか否かを判定し、処理可能なものでなければそれを廃棄し、処理可能なものであればそれをＣＡＭ検索キー生成部１３５に入力する、等の処理を行う。
【００４２】
ＣＡＭ検索キー生成部１３５は、入力されたヘッダ情報からＣＡＭ１３３を検索するための検索キーを生成する（ステップ６０２）。実施例１では、ＣＡＭ検索キー生成部１３５は、入力されたヘッダ情報から取得したＶＲＦ−ＩＤ及び宛先ＩＰアドレスを含む検索キーを生成する。
【００４３】
次に、照合情報生成部１３６が、ステップ６０２において生成された検索キーから照合情報を生成する（ステップ６０３）。実施例１では、照合情報生成部１３６は、入力された検索キーから取得したＶＲＦ−ＩＤに対して、照合情報５０３を生成するときと同じ所定の演算を行うことによって照合情報を生成する。
【００４４】
ＣＡＭ検索キー生成部１３５は、ステップ６０２において生成された検索キーをＣＡＭ１３３に書き込む（ステップ６０４）。図３に示す検索キー３０３は、ステップ６０４において書き込まれた検索キーの一例である。
【００４５】
次に、検索エンジン１３２は、ＣＡＭ１３３にＣｏｍｐａｒｅ命令を送信し、ＣＡＭ１３３は、検索キー３０３を用いて検索テーブル１３８を検索する（ステップ６０５）。具体的には、ＣＡＭ１３３は、書き込まれた検索キー３０３と同一の検索キー３０１を含むエントリを検索し、ヒットしたエントリのデータベースエントリ３０２の値を検索結果として取得する。
【００４６】
次に、検索結果解析部２０３が、ステップ６０５において、検索テーブル１３８のいずれかのエントリがヒットしたか否かを判定する（ステップ６０６）。いずれかのエントリがヒットした場合には、検索中間テーブル解析部２０４が、検索結果として得られたデータベースエントリ３０２の値を検索キーとして検索中間テーブル２０６を検索し、宛先テーブル１３９のアドレス（すなわちテーブルアドレス４０２）を取得する（ステップ６０７）。次に、宛先テーブル解析部２０５が、ステップ６０７において取得されたアドレスを検索キーとして宛先テーブル１３９を検索し、ヒットしたエントリの照合情報５０３を取得する（ステップ６０８）。
【００４７】
次に、照合情報判定部１３７が、ステップ６０８において取得された照合情報５０３と、ステップ６０３において生成された照合情報とが一致するか否かを判定する（ステップ６０９）。これらの照合情報が一致した場合、ステップ６０５の検索によってヒットしたエントリの検索キー３０１のうち、少なくともＶＲＦ−ＩＤの部分にはエラーが発生していないと判定される。このため、照合情報判定部１３７は、ステップ６０８においてヒットしたエントリから取得した出力情報５０２をフレーム送受信回路１３１に入力し、フレーム送受信回路１３１は、入力された出力情報に従ってフレームを処理する（ステップ６１０）。具体的には、出力情報５０２によって出力ポート２０２が指定されている場合、その出力ポート２０２からフレームを出力する。
【００４８】
ステップ６０９において照合情報が一致しないと判定された場合には、ステップ６０５の検索によってヒットしたエントリの検索キー３０１のうち、ＶＲＦ−ＩＤの部分にエラーが発生している。すなわち、この検索結果として取得された出力情報５０２に従ってフレームを送信すると、本来の送信先とは異なる仮想ネットワークにフレームが到達することとなり、セキュリティの問題が発生する。このため、インタフェース部１３０はフレームを廃棄する（ステップ６１２）。例えば、検索エンジン１３２がフレームを廃棄することを示す情報を含む出力情報をフレーム送受信回路１３１に送信し、フレーム送受信回路１３１がそれに従ってフレームを廃棄する。
【００４９】
ステップ６０６においていずれのエントリもヒットしなかったと判定された場合にも、インタフェース部１３０はフレームを廃棄する（ステップ６１２）。
【００５０】
なお、検索エンジン１３２は、ステップ６０９において照合情報が一致しないと判定した場合、そのことをＣＰＵ１１０に通知してもよい（ステップ６１１）。ＣＰＵ１１０は、通知された情報に基づいてマスタテーブル２０７を検索し、正しいデータベースエントリの値を検索エンジン１３２に通知してもよい。その場合、検索エンジン１３２は、ステップ６１２を実行する代わりに、通知されたデータベースエントリの値を用いてステップ６０７以降の処理を実行することができる。ただし、マスタテーブル２０７はＣＡＭではなく通常のＲＡＭに格納されているため、検索テーブル１３８を検索してデータベースエントリの値を取得するより、ＣＰＵからデータベースエントリの値を取得する方が、より多くの時間を要する。
【００５１】
あるいは、ＣＰＵ１１０は、通知された情報に基づいて、検索テーブル１３８におけるエラーが発生しているエントリを特定し、そのエントリに格納されるべき正しい情報を検索エンジン１３２に通知し、検索エンジン１３２が通知された情報に基づいて検索テーブル１３８を修復してもよい。その場合、検索エンジン１３２は、ステップ６１１を実行した後、検索テーブル１３８の修復を待たずにステップ６１２を実行してもよいし、検索テーブル１３８が修復された後に、ステップ６１２を実行する代わりに、ステップ６０５以降の処理を実行してもよい。
【００５２】
ここで、図３〜図６を参照してＬ３宛先検索処理の具体例を説明する。ステップ６０２において検索キーとして「０００・・・０００１１」が生成され、それがステップ６０４において検索キー３０３として書き込まれた場合、ＣＡＭ１３３がＣｏｍｐａｒｅ命令（ステップ６０５）を実行した結果、検索キー３０１の値「０００・・・０００１１」に対応するデータベースエントリ３０２の値「０ｘ０００２」が取得される。そして、検索中間テーブル２０６から、アドレス４０１の値「０ｘ０００２」に対応するテーブルアドレス４０２の値「６」が取得され（ステップ６０７）、宛先テーブル１３９から、アドレス５０１の値「０ｘ０００６」に対応する出力情報５０２の値「出力＃７」及び照合情報５０３の値「Ｇ」が取得される（ステップ６０８）。この例ではＣＡＭ１３３にエラーが発生していないため、照合情報「Ｇ」はステップ６０３において生成されたものと一致し（ステップ６０９）、出力情報「出力＃７」に従ってフレームが出力される（ステップ６１０）。
【００５３】
図３にはエラーが発生していない検索テーブル１３８を示しているが、ここで、データベースエントリ「０ｘ０００１」に対応する検索キー３０１の値「０００・・・０００１０」が、最下位ビットが反転するエラーによって「０００・・・０００１１」となった場合のＬ３宛先検索処理を説明する。この場合、Ｃｏｍｐａｒｅ命令（ステップ６０５）の実行結果として、検索キー３０１の値「０００・・・０００１１」に対応するデータベースエントリ３０２の値「０ｘ０００１」が誤って取得される。この場合、検索中間テーブル２０６から、アドレス４０１の値「０ｘ０００１」に対応するテーブルアドレス４０２の値「５」が取得され（ステップ６０７）、宛先テーブル１３９から、アドレス５０１の値「０ｘ０００５」に対応する出力情報５０２の値「出力＃６」及び照合情報５０３の値「Ｆ」が取得される（ステップ６０８）。この照合情報「Ｆ」は、ステップ６０３において生成された照合情報「Ｇ」と一致しないため（ステップ６０９）、フレームは廃棄される（ステップ６１２）。
【００５４】
照合情報が一致しなかったことを検索エンジン１３２がＣＰＵ１１０に通知した場合（ステップ６１１）、その通知が検索キー３０３の値「０００・・・０００１１」を含んでいれば、ＣＰＵ１１０はマスタテーブル２０７を検索して、検索キー３０３に対応する正しいデータベースエントリの値「０ｘ０００２」を取得し、検索エンジン１３２に通知することができる。検索エンジン１３２は、通知されたデータベースエントリの値「０ｘ０００２」を使用して、ステップ６０７以降の処理を実行することができる。
【００５５】
あるいは、検索エンジン１３２からの通知が、誤った検索結果「０ｘ０００１」を含んでいれば、ＣＰＵ１１０はマスタテーブル２０７を検索して、データベースエントリの値「０ｘ０００１」に対応する正しい検索キーの値「０００・・・０００１０」を取得し、検索エンジン１３２に通知することができる。検索エンジン１３２は、エラーが発生した検索テーブル１３８のエントリの検索キー３０１の値を、通知された検索キーの値「０００・・・０００１０」に修復することができる。
【００５６】
一方、データベースエントリ「０ｘ０００１」に対応する検索キー「０００・・・０００１０」にはエラーが発生せず、データベースエントリ「０ｘ０００２」に対応する検索キー「０００・・・０００１１」の最下位ビットに発生した場合（すなわち、当該検索キーが「０００・・・０００１０」となった場合）には、ステップ６０６においていずれのエントリもヒットしなかったと判定され、ステップ６１２においてフレームが廃棄される。このように照合情報を用いて発見できないエラーを修復するために、ＣＰＵ１１０は、所定のタイミングで検索テーブル１３８のパトロールを実行する。
【００５７】
具体的には、ＣＰＵ１１０は、所定の時刻に、又は定期的に、又は所定のイベント（例えば制御端末１６０からの実行指示）が検出されたときに、検索テーブル１３８の各エントリの検索キー３０１とデータベースエントリ３０２との組がマスタテーブル２０７に登録されているものと同一か否かを判定する検査を行い、同一でない場合には同一になるように検索テーブル１３８のエントリを修復する。例えば定期的にパトロールを実行する場合、１回のパトロールで検索テーブル１３８の全エントリを検査してもよいし、１回のパトロールで一部のエントリを検査し、次回のパトロールで別の一部のエントリを検査し、同様に、以降のパトロールで残りの部分を順次検査してもよい。
【００５８】
以上の本発明の実施例１によれば、照合情報がＣＡＭ１３３ではなくＲＡＭ１３４に格納される。これによって、コストを増加させることなく十分なＣＡＭ１３３のエラー検出能力を実現し、フレームの誤転送を防止することができる。また、照合情報を用いたエラーのチェックがＣＡＭ１３３ではなく検索エンジン１３２によって行われるため、ＣＡＭ１３３内の検索機能のハードウェア故障による誤転送も防止することができる。
【実施例２】
【００５９】
以下、本発明の実施例２を、図面を使用して説明する。以下に説明する相違点を除き、実施例２のスイッチ１００の各部は、図１及び図２に示された実施例１の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
【００６０】
本発明の実施例２のスイッチ１００は、ＯＳＩ参照モデルの第２層（データリンク層、以下Ｌ２とも記載）のデータに基づいて、受信したデータの転送を行うデータ転送装置である。実施例２のスイッチ１００のＲＡＭ１３４は、宛先テーブル１３９及び検索中間テーブル２０６に加えて、フラッディング宛先テーブル９００を格納する。また、実施例２において、仮想ネットワーク１＿１７０Ａ及び仮想ネットワーク２＿１７０ＢはＶＬＡＮ−ＩＤ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの識別子）によって識別される。
【００６１】
図７は、本発明の実施例２のスイッチ１００が保持する検索テーブル１３８の説明図である。
【００６２】
実施例２の検索テーブル１３８は、検索キー７０１とそれに対応するアドレスであるデータベースエントリ７０３との複数の組を含む。各検索キー７０１は複数のビット（図７の例ではＮ＋１ビット）の列である。ＣＡＭ１３３は、Ｎ＋１ビットの検索キー７０４を入力されると、それと同一の検索キー７０１に対応するデータベースエントリ７０３を検索して検索結果として出力する。実施例１と同様、入力される検索キー３０３は、フレーム送受信回路１３１が受信したフレームのヘッダ情報に基づいて生成される。ただし、実施例２においてはＬ２のヘッダ情報が参照されるため、実施例２における検索キーは、ＶＲＦ−ＩＤ等ではなく、ＶＬＡＮ−ＩＤ７０２及び当該フレームの宛先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスを含む。
【００６３】
検索キー７０１とデータベースエントリ７０３との複数の組は、あらかじめ、マスタテーブル２０７の内容に基づいて登録される。マスタテーブル２０７には、検索テーブル１３８に登録されるべき全ての検索キー７０１の値とそれぞれに対応するデータベースエントリ７０３の値とを示す情報が格納される。ＣＡＭ１３３にソフトエラーが発生し、検索テーブル１３８が誤った情報を含むこととなった場合には、マスタテーブル２０７を参照して正しい検索テーブル１３８を復元することができる。
【００６４】
実施例２の検索中間テーブル２０６は、実施例１と同様である（図４参照）。
【００６５】
図８は、本発明の実施例２のスイッチ１００が保持する宛先テーブル１３９の説明図である。
【００６６】
宛先テーブル１３９は、アドレス８０１と、出力情報８０２と、ＶＬＡＮ−ＩＤ８０３と、の複数の組を含む。アドレス８０１は、検索中間テーブル２０６のテーブルアドレス４０２に対応する。出力情報８０２は、フレームの出力を制御する情報であり、図８の例では、フレームを出力する出力ポート２０２を指定する出力ポート８０２Ａ、及び、フレームを廃棄するか否かを示すフラグ等を含む転送制御情報８０２Ｂを含む。
【００６７】
ＶＬＡＮ−ＩＤ８０３は、検索テーブル１３８の各検索キー７０１に含まれるＶＬＡＮ−ＩＤ７０２に対応する。実施例１における照合情報５０３の代わりに実施例２ではＶＬＡＮ−ＩＤ８０３が使用される。言い換えると、実施例２では、ＶＬＡＮ−ＩＤ８０３が照合情報として使用される。ただし、実施例１と同様に、ＶＬＡＮ−ＩＤ８０３の代わりに、各検索キー７０１に含まれるＶＬＡＮ−ＩＤ７０２から所定の演算によって生成した検査符号を照合情報として使用してもよい。
【００６８】
図９は、本発明の実施例２のスイッチ１００が保持するフラッディング宛先テーブル９００の説明図である。
【００６９】
フラッディング宛先テーブル９００は、後述するようにフレームをブロードキャストする際にフレームを出力する出力ポート２０２を決定するために参照されるテーブルであり、ＶＬＡＮ−ＩＤ９０１と、出力ポート９０２と、の複数の組を含む。ＶＬＡＮ−ＩＤ９０１は、仮想ネットワークの識別子であり、検索テーブル１３８のＶＬＡＮ−ＩＤ７０２及び宛先テーブル１３９のＶＬＡＮ−ＩＤ８０３に対応する。出力ポート９０２は、各ＶＬＡＮ−ＩＤに対応する一つ以上の出力ポート２０２の識別子のリストである。
【００７０】
例えば、図９では、ＶＬＡＮ−ＩＤ９０１の値「１０１１」に対応する出力ポート９０２の値として、「Ｐｏｒｔ＃９」、「Ｐｏｒｔ＃１０」、「Ｐｏｒｔ＃１１」及び「Ｐｏｒｔ＃１２」が登録されている。これは、上記の四つの識別子によって識別される四つの出力ポート２０２から送信されたフレームが、ＶＬＡＮ−ＩＤ「１０１１」によって識別されるＶＬＡＮに到達し、他のＶＬＡＮには到達しないことを意味する。ＶＬＡＮ−ＩＤ９０１の値「１０１１」に対応する出力ポート９０２の値として、そこから送信されたフレームがＶＬＡＮ−ＩＤ「１０１１」によって識別されるＶＬＡＮに到達する全ての出力ポート２０２の識別子が登録される。他のＶＬＡＮ−ＩＤ９０１の値に対応する出力ポート９０２も同様である。
【００７１】
図１０は、本発明の実施例２のスイッチ１００の検索エンジン１３２が実行するＬ２宛先検索処理を示すフローチャートである。
【００７２】
フレーム送受信回路１３１は、いずれかの入力ポート２０１からフレームを受信すると、そのフレームのＬ２のヘッダ情報を検索エンジン１３２に出力する。検索エンジン１３２は、フレーム送受信回路１３１から入力されたヘッダ情報を解析する（ステップ１００１）。この処理は図６のステップ６０１と同様である。
【００７３】
ＣＡＭ検索キー生成部１３５は、入力されたヘッダ情報からＣＡＭ１３３を検索するための検索キーを生成する（ステップ１００２）。実施例２では、ＣＡＭ検索キー生成部１３５は、入力されたヘッダ情報から取得したＶＬＡＮ−ＩＤ及び宛先ＭＡＣアドレスを含む検索キーを生成する。
【００７４】
次に、ＣＡＭ検索キー生成部１３５は、ステップ１００２において生成された検索キーをＣＡＭ１３３に書き込む（ステップ１００３）。図７に示す検索キー７０４は、ステップ１００３において書き込まれた検索キーの一例である。
【００７５】
次に、検索エンジン１３２は、ＣＡＭ１３３にＣｏｍｐａｒｅ命令を送信し、ＣＡＭ１３３は、検索キー７０４を用いて検索テーブル１３８を検索する（ステップ１００４）。具体的には、ＣＡＭ１３３は、書き込まれた検索キー７０４と同一の検索キー７０１を含むエントリを検索し、ヒットしたエントリのデータベースエントリ７０３の値を検索結果として取得する。
【００７６】
次に、検索結果解析部２０３が、ステップ１００４において、検索テーブル１３８のいずれかのエントリがヒットしたか否かを判定する（ステップ１００５）。いずれかのエントリがヒットした場合には、検索中間テーブル解析部２０４が、検索結果として得られたデータベースエントリ７０３の値を検索キーとして検索中間テーブル２０６を検索し、宛先テーブル１３９のアドレス（すなわちテーブルアドレス４０２）を取得する（ステップ１００６）。次に、宛先テーブル解析部２０５が、ステップ１００６において取得されたアドレスを検索キーとして宛先テーブル１３９を検索し、ヒットしたエントリからＶＬＡＮ−ＩＤ８０３を取得する（ステップ１００７）。
【００７７】
次に、照合情報判定部１３７が、ステップ１００７において取得されたＶＬＡＮ−ＩＤ８０３と、ステップ１００２において生成された検索キーに含まれるＶＬＡＮ−ＩＤとが一致するか否かを判定する（ステップ１００８）。これらのＶＬＡＮ−ＩＤが一致した場合、ステップ１００４の検索によってヒットした検索キー７０１のうち、少なくともＶＬＡＮ−ＩＤの部分にはエラーが発生していないと判定される。このため、照合情報判定部１３７は、ステップ１００７においてヒットしたエントリから取得した出力情報８０２をフレーム送受信回路１３１に入力し、フレーム送受信回路１３１は、入力された出力情報８０２に従ってフレームを処理する（ステップ１００９）。具体的には、出力情報８０２によって出力ポート２０２が指定されている場合、その出力ポート２０２からフレームを出力する。
【００７８】
ステップ１００８においてＶＬＡＮ−ＩＤが一致しないと判定された場合には、ステップ１００４の検索によってヒットしたエントリの検索キー７０１のうち、ＶＬＡＮ−ＩＤの部分にエラーが発生している。すなわち、この検索結果として取得された出力情報８０２に従ってフレームを送信すると、本来の送信先とは異なる仮想ネットワークにフレームが到達することとなり、セキュリティの問題が発生する。このため、インタフェース部１３０は、ステップ１００９において取得した出力情報８０２ではなく、入力された検索キー７０４に含まれるＶＬＡＮ−ＩＤを検索キーとしてフラッディング宛先テーブル９００を検索した結果を用いて、フレームをブロードキャストする（ステップ１０１１）。
【００７９】
具体的には、検索エンジン１３２は、入力された検索キー７０４に含まれるＶＬＡＮ−ＩＤを検索キーとしてフラッディング宛先テーブル９００を検索し、ヒットしたエントリ（すなわち検索キーと同一のＶＬＡＮ−ＩＤ９０１の値を有するエントリ）の出力ポート９０２に含まれる全ての出力ポート２０２の識別子を取得し、それらの識別子を含む出力情報をフレーム送受信回路１３１に入力する。フレーム送受信回路１３１は、入力された出力情報によって指定された全ての出力ポート２０２からフレームを出力する。
【００８０】
ステップ１００５においていずれのエントリもヒットしなかったと判定された場合にも、インタフェース部１３０はフレームをブロードキャストする（ステップ１０１１）。
【００８１】
なお、検索エンジン１３２は、ステップ１００８において照合情報が一致しないと判定した場合、そのことをＣＰＵ１１０に通知してもよい（ステップ１０１０）。この通知を行った場合のＣＰＵ１１０及び検索エンジン１３２の処理は、実施例１のステップ６１１の通知が行われた場合の処理と同様であるため、説明を省略する。なお、これらの処理の説明において、実施例１のステップ６０５〜６１２は、それぞれ実施例２のステップ１００４〜１０１１に対応する。
【００８２】
ここで、図４及び図７〜図１０を参照してＬ２宛先検索処理の具体例を説明する。ステップ１００２において検索キーとして「００・・・１０１１・・・１１」（このうち、「１０１１」がＶＬＡＮ−ＩＤに相当する）が生成され、それがステップ１００３において検索キー７０４として書き込まれた場合、ＣＡＭ１３３がＣｏｍｐａｒｅ命令（ステップ１００４）を実行した結果、検索キー７０１の値「００・・・１０１１・・・１１」に対応するデータベースエントリ７０３の値「０ｘ０００２」が取得される。
【００８３】
そして、検索中間テーブル２０６から、アドレス４０１の値「０ｘ０００２」に対応するテーブルアドレス４０２の値「６」が取得され（ステップ１００６）、宛先テーブル１３９から、アドレス８０１の値「０ｘ０００６」に対応する出力情報８０２の値「出力＃７」及びＶＬＡＮ−ＩＤ８０３の値「１０１１」が取得される（ステップ１００７）。この例ではＣＡＭ１３３にエラーが発生していないため、ＶＬＡＮ−ＩＤ「１０１１」はステップ６０２において生成された検索キーに含まれるものと一致し（ステップ１００８）、出力情報「出力＃７」に従ってフレームが出力される（ステップ１００９）。
【００８４】
図７にはエラーが発生していない検索テーブル１３８を示しているが、ここで、データベースエントリ「０ｘ０００１」に対応する検索キー７０１の値「００・・・０１１１・・・１１」が、ＶＬＡＮ−ＩＤの部分の上位２ビットが反転するエラーによって「００・・・１０１１・・・１１」となった場合のＬ２宛先検索処理を説明する。この場合、Ｃｏｍｐａｒｅ命令（ステップ１００４）の実行結果として、検索キー７０１の値「００・・・１０１１・・・１１」に対応するデータベースエントリ７０３の値「０ｘ０００１」が誤って取得される。
【００８５】
この場合、検索中間テーブル２０６から、アドレス４０１の値「０ｘ０００１」に対応するテーブルアドレス４０２の値「５」が取得され（ステップ１００６）、宛先テーブル１３９から、アドレス８０１の値「０ｘ０００５」に対応する出力情報５０２の値「出力＃６」及びＶＬＡＮ−ＩＤ８０３の値「０１１１」が取得される（ステップ１００７）。このＶＬＡＮ−ＩＤ「０１１１」は、ステップ１００２において生成された検索キーに含まれるＶＬＡＮ−ＩＤ「１０１１」と一致しないため（ステップ１００８）、フレームはブロードキャストされる（ステップ１０１１）。
【００８６】
具体的には、検索エンジン１３２は、ステップ１００２において生成された検索キーに含まれるＶＬＡＮ−ＩＤ「１０１１」を検索キーとしてフラッディング宛先テーブル９００を検索し、その検索キーと一致するＶＬＡＮ−ＩＤ９０１の値「１０１１」に対応する出力ポート９０２の値「Ｐｏｒｔ＃９」、「Ｐｏｒｔ＃１０」、「Ｐｏｒｔ＃１１」及び「Ｐｏｒｔ＃１２」を取得する。そして、検索エンジン１３２は、宛先テーブル１３９の検索によって得られた出力情報８０２ではなく、上記のフラッディング宛先テーブル９００の検索によって得られた出力ポートの識別子を含む出力情報をフレーム送受信回路１３１に入力する。フレーム送受信回路１３１は、入力された出力情報に含まれる識別子によって識別される出力ポート２０２からフレームを出力する。
【００８７】
なお、上記のように、生成された検索キーが「００・・・１０１１・・・１１」であって、検索テーブル１３８にエラーがない場合、出力情報「出力＃７」に従ってフレームが出力される。このとき、出力情報「出力＃７」に含まれる出力ポート８０２Ａは、上記のＶＬＡＮ−ＩＤ９０１の値「１０１１」に対応する四つの出力ポートの一部又は全部と同一である。
【００８８】
ここで、出力情報「出力＃７」に含まれる出力ポート８０２Ａが、上記のＶＬＡＮ−ＩＤ９０１の値「１０１１」に対応する四つの出力ポートの一部であることは、検索キー「００・・・１０１１・・・１１」のうち、ＶＬＡＮ−ＩＤ「１０１１」以外の部分に応じて、実際の出力ポートを上記の四つの出力ポートの一部に限定できること（すなわち、そのような検索キーに対応するフレームは、残りの出力ポートから出力する必要がないこと）を意味する。このような場合でも、検索テーブル１３８にエラーが見つかった場合には、四つの出力ポートの全てからフレーム出力されることになるが、その場合でも、出力されたフレームは全てＶＬＡＮ−ＩＤ「１０１１」によって識別されるＶＬＡＮ内に到達し、他のＶＬＡＮに到達することはないため、仮想ネットワークのセキュリティは維持される。
【００８９】
なお、実施例１の場合と同様、実施例２においても、ＶＬＡＮ−ＩＤの照合によって発見できないエラーが検索テーブル１３８に発生する場合がある。このようなエラーを修復するために実施例２において実行されるパトロールは、実施例１において説明したものと同様であるため、説明を省略する。
【００９０】
以上の本発明の実施例２によれば、スイッチ１００がいわゆるＬ２スイッチである場合にも、実施例１と同様に、コストを増加させることなく十分なＣＡＭ１３３のエラー検出能力を実現し、フレームの誤転送を防止することができ、さらに、ＣＡＭ１３３内の検索機能のハードウェア故障による誤転送も防止することができる。
【００９１】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。また、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００９２】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００９３】
また、図面には、実施形態を説明するために必要と考えられる制御線及び情報線を示しており、必ずしも、本発明が適用された実際の製品に含まれる全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００９４】
１００  スイッチ
１１０  ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
１２０、１３４  ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）
１３０Ａ〜１３０Ｃ  インタフェース部
１３１  フレーム送受信回路
１３２  検索エンジン
１３３  ＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）
１３５  ＣＡＭ検索キー生成部
１３６  照合情報生成部
１３７  照合情報判定部
１３８  検索テーブル
１３９  宛先テーブル
１５０  バックプレーンスイッチ
１６０  制御端末
１７０Ａ、１７０Ｂ  仮想ネットワーク
２０１  入力ポート
２０２  出力ポート
２０３  検索結果解析部
２０４  検索中間テーブル解析部
２０５  宛先テーブル解析部
２０６  検索中間テーブル
２０７  マスタテーブル
９００  フラッディング宛先テーブル
【図１】
2014143505.tif 000003
【図２】
2014143505.tif 000004
【図３】
2014143505.tif 000005
【図４】
2014143505.tif 000006
【図５】
2014143505.tif 000007
【図６】
2014143505.tif 000008
【図７】
2014143505.tif 000009
【図８】
2014143505.tif 000010
【図９】
2014143505.tif 000011
【図１０】
2014143505.tif 000012