(57)【要約】【課題】高速で品質の高いルーティング処理を達成するルーティング処理装置および方法を提供する。【解決手段】エントリテーブル１０９を用いて受信フレームがハードウェアルーティング処理の対象化否かを判定し、受信フレームを加工して送信フレームを生成するハードウェアルーティング処理部１０３とフレームの長さチェックを含む正常性チェックを行う正常性チェック部１０４とを並行動作させることで、受信フレームの正常性チェックの結果に基づいて送信フレームの送信の可否を判定する。受信フレームがエラーの場合には、フレーム保存用バッファ１０５に格納されている受信フレームを用いてエラー解析を行うことができる。【選択図】図１
2007259365.tif 000002
【特許請求の範囲】
【請求項１】
受信フレームのチェック機能を有するルーティング処理装置において、
送信フレームを格納する送信用格納手段と、
前記受信フレームを加工して送信フレームを生成するハードウェアルーティング処理手段と、
フレームの長さチェックを含む正常性チェックを行う正常性チェック手段と、
前記ハードウェアルーティング処理手段と前記正常性チェック手段とを並行動作させ、少なくとも前記受信フレームの正常性チェックの結果に基づいて前記送信フレームを送信するか否かを判定する制御手段と、
を有することを特徴とするルーティング処理装置。
【請求項２】
前記制御手段は、前記受信フレームがハードウェアルーティングの対象であるか否かを判定する判定手段をさらに有し、前記受信フレームがハードウェアルーティングの対象である場合、前記受信フレームを前記ハードウェアルーティング処理手段により加工することを特徴とする請求項１に記載のルーティング処理装置。
【請求項３】
前記制御手段は、ルーティング処理を含むソフトウェア処理手段をさらに有し、前記受信フレームがハードウェアルーティングの対象外である場合、前記受信フレームを前記ソフトウェア処理手段により加工して送信フレームを生成することを特徴とする請求項２に記載のルーティング処理装置。
【請求項４】
前記制御手段は、ルーティング処理を含むソフトウェア処理手段をさらに有し、前記ハードウェアルーティング処理手段により生成された送信フレームの前記長さチェックを前記正常性チェック手段に実行させ、当該長さチェックがエラーの場合、前記送信フレームに対応する受信フレームを前記ソフトウェア処理手段により加工して送信フレームを生成することを特徴とする請求項１または２に記載のルーティング処理装置。
【請求項５】
ハードウェアルーティング処理手段を用いたルーティング処理方法において、
前記ハードウェアルーティング処理手段により前記受信フレームを加工して送信フレームを生成し、
前記ハードウェアルーティング処理手段の動作と並行して、少なくとも前記受信フレームの長さを含むフレームの正常性を判定し、
少なくとも前記受信フレームの判定結果に基づいて前記送信フレームを送信するか否かを判定する、
を有することを特徴とするルーティング処理方法。
【請求項６】
前記受信フレームがハードウェアルーティングの対象であるか否かを判定し、
前記受信フレームがハードウェアルーティングの対象である場合、前記受信フレームを前記ハードウェアルーティング処理手段により加工して送信フレームを生成する、
ことを特徴とする請求項５に記載のルーティング処理方法。
【請求項７】
前記受信フレームがハードウェアルーティングの対象外である場合、前記受信フレームをソフトウェア処理により加工して送信フレームを生成することを特徴とする請求項６に記載のルーティング処理方法。
【請求項８】
前記ハードウェアルーティング処理手段により生成された送信フレームの長さがエラーの場合、前記送信フレームに対応する受信フレームをソフトウェア処理により加工して送信フレームを生成することを特徴とする請求項５−７のいずれか１項に記載のルーティング処理方法。
【請求項９】
ハードウェアルーティング処理手段を用いたルーティング処理機能をコンピュータにより実現するためのプログラムにおいて、
前記ハードウェアルーティング処理手段により受信フレームを加工して送信フレームを生成し、
前記ハードウェアルーティング処理手段の動作と並行して、少なくとも前記受信フレームの長さを含むフレームの正常性を判定し、
少なくとも前記受信フレームの判定結果に基づいて前記送信フレームを送信するか否かを判定する、
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はルーティング処理装置に係り、特に受信フレームに対するチェック機能を有するルーティング処理装置および方法に関する。
【背景技術】
【０００２】
ネットワークの高速化および大容量化に伴い、ルーティング処理の高速化が益々重要な課題となっており、種々の高速化技術が提案されている。
【０００３】
たとえば、特開平９−１０２７９０号公報（特許文献１）には、フレーム転送能力を向上させる目的で、フレームの受信処理とルーティング処理とをパラレルに実行する方式が開示されている（段落００３７〜００３９、図１および図５参照）。具体的には、受信フレームをメモリの所定領域に格納し、それと並行してルーティング処理を行い、それにより得られた転送先情報をメモリの他の領域に格納する。この転送先情報に従って、メモリの所定領域に格納された受信フレームを転送する（段落０００８および段落００４９参照）。
【０００４】
また、特開平１０−５１４８０号公報（特許文献２）には、受信フレームが処理対象である場合、受信フレームのルーティング処理とそのヘッダ情報の正当性チェックとを並列化することでプロトコル処理時間を短縮する方式が開示されている（段落００３２〜００３５、図１参照）。具体的には、受信フレームのヘッダ情報が正当な値と一致するか否かをチェックし、その結果が得られた後でルーティング処理による転送先情報が得られ（図２参照）、正当性チェックの結果が正当であれば、転送先情報が受信フレームのヘッダに付け足される。
【０００５】
【特許文献１】特開平９−１０２７９０号公報
【特許文献２】特開平１０−５１４８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、受信フレームのヘッダ情報だけでなく、受信フレーム内のデータ部分に存在するパケット長などについても正常性チェックを行うには受信フレームをすべて受信する必要がある。したがって、上記従来技術のように単にルーティング処理を並列化するだけでは十分な高速化を達成できない。
【０００７】
特にハードウェアで高速ルーティング処理を行う場合、ルーティング処理済みのフレームが先に生成され、受信フレームのパケット長などの正常性チェックの結果が後で出力されることになる。したがって、正常性チェックによりエラーが検出された場合の処理を考慮しなければならない。
【０００８】
しかしながら、上記従来技術では、エラーが検出された場合あるいは処理対象以外のプロトコルのフレームであった場合、受信フレームは廃棄処理されている（特許文献２の段落００１６、００３３参照）。このために、処理対象以外のフレームをルーティング処理することができず、またエラーフレームのエラー解析を行うことができない。
【０００９】
本発明の目的は、高速で品質の高いルーティング処理を達成するルーティング処理装置および方法を提供することにある。
【００１０】
本発明の他の目的は、受信フレームにエラーが検出された場合にも対処可能なルーティング処理装置および方法を提供することにある。
【００１１】
本発明のさらに他の目的は、ハードウェアで高速ルーティング処理を行う場合の処理対象を広げることができるルーティング処理装置および方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明によるルーティング処理装置は、受信フレームを加工して送信フレームを生成するハードウェアルーティング処理手段と、フレームの長さチェックを含む正常性チェックを行う正常性チェック手段と、ハードウェアルーティング処理手段と正常性チェック手段とを並行動作させ、少なくとも受信フレームの正常性チェックの結果に基づいて送信フレームを送信するか否かを判定する制御手段と、を有することを特徴とする。
【００１３】
制御手段は受信フレームがハードウェアルーティングの対象であるか否かを判定する判定手段をさらに有することが望ましい。判定手段により受信フレームがハードウェアルーティングの対象であると判定されたときに受信フレームをハードウェアルーティング処理手段により加工する。
【００１４】
制御手段はルーティング処理を含むソフトウェア処理手段をさらに有することが望ましい。受信フレームがハードウェアルーティングの対象外であると判定された場合、その受信フレームを廃棄するのではなく、ソフトウェア処理手段により加工して送信フレームを生成することができる。
【００１５】
制御手段は、ハードウェアルーティング処理手段により生成された送信フレームの長さチェックを正常性チェック手段に実行させ、当該長さチェックがエラーの場合、当該送信フレームに対応する受信フレームをソフトウェア処理により加工して送信フレームを生成することができる。これにより、ハードウェアルーティング処理により送信フレームの長さが正常値より長くなる場合に対応することができる。
【００１６】
本発明の他の側面によれば、ハードウェアルーティング処理手段により受信フレームを加工して送信フレームを生成し、ハードウェアルーティング処理手段の動作と並行して少なくとも前記受信フレームの長さを含むフレームの正常性を判定し、少なくとも受信フレームの判定結果に基づいて送信フレームを送信するか否かを判定することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、Ｅｔｈｅｒフレームのルーティングをハードウェアで実現させる場合において、長さチェックを含む正常性チェックしている最中にハードウェアルーティング処理を並行して行うことで、高速で品質の高いルーティング処理を達成できる。
【００１８】
また、受信フレームがハードウェアルーティングの対象であるか否かを判定し、対象外であると判定された場合でも、その受信フレームを廃棄するのではなく、ソフトウェア処理手段によりルーティング処理して送信フレームを生成することができる。
【００１９】
さらに、一度ハードウェアルーティング処理でフレームを加工してしまった後も、加工する前のデータを保存用バッファに保存しているので、たとえエラーフレームであると判定されても、保存された受信フレームを用いてエラー解析を行うことができる。
【発明を実施するための最良の形態】
【００２０】
１．装置構成
図１は本発明の一実施形態によるルーティング処理装置のブロック図である。ここでは、一例としてイーサネット（登録商標）形式のフレーム（以下、Ｅｔｈｅｒフレームという。）を２つのネットワーク（ここではＬＡＮとＷＡＮ）の間でルーティング処理する場合について説明する。
【００２１】
図１において、ルーティング処理装置の受信処理部１０１はＥｔｈｅｒフレームをＬＡＮ／ＷＡＮから受信し、受信フレームを制御部１０２、ハードウェアルーティング処理部１０３、正常性チェック部１０４、フレーム保存用バッファ１０５および受信バッファ１０６へ出力する。
【００２２】
ハードウェアルーティング処理部１０３は、ハードウェア的に自動でルーティングのフレーム加工を行い、加工されたフレームを送信バッファ１０７へ格納する。ルーティング処理の内容としては、ＩＰアドレスの乗せ変え、ポート番号の乗せ変え、ＶＬＡＮヘッダの追加削除、ＰＰＰｏＥヘッダの追加削除、ＰＰＰヘッダの追加削除、などがある。
【００２３】
正常性チェック部１０４は、受信したＥｔｈｅｒフレームのパケット長やチェックサムが正常であるかどうかチェックし、その結果を制御部１０２へ通知する。フレーム保存用バッファ１０５は、受信したＥｔｈｅｒフレームをそのままの状態で保存する。受信バッファは、ハードウェアルーティング処理以外のソフトウェア処理が必要な受信Ｅｔｈｅｒフレームを格納し、ソフトウェアの要求に応じて制御部１０２へ出力する。送信バッファ１０７に格納されたフレームは制御部１０２の制御の下で送信処理部１０８へ出力され、ＷＡＮ／ＬＡＮへ送信される。
【００２４】
制御部１０２はエントリテーブル１０９を用いてルーティング対象であるか否かを判定する。ルーティングの対象としては、ＩＰv４／Ｅｔｈｅｒ、ＩＰｖ６／Ｅｔｈｅｒ、ＩＰｖ４／ＰＰＰ／ＰＰＰｏＥ／Ｅｔｈｅｒ、ＩＰｖ６／ＰＰＰ／ＰＰＰｏＥ／Ｅｔｈｅｒ、ＩＰv４／ＶＬＡＮ／Ｅｔｈｅｒ、ＩＰv６／ＶＬＡＮ／Ｅｔｈｅｒ、ＩＰｖ４／ＰＰＰ／ＰＰＰｏＥ／ＶＬＡＮ／Ｅｔｈｅｒ、ＩＰｖ６／ＰＰＰ／ＰＰＰｏＥ／ＶＬＡＮ／Ｅｔｈｅｒなどがある。
【００２５】
エントリテーブル１０９には、ハードウェアルーティングを行いたいフレームの情報が予め格納されている。ルーティング対象のフレームであるか否かは、例えば、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、ＰＰＰｏＥセッション値、ＶＬＡＮ  ＩＤ、ＩＰプロトコル、ＮＥＸＴヘッダ、ＩＰｖ４宛先アドレス、ＩＰｖ４送信元アドレス、ＩＰｖ６宛先アドレス、ＩＰｖ６送信元アドレス、宛先ポート番号、送信元ポート番号などの情報を用いて判定される。
【００２６】
メモリ１１０には、制御部１０２が実行するプログラムが格納されている。制御部１０２はプログラム制御プロセッサであり、プログラムを順次読み出して実行することで、後述するルーティング処理装置全体の動作を制御する。あるいは、正常性チェック部１０４の機能をプログラム制御プロセッサ上でソフトウェアにより実現することも可能である。以上、図１に示すルーティング処理装置は集積回路ＬＳＩに組み込むことができる。
【００２７】
２．動作の概略
図１に示すルーティング処理装置では、たとえばＬＡＮ側から受信したＥｔｈｅｒフレームをハードウェアルーティング処理部１０３によりルーティング処理を行う。そのルーティング処理は、受信Ｅｔｈｅｒフレームの先頭からポート番号の末尾までの情報に対して行われるので、ポート番号より後ろのデータを受信する前にルーティング処理を開始することができる。したがって、Ｅｔｈｅｒフレーム全体を受信し終わるまでにルーティング処理を完了させることができ、ルーティング処理が完了したフレームを送信バッファ１０７に格納しておくことができる。既にルーティング処理されたフレームを送信バッファ１０７に待機させておくことで、正常性チェック部１０４により正常性が確認されると同時に送信バッファ１０７から送信することができ、全体としてルーティング処理を高速化できる。
【００２８】
フレーム保存用バッファ１０５に受信Ｅｔｈｅｒフレームをそのままの状態で保存しておくのは、正常性チェック部１０４の結果がエラーであった場合を考慮したからある。すなわち、上記ルーティング処理と並行して、正常性チェック部１０４はパケット長の正常性をチェックし、受信Ｅｔｈｅｒフレームが正常であるかどうか判断する。Ｅｔｈｅｒフレーム全体のパケット長をチェックする場合は、Ｅｔｈｅｒフレームを最後まで受信してみないとチェックができない。したがって、上述したようにルーティング処理が完了した後にパケット長の正常性のチェックが完了することになる。
【００２９】
このとき、もし何かの要因でパケット長が異常であると判定されても、ルーティングの加工処理は完了して送信バッファ１０７に既に格納されてしまっている。しかし、フレーム保存用バッファ１０５には、ルーティング処理する前の受信Ｅｔｈｅｒフレームがそのまま保存されているので、正常性チェックでエラーになれば、このフレーム保存用バッファ１０５に保存されているフレームをエラー解析に利用することができる。たとえば、エラーの原因が通信品質によるものか、あるいは、悪意の攻撃によるものかを特定することも可能となる。
【００３０】
また、制御部１０２が受信Ｅｔｈｅｒフレームをハードウェアルーティング処理以外の処理を行うべきものと判定した場合には、その受信Ｅｔｈｅｒフレームは受信バッファ１０６に格納され、制御部１０２が実行するソフトウェアの要求に応じて受信バッファ１０６から読み出され、ソフトウェアによるルーティング処理やその他エラー解析などの処理が実行される。このように受信バッファ１０６に受信フレームを格納することで、エラーの解析をするなりソフトウェアで対処するなりの対応ができる。
【実施例１】
【００３１】
図２は本発明の第１実施例によるルーティング処理装置の全体的な動作を示すフローチャートである。ここでは、本発明の特徴をもつＬＳＩを実装した装置がハードウェアルーティング処理を行うものとする。
【００３２】
まず、ＬＡＮ側もしくはＷＡＮ側からＥｔｈｅｒフレームを受信すると（ステップＳ２０１）、制御部１０２は、受信フレームがハードウェアルーティング処理を行うフレームかどうかをエントリテーブル１０９を参照しながらチェックする（ステップＳ２０２）。ハードウェアルーティングを行いたいフレームの情報はエントリテーブル１０９に予め格納されているので、制御部１０２は受信Ｅｔｈｅｒフレームの情報がエントリテーブル１０９のエントリと一致するか否かを判定する。
【００３３】
受信Ｅｔｈｅｒフレームの情報がエントリテーブル１０９のエントリと一致しなかった場合（ステップＳ２０３のＮＯ）、ハードウェアルーティングの対象ではないので、フレームは何も加工せずに受信バッファ１０６に転送される（ステップＳ２０４）。受信バッファ１０６に格納された受信フレームは、制御部１０２が実行するソフトウェアによりルーティングを含む送信処理が行われ（ステップＳ２０５）、送信バッファ１０７に格納される（ステップＳ２０６）。送信バッファ１０７に入れられたフレームは送信処理部１０８を通してＥｔｈｅｒフレームとしてＬＡＮ側もしくはＷＡＮ側に送信される（ステップＳ２０７）。
【００３４】
他方、受信Ｅｔｈｅｒフレームの情報がエントリテーブル１０９のエントリと一致した場合（ステップＳ２０３のＹＥＳ）、ハードウェアルーティングの対象であるから、制御部１０２は受信フレームをフレーム保存用バッファ１０５に保存すると共に、ハードウェアルーティング処理部１０３および正常性チェック部１０４を制御して受信フレームに対する並行処理を行う（ステップＳ２０８）。すなわち、受信フレームに対して上述したルーティング加工処理が行われ送信バッファ１０７へ格納されると共に、受信Ｅｔｈｅｒフレームの正常性チェック、たとえばＩＰヘッダのチェックサムの確認やＥｔｈｅｒフレームのパケット長の確認などが行われる。Ｅｔｈｅｒフレームのパケット長の確認はＥｔｈｅｒフレームをすべて受信してからでないと行えないが、ハードウェアルーティング処理はＥｔｈｅｒフレームの先頭からポート番号の末尾まで受信できれば行えるので、結果的に、ハードウェアルーティング処理が終わった後に正常性チェックが終わることになる。
【００３５】
正常性チェックの結果、受信Ｅｔｈｅｒフレームに何らかの異常がありエラーになった場合（ステップＳ２０９のＹＥＳ）、制御部１０２はフレーム保存用バッファ１０５に保存されているルーティング加工処理前の受信フレームを受信バッファ１０６へ転送し（ステップＳ２１０）、エラーの解析などを行うために保存される（ステップＳ２１１）。このとき、制御部１０２は、ハードウェアルーティング処理加工をされて送信バッファ１０７に格納されている対応する送信フレームを廃棄する（ステップＳ２１２）。
【００３６】
Ｅｔｈｅｒフレームが正常であり正常性チェックでエラーにならなかった場合には（ステップＳ２０９のＮＯ）、制御部１０２は、ハードウェアルーティング処理部１０３で加工処理され送信バッファ１０７に格納されている送信Ｅｔｈｅｒフレームを送信処理部１０８を通してＬＡＮ側もしくはＷＡＮ側に送出する（ステップＳ２０７）。
【実施例２】
【００３７】
上記実施例では、何も加工してない状態の受信フレームをフレーム保存用バッファ１０５に保存しているが、上記ハードウェアルーティング処理および正常性チェック処理と並行して、何も加工してない状態の受信フレームを直接、受信バッファ１０７に格納してもよい。そして、制御部１０２は、正常性チェック処理で正常と判定されたときに、受信バッファ１０７から当該受信フレームを廃棄し、正常性チェックでエラーになったら送信バッファ１０６の対応フレームを廃棄するという制御を行うこともできる。
【００３８】
図３は本発明の第２実施例によるルーティング処理装置のブロック図である。ただし、図１と同様の機能を有するブロックには同一参照番号を付している。ここでは、メモリ１１１にエントリテーブル１０９、受信バッファ１０７および送信バッファ１０６のそれぞれの領域を設け、上述したようにフレーム保存用バッファ１０５を設けずに、何も加工してない状態の受信フレームを直接受信バッファ１０７に格納するように制御する。その他の動作は第１実施例と同様であるから説明は省略する。
【実施例３】
【００３９】
第１実施例では、図２のステップＳ２０８においてハードウェアルーティング処理部１０３および正常性チェック部１０４を並行動作させ、正常性チェック部１０４により受信フレームの正常性チェックを行っている。しかしながら、ハードウェアルーティング処理部１０３によりフレーム加工されると、フレームのサイズが大きくなりＥｔｈｅｒフレームの最大長を超えてしまう可能性がある。この場合も、Ｅｔｈｅｒフレームとしてはエラーになるので、ハードウェアルーティング処理後に長さチェックを行うことが望ましい。これを本発明の第３実施例として以下説明する。
【００４０】
図４は本発明の第３実施例によるルーティング処理装置の全体的な動作を示すフローチャートである。ただし、図２と同じ機能のステップには同一参照符号を付して説明は省略する。
【００４１】
図４において、受信Ｅｔｈｅｒフレームの情報がエントリテーブル１０９のエントリと一致した場合（ステップＳ２０３のＹＥＳ）、ハードウェアルーティングの対象であるから、制御部１０２は受信フレームをフレーム保存用バッファ１０５に保存すると共に、ハードウェアルーティング処理部１０３および正常性チェック部１０４を制御し、受信フレームに対するルーティング加工処理および正常性チェックと、ルーティング加工処理により生成された送信フレームの長さチェックを並行して実行する（ステップＳ３０１）。
【００４２】
もし受信フレームに対してエラーが検出されると（ステップＳ３０２のＹＥＳ）、素伝説瞑したステップＳ２１０へ移行する。受信フレームに対してエラーがなければ（ステップＳ３０２のＮＯ）、制御部１０２は送信フレーム長にエラーがあるかどうかを判定し（ステップＳ３０３）、送信フレームの長さがＥｔｈｅｒフレームの最大長さを超えて居る場合には（ステップＳ３０３のＹＥＳ）、制御部１０２はフレーム保存用バッファ１０５に保存されているルーティング加工処理前の受信フレームを受信バッファ１０６へ転送する（ステップＳ２０４）。以下、既に説明したように、受信バッファ１０６に格納された受信フレームは、制御部１０２が実行するソフトウェアによりルーティングを含む送信処理が行われ（ステップＳ２０５）、送信バッファ１０７に格納され（ステップＳ２０６）、送信される（ステップＳ２０７）。
【００４３】
このように、ハードウェアルーティング処理前と受信フレームと後の送信フレームとの両方に正常性チェックを施すことで、高速で品質の高いルーティング処理を実現できる。
【産業上の利用可能性】
【００４４】
本発明はハードウェアルーティング処理機能およびフレームチェック機能を有する装置一般、たとえばルータ、ゲートウェイなどに適用可能である。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施形態によるルーティング処理装置のブロック図である。
【図２】本発明の第１実施例によるルーティング処理装置の全体的な動作を示すフローチャートである。
【図３】本発明の第２実施例によるルーティング処理装置のブロック図である。
【図４】本発明の第３実施例によるルーティング処理装置の全体的な動作を示すフローチャートである。
【符号の説明】
【００４６】
１０１  受信処理部
１０２  制御部
１０３  ハードウェアルーティング処理部
１０４  正常性チェック部
１０５  フレーム保存用バッファ
１０６  受信バッファ
１０７  送信バッファ
１０８  送信処理部
１０９  エントリテーブル
１１０  プログラムメモリ
【図１】
2007259365.tif 000003
【図２】
2007259365.tif 000004
【図３】
2007259365.tif 000005
【図４】
2007259365.tif 000006