(57)【要約】【課題】１対多又は多対１又は多対多で接続可能な転送エンジン及び検索エンジンを有するネットワーク中継装置を提供する。【解決手段】  ネットワーク中継装置のルーティングプロセッサは、回線から受信したパケットのパケットヘッダを抽出する１つまたは複数の転送エンジン３０と、各転送エンジンから受け取ったパケットヘッダを用いて出力方路情報を抽出する１つまたは複数の検索エンジン４０を備える。  各ルーティングプロセッサにおいて、１つの転送エンジン３０が１つの検索エンジン４０、または複数の転送エンジン３０が１つの検索エンジン４０、または１つの転送エンジン３０が複数の検索エンジン４０、または複数の転送エンジン３０が複数の検索エンジン４０と接続されている。【選択図】  図１
2004282729.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク中継装置において、
少なくとも１つの回線と接続され、回線からパケットを受信し、受信パケットに含まれるパケットヘッダを用いて出力先情報を抽出し、前記出力先情報に従い、受信パケットを中継する複数のルーティング部と、
複数の前記ルーティング部と接続され、各々の前記ルーティング部からパケットと前記出力先情報を受け取り、前記出力先情報に従って受信パケットを何れかの前記ルーティング部に転送するスイッチ部とを有し、
各々の前記ルーティング部は更に、少なくとも１つの回線と接続され、各回線から受信したパケットのパケットヘッダを抽出して出力する１つまたは複数の転送部と、各々の前記転送部と接続され、各々の前記転送部から前記パケットヘッダを受け取り、前記パケットヘッダを用いて前記出力先情報を抽出して出力する１つまたは複数の検索部と、受信パケット及び前記出力先情報を受け取り、前記出力先情報に従って受信パケットを前記スイッチ部または前記転送部に出力する１つまたは複数のスイッチ入出力部と、各々の前記ルーティング部において、１つまたは複数の前記転送部に１つまたは複数の前記検索部がそれぞれ接続されていることを特徴とするネットワーク中継装置。
【請求項２】
前記ルーティング部として、１つの前記転送部に１つの前記検索部が接続された第１のルーティング部、複数の前記転送部が１つの前記検索部に接続された第２のルーティング部、１つの前記転送部に複数の前記検索部が接続された第３のルーティング部、または複数の前記転送部と複数の前記検索部とが接続された第４のルーティング部を備えることを特徴とする請求項１記載のネットワーク中継装置。
【請求項３】
前記ルーティング部として、１つの前記転送部に複数の前記検索部が接続された第１のルーティング部、または複数の前記転送部と複数の前記検索部とが接続された第２のルーティング部を備え、前記第１または第２のルーティング部において、各々の前記転送部は、接続されている複数の前記検索部に前記パケットヘッダを出力することを特徴とする請求項１記載のネットワーク中継装置。
【請求項４】
前記ルーティング部として、複数の前記転送部が１つの前記検索部に接続された第１のルーティング部、または複数の前記転送部と複数の前記検索部とが接続された第２のルーティング部を備え、前記第１または第２のルーティング部において、各々の前記検索部は、前記パケットヘッダを出力した１つの前記転送部に対して前記出力先情報を出力することを特徴とする請求項１記載のネットワーク中継装置。
【請求項５】
前記転送部及び前記検索部は、ｎ（ｎは２以上の自然数）個の入出力端子を備え、前記第１のルーティング部において、前記転送部と前記検索部は、それぞれ前記ｎ個の入出力端子を用いて接続され、前記第２または第４のルーティング部において、前記転送部にｉ（ｉは２以上の自然数）個の前記検索部が接続されている場合、前記転送部と前記ｉ個の前記検索部は、それぞれｎ／ｉ個の入出力端子を用いて接続され、前記第３または第４のルーティング部において、前記検索部にｊ（ｊは２以上の自然数）個の前記転送部が接続されている場合、前記検索部と前記ｊ個の前記転送部は、それぞれｎ／ｊ個の入出力端子を用いて接続されることを特徴とする請求項２記載のネットワーク中継装置。
【請求項６】
前記第１のルーティング部において、前記転送部と前記検索部は、それぞれ最大ｎ（ｎは２以上の自然数）ビットずつ前記パケットヘッダまたは前記出力先情報を送受信し、前記第２または第４のルーティング部において、前記転送部にｉ（ｉは２以上の自然数）個の前記検索部が接続されている場合、前記転送部と各々の前記検索部は、それぞれ、最大ｎ／ｉビットずつ前記パケットヘッダまたは前記出力先情報を送受信し、前記第３または第４のルーティング部において、前記検索部にｊ（ｊは２以上の自然数）個の前記転送部が接続されている場合、前記検索部と各々の前記転送部は、それぞれ、最大ｎ／ｊビットずつ前記パケットヘッダまたは前記出力先情報を送受信することを特徴とする請求項２記載のネットワーク中継装置。
【請求項７】
前記転送部は更に、前記転送部にいくつの前記検索部が接続されているかを識別するための接続情報を保持する保持部と、前記接続情報に対応するビット数ずつ、前記パケットヘッダを各々の前記検索部に出力する出力部を備えることを特徴とする請求項１記載のネットワーク中継装置。
【請求項８】
前記検索部は更に、前記検索部にいくつの前記転送部が接続されているかを識別するための接続情報を保持する保持部と、前記接続情報に対応するビット数ずつ、前記出力先情報を前記転送部に出力する出力部を備えることを特徴とする請求項１記載のネットワーク中継装置。
【請求項９】
前記検索部は更に、前記転送部を識別するための識別情報を保持する第２の保持部を備え、前記出力部は、前記識別情報により識別される前記転送部に前記出力先情報を出力することを特徴とする請求項８記載のネットワーク中継装置。
【請求項１０】
ネットワーク中継装置において、
少なくとも１つの回線と接続され、各回線から受信したパケットを中継する複数のルーティング部と、
複数の前記ルーティング部と接続され、各々の前記ルーティング部から受信したパケット何れかの前記ルーティング部に転送するスイッチ部とを有し、
各々の前記ルーティング部は更に、前記少なくとも１つの回線と接続され、それぞれ各回線から受信したパケットのパケットヘッダを抽出し、出力する１つまたは複数の転送部と、各々の前記転送部と接続され、各々の前記転送部から前記パケットヘッダを受け取り、前記パケットヘッダを用いて出力先情報を抽出し、出力する１つまたは複数の検索部とを備え、各々の前記ルーティング部は、１つの前記転送部に１つの前記検索部が接続された第１のルーティング部、複数の前記転送部が１つの前記検索部に接続された第２のルーティング部、１つの前記転送部に複数の前記検索部が接続された第３のルーティング部、または複数の前記転送部と複数の前記検索部とが接続された第４のルーティング部のいずれかであることを特徴とするネットワーク中継装置。
【請求項１１】
複数の回線と接続され、各回線から受信したパケットを中継する中継装置において使用されるルーティングユニットにおいて、
少なくとも１つの回線と接続され、回線からパケットを受信し、受信パケットのパケットヘッダを抽出して出力する１つまたは複数の転送部と、
各々の前記転送部と接続され、前記パケットヘッダを受け取り、前記出力先情報を抽出して出力する１つまたは複数の検索部とを有し、
各々の前記転送部には１つまたは複数の前記検索部が接続され、各々の前記検索部には１つまたは複数の前記転送部が接続されていることを特徴とするルーティングユニット。
【請求項１２】
唯一の前記転送部に複数の前記検索部が接続され、または複数の前記転送部に複数の前記検索部が接続されており、各々の前記転送部は、接続されている複数の前記検索部に前記パケットヘッダを出力することを特徴とする請求項１１記載のルーティングユニット。
【請求項１３】
複数の前記転送部が唯一の前記検索部に接続され、または複数の前記転送部に複数の前記検索部が接続されており、各々の前記検索部は、前記パケットヘッダを出力した前記転送部に対してのみ前記出力先情報を出力することを特徴とする請求項１１記載のルーティングユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速で、且つポート密度の高いネットワーク中継装置に関する。特に、検索エンジンと転送エンジンが１対多、多対１、多対多と可変に接続可能なネットワーク中継装置に関する。
【背景技術】
【０００２】
ネットワークシステムにおいては、複数のネットワークがルータ等のネットワーク中継装置を介して接続され、その中でパケットが中継される。ネットワーク中継装置は、受信したパケットに含まれている宛先アドレスに基づきパケットの転送先を決定し、転送先のルータ又はホスト又はクライアント端末が接続されている回線にパケットを出力する。
【０００３】
このようなネットワーク中継装置の一例が、例えば、特開２００１−２１１２０３号公報に開示されている。この文献に示されているネットワーク中継装置は、色々な種類のネットワークインタフェース（回線）と接続され、パケットを送受信するネットワークインターフェースボード(ＮＩＦ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｂｏａｒｄ)、受信したパケットのヘッダに含まれる宛先アドレスによってパケットの転送先を検索し、パケットを転送するルーティングプロセッサ(ＲＰ：Ｒｏｕｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ)、各ＲＰと接続され、ＲＰ間でパケットを転送するクロスバスイッチ(ＣＳＷ：Ｃｒｏｓｓ  ｂａｒ  Ｓｗｉｔｃｈ)から構成される。更に、このネットワーク中継装置において、各ＲＰは複数のパケット転送ユニットを含む。パケット転送ユニットは、パケットのヘッダに含まれる宛先アドレスからパケットの転送先を検索し、パケットを転送する。各ＲＰはでは、ＮＩＦから受信したパケット及びＣＳＷから受信したパケットを、複数のパケット転送ユニットに振り分ける。これにより、このネットワーク中継装置では、パケット転送処理が高速化されている。
【０００４】
【特許文献１】特開２００１−２１１２０３
【発明の開示】
【発明が解決しようとする課題】
【０００５】
図１２は、ネットワーク中継装置の構成の一例を示す図である。図１２において、ネットワーク中継装置は、例えば、パケットバッファを有する転送エンジンと、ルーティングテーブルを有する検索エンジンと、スイッチエンジンとを含むルーティングプロセッサを備えている。また、ネットワーク中継装置は、複数のルーティングプロセッサと接続され、複数のルーティングプロセッサ間でパケットを中継するクロスバスイッチも備えている。ルーティングプロセッサの転送エンジンと検索エンジンは、それぞれ１対１で接続されている。なお、図１２における転送エンジン、検索エンジン及びスイッチエンジンが、上述した文献に示されたパケット転送ユニットに対応する。
【０００６】
まず、転送エンジンは、回線からパケットを受信すると、受信したパケットをパケットバッファに格納する（１）。また、転送エンジンは、受信したパケットからパケットヘッダを抽出し、検索エンジンに送信する（２）。検索エンジンは、受信したパケットヘッダを基にルーティングテーブルを検索し、出力方路を決定する（３）。ルーティングテーブルは、例えば、検索エンジンの内部メモリまたは外部メモリに格納されており、宛先ＩＰアドレスに対応する出力スイッチエンジン及び出力回線を示す情報を含む。検索エンジンは、決定した出力方路を転送エンジンに送信する（４）。また、検索エンジンは、パケットヘッダに基づきパケットを廃棄するフィルタリングやＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）に関する処理を行う場合もある。転送エンジンは、スイッチエンジンに向かって、受信した出力方路とパケットバッファに格納していたパケットを送信する（５）。スイッチエンジンは、指定された出力方路へパケットをスイッチングする（６）。
【０００７】
例えば、図１２に示したようなネットワーク中継装置では、転送エンジンと検索エンジンが１対１で固定的に接続されている。ネットワーク中継装置の検索エンジンは、ネットワークに関する重要な情報を保持する。そのため、ネットワーク中継装置の利用者には、信頼性向上のために検索エンジンを二重化したいというニーズがある。しかし、上述したネットワーク装置においては、検索エンジンを二重化すると、１対１で接続されている転送エンジンも二重化する必要がある。また、転送エンジンは回線と接続されているため、回線も二重化することになり、ネットワーク中継装置の構成を変更するだけでは二重化を実現することができない。
【０００８】
また、上述したネットワーク中継装置では、ポート数を増やすために転送エンジン数を増やすと、１対１で接続されている検索エンジンも増やす必要がある。一般に検索エンジンは高価であり、検索エンジン数を増やすと装置全体も高価になる。
【０００９】
さらに、転送エンジンと検索エンジンの接続を１対多、多対１とするネットワーク中継装置を製作する場合、接続状況に応じて転送エンジンや検索エンジンのＬＳＩ等を開発する必要があり、開発コストがかかる。
【００１０】
本発明は、以上の点に鑑み、１対多又は多対１又は多対多で接続可能な転送エンジン及び検索エンジンを有するネットワーク中継装置を提供する。
【００１１】
また、本発明は、同じ構造の転送エンジンと検索エンジンで複数の接続パターンを選択可能なネットワーク中継装置を提供する。
【００１２】
さらに、本発明は、転送エンジンと検索エンジン間でパケットヘッダ及び出力方路を効率的に送受信できるネットワーク中継装置を提供する。
【課題を解決するための手段】
【００１３】
本発明のネットワーク中継装置は、回線からパケットを受信して中継する複数のルーティング部と、各ルーティング部から他のルーティング部へパケットを転送するスイッチ部からなる。
【００１４】
各ルーティング部は、各回線から受信したパケットのパケットヘッダを抽出する１つまたは複数の転送部と、各転送部から受け取ったパケットヘッダを用いて出力先情報を抽出する１つまたは複数の検索部を備える。
【００１５】
そして、各ルーティング部において、１つの転送部に１つの検索部が接続され、または複数の転送部が１つの検索部に接続され、または１つの転送部に複数の検索部が接続され、または複数の転送部と複数の検索部とが接続されている。
【００１６】
各転送部は、接続されているそれぞれの検索部にパケットヘッダを出力する。
【００１７】
各検索部は、パケットヘッダを出力した転送部に対してのみ出力先情報を出力する。
【発明の効果】
【００１８】
本発明によれば、同じ構造の転送エンジンと検索エンジンとを、１対多又は多対１又は多対多で接続可能である、従って、ネットワーク中継装置の構成に応じて、転送エンジンと検索エンジンとの接続パターンを選択可能である。
【発明を実施するための最良の形態】
【００１９】
以下、図面を用いてネットワーク中継装置の一実施例について説明する。
【００２０】
図１は、ネットワーク中継装置の構成の一例を示す。
【００２１】
図１において、ネットワーク中継装置は、例えばクロスバスイッチで構成されるスイッチ１０と、スイッチ１０に接続される複数のルーティングプロセッサ２１０、２２０、２３０とを備える。各ルーティングプロセッサは、転送エンジン３０、検索エンジン４０、スイッチエンジン５０を有する。また、転送エンジン３０は、それぞれ１つ乃至複数の回線と直接または間接的に接続されている。図１では、ネットワーク中継装置は、ルーティングプロセッサとして、例えば、転送エンジン３０と検索エンジン４０が１対１で接続されたタイプＡのルーティングプロセッサ２１０、２以上の転送エンジン３０と１つの検索エンジン４０が多対１で接続されたタイプＢのルーティングプロセッサ２２０、１つの転送エンジン３０と２以上の検索エンジン４０が１対多で接続されたタイプＣのルーティングプロセッサ２３０を備えている。
【００２２】
また、図２にネットワーク中継装置の他の構成例を示す。
【００２３】
図２に示したネットワーク中継装置も、図１に示したネットワーク中継装置と同じ構成を備える。但し、図２におけるネットワーク中継装置は、ルーティングプロセッサとして、２以上の転送エンジン３０と２以上の検索エンジン４０が多対多で接続されたタイプＤのルーティングプロセッサ２４０を備えている。
【００２４】
各ルーティングプロセッサでは、転送エンジン３０と検索エンジン４０が、１対多又は多対１又は多対多で相互に接続されるためのアーキテクチャを持つ。各転送エンジン３０は、アーキテクチャに応じた所定の設定に従い、複数の検索エンジン４０を接続するための接続部を備えている。同様に、各検索エンジン４０は、アーキテクチャに応じた所定の設定に従い、複数の転送エンジン３０を接続するための接続部を備えている。
【００２５】
なお、図１にはタイプＡ、Ｂ、Ｃのルーティングプロセッサがひとつずつ示されている。また、図２にはタイプＤのルーティングプロセッサ２４０が２つ示されている。しかし、ネットワーク中継装置は、タイプＡ〜タイプＤのうちの何れか１つのタイプのルーティングプロセッサのみを備えることもでき、また、タイプＡ〜タイプＤのルーティングプロセッサをそれぞれ１つまたは複数個備えることもできる。
【００２６】
スイッチ１０は、スイッチエンジンを有し、各ルーティングプロセッサとの間でパケットを転送する。スイッチ１０は、各ルーティングプロセッサのスイッチエンジン５０からパケット及び出力方路情報を受け取ると、出力方路情報に含まれる出力スイッチエンジン番号に応じたスイッチエンジン５０に当該パケットを転送する。なお、スイッチ１０は、例えば、現用系と予備系を有する多重化構成であってもよい。また、スイッチ１０のスイッチエンジンと、各ルーティングプロセッサのスイッチエンジン５０は、同じ構造を持つことができる。
【００２７】
転送エンジン３０は、パケットを記憶するパケットバッファを有し、回線から受信したパケットをパケットバッファに格納する。また、転送エンジン３０は、受信したパケットからパケットヘッダを抽出し、検索エンジン４０へ送る。転送エンジン３０は、検索エンジン４０から出力方路情報を受け取り、受け取った出力方路情報とパケットバッファに格納されているパケットをスイッチエンジン５０に転送する。また、転送エンジン３０は、入力回線番号及び入力転送エンジン番号をさらに検索エンジン４０に送ってもよい。入力回線番号及び入力転送エンジン番号は、例えば、検索エンジン４０でのフィルタリングやＱｏＳに関する処理に使用される。
【００２８】
検索エンジン４０は内部メモリを備え、または、外部メモリと接続されている。内部メモリまたは外部メモリはルーティングテーブルを格納している。ルーティングテーブルには、１つ以上のアドレス（ＩＰアドレス）と、各アドレスに対応する出力スイッチエンジン番号、出力転送エンジン番号及び出力回線番号を含む出力方路情報が登録されている。検索エンジン４０は、転送エンジン３０から受け取ったパケットヘッダに含まれている宛先アドレスを検索キーとして、ルーティングテーブルを検索する。検索エンジン４０は、宛先アドレスと一致するアドレスに対応する出力方路情報を抽出すると、転送エンジン３０に送る。また、検索エンジン４０は、転送エンジン３０から受け取った入力回線番号及び入力転送エンジン番号、及び／又は、出力方路情報に基づき、フィルタリング又はＱｏＳに関する処理を行う。
【００２９】
スイッチエンジン５０は、転送エンジン３０からパケット及び出力方路情報を受け取り、その出力方路情報に従い、パケットをスイッチ１０のスイッチエンジンまたは転送エンジン３０へ転送する。また、スイッチエンジン５０は、スイッチ１０から出力方路情報及びパケットを受信し、転送エンジン３０へ送信する。スイッチエンジン５０からパケット及び出力方路情報を受け取った転送エンジン３０は、その出力方路情報に従い、パケットを何れかの回線に向けて出力する。
【００３０】
上述した通り、タイプＡのルーティングプロセッサ２１０は、検索エンジン４０と転送エンジン３０が１対１で接続されている。タイプＡのルーティングプロセッサ２１０は、タイプＢ、タイプＣまたはタイプＤの構成に比べて性能のバランスを重視した構成である。
【００３１】
タイプＢのルーティングプロセッサ２２０は、１つの検索エンジン４０に対して、２以上の転送エンジン３０が接続された構成である。なお、図１に示すタイプＢのルーティングプロセッサ２３０においては、スイッチエンジン５０と転送エンジン３０も１対多で接続されているが、複数のスイッチエンジン５０を配置し、スイッチエンジン５０と転送エンジン３０を１対１で接続するようにしてもよい。上述のタイプＡの構成では、１つの検索エンジン４０に対する回線数（ポート数）を増やすためには、転送エンジン３０、検索エンジン４０、スイッチエンジン５０のそれぞれを増やす必要がある。一方、タイプＢの構成では、１つの検索エンジン４０に対する回線数（各回線と接続されるポート数）を多くできるため、ポート単価を安くすることができる。すなわち、タイプＢのルーティングプロセッサ２２０は、タイプＡまたはタイプＣの構成に比べて回線収容数（ポート密度）を重視した構成である。特に、パケット長の長いパケットを扱う場合、ペイロード（データ）を含むパケット全体を処理する転送エンジン３０（性能はｂｐｓ：ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄで表される）の負荷に対して、パケットヘッダのみを処理する検索エンジン４０（性能はｐｐｓ：ｐａｃｋｅｔ  ｐｅｒ  ｓｅｃｏｎｄで表される）の負荷は小さい。そのため、タイプＢの構成とすることにより検索エンジン４０を効率的に利用することができる。
【００３２】
また、タイプＣのルーティングプロセッサ２３０は、１つの転送エンジン３０に対して、２以上の検索エンジン４０が接続された構成である。タイプＣは、回線を多重化せずに、スイッチエンジン５０や検索エンジン４０を多重化した、信頼性を重視した構成である。タイプＣの構成によれは、例えば、一組の検索エンジン４０及びスイッチエンジン５０を予備系とし、残りを現用系とすることができる。特に、検索エンジン４０は、ネットワークに関する重要な情報を保持しているため、検索エンジン４０を二重化することでルーティングプロセッサ２０の信頼性を向上させることができる。なお、予備系は一組でなくてもよく、複数組を予備系としてもよい。また、図１においては、スイッチエンジン５０も多重化された構成となっているが、検索エンジン４０のみを多重化し、スイッチエンジン５０と転送エンジン３０は１対１で接続された構成としてもよい。
【００３３】
更に、タイプＤのルーティングプロセッサ２４０は、２以上の転送エンジン３０に対して２以上の検索エンジン４０が接続された構成である。タイプＤのルーティングプロセッサ２４０では、複数の転送エンジン３０が各検索エンジン４０に接続されている。このため、１つの検索エンジン４０に対する回線数（ポート数）が多くなっている。更に、複数の検索エンジン４０が各転送エンジン３０に接続されていて、検索エンジン４０が多重化されている。即ち、タイプＣは、タイプＢとタイプＣを組み合わせた構成となっている。従って、タイプＣと同様に、タイプＤにおいても一組または複数組の検索エンジン４０とスイッチエンジン５０を予備系として待機させておくことができる。なお、タイプＤのルーティングプロセッサ２４０においても、スイッチエンジン５０については転送エンジン３０と１対１で接続してもよい。
【００３４】
ところで、転送エンジン３０、検索エンジン４０及びスイッチエンジン５０はそれぞれ１つまたは複数のＬＳＩによって構成される。転送エンジン３０、検索エンジン４０及びスイッチエンジン５０を構成する各ＬＳＩは、プリント基板或いはセラミック基板等の配線基板上に搭載される。各ＬＳＩは、配線基板に予め形成された複数の信号配線によって接続される。これらの信号配線は銅等の金属によって配線基板上または内部に形成される。転送エンジン３０、検索エンジン４０及びスイッチエンジン５０を構成する各ＬＳＩは、各信号配線と接続される複数の入出力端子を備え、これらの信号配線を介して上述したようにパケット、パケットヘッダまたは出力方路情報等を互いに転送し合う。このように、各ルーティングプロセッサは、転送エンジン３０、検索エンジン４０及びスイッチエンジン５０を構成する各ＬＳＩと、各々のＬＳＩが搭載される配線基板によって実現される。配線基板には、各ＬＳＩの他にメモリ等も搭載される。メモリは、例えば上述したルーティングテーブルを格納するために使用される。
【００３５】
なお、転送エンジン３０、検索エンジン４０及びスイッチエンジン５０は、同一の配線基板ではなく、それぞれ異なる配線基板上に搭載されても良い。また、転送エンジン３０、検索エンジン４０及びスイッチエンジン５０は、それぞれモジュール、ユニットまたはカードとして構成されて、ネットワーク中継装置に組み込まれても良い。各エンジンがモジュール、ユニットまたはカードとして構成される場合、各エンジンは互いを接続するためのインタフェース（上述した複数の入出力端子に対応する）を備える。各エンジンはそのようなインタフェースに接続されたケーブル等（上述した複数の信号配線に対応する）を介して互いに接続される。
【００３６】
各ルーティングプロセッサにおいて、各転送エンジン３０と各検索エンジン４０とを接続する複数の信号配線は、例えば１２８ビットの幅のデータバスを含む。データバスは、その幅に対応した、例えば１２８本の信号配線から構成される。また、各転送エンジン３０と各検索エンジン４０は、それぞれ、データバスの各信号配線と接続される１２８個のデータ入出力端子（例えばピンまたはソケット）を備える。各データ入出力端子は１ビットのデータを入出力し、各信号配線はそれぞれ１ビットの信号（データ）を伝送する。従って、各転送エンジン３０と各検索エンジン４０とは、データバスを用いて最大１２８ビットの信号（データ）を互いに送受信し合うことができる。
【００３７】
図３及び図４は、各転送エンジン３０と各検索エンジン４０がデータバス８０を介して接続された状態を示す。
【００３８】
例えば、タイプＡのルーティングプロセッサ２１０では、図３（ａ）に示されるように１つの転送エンジン３０と１つの検索エンジン４０とがデータバス８０を介して接続される。この場合、転送エンジン３０と検索エンジン４０は、それぞれの１２８個のデータ入出力端子（以下、データ入出力端子０−１２７と記す）を全て使用し、データバス８０の１２８本の信号配線（以下、信号配線０−１２７）を介して最大１２８ビットのデータを送受信できる。
【００３９】
一方、タイプＢのルーティングプロセッサ２２０において、例えば１つの検索エンジン４０に対して２つの転送エンジン３０が接続されるとする。この場合、検索エンジン４０のデータ入出力端子０−１２７が、データバスを介して２つの転送エンジン３０に接続される必要がある。そのため、検索エンジン４０のデータ入出力端子０−１２７は、論理的に２つのデータ入出力端子群（データ入出力端子群０−６３とデータ入出力端子群６４−１２７）に分けられる。同様に、各転送エンジン３０のデータ入出力端子０−１２７も論理的に２つのデータ入出力端子群に分けられる。そして、図３（ｂ）に示されるように、各転送エンジン３０の一方のデータ入出力端子群（例えばデータ入出力端子群０−６３）が、検索エンジン４０のそれぞれのデータ入出力端子群にデータバスを介して接続されることになる。従って、この場合、検索エンジン４０と各転送エンジン３０は、それぞれデータ入出力端子０−１２７のうち半分のデータ入出力端子群（０−６３または６４−１２７）を使用し、データバスを介して最大６４ビットのデータを送受信する。
【００４０】
また、タイプＢのルーティングプロセッサ２２０において、１つの検索エンジン４０に対して４つの転送エンジン３０が接続された状態を図３（ｃ）に示す。この場合、検索エンジン４０のデータ入出力端子０−１２７は、論理的に４つのデータ入出力端子群（０−３１、３２−６３、６４−９５、９６−１２７）に分けられる。同様に、各転送エンジン３０のデータ入出力端子０−１２７も論理的に４つのデータ入出力端子群に分けられる。そして、図３（ｃ）に示されるように、各転送エンジン３０の１つのデータ入出力端子群（例えばデータ入出力端子群０−３１）が、検索エンジン４０のそれぞれのデータ入出力端子群にデータバスを介して接続されることになる。従って、この場合、検索エンジン４０と各転送エンジン３０は、それぞれデータ入出力端子０−１２７のうち１／４のデータ入出力端子群（０−３１、３２−６３、６４−９５、９６−１２７の何れか）を使用し、データバスを介して最大３２ビットのデータを送受信する。
【００４１】
次に、タイプＣのルーティングプロセッサ２３０において、１つの転送エンジン３０に対して２つの検索エンジン４０が接続された状態を図４（ａ）に示す。この場合は、転送エンジン３０と各検索エンジン４０のデータ入出力端子がそれぞれ論理的に２つのデータ入出力端子群に分けられる。そして、図３（ｂ）に示された状態と同様に、各検索エンジン４０の１つのデータ入出力端子群（例えばデータ入出力端子群０−６３）が、転送エンジン３０のそれぞれのデータ入出力端子群にデータバスを介して接続される。
【００４２】
また、タイプＣのルーティングプロセッサ２３０において、１つの転送エンジン３０に対して４つの検索エンジン４０が接続された状態を図４（ｂ）に示す。この場合は、転送エンジン３０と各検索エンジン４０のデータ入出力端子がそれぞれ論理的に４つのデータ入出力端子群に分けられる。そして、図３（ｃ）に示された状態と同様に、各検索エンジン４０の１つのデータ入出力端子群（例えばデータ入出力端子群０−３１）が、転送エンジン３０のそれぞれのデータ入出力端子群にデータバスを介して接続される。
【００４３】
更に、タイプＤのルーティングプロセッサ２４０において、２つまたは４つの転送エンジン３０と２つまたは４つの検索エンジン４０が接続される場合も同様である。この場合は、各転送エンジン３０と各検索エンジン４０のデータ入出力端子がそれぞれ論理的に２つまたは４つのデータ入出力端子群に分けられる。そして、各検索エンジン４０の１つのデータ入出力端子群（例えばデータ入出力端子群０−６３またはデータ入出力端子群０−３１）が、１つの転送エンジン３０のそれぞれのデータ入出力端子群にデータバスを介して接続される。また、各検索エンジン４０の他のデータ入出力端子群が、他の転送エンジン３０のそれぞれのデータ入出力端子群にデータバスを介して接続されることになる。
【００４４】
このように、タイプＡとタイプＢ〜Ｄとでは、各検索エンジン４０に接続される各転送エンジン３０の入出力端子数は異なっている。更に、タイプＢ〜Ｄであっても、転送エンジン３０または検索エンジン４０の個数によって、各検索エンジン４０に接続される各転送エンジン３０の入出力端子数は異なる。そのため、各検索エンジン４０と各転送エンジン３０とが送受信できるデータの最大幅は異なり、データ伝送に使用するデータバスの幅も異なる。更に、タイプＣやタイプＤのルーティングプロセッサ２３０、２４０においては、転送エンジン３０は、多重化された各々の検索エンジン４０に同じデータを出力する必要がある。
【００４５】
そこで、図１及び図２に示した転送エンジン３０及び検索エンジン４０は、データの最大幅（データ入出力端子数）を変えてデータを送受信できる接続部を備える。更に、転送エンジン３０の接続部は、同一のデータを論理的に分けた複数の入出力端子群から出力させる。転送エンジン３０と検索エンジン４０がそのような接続部を備えることにより、検索エンジン４０は複数の転送エンジン３０と接続されることができる。また、転送エンジン３０も複数の検索エンジン４０と接続され、各検索エンジン４０に同じデータを送信できる。このように、全てのタイプのルーティングプロセッサに同一の転送エンジン３０及び検索エンジン４０を用いることができる。
【００４６】
接続部の詳細な構成について図５及び図６を用いて説明する。
【００４７】
図５は、転送エンジン３０の接続部６０の構成図を示す。
【００４８】
接続部６０は上述したデータ入出力端子０−１２７と接続され、パケットヘッダ等のデータを転送エンジン内部の回路から受け取ってデータ入出力端子へ送り、データバスへ出力させる。また、データ入出力端子を介してデータバスから受信した出力方路情報等を転送エンジン内部の回路に送る。
【００４９】
図５において、転送エンジン３０の接続部６０は、モードレジスタ６１０と、セレクタ６２０、６３０、６４０と、２進カウンタ６５０及び４進カウンタ６６０とを有する。また、接続部６０は１２８ビットの幅のバス６７０を備える。バス６７０は１２８本のデータ線（以下、データ線０−１２７）を含む。バス６７０は転送エンジン内部の回路または信号線と接続され、また、セレクタ６２０を介してデータ入出力端子０−１２７と接続される。データ線０−１２７のそれぞれはデータ入出力端子０−１２７のそれぞれと接続される。各データ線は、バス６７０によって伝送される１２８ビットのデータ（以下、ビット０−１２７のデータ）のうち、それぞれの位置に対応したビットのデータを伝送する。即ち、１ビット目（ビット０）のデータは１番目のデータ線（データ線０）により伝送される。また、データ線０−１２７のそれぞれによって伝送される１ビット目（ビット０）から１２８ビット目（ビット１２７）の各々のデータは、各ビットの位置に対応するデータ入出力端子によって出力（または入力）される。更に、各ビットのデータは、各ビットの位置に対応する信号配線によって伝送される。よって、データ線０により伝送されるビット０のデータは、１番目のデータ入出力端子（データ入出力端子０）によって入出力され、また、１番目の信号配線（信号配線０）によって伝送される。
【００５０】
なお、バス６７０やデータバスの幅は１２８ビット以外の任意のビット数であって構わない。バスの幅に合わせてデータ入出力端子の数も１２８個以外の数となってよい。
【００５１】
接続部６０において、セレクタ６３０にはバス６７０に含まれるデータ線０−１２７のうち１〜６４番目のデータ線０−６３が一方の入力として接続され、他方の入力としてデータ線６４−１２７が接続されている。セレクタ６３０は、２進カウンタ６５０が取り得る値、即ち“０”または“１”に従ってデータ線０−６３またはデータ線６４−１２７を選択して６４本のデータ出力線と接続する。従って、データ線０−６３から出力される６４ビット（ビット０−６３）のデータまたはデータ線６４−１２７から出力される６４ビット（ビット６４−１２７）のデータが選択されてセレクタ６３０から出力される。図５に示されるように、セレクタ６３０に接続された各データ出力線はそれぞれ２つに分かれ、合計１２８本のデータ出力線として合成され、セレクタ６２０に接続される。よって、セレクタ６３０から出力された６４ビットのデータは各データ出力線により二重化され、合計１２８ビットのデータとしてセレクタ６２０に入力される。例えば、２進カウンタ６５０の値“０”によってセレクタ６３０がデータ線０−６３から出力されるビット０−６３のデータを選択したとする。セレクタ６３０から出力されたビット０−６３のデータは、各データ出力線によって２つのビット０−６３のデータを含む１２８ビットのデータとされる。
【００５２】
なお、２進カウンタは、セレクタ６３０からデータが出力される毎にカウントアップ（又はカウントダウン）を繰り返す。そのため、セレクタ６３０は、データ線０−６３とデータ線６４−１２７を順番に選択する。よって、バス６７０により伝送されるビット０−１２７のデータは、ビット０−６３のデータとビット６４−１２７のデータに分けられて、セレクタ６３０から順番に出力される。
【００５３】
セレクタ６４０にはバス６７０に含まれるデータ線０−１２７のうち０〜３２番目のデータ線０−３１が１つの入力として接続され、更に、データ線３２−６３、データ線６４−９５、データ線９６−１２７がそれぞれ他の入力として接続されている。セレクタ６４０は、４進カウンタ６６０が取り得る値、“０”、“１”、“２”、“３”に従って４つのデータ線群の１つを選択して３２本のデータ出力線と接続する。従って、各データ線群からそれぞれ出力される３２ビットのデータの１つが選択されてセレクタ６４０から出力される。図５に示されるように、セレクタ６４０に接続された３２本のデータ出力線はそれぞれ４つに分かれ、合計１２８本のデータ出力線として合成され、セレクタ６２０に接続される。よって、セレクタ６４０から出力された３２ビットのデータは各データ出力線により四重化され、合計１２８ビットのデータとしてセレクタ６２０に入力される。例えば、４進カウンタ６６０の値“０”によってセレクタ６４０がデータ線０−３１から出力されるビット０−３１のデータを選択したとする。セレクタ６４０から出力されたビット０−３１のデータは、各データ出力線によって４つのビット０−３１のデータを含む１２８ビットのデータとされる。
【００５４】
なお、４進カウンタは、セレクタ６４０からデータが出力される毎にカウントアップ（又はカウントダウン）を繰り返す。そのため、セレクタ６４０は、各データ線群を順番に選択する。よって、バス６７０により伝送されるビット０−１２７のデータは、ビット０−３１のデータ、ビット３２−６３のデータ、ビット６４−９５のデータ、ビット９６−１２７のデータに分けられて、セレクタ６４０から順番に出力される。
【００５５】
セレクタ６２０には、上述した通り、バス６７０のデータ線０−１２７が１つの入力（入力Ａ）として接続されている。また、セレクタ６３０のデータ出力線が二重化されて入力Ｂとして接続されている。更に、セレクタ６４０のデータ出力線が四重化されて入力Ｃとして接続されている。セレクタ６２０はモードレジスタ６１０に設定されたモード情報に従って、入力Ａ、Ｂ、Ｃの１つを選択してデータ入出力端子０−１２７と接続する。
【００５６】
モードレジスタ６１０は、転送エンジン３０と検索エンジン４０との接続タイプを示すモード情報を記憶する。モード情報は、例えば、ネットワーク中継装置の初期設定時や、その他の適宜のタイミングで、装置管理者によって、または装置内のソフトウェアによってモードレジスタ６１０に設定される。
【００５７】
図３（ａ）に示すように、転送エンジン３０と検索エンジン４０が１対１で接続されている場合、モードレジスタ６１０には“モードＡ”が設定される。この場合、セレクタ６２０は入力Ａ、即ち、バス６７０のデータ線０−１２７を選択してデータ入出力端子０−１２７と接続する。これにより、データ線０−１２７により伝送されるビット０−１２７のデータがデータ入出力端子０−１２７からそのまま出力される。データ入出力端子０−１２７から出力されたビット０−１２７のデータは、データバスの信号配線０−１２７を介して検索エンジン４０のデータ入出力端子０−１２７に受信される。
【００５８】
次に、図３（ｂ）に示すように、１つの検索エンジン４０に２つの転送エンジン３０が接続されている場合、モードレジスタ６１０には“モードＢ”が設定される。この場合、セレクタ６２０は入力Ｂを選択してデータ入出力端子０−１２７と接続する。即ち、セレクタ６２０は、セレクタ６３０から出力され、データ出力線により二重化された１２８ビットの信号を選択し、データ入出力端子０−１２７に出力する。上述した通り、セレクタ６３０は、バス６７０のうちのデータ線０−６３から出力されるビット０−６３のデータ、またはデータ線６４−１２７から出力されるビット６４−１２７のデータを選択して出力する。従って、データ入出力端子０−１２７のうちデータ入出力端子群０−６３とデータ入出力端子群６４−１２７は共に、セレクタ６３０により選択された６４ビットのデータを出力する。但し、この場合、図３（ｂ）に示されるように、例えばデータ入出力端子群０−６３のみが、データバスの信号配線０−６３または信号配線６４−１２７を介して、検索エンジン４０のデータ入出力端子群０−６３またはデータ入出力端子群６４−１２７に接続される。そのため、データ入出力端子群０−６３から出力されるビット０−６３のデータまたはビット６４−１２７のデータだけが検索エンジン４０に送られる。なお、セレクタ６３０は、ビット０−６３のデータとビット６４−１２７のデータを順番に出力するため、データ入出力端子群０−６３（またはデータ入出力端子群６４−１２７）もビット０−６３のデータとビット６４−１２７のデータを順番に出力する。
【００５９】
また、図４（ａ）に示すように、１つの転送エンジン３０に２つの検索エンジン４０が接続されている場合も、モードレジスタ６１０には“モードＢ”が設定される。但しこの場合、図４（ａ）に示されるように、例えばデータ入出力端子群０−６３は、データバスの信号配線０−６３を介して、１つの検索エンジン４０のデータ入出力端子群０−６３に接続される。また、データ入出力端子群６４−１２７は、データバスの信号配線６４−１２７を介して、他の検索エンジン４０のデータ入出力端子群０−６３に接続される。そのため、データ入出力端子群０−６３とデータ入出力端子群６４−１２７から出力される同一のデータ（ビット０−６３のデータまたはビット６４−１２７のデータ）が両方の検索エンジン４０に送られる。なお、セレクタ６３０は、ビット０−６３のデータとビット６４−１２７のデータを順番に出力するため、データ入出力端子群０−６３とデータ入出力端子群６４−１２７も、ビット０−６３のデータとビット６４−１２７のデータを順番に出力する。
【００６０】
次に、図３（ｃ）に示すように、１つの検索エンジン４０に４つの転送エンジン３０が接続されている場合、モードレジスタ６１０には“モードＣ”が設定される。この場合、セレクタ６２０は入力Ｃを選択してデータ入出力端子０−１２７と接続する。即ち、セレクタ６２０は、セレクタ６４０から出力され、データ出力線により四重化された１２８ビットの信号を選択し、データ入出力端子０−１２７に出力する。上述した通り、セレクタ６４０は、バス６７０のうちのデータ線０−３１から出力されるビット０−３１のデータ、データ線３２−６３から出力されるビット３２−６３のデータ、データ線６４−９５から出力されるビット６４−９５のデータまたはデータ線９６−１２７から出力されるビット９６−１２７のデータを選択して出力する。従って、データ入出力端子０−１２７のうちデータ入出力端子群０−３１、データ入出力端子群３２−６３、データ入出力端子群６４−９５及びデータ入出力端子群９６−１２７は共に、セレクタ６３０により選択された３２ビットのデータを出力する。但し、この場合、図３（ｃ）に示されるように、例えばデータ入出力端子群０−３１のみが、データバス（信号配線０−３１、３２−６３、６４−９５、９６−１２７のうちの１つ）を介して、検索エンジン４０（データ入出力端子群０−３１、３２−６３、６４−９５、９６−１２７の１つ）に接続される。そのため、データ入出力端子群０−３１から出力されるデータ（ビット０−３１、３２−６３、６４−９５、９６−１２７の１つのデータ）だけが検索エンジン４０に送られる。なお、セレクタ６４０は、ビット０−３１、ビット３２−６３、ビット６４−９５、ビット９６−１２７のデータを順番に出力するため、データ入出力端子群０−３１も各データを順番に出力する。
【００６１】
また、図４（ｂ）に示すように、１つの転送エンジン３０に４つの検索エンジン４０が接続されている場合も、モードレジスタ６１０には“モードＣ”が設定される。但しこの場合、図４（ｂ）に示されるように、例えばデータ入出力端子群０−３１は、データバスの信号配線０−３１を介して、１つの検索エンジン４０のデータ入出力端子群０−３１に接続される。他のデータ入出力端子群０−３１、３２−６３、６４−９５、９６−１２７もそれぞれ、信号配線３２−６３、６４−９５、９６−１２７を介して、各検索エンジン４０のデータ入出力端子群０−３１に接続される。そのため、各々のデータ入出力端子群から出力される同一のデータが各検索エンジン４０に送られる。なお、セレクタ６４０は、ビット０−３１、ビット３２−６３、ビット６４−９５、ビット９６−１２７のデータを順番に出力するため、各データ入出力端子群も各データを順番に出力する。
【００６２】
なお、２以上の転送エンジン３０と２以上の検索エンジン４０とが接続されている場合には、各転送エンジン３０にいくつの検索エンジン４０が接続されるかに応じて、モードレジスタには“モードＢ”または“モードＣ”が設定される。
【００６３】
上述した通り、接続部６０は、転送エンジン３０と検索エンジン４０との接続状態に従って、検索エンジン４０に接続されたデータ入出力端子群からデータを出力することができる。また、接続部６０は、データ入出力端子群の端子数に対応した幅のデータを出力することができる。更に、接続部６０は同一のデータを複数の検索エンジン４０に対して出力することができる。
【００６４】
図６は、検索エンジン４０の接続部７０の構成図を示す。
【００６５】
接続部７０は、検索エンジン４０の上述したデータ入出力端子０−１２７と接続され、出力方路情報等のデータを検索エンジン内部の回路から受け取ってデータ入出力端子へ送り、データバスへ出力させる。また、データ入出力端子を介してデータバスから受信したパケットヘッダ等を検索エンジン内部の回路に送る。
【００６６】
図６において、検索エンジン４０の接続部７０は、モードレジスタ７１０と、セレクタ７２０、７３０、７４０と、２進カウンタ７５０及び４進カウンタ７６０とを有する。また、接続部７０は１２８ビットの幅のバス７７０を備える。バス７７０は１２８本のデータ線（データ線０−１２７）を含む。バス７７０は検索エンジン内部の回路または信号線と接続され、また、セレクタ７２０を介してデータ入出力端子０−１２７と接続される。データ線０−１２７のそれぞれはデータ入出力端子０−１２７のそれぞれと接続される。
【００６７】
図６における接続部７０のモードレジスタ７１０、セレクタ７２０、セレクタ７３０、セレクタ７４０、２進カウンタ７５０及び４進カウンタ７６０は、それぞれ、図５における接続部６０のモードレジスタ６１０、セレクタ６２０、セレクタ６３０、セレクタ６４０、２進カウンタ６５０及び４進カウンタ６６０と対応する。従って、接続部７０は、上述した接続部６０と同様に動作する。
【００６８】
但し、検索エンジン４０は、転送エンジン３０と異なり、複数の転送エンジン３０に対して同じデータを出力する必要はない。即ち、検索エンジン４０は、パケットヘッダを出力した転送エンジン３０に対してのみ、そのパケットヘッダに基づいて抽出した出力方路情報等のデータを出力する。そのため、接続部７０は、パケットヘッダ等のデータを受信したデータ入出力端子群を記憶する出力レジスタ７８０を備える。データを受信すると、そのデータを受信したデータ入出力端子群の識別情報が出力レジスタ７８０に設定される。データ入出力端子群の識別情報ではなく、データを出力した転送エンジンの識別情報が出力レジスタ７８０に設定されても良い。データ入出力端子群の識別情報としては、それぞれのデータ入出力端子群に割り当てられた番号等がある。転送エンジンの識別情報としては、転送エンジンからパケットヘッダと共に送られる転送エンジン番号等がある。また、接続部７０においては、セレクタ７３０のデータ出力線がそのままセレクタ７２０に接続される。セレクタ７３０は、２進カウンタ７５０の値、“０”または“１”に従って、バス７７０のデータ線０−６３から出力されるビット０−６３のデータまたはデータ線６４−１２７から出力されるビット６４−１２７のデータを選択して出力する。また、セレクタ７４０のデータ出力線もそのままセレクタ７２０に接続される。セレクタ７４０は、４進カウンタ７６０の値が“０”、“１”、“２”、“３”の何れであるかに従って、バス７７０のデータ線０−３１から出力されるビット０−３１のデータ、データ線３２−６３から出力されるビット３２−６３のデータ、データ線６４−９５から出力されるビット６４−９５のデータまたはデータ線９６−１２７から出力されるビット９６−１２７のデータを選択して出力する。
【００６９】
セレクタ７２０には、上述した通り、バス７７０のデータ線０−１２７が入力Ｘとして接続されている。また、セレクタ７３０のデータ出力線が入力Ｙとして接続されている。更に、セレクタ７４０のデータ出力線が入力Ｚとして接続されている。セレクタ７２０は、モードレジスタ７１０に設定されたモード情報と出力レジスタ７８０に設定された識別情報に従って、入力Ｘ、Ｙ、Ｚの１つを選択し、データ入出力端子０−１２７またはその一部と接続する。なお、モード情報は、例えば、ネットワーク中継装置の初期設定時や、その他の適宜のタイミングで、装置管理者によって、または装置内のソフトウェアによってモードレジスタ７１０に設定される。
【００７０】
例えば、図３（ａ）に示すように、検索エンジン４０と転送エンジン３０が１対１で接続されている場合、モードレジスタ７１０には“モードＸ”が設定される。この場合、セレクタ７２０は入力Ｘ、即ち、バス７７０のデータ線０−１２７を選択してデータ入出力端子０−１２７と接続する。これにより、データ線０−１２７により伝送されるビット０−１２７のデータがデータ入出力端子０−１２７からそのまま出力される。データ入出力端子０−１２７から出力されたビット０−１２７のデータは、データバスの信号配線０−１２７を介して転送エンジン３０のデータ入出力端子０−１２７に受信される。
【００７１】
次に、図３（ｂ）に示すように、１つの検索エンジン４０に２つの転送エンジン３０が接続されている場合、モードレジスタ７１０には“モードＹ”が設定される。なお、２つの転送エンジン３０には、番号として＃０と＃１が割り当てられているとする。この場合、セレクタ７２０は“モードＹ”に従って入力Ｙを選択する。更に、この場合、セレクタ７２０は、出力レジスタに設定された転送エンジン番号に従って、セレクタ７３０のデータ出力線をデータ入出力端子０−１２７のうちのデータ入出力端子群０−６３またはデータ入出力端子群６４−１２７に接続する。即ち、セレクタ７２０は、セレクタ７３０から出力される６４ビットの信号を選択し、データ入出力端子群０−６３またはデータ入出力端子６４−１２７に出力する。これによって、接続部７０は、転送エンジン番号等の識別情報により識別される転送エンジンと接続されたデータ入出力端子群からのみ、データを出力させることができる。
【００７２】
図４（ａ）に示すように、１つの転送エンジン３０に２つの検索エンジン４０が接続されている場合も、モードレジスタ７１０には“モードＹ”が設定される。但しこの場合、各検索エンジン４０のデータ入出力端子群０−６３のみが、データバスを介して転送エンジン３０のデータ入出力端子群０−６３またはデータ入出力端子群６４−１２７に接続される。従って、出力レジスタ７８０に設定される転送エンジン番号等の識別情報は同じであり、セレクタ７２０は、セレクタ７３０のデータ出力線をデータ入出力端子群０−６３だけに接続する。
【００７３】
次に、図３（ｃ）に示すように、１つの検索エンジン４０に４つの転送エンジン３０が接続されている場合、モードレジスタ７１０には“モードＺ”が設定される。なお、各転送エンジン３０には、番号として＃０、＃１、＃２、＃３が割り当てられているとする。この場合、セレクタ７２０は“モードＺ”に従って入力Ｚを選択する。更に、この場合、セレクタ７２０は、出力レジスタに設定された転送エンジン番号に従って、セレクタ７４０のデータ出力線をデータ入出力端子０−１２７のうちのデータ入出力端子群０−３１、３２−６３、６４−９５、９６−１２７の１つに接続する。即ち、セレクタ７２０は、セレクタ７４０から出力される３２ビットの信号を選択し、データ入出力端子群０−３１、３２−６３、６４−９５、９６−１２７の１つに出力する。これによって、接続部７０は、識別情報により識別される転送エンジンと接続されたデータ入出力端子群からのみ、データを出力させることができる。
【００７４】
図４（ｂ）に示すように、１つの転送エンジン３０に４つの検索エンジン４０が接続されている場合も、モードレジスタ７１０には“モードＺ”が設定される。但しこの場合、各検索エンジン４０のデータ入出力端子群０−３１のみが、データバスを介して転送エンジン３０のデータ入出力端子群０−３１、３２−６３、６４−９５、９６−１２７の１つに接続される。従って、出力レジスタ７８０に設定される識別情報は同じであり、セレクタ７２０は、セレクタ７３０のデータ出力線をデータ入出力端子群０−３１だけに接続する。
【００７５】
なお、２以上の転送エンジン３０と２以上の検索エンジン４０とが接続されている場合には、各検索エンジン４０にいくつの転送エンジン３０が接続されるかに応じて、モードレジスタには“モードＹ”または“モードＺ”が設定される。
【００７６】
上述した通り、接続部７０は、転送エンジン３０と検索エンジン４０との接続状態に従って、転送エンジン３０に接続されたデータ入出力端子群からデータを出力することができる。また、接続部７０は、データ入出力端子群の端子数に対応した幅のデータを出力することができる。
【００７７】
図７は、検索エンジン４０が使用するルーティングテーブルのフォーマットである。
【００７８】
ルーティングテーブルには、例えば、１つ以上のＩＰアドレスと、各ＩＰアドレスに対応付けられた出力スイッチエンジン番号、出力転送エンジン番号、出力回線番号等の出力方路情報が格納されている。
【００７９】
ここで、各ルーティングプロセッサ内の各々の転送エンジン３０、検索エンジン４０、スイッチエンジン５０には、ネットワーク中継装置内または各ルーティングプロセッサ内で一意に定められた識別番号が割り当てられている。また、それぞれ回線と接続される各転送エンジン３０のそれぞれのポートにも、ネットワーク中継装置内またはルーティングプロセッサ内または転送エンジン毎に一意に定められた識別番号が割り当てられている。従って、ルーティングテーブルに格納される出力スイッチエンジン番号、出力転送エンジン番号及び出力回線番号は、パケットの送信先となるスイッチエンジン、転送エンジン及び回線に割り当てられた識別番号を示す。なお、それぞれのエンジンや回線を識別するために、識別番号以外の任意の情報が用いられてもよい。
【００８０】
上述した通り、ルーティングプロセッサにおいては、スイッチエンジン５０に対して複数の転送エンジン３０が接続可能である。そのため、スイッチエンジン５０がどの転送エンジンにパケットを転送すべきか識別できるように、出力方路情報に出力転送エンジン番号が含まれている。また、ルーティングテーブルにＩＰアドレス以外のアドレス、例えば、ＭＡＣアドレス等が格納されていてもよい。
【００８１】
図８は、出力方路情報が付加されたパケットのフォーマットを示す。図８において、パケットは、パケットヘッダとペイロード（データ）を含む受信パケットと、検索エンジン４０により抽出された出力方路情報を含む。
【００８２】
例えば、スイッチエンジン５０は、転送エンジン３０から受信パケットと出力方路情報を受け取り、図８に示されたフォーマットのパケットを作成し、スイッチ１０に出力する。また、転送エンジン３０が、検索エンジン４０から受け取った出力方路情報と、バケットバッファから読み出した受信パケットとから図８に示されたフォーマットのパケットを作成し、スイッチエンジン５０に転送してもよい。
【００８３】
図９は、ネットワーク中継装置内でのパケットの転送例を示す。図９においては、ネットワーク中継装置は、検索エンジン４０と転送エンジン３０が１対１又は１対多で接続された複数のルーティングプロセッサ２５０、２６０、２７０を有する。各ルーティングプロセッサのそれぞれのスイッチエンジン５０、検索エンジン４０、転送エンジン３０には、予め識別番号が割り当てられている。なお、図９に示した例では、各検索エンジン４０と各スイッチエンジン５０には＃０から始まる通し番号が割り当てられている。また、各転送エンジン３０には、ルーティングプロセッサ毎に＃０から始まる通し番号が割り当てられている。なお、１つの検索エンジン４０に接続される転送エンジン群毎に各転送エンジンに通し番号が割り当てられていてもよい。さらに、それぞれ回線と接続される各転送エンジン３０の各ポートにも、識別番号が割り当てられている。図９では、各エンジンの接続状態は省略されているが、図１と同様に、各転送エンジン３０は、検索エンジン４０及びスイッチエンジン５０と接続され、スイッチ１０は、各ルーティングプロセッサの各スイッチエンジン５０と接続されている。
【００８４】
図１０は、ネットワーク中継装置のシーケンス図を示す。このシーケンス図は、図９に示したルーティングプロセッサ２５０の転送エンジン＃０がパケットを受信し、ルーティングプロセッサ２７０の転送エンジン＃３からパケットを送信する場合の動作を示している。図９及び図１０を用いて以下に動作の概要を説明する。なお、検索エンジン＃０が使用するルーティングテーブルには、図７に示した出力方路情報が格納されているとする。
【００８５】
まず、ルーティングプロセッサ２５０の転送エンジン＃０は、回線からパケットを受信する。この受信パケットのパケットヘッダは宛先ＩＰアドレスとして“１９２．１６８．０．１”を含む。転送エンジン＃０は受信パケットからパケットヘッダを抽出し、検索エンジン＃０へ送信する。転送エンジン＃０は、パケットを受信した入力回線番号及び入力転送エンジン番号を検索エンジン＃０に送信してもよい。また、転送エンジン＃０は、受信したパケットをパケットバッファに格納する。
【００８６】
パケットヘッダを受信した検索エンジン＃０は、パケットヘッダの宛先ＩＰアドレス“１９２．１６８．０．１”を検索キーとしてルーティングテーブルを検索する。図７に示すルーティングテーブルには宛先ＩＰアドレスと同じＩＰアドレスが登録されているため、検索エンジン＃０は、このＩＰアドレスに対応付けられた出力スイッチエンジン番号“２”、出力転送エンジン番号“３”、出力回線番号“４”、等の出力方路情報を抽出する。検索エンジン＃０は、取得した出力方路情報を転送エンジン＃０に送信する。また、検索エンジン＃０は、転送エンジン＃０から入力回線番号及び入力転送エンジン番号を受信し、これらの情報に基づいてフィルタリング又はＱｏＳに関する処理を行ってもよい。
【００８７】
転送エンジン＃０は、検索エンジン＃０から出力方路情報を受け取ると、パケットバッファに格納した受信パケットにその出力方路情報を付加して、図８に示したフォーマットのパケットを生成し、スイッチエンジン＃０へ送信する。スイッチエンジン＃０は、パケットを受信すると出力方路情報を参照し、出力方路情報に含まれる出力スイッチエンジン番号“２”に従ってスイッチ１０にパケットを転送する。
【００８８】
同様に、スイッチ１０のスイッチエンジンは、パケットを受け取ると出力方路情報を参照し、出力方路情報に含まれた出力スイッチエンジン番号“２”に従って、ルーティングプロセッサ２７０のスイッチエンジン＃２にパケットを送信する。
【００８９】
スイッチエンジン＃２はパケットを受け取ると、出力方路情報を参照し、出力方路情報に含まれた出力転送エンジン番号“３”に従い、パケットを転送エンジン＃３に転送する。
【００９０】
転送エンジン＃３は、パケットを受信するとパケットバッファに格納し、また、パケットから出力方路情報とパケットヘッダを抽出し、検索エンジン＃２に送信する。
【００９１】
検索エンジン＃２は、受信した出力方路情報とパケットヘッダを用いて、例えば、フィルタリング、遅延優先制御、ＱｏＳに関する処理を行う。なお、検索エンジン＃２によるフィルタリング、遅延優先制御、ＱｏＳ等に関する処理は省略されてもよい。また、検索エンジン＃２は、例えば、受信した出力方路情報に含まれた出力回線番号“４”を転送エンジン＃３に送信する。検索エンジン＃２は、出力回線番号以外の適宜のデータを転送エンジン＃３に送信してもよい。
【００９２】
転送エンジン＃３は、パケットから出力方路情報を取り除き、検索エンジン＃２又はスイッチエンジン＃２から受信した出力回線番号“４”に対応するポートからそのパケットを回線に出力する。
【００９３】
なお、上述の例では、ルーティングプロセッサ２５０の転送エンジン＃０がパケットを受信した場合について説明したが、他の転送エンジンがパケットを受信した場合も、同様の動作によりパケットが中継される。また、図１に示したタイプＣのルーティングプロセッサ２３０を有するネットワーク中継装置では、ルーティングプロセッサ内の複数の検索エンジン４０及びスイッチエンジン５０のうち、現用系として動作する検索エンジン４０及びスイッチエンジン５０が予め設定される。そして、現用系として設定された検索エンジン４０及びスイッチエンジン５０が上述と同様に動作することにより、パケットが中継される。
【００９４】
ところで、転送エンジン３０と検索エンジン４０との間、及び、転送エンジン３０とスイッチエンジン５０との間は、同時双方向伝送インタフェース（以下、ＳＢＴＬ（Simultaneous Bi-directional Transfer Logic）を用いて接続することもできる。ＳＢＴＬは、物理的に１本の信号線で双方向の通信を可能にする技術である。
【００９５】
図１１は、ＳＢＴＬの概念図を示す。図１１において、転送エンジンと検索エンジンがＳＢＴＬを用いて接続されている。
【００９６】
双方から“０”又は“１”の値の信号が信号線に送信されると、信号線を流れる信号は、図１１に示すように、それらの信号の値に応じてＨｉｇｈ、Ｍｉｄｄｌｅ、Ｌｏｗのいずれかのレベルとなる。例えば、両者の信号が共に“１”ならば、信号線の信号はＨｉｇｈレベルの信号となる。片方の信号のみ“１”ならば、信号線の信号はＭｉｄｄｌｅレベルの信号、両者の信号がともに“０”ならば、Ｌｏｗレベルの信号となる。ＳＢＴＬを用いて転送エンジンまたは検索エンジンが信号を受信する場合、各エンジンは、自分の出力している信号の値と信号線から受信した信号のレベルから相手が送信した信号の値を判断する。例えば、転送エンジンが“１”の信号を出力している場合、転送エンジンが受信した信号がＨｉｇｈレベルの信号であれば検索エンジンが送信した信号は“１”と判断される。また、転送エンジンが“１”の信号を出力した場合であって、転送エンジンが受信した信号がＭｉｄｄｌｅレベルの信号の場合、検索エンジン４０が送信した信号は“０”であると判断できる。転送エンジンが“０”の信号を出力している場合も同様である。相手の信号の値を判断するために、転送エンジン及び検索エンジンは予め設定した閾値（Ｔｈｒｅｓｈｏｌｄ  Ｌｅｖｅｌ）用いる。各エンジンは、自分の出力している信号の値に応じて、その閾値を変えて信号を受信する。例えば、転送エンジンが“１”の信号を出力している場合、閾値をＭｉｄｄｌｅレベルとＨｉｇｈレベルの中間に設定することで、Ｍｉｄｄｌｅレベルの信号は“０”、Ｈｉｇｈレベルの信号は“１”の値の信号として受信できる。
【００９７】
転送エンジン３０と検索エンジン４０との間では、パケットヘッダ及び出力方路情報の送受信を行うため、頻繁（パケットバイパケット）に双方向の通信が発生する。転送エンジン３０と検索エンジン４０との間をＳＢＴＬを用いて接続することにより、パケットヘッダ及び出力方路情報を効率的に送受信することができる。また、転送エンジン３０と検索エンジン４０とを１対多、多対１、または多対多で接続する場合、上述した通り、送受信できるデータの幅は減少するが、ＳＢＴＬを用いて双方向で信号を送受信することにより、この影響を軽減できる。
【００９８】
以上説明した通り、同じ構成の転送エンジン３０及び検索エンジン４０とを、１対１、多対１、１対多、または多対多で接続することが可能である。なお、以上の説明では転送エンジン３０と検索エンジン４０が１対１、１対２、２対１、１対４または４対１で接続される場合について説明したが、これ以外の組み合わせにより両者が接続されても構わない。また、スイッチエンジン５０は、検索エンジン４０の接続部７０と同じの接続部を備えることができる。
【図面の簡単な説明】
【００９９】
【図１】ネットワーク中継装置の構成例を示す。
【図２】ネットワーク中継装置の他の構成例を示す。
【図３】転送エンジンと１以上の検索エンジンとが接続された状態を示す。
【図４】転送エンジンと２以上の検索エンジンとが接続された状態を示す。
【図５】転送エンジンの接続部の構成図を示す。
【図６】検索エンジンの接続部の構成図を示す。
【図７】検索エンジンが使用するルーティングテーブルのフォーマットを示す。
【図８】出力方路情報が付加されたパケットのフォーマットを示す。
【図９】ネットワーク中継装置内でのパケットの転送例を示す。
【図１０】ネットワーク中継装置のシーケンス図を示す。
【図１１】ＳＢＴＬ（同時双方向インタフェース）の概念図を示す。
【図１２】ネットワーク中継装置の構成の一例を示す。
【符号の説明】
【０１００】
１０  スイッチ
２１０、２２０、２３０、２４０  ルーティングプロセッサ
３０  転送エンジン
４０  検索エンジン
５０  スイッチエンジン
６０、７０  接続部
【図１】
2004282729.tif 000003
【図２】
2004282729.tif 000004
【図３】
2004282729.tif 000005
【図４】
2004282729.tif 000006
【図５】
2004282729.tif 000007
【図６】
2004282729.tif 000008
【図７】
2004282729.tif 000009
【図８】
2004282729.tif 000010
【図９】
2004282729.tif 000011
【図１０】
2004282729.tif 000012
【図１１】
2004282729.tif 000013
【図１２】
2004282729.tif 000014