(57)【特許請求の範囲】
【請求項１】
パケット通信の中継ノードに設けられるパケットルーティング装置であって、
パケットのヘッダに関する処理を実行するサブルーティング処理部と、
入力されるパケットのヘッダに直に記載された処理優先度情報をチェックするヘッダチェック手段と、前記ヘッダチェック手段が前記処理優先度情報が有ると判断したパケットを前記サブルーティング処理部に送信する送信手段と、を有するメインルーティング処理部と、を有し、
前記サブルーティング処理部は、前記パケットのヘッダに関する処理ができるか否かを判断し、受信した前記パケットのヘッダに関する処理ができない場合、処理を行わずに前記メインルーティング処理部に返信し、
前記メインルーティング処理部は、予め定められたディスティネーションに従って返信された前記パケットを他の装置に送信することを特徴とするパケットルーティング装置。
【請求項２】
前記メインルーティング処理部は、前記ヘッダチェック手段が前記処理優先度情報が無いと判断した前記パケットを、ルーティングテーブルに従ってルーティングするルーティング手段をさらに有し、
前記送信手段は、前記ルーティング手段によりルーティングされた装置に前記パケットを送信することを特徴とする請求項１記載のパケットルーティング装置。
【請求項３】
前記サブルーティング処理部は、受信した前記パケットのヘッダに関する処理を実行し、処理後、前記パケットを前記メインルーティング処理部に返信することを特徴とする請求項１または２に記載のパケットルーティング装置。
【請求項４】
前記サブルーティング処理部は複数設けられており、前記送信手段は、複数の前記パケットのヘッダに関する処理を複数の前記サブルーティング処理部に並列的に実行させることを特徴とする請求項１ないし３のいずれかに記載のパケットルーティング装置。
【請求項５】
パケット通信の中継ノードに設けられるパケットルーティングプログラムであって、
コンピュータを、
パケットのヘッダに関する処理を実行するサブルーティング処理手段、
入力されるパケットのヘッダに直に記載された処理優先度情報をチェックするヘッダチェック手段と、前記ヘッダチェック手段が前記処理優先度情報が有ると判断したパケットを前記サブルーティング処理手段に送信する送信手段と、を有するメインルーティング処理手段、として機能させ、
前記サブルーティング処理手段は、前記パケットのヘッダに関する処理ができるか否かを判断し、受信した前記パケットのヘッダに関する処理ができない場合、処理を行わずに前記メインルーティング処理手段に返信し、
前記メインルーティング処理手段は、予め定められたディスティネーションに従って返信された前記パケットを他の装置に送信することを特徴とするパケットルーティングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパケットルーティング装置、パケット通信システムおよびパケットルーティングプログラムに関し、特にパケット通信の中継ノードに設けられるパケットルーティング装置、パケット通信システムおよびパケットルーティングプログラムに関する。
【背景技術】
【０００２】
次世代のインターネットプロトコルとしてＩＰｖ６（ＩＰ  ｖｅｒｓｉｏｎ  ６）が知られている。ＩＰｖ６では，プロトコルヘッダを単純化・固定長とし、ルータのパケット中継をハードウェアで処理が可能なように配慮している。これにより、ルータ処理が簡略化され、ハードウェアでの処理が容易となっている。【０００３】
図１５は、パケットを示す図である。
パケット９０Ａは、通常のＩＰｖ６仕様のパケットである。具体的には、パケット９０Ａは、「バージョン」、「トラフィッククラス」、「フロー・ラベル」、「ペイロード長」、「後続ヘッダ・タイプ」、「ホップ・リミット」、「送信元アドレス」および「宛先アドレス」で構成されるＩＰｖ６ヘッダ９１ＡおよびＩＰｖ６ペイロード９２Ａで構成されている。【０００４】
また、パケット９０Ａに拡張ヘッダが挿入された拡張パケットが知られている。
図１６は、拡張パケットを示す図である。
拡張パケット９０Ｂは、ＩＰｖ６ヘッダ９１Ｂ、ＩＰｖ６ペイロード９２Ｂおよび拡張ヘッダ９３Ｂで構成されている。【０００５】
ここで、パケット９０ＡのＩＰｖ６ヘッダ９１ＡおよびＩＰｖ６ペイロード９２Ａと、拡張パケット９０ＢのＩＰｖ６ヘッダ９１ＢおよびＩＰｖ６ペイロード９２Ｂとは、同一のデータ構造とされている。すなわち、パケット９０Ａと拡張パケット９０Ｂとは、拡張ヘッダ９３Ｂが挿入されているか否かという点で相違している。【０００６】
ここで、ＩＰｖ６ヘッダ９１Ｂの「後続ヘッダ・タイプ」は、ＩＰｖ６ヘッダ９１Ｂの次に続く拡張ヘッダを識別するための値（８ビット長）である。ここで、後続ヘッダの例を以下に列挙する。
（ａ）ホップごとに処理されるオプションのヘッダ（以下、オプション（Hop-by-Hop Option）ヘッダという）
（ｂ）ルーティング情報のヘッダ（以下、ルーティングヘッダという）
（ｃ）フラグメント処理のヘッダ
（ｄ）暗号化されたペイロード（データ部）のヘッダ
拡張ヘッダ９３Ｂは、オプションヘッダ９４Ｂおよびルーティングヘッダ９５Ｂで構成されている。オプションヘッダ９４Ｂは、前述した（ａ）項のホップごとに処理されるオプションヘッダであり、「後続ヘッダ・タイプ」、「ヘッダ長」および「オプション」から構成されている。このオプションヘッダ９４Ｂは、拡張パケット９０Ｂの送信パス上のノードのすべて（送信ノードおよび宛先ノードを含む）で処理されるオプション情報である。【０００７】
オプションヘッダ９４Ｂにおいて、「後続ヘッダ・タイプ」は、オプションヘッダ９４Ｂの次に続くヘッダ（同図の場合、ルーティングヘッダ９５Ｂ）を識別するための値である。「ヘッダ長」は、８オクテット単位のオプションヘッダ長を示す値である。「オプション」は、「オプション・タイプ」、「オプション・データ長」および「オプション・データ値」（いずれも図示略）から構成されている。【０００８】
「オプション・タイプ」は、オプションのタイプを識別するための値であり、「動作コード」、「変更コード」および「オペレーションコード」から構成されている。「動作コード」は、ＩＰｖ６の受信ノードがオプション・タイプを識別できない場合の動作を示すコードである。【０００９】
この動作としては、「オプションをスキップして次のヘッダ処理を実行する」、「パケットを破棄」等が挙げられる。「変更コード」は、宛先へのルートを変更するか否かを指定するためのコードである。「オペレーションコード」は、オプションを識別するためのコードである。上記オプションとしては、「Ｐａｄ１オプション」、「ＰａｄＮオプション」、「ジャンボ・ペイロード長」等が挙げられる。【００１０】
ルーティングヘッダ９５Ｂは、前述した（ｂ）項のルーティング情報のヘッダであり、「後続ヘッダ・タイプ」、「ヘッダ長」、「ルーティング・タイプ」、「残余セグメント数」および「タイプ別データ」から構成されている。このルーティングヘッダ９５Ｂは、ヘッダ内に指定された中間ノードで処理するための情報である。このルーティングヘッダ９５Ｂは、ＩＰｖ６ヘッダ９１Ｂの「宛先アドレス」に対応するノード（ルーティング処理の最初の受信ノード）で処理される。【００１１】
このようなパケットに関する処理速度やルーティング性能を向上させる方法として、例えば、パケットに拡張ヘッダが有る場合、物理ネットワークを介して拡張ヘッダに関する処理をパケットルーティング装置とは別個に存在するサブルーティング処理部に実行させる方法が知られている（例えば、特許文献１参照）。【００１２】
図１７は、従来のパケットルーティング装置を示す図である。
パケットルーティング装置９０は、メインルーティング処理部９１と、サブルーティング処理部９５とを有している。【００１３】
メインルーティング処理部９１は、インテリジェントＮＩＣ（Network Interface Card）９２と、ＣＰＵ(Central Processing Unit)９３と、インテリジェントＮＩＣ９２およびＣＰＵ９３を接続するＩ／Ｏｂｕｓ９４とを有している。【００１４】
このようなパケットルーティング装置９０によれば、インテリジェントＮＩＣ９２で、入力されるパケット（パケット９０Ａ、拡張パケット９０Ｂ）における拡張ヘッダの有無をチェックする。この拡張ヘッダの有無は、ＩＰｖ６ヘッダ９１Ｂの後続ヘッダ・タイプおよびオプションヘッダ９４Ｂの後続ヘッダ・タイプの内容を参照する。当該パケットに拡張ヘッダが無い場合、ルーティングテーブル（図示せず）に従って、パケット９０Ａをルーティングする一方、当該パケットが拡張パケット９０Ｂである場合、拡張ヘッダに関する処理をサブルーティング処理部９５に実行させるようにしたので、本来のパケット（拡張ヘッダ無し）のルーティング処理を妨げることなく、拡張ヘッダを有するパケットに関する処理速度を向上させ、ルーティング性能を向上させることができる。
【特許文献１】特開２００２−３５４０１８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
ところで、近年、処理の高速化を図るため、例えば図１６に示す拡張パケット９０Ｂのオプションヘッダ９４Ｂ等が省略される等、オプションヘッダをなるべく使用しないようにプロトコルを策定する動きがあり、パケットの構造が変化しつつある。【００１６】
このように新たなパケットの構造に対応して高速に処理を行うための処理方法が求められている。
本発明はこのような点に鑑みてなされたものであり、処理の高速化を図ることができるパケットルーティング装置、パケット通信システムおよびパケットルーティングプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明では上記課題を解決するために、図１に示すパケットルーティング装置が提供される。本発明に係るパケットルーティング装置１は、パケット通信の中継ノードに設けられる装置である。【００１８】
パケットルーティング装置１は、以下の機能を有する。
サブルーティング処理部２は、パケットのヘッダに関する処理を実行する。
メインルーティング処理部３のヘッダチェック手段４は、入力されるパケットのヘッダに直に記載された処理優先度情報をチェックする。送信手段５は、ヘッダチェック手段４が処理優先度情報が有ると判断したパケットをサブルーティング処理部２に送信する。【００１９】
このようなパケットルーティング装置１によれば、ヘッダチェック手段４により、入力されるパケットのヘッダに直に記載された処理優先度情報がチェックされる。ヘッダチェック手段４によって処理優先度情報が有ると判断されたパケットは、送信手段５によりサブルーティング処理部２に送信される。そしてサブルーティング処理部２により、パケットのヘッダに関する処理が実行される。【００２０】
また、本発明では上記課題を解決するために、パケット通信の中継ノードに設けられるパケット通信システムであって、パケットのヘッダに関する処理を実行するサブルーティング処理部と、入力されるパケットのヘッダに直に記載された処理優先度情報をチェックするヘッダチェック手段と、前記ヘッダチェック手段が前記処理優先度情報が有ると判断したパケットを前記サブルーティング処理部に送信する送信手段と、を有するメインルーティング処理部と、を有する第１のパケットルーティング装置と、前記第１のパケットルーティング装置から送信されるパケットを処理する第２のパケットルーティング装置と、を有することを特徴とするパケット通信システムが提供される。【００２１】
このようなパケット通信システムによれば、メインルーティング処理部のヘッダチェック手段により、入力されるパケットのヘッダに直に記載された処理優先度情報がチェックされる。そして、ヘッダチェック手段によって処理優先度情報が有ると判断されたパケットは、送信手段によりサブルーティング処理部に送信される。そして、サブルーティング処理部によりパケットのヘッダに関する処理が実行される。また、第２のパケットルーティング装置により、第１のパケットルーティング装置から送信されるパケットが処理される。【００２２】
また、本発明では上記課題を解決するために、パケット通信の中継ノードに設けられ、パケットのヘッダに関する処理を実行するパケットルーティング装置であって、到来する前記パケットを分配する外部装置からパケットを受信すると、前記パケットのヘッダに関する処理ができるか否かを判断し、前記パケットのヘッダに関する処理ができない場合、前記処理を行わずに前記外部装置に返信するルーティング処理部、を備えることを特徴とするパケットルーティング装置が提供される。【００２３】
このようなパケットルーティング装置によれば、外部装置からパケットを受信すると、ルーティング処理部により、パケットのヘッダに関する処理ができるか否かが判断される。そして、パケットのヘッダに関する処理ができない場合、処理を行わずに外部装置に返信される。【００２４】
また、本発明では上記課題を解決するために、パケット通信の中継ノードに設けられ、パケットのヘッダに関する処理を実行するパケットルーティングプログラムであって、コンピュータを、到来する前記パケットを分配する外部装置からパケットを受信すると、前記パケットのヘッダに関する処理ができるか否かを判断し、前記パケットのヘッダに関する処理ができない場合、前記処理を行わずに前記外部装置に返信するルーティング処理手段、として機能させることを特徴とするパケットルーティングプログラムが提供される。【００２５】
このようなパケットルーティングプログラムをコンピュータで実行すれば、上記本発明に係るパケットルーティング装置がそのコンピュータによって実現される。
【発明の効果】
【００２６】
本発明では、ヘッダチェック手段がヘッダに直に記載された処理優先度情報をチェックし、処理優先度情報があるパケットをサブルーティング処理部に送信するようにしたので、パケットの内部まで参照することなく迅速に処理を行うことができる。【００２７】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００２８】
【図１】本発明の概要を示す図である。
【図２】第１の実施の形態のパケット通信システムの構成を示すブロック図である。
【図３】ＸＣＡＳＴに関するパケットのＩＰｖ６ヘッダを示す図である。
【図４】通常のパケットを示す図である。
【図５】パケットルーティング装置の構成を示すブロック図である。
【図６】トラフィッククラスのビット構造を示す図である。
【図７】ルーティングテーブルを示す図である。
【図８】サブルーティング処理部アドレス表を示す図である。
【図９】メインルーティング処理部のルーティング処理を説明するフローチャートである。
【図１０】サブルーティング処理部のルーティング処理を説明するフローチャートである。
【図１１】第２の実施の形態のパケットルーティング装置を示す図である。
【図１２】第２の実施の形態のサブルーティング処理部アドレス表を示す図である。
【図１３】第２の実施の形態のメインルーティング処理部の動作を説明するフローチャートである。
【図１４】第１の実施の形態および第２の実施の形態のルーティング装置の変形例を示すブロック図である。
【図１５】パケットを示す図である。
【図１６】拡張パケットを示す図である。
【図１７】従来のパケットルーティング装置を示す図である。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、本発明の概要を示す図である。【００３０】
パケットルーティング装置１は、パケット通信の中継ノードに設けられる装置である。
パケットルーティング装置１は、以下の機能を有する。
サブルーティング処理部２は、パケットのヘッダに関する処理を実行する。ここでいうパケット処理とは例えばルーティング処理等をいう。【００３１】
メインルーティング処理部３のヘッダチェック手段４は、入力されるパケットのヘッダに直に記載された処理優先度情報をチェックする。処理優先度情報としては、例えば後述するＸＣＡＳＴ（Explicit Multi-Unicast）に関する情報等が挙げられる。【００３２】
送信手段５は、ヘッダチェック手段４が処理優先度情報が有ると判断したパケットをサブルーティング処理部２に送信する。
このようなパケットルーティング装置１によれば、ヘッダチェック手段４により、入力されるパケットのヘッダに直に記載された処理優先度情報がチェックされる。ヘッダチェック手段４によって処理優先度情報が有ると判断されたパケットは、送信手段５によりサブルーティング処理部２に送信される。そしてサブルーティング処理部２により、パケットのヘッダに関する処理が実行される。【００３３】
以下、本発明の実施の形態を具体的に説明する。
図２は、第１の実施の形態のパケット通信システムの構成を示すブロック図である。
同図に示したパケット通信システムは、インターネットプロトコルとしてＩＰｖ６を主としたシステムである。このパケット通信システムは、送信装置１００１〜１００ｎ、インターネット２００（パケットルーティング装置３０１〜３０ｍ）および受信装置４００１〜４００ｓで構成されている。【００３４】
送信装置１００１〜１００ｎは、パケットの送信元にそれぞれ設置されたｎ台のコンピュータ端末であり、ＴＣＰ／ＩＰに基づいて、パケット４０の送信処理を実行する。これらの送信装置１００１〜１００ｎは、それぞれインターネット２００に接続されている。【００３５】
ここで、同図に示したパケット通信システムでは、一つの送信元（例えば、送信装置１００１）からマルチキャストグループ（例えば、受信装置４００１〜４００ｓ）に対して、パケットを送信するというマルチキャスト通信が可能とされている。【００３６】
パケット４０には、ＸＣＡＳＴに関するパケットであるパケット４０Ａと、ＸＣＡＳＴに関するパケットではない通常のＩＰｖ６仕様のパケット４０Ｂとが存在する。ＸＣＡＳＴは、宛先リストをオプションとして持ち、宛先ＩＰアドレスはそのうちの一つを選択して付ける。このためＸＣＡＳＴパケットは、ユニキャストにしか対応していないルータでも通過することができる。【００３７】
ＸＣＡＳＴは、通常のマルチキャストとは異なり、送信者が予め送信先を設定して送信する。すなわち、送り主が送る相手を指定するマルチキャストである。通常のマルチキャストと比べて、ルータの負荷が小さい、マルチキャスト用ＩＰアドレスを消費しないといったメリットがある。【００３８】
図３は、ＸＣＡＳＴに関するパケットのＩＰｖ６ヘッダを示す図である。
パケット４０Ａは、ＩＰｖ６ヘッダ（先頭部）４１Ａ、ルーティングヘッダ（内部）４２ＡおよびＩＰｖ６ペイロード４３Ａで構成されている。【００３９】
ＩＰｖ６ヘッダ４１Ａは、バージョン（Version）、トラフィッククラス（Traffic Class）、フロー・ラベル（Flow Label）、ペイロード長（Payload Length）、後続ヘッダ・タイプ（Next Header）、ホップ・リミット（Hop Limit）、送信元アドレス（Source Address）および宛先アドレス（Destination Address）を有している。【００４０】
「バージョン」は、インターネットプロトコルのバージョン番号（４ビット長）であり、ＩＰｖ６の場合、「６」である。
「トラフィッククラス」は、送信元ノードが指定するネットワークや中間ノード等でのトラフィック輻輳時に、当該ノードから送信される相対的な処理優先度（高低）を識別するための値（８ビット長）である。【００４１】
「フロー・ラベル」は、主としてパケットルーティング装置３０１〜３０ｍに要求するサービスの品質や即時性を識別するための値（２４ビット長）である。
「ペイロード長」は、ＩＰｖ６ペイロード（データ部）の長さを示す値（１６ビット長）である。【００４２】
「後続ヘッダ・タイプ」は、ＩＰｖ６ヘッダ４１Ａの次に続くルーティングヘッダ４２Ａを識別するための値（８ビット長）である。ここにはルーティングヘッダに関する情報が格納されている。【００４３】
なお、後続ヘッダ・タイプにはルーティングヘッダ４２Ａに限らず、例えば、フラグメント処理のヘッダや暗号化されたペイロード（データ部）のヘッダに関する情報が格納されていてもよい。【００４４】
「ホップ・リミット」は、パケットが通過可能なゲートウェイの数（８ビット長）であり、パケットがゲートウェイを通過するごとに１デクリメントされる。この「ホップ・リミット」が０になった場合には、当該パケットが破棄される。【００４５】
「送信元アドレス」は、パケットの送信元のＩＰアドレス（１２８ビット長）である。
「宛先アドレス」は、パケットの宛先（例えば、受信装置４００１）のＩＰアドレス（１２８ビット長）である。【００４６】
ルーティングヘッダ４２Ａは、「後続ヘッダ・タイプ」、「ヘッダ長」、「ルーティング・タイプ」、「残余セグメント数」および「タイプ別データ」で構成されている。このルーティングヘッダ４２Ａは、ヘッダ内に指定された中間ノードで処理するための情報である。このルーティングヘッダ４２Ａは、ＩＰｖ６ヘッダ４１Ａの「宛先アドレス」に対応するノード（ルーティング処理の最初の受信ノード）で処理される。【００４７】
「後続ヘッダ・タイプ」は、ルーティングヘッダ４２Ａの次に続くヘッダ（同図の場合、無し）を識別するための値である。
「ヘッダ長」は、ルーティングヘッダ４２Ａのヘッダ長を示す値である。【００４８】
「ルーティング・タイプ」は、ルーティングのタイプ（ソースルーティング、Ｎｉｍｒｏｄルーティング）を識別するための値である。
「残余セグメント数」は、パケット４０Ａがまだ通過していない中間ノードの残り数を示す値である。【００４９】
「タイプ別データ」は、ルーティング・タイプ別のデータである。
ＩＰｖ６ペイロード４３Ａは、送信すべきデータ本体である。
図４は、通常のパケットを示す図である。【００５０】
パケット４０Ｂは、ＩＰｖ６ヘッダ４１Ａと同じ構成のＩＰｖ６ヘッダ４１Ｂと、ＩＰｖ６ペイロード４３Ａと同じ構成のＩＰｖ６ペイロード４２Ｂとを有している。
図２に戻って説明する。【００５１】
インターネット２００は、相互接続された複数のネットワークと、パケットルーティング装置３０１〜３０ｍとで構成されている。これらのパケットルーティング装置３０１〜３０ｍは、それぞれネットワーク間に配設されており、パケット４０をルーティングする機能を備えている。【００５２】
受信装置４００１〜４００ｓは、インターネット２００に接続されたｓ台のコンピュータ端末であり、送信元（例えば、送信装置１００１）から送信されたパケット４０を、インターネット２００を介して受信する機能を備えている。【００５３】
図５は、パケットルーティング装置の構成を示すブロック図である。
以下では代表的にパケットルーティング装置３０１の構成について説明する。
パケットルーティング装置３０１は、メインルーティング処理部３１０およびサブルーティング処理部３２０で構成されている。メインルーティング処理部３１０は、インターネット２００を構成するネットワーク２００Ａおよびネットワーク２００Ｂに接続されている。【００５４】
メインルーティング処理部３１０は、パケット４０Ｂに関するルーティング処理を実行する。
メインルーティング処理部３１０は、インテリジェントＮＩＣ（Network Interface Card）３１１と、Ｉ／Ｏバス３１２と、処理部３１３と記憶部３１４とを有している。【００５５】
インテリジェントＮＩＣ３１１は、インターネット２００を構成するネットワーク２００Ａおよびネットワーク２００Ｂに接続されているとともに、物理ネットワーク３３０を介してＮＩＣ３２１に接続されている。【００５６】
インテリジェントＮＩＣ３１１は、例えばネットワーク２００Ａよりパケット４０が入力された場合、パケット４０のトラフィッククラスの所定のビットを確認することにより、サブルーティング処理部３２０に送信するパケット４０Ａか否かを判断する。【００５７】
図６は、トラフィッククラスのビット構造を示す図である。
トラフィッククラス４１ａは、先頭（左側）から６ビットのフィールド名「ＤＳＣＰ（Differentiated Services CodePoint）」と２ビットのフィールド名「ＣＵ（Currently Unused）」とで構成されている。【００５８】
図６に示すように、トラフィッククラス４１ａの「ＤＳＣＰ」の先頭から５ビット目と６ビット目（以下、「下位２ビット」という）とにそれぞれ「１」が記入されている場合、例えば実験用（実験モード）とされ、１ビット目から４ビット目（以下「上位４ビット」という）にそれぞれ任意のビットを立てることができる。上位４ビットには、例えば通信の優先度を決める実験用のＸＣＡＳＴを示す信号等を挿入することができる。【００５９】
そして、本実施の形態ではインテリジェントＮＩＣ３１１が、パケットがＸＣＡＳＴに関するパケット４０Ａであるか否かを判断する。例えば上位４ビットが「ＡＺＹＸ」である場合にＸＣＡＳＴと判断するときは、インテリジェントＮＩＣ３１１にトラフィッククラスの論理式として「ＡＺＹＸ１１」を格納しておき、インテリジェントＮＩＣ３１１がトラフィッククラス４１ａの上位４ビットおよび下位２ビットと、この論理式とのＡＮＤ（論理積）をとることでパケット４０Ａであるか否かを判断することができる。【００６０】
そして、インテリジェントＮＩＣ３１１が、パケット４０Ａであると判断すると、サブルーティング処理部３２０にパケットを送信する。
また、インテリジェントＮＩＣ３１１は、パケット４０Ａ以外のパケットをパケット４０Ｂが入力されたと判断し、ルーティングテーブルに従って、パケット４０Ｂをネットワーク２００Ｂにルーティングする。【００６１】
図７は、ルーティングテーブルを示す図である。
ルーティングテーブル３１４ａは、「ネットワーク」と「ディスティネーション」との対応関係を表すテーブルである。「ネットワーク」には、パケットルーティング装置３０１からパケットが到達可能なネットワークアドレスの情報が記述されている。この「ネットワーク」は、「ネットワークプリフィックス」および「ネットマスク」で表現される。【００６２】
一方、「ディスティネーション」は、パケットルーティング装置３０１から上記「ネットワーク」宛にパケットを送信するために、次に依頼すべきパケットルーティング装置（中継ノード）のアドレスおよびインタフェースに関する情報である。この「ディスティネーション」は、「ネイバ」（neighbor）および「インタフェース」で表現される。【００６３】
「ネイバ」は、次に依頼すべきパケットルーティング装置（中継ノード）のアドレスである。「インタフェース」は、パケットルーティング装置３０１から上記パケットルーティング装置（中継ノード）宛にパケットを送信する際の通信インタフェースを表す。【００６４】
Ｉ／Ｏバス３１２は、各部を接続するバスである。
処理部３１３は、ルーティングテーブル３１４ａおよびサブルーティング処理部アドレス表の初期設定を行う。【００６５】
図８は、サブルーティング処理部アドレス表を示す図である。
サブルーティング処理部アドレス表３１４ｂは、サブルーティング処理部３２０のネットワークアドレス（同図の例では、Ｗ：Ｘ：：Ｙ：Ｚ１）を表すテーブルであり、インテリジェントＮＩＣ３１１により参照される。【００６６】
再び図５に戻って説明する。
記憶部３１４には、ルーティングテーブル３１４ａおよびサブルーティング処理部アドレス表３１４ｂが記憶されている。【００６７】
一方、サブルーティング処理部３２０は、メインルーティング処理部３１０から送信されたパケット４０Ａに関するルーティング処理を実行する。サブルーティング処理部３２０において、ＮＩＣ３２１は、ネットワーク２００Ｂに接続されているとともに、物理ネットワーク３３０を介してインテリジェントＮＩＣ３１１に接続されている。【００６８】
このＮＩＣ３２１は、インテリジェントＮＩＣ３１１からのパケット４０Ａを受信する機能、ヘッダ処理部３２３にパケット４０Ａに関する処理を依頼する機能を備えている。
Ｉ／Ｏバス３２２は、各部を接続するバスである。【００６９】
ヘッダ処理部３２３は、パケット４０に関する処理や、ルーティングテーブル３１４ａの初期設定処理を行う。具体的にはルーティングヘッダ４２ＡがＸＣＡＳＴの形をしているか否かを判断する。【００７０】
次に、第１の実施の形態のルーティング処理について、図９および図１０に示したフローチャートを参照しつつ説明する。
図９は、メインルーティング処理部のルーティング処理を説明するフローチャートである。【００７１】
まず、インテリジェントＮＩＣ３１１は、ネットワーク２００Ａを介してパケット４０が入力されたか否かを判断する（ステップＳ１１）。
パケット４０が入力されていない場合（ステップＳ１１のＮｏ）、パケット４０の入力を待機する。【００７２】
パケット４０が入力されると（ステップＳ１１のＹｅｓ）、インテリジェントＮＩＣ３１１は、入力されたパケット４０がサブルーティング処理部３２０から返信されたパケットであるか否かを判断する（ステップＳ１２）。【００７３】
入力されたパケット４０がサブルーティング処理部３２０から返信されたパケットではない場合（ステップＳ１２のＮｏ）、すなわち、例えば送信装置１００１からネットワーク２００Ａを介して、パケットルーティング装置３０１のインテリジェントＮＩＣ３１１に入力されたパケット４０である場合、インテリジェントＮＩＣ３１１は、そのＩＰｖ６ヘッダのトラフィッククラス４１ａをチェックし、ＸＣＡＳＴに関するパケットか否か（パケット４０Ａか否か）を判断する（ステップＳ１３）。【００７４】
ＸＣＡＳＴに関するパケットではない場合（ステップＳ１３のＮｏ）、またはサブルーティング処理部３２０から返信されたパケットである場合（ステップＳ１２のＹｅｓ）、インテリジェントＮＩＣ３１１は、ルーティングテーブル３１４ａからパケット４０の宛先に関する「ディスティネーション」を検索する（ステップＳ１４）。【００７５】
そして、インテリジェントＮＩＣ３１１は、ルーティングテーブル３１４ａ内の上記レコードの「ネイバ」宛に当該「インタフェース」により、パケット４０Ｂを直接ネットワーク２００Ｂにルーティング（送信）する（ステップＳ１５）。【００７６】
その後、再びステップＳ１１に移行し、前述した動作を繰り返し行う。以後、パケット４０は、上述したパケットルーティング装置３０１の場合と同様にして他のパケットルーティング装置３０２やパケットルーティング装置３０ｍに順次ルーティングされた後、受信装置４００１〜４００ｓに受信される。【００７７】
一方、ＸＣＡＳＴに関するパケットである場合（ステップＳ１３のＹｅｓ）、インテリジェントＮＩＣ３１１は、サブルーティング処理部アドレス表３１４ｂを参照して、サブルーティング処理部３２０のアドレス宛に、物理ネットワーク３３０を介してパケット４０Ａを送信する（ステップＳ１６）。【００７８】
その後、再びステップＳ１１に移行し、前述した動作を繰り返し行う。
次に、サブルーティング処理部３２０のルーティング処理について説明する。
図１０は、サブルーティング処理部のルーティング処理を説明するフローチャートである。【００７９】
サブルーティング処理部３２０のＮＩＣ３２１は、メインルーティング処理部３１０のインテリジェントＮＩＣ３１１より、物理ネットワーク３３０を介してパケット４０Ａが入力されたか否かを判断する（ステップＳ２１）。【００８０】
パケット４０Ａが入力されていない場合（ステップＳ２１のＮｏ）、パケット４０Ａの入力を待機する。
パケット４０Ａが入力されると（ステップＳ２１のＹｅｓ）、ＮＩＣ３２１は、Ｉ／Ｏバス３２２を介して、ヘッダ処理部３２３に割り込み処理を依頼する（ステップＳ２２）。具体的には、ＮＩＣ３２１は、パケット４０ＡをＩ／Ｏバス３２２を介して渡すとともに、パケット４０Ａのルーティングヘッダ４２Ａに関する処理を依頼する。【００８１】
次に、ヘッダ処理部３２３は、パケット４０Ａが処理対象のパケットか否か（サブルーティング処理部３２０で処理できるパケットか否か）を判断する（ステップＳ２３）。処理対象のパケットであることの具体例としては、例えばルーティングヘッダ４２Ａのルーティング・タイプを確認し、ルーティングヘッダ４２ＡがＸＣＡＳＴの形をしていることや、ＸＣＡＳＴの部分のビット構成が他のパケットのビット構成と一致していないこと等が挙げられる。【００８２】
パケット４０Ａが処理対象のパケットではない（サブルーティング処理部３２０で処理できないパケットである）場合（ステップＳ２３のＮｏ）、ステップＳ２５に移行し、後述する処理を行う。【００８３】
一方、パケット４０Ａが処理対象のパケットである場合（ステップＳ２３のＹｅｓ）、ルーティングヘッダ４２Ａに関するヘッダ処理を行う（ステップＳ２４）。なお、ルーティングヘッダがＸＣＡＳＴの形をしている場合、タイプ別データにはルーティングを行うための到達すべき複数のアドレスが格納されているため、そのアドレスに従って宛先を指定する処理を行う。その後、Ｉ／Ｏバス３２２を介して、パケット４０ＡをＮＩＣ３２１に戻す。【００８４】
次に、ＮＩＣ３２１は、物理ネットワーク３３０を介して、パケット４０Ａをメインルーティング処理部３１０のインテリジェントＮＩＣ３１１に返信する（ステップＳ２５）。【００８５】
その後、再びステップＳ２１に移行し、前述した動作を繰り返し行う。
以上説明したように、本実施の形態のパケット通信システムによれば、メインルーティング処理部３１０のインテリジェントＮＩＣ３１１で、入力されるパケット４０におけるトラフィッククラス４１ａをチェックしてＸＣＡＳＴに関するパケットであるか否かをチェックし、当該パケットがＸＣＡＳＴに関するパケットではない場合、パケット４０Ｂであるとみなしてルーティングテーブル３１４ａに従って、パケット４０Ｂをルーティングする一方、当該パケットがＸＣＡＳＴに関するパケットである場合、パケット４０Ａであるとみなしてヘッダに関する処理をサブルーティング処理部３２０に実行させるようにしたので、内部のヘッダ（ルーティングヘッダ４２Ａ等）を参照することなくヘッダの処理を行うことができる。これにより、パケット４０に関する処理速度を向上させることができる。【００８６】
また、トラフィッククラス４１ａだけを見てサブルーティング処理部３２０にパケット４０Ａを送信した場合においても、サブルーティング処理部３２０がルーティングヘッダ４２Ａを参照することにより処理対象のパケットか否かを判断し、処理対象のパケットではない場合にはメインルーティング処理部３１０に返すようにしたので、例えばパケットが消去されたりエラーが起こったりすることなく、信頼性の高いシステムを構築することができる。【００８７】
このように、メインルーティング処理部３１０では、トラフィッククラス４１ａのみをチェックするようにすることで、処理頻度の比較的高いメインルーティング処理部３１０の処理を従来に比べより軽減させ、処理頻度の比較的低いサブルーティング処理部３２０でパケット４０Ａの処理を行わせるようにしたので、パケット４０に関する処理速度を向上させることができる。【００８８】
なお、本実施の形態の変形例として、サブルーティング処理部３２０にルーティングテーブル検索機能およびネイバ宛へのパケット送信機能を持たせるようにしてもよい。この場合、記憶部３２４に、ルーティングテーブル３１４ａを記憶し、ＮＩＣ３２１がルーティングテーブル３１４ａに従って、パケット４０Ａをルーティングする機能を備えるようにする。【００８９】
また、本実施の形態では、トラフィッククラス４１ａの上位４ビットおよび下位２ビットの論理を判断し、一致した場合にサブルーティング処理部３２０で処理を実行させるようにしたが、本発明はこれに限らず、例えば上位４ビットが「ＡＺＹＸ」であれば、下位２ビットを見ることなくＸＣＡＳＴに関する情報と判断し、サブルーティング処理部３２０に送信して、サブルーティング処理部３２０で処理を実行させるようにしてもよい。また、下位２ビットが「１１」であれば、上位４ビットを見ることなくサブルーティング処理部３２０にそのパケットを送信し、サブルーティング処理部３２０で所定の処理を実行させるようにしてもよい。【００９０】
また、本実施の形態では下位２ビットが「１１」である場合に、サブルーティング処理部３２０に送信したが、本発明はこれに限らず、下位２ビットが「１０」や「０１」である場合にサブルーティング処理部３２０に送信するようにしてもよい。【００９１】
また、本実施の形態では、トラフィッククラス４１ａの上位４ビットおよび下位２ビットと論理式との論理積をとることによりＸＣＡＳＴに関する情報であることを判断したが、本発明はこれに限らず、フロー・ラベルの所定ビットの論理を判断することによりＸＣＡＳＴに関する情報であることを判断してもよく、トラフィッククラスの所定ビットおよびフロー・ラベルの所定ビットの論理を判断することによりＸＣＡＳＴに関する情報であることを判断してもよい。【００９２】
また、本実施の形態では、トラフィッククラス（の上位４ビット）をＸＣＡＳＴに関する情報であるか否かを判断するために用いたが、本発明のトラフィッククラスの用途は、これに限定されない（前述したフロー・ラベルの用途に関しても同様）。【００９３】
次に、第２の実施の形態のパケット通信システムについて説明する。
以下、第２の実施の形態のパケット通信システムについて、前述した第１の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。【００９４】
第２の実施の形態のパケット通信システムは、パケットルーティング装置の構成が第１の実施の形態と異なっている。
図１１は、第２の実施の形態のパケットルーティング装置を示す図である。なお、図１１において、第１の実施の形態と同様の部分には同一の符号を付している。【００９５】
第２の実施の形態のパケットルーティング装置３０１ａは、サブルーティング処理部３２０と同一構成のｐ（ｐ＝２、・・・、ｎ）個（図１１では２個）のサブルーティング処理部３２０１、３２０２が設けられている。【００９６】
メインルーティング処理部３１０のインテリジェントＮＩＣ３１１は、インターネット２００を構成するネットワーク２００Ａおよびネットワーク２００Ｂに接続されているとともに、物理ネットワーク３３０を介してＮＩＣ３２１１、３２１２に接続されている。【００９７】
インテリジェントＮＩＣ３１１は、ネットワーク２００Ａよりパケット４０が入力された場合、パケット４０のトラフィッククラスをチェックすることによりパケット４０Ａであるか否かをチェックし、パケット４０Ａではない場合、パケット４０Ｂであると判断し、ルーティングテーブル３１４ａに従ってパケット４０Ｂをネットワーク２００Ｂにルーティングする。パケット４０Ａである場合、インテリジェントＮＩＣ３１１は、ＮＩＣ３２１１、３２１２のうちいずれか一つにパケット４０Ａを送信する。【００９８】
処理部３１３は、ルーティングテーブル３１４ａおよびサブルーティング処理部アドレス表の初期設定を行う。
図１２は、第２の実施の形態のサブルーティング処理部アドレス表を示す図である。【００９９】
サブルーティング処理部アドレス表３１４ｃは、サブルーティング処理部３２０１、３２０２の各ネットワークアドレス（同図の例では、Ｗ：Ｘ：：Ｙ：Ｚ１、Ｗ：Ｘ：：Ｙ：Ｚ２）を表すテーブルであり、インテリジェントＮＩＣ３１１により参照される。【０１００】
サブルーティング処理部３２０１、３２０２は、それぞれパケット４０Ａに関するルーティング処理を実行する。サブルーティング処理部３２０１において、ＮＩＣ３２１１、Ｉ／Ｏバス３２２１、ヘッダ処理部３２３１、記憶部３２４１は、それぞれサブルーティング処理部３２０のＮＩＣ３２１、Ｉ／Ｏバス３２２、ヘッダ処理部３２３、記憶部３２４に対応している。ＮＩＣ３２１１は、ネットワーク２００Ｂに接続されているとともに、物理ネットワーク３３０を介してインテリジェントＮＩＣ３１１に接続されている。サブルーティング処理部３２０２において、ＮＩＣ３２１２、Ｉ／Ｏバス３２２２、ヘッダ処理部３２３２、記憶部３２４２は、サブルーティング処理部３２０のＮＩＣ３２１、Ｉ／Ｏバス３２２、ヘッダ処理部３２３、記憶部３２４に対応している。ＮＩＣ３２１２は、ネットワーク２００Ｂに接続されているとともに、物理ネットワーク３３０を介してインテリジェントＮＩＣ３１１に接続されている。【０１０１】
次に、第２の実施の形態のパケット通信システムの動作について説明する。
図１３は、第２の実施の形態のメインルーティング処理部の動作を説明するフローチャートである。【０１０２】
ステップＳ３１〜ステップＳ３５：図９のステップＳ１１〜ステップＳ１５と同様の処理を行う。
ここで、ステップＳ３３においてＸＣＡＳＴに関するパケットであると判断した場合（ステップＳ３３のＹｅｓ）、インテリジェントＮＩＣ３１１は、サブルーティング処理部アドレス表３１４ｃを参照して、該当するサブルーティング処理部のアドレス宛に、物理ネットワーク３３０を介してパケット４０Ａを送信する（ステップＳ３６）。【０１０３】
その後、再びステップＳ３１に移行し、前述した動作を繰り返し行う。
なお、ステップＳ３５では、インテリジェントＮＩＣ３１１は、サブルーティング処理部アドレス表３１４ｃから、１つのサブルーティング処理部アドレスをパケット４０Ａの送信先アドレスとして選択する。この選択基準としては、以下の（Ａ）項または（Ｂ）項が挙げられる。【０１０４】
（Ａ）パケットに関する処理の依頼数をカウントするとともに、依頼先（サブルーティング処理部）を記録し、依頼されていないサブルーティング処理部が存在する場合、当該サブルーティング処理部のサブルーティング処理部アドレスを選択する。【０１０５】
（Ｂ）パケットの送信元アドレス、宛先アドレスをハッシュ関数で値域がサブルーティング処理部のノード数となるように演算した後、サブルーティング処理部アドレス表３１４ｃからサブルーティング処理部アドレスを選択する。そして、選択されたサブルーティング処理部３２０１またはサブルーティング処理部３２０２が処理を行う。【０１０６】
なお、サブルーティング処理部３２０１、３２０２の各処理は、それぞれ第１の実施の形態のサブルーティング処理部３２０の処理と同様であるため説明を省略する。
ここで、第２の実施の形態のパケット通信システムでは、例えばサブルーティング処理部３２０１によりパケット４０Ａに関する処理が実行されている最中に、例えば、別のパケット４０ＡがインテリジェントＮＩＣ３１１に入力されると、インテリジェントＮＩＣ３１１は、前述した動作と同様にして、ＮＩＣ３２１１以外のＮＩＣに当該パケットの処理を依頼する。これにより、並列的にパケット４０Ａの処理が実行される。【０１０７】
この第２の実施の形態のパケット通信システムによれば、第１の実施の形態のパケット通信システムと同様の効果が得られる。さらに、第１の実施の形態においてメインルーティング処理部３１０に複数のパケット４０が集中的に入力され、サブルーティング処理部３２０が輻輳状態になることを回避するために、第２の実施の形態のパケット通信システムによればサブルーティング処理部３２０１、３２０２（ｐ個のサブルーティング処理部）を設けて、パケット４０に関する処理を分散化するようにした。すなわち、サブルーティング処理部３２０１、３２０２で並列的にヘッダ処理を実行するようにした。これにより、処理負荷を軽減させることができるとともに、ヘッダ処理能力を柔軟に調節することができる。【０１０８】
以上、本発明のパケットルーティング装置、パケット通信システムおよびパケットルーティングプログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。【０１０９】
なお、本発明の用途としては特に限定されないが、例えば監視・ＱｏＳ（Quality of Service）確保（ＶｏＩＰ（Voice over Internet Protocol）呼量検知や比較的低速でよいものの帯域制限）等が挙げられる。【０１１０】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。例えば、パケットルーティング装置３０１、３０１ａの機能を実現するためのパケットルーティングプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたパケットルーティングプログラムをコンピュータに読み込ませ、実行することにより、ルーティングに関する一連の処理を実行するようにしてもよい。【０１１１】
図１４は、第１の実施の形態および第２の実施の形態のパケットルーティング装置の変形例を示すブロック図である。
同図に示したコンピュータ７００は、上記プログラムを実行するＣＰＵ７１０と、キーボード、マウス等の入力装置７２０と、各種データを記憶するＲＯＭ（Read Only Memory）７３０と、演算パラメータ等を記憶するＲＡＭ（Random Access Memory）７４０と、記録媒体６００からパケットルーティングプログラムを読み取る読取装置７５０と、ディスプレイ、プリンタ等の出力装置７６０と、各部を接続するバスＢＵとで構成されている。【０１１２】
ＣＰＵ７１０は、読取装置７５０を経由して記録媒体６００に記録されているパケットルーティングプログラムを読み込んだ後、パケットルーティングプログラムを実行することにより、前述したルーティングに関する一連の処理を実行する。なお、記録媒体６００には、光ディスク、フロッピー（登録商標）ディスク、ハードディスク等の可搬型の記録媒体が含まれることはもとより、ネットワークのようにデータを一時的に記録保持するような伝送媒体も含まれる。【０１１３】
また、前述した第１の実施の形態および第２の実施の形態においては、サブルーティング処理部３２０、サブルーティング処理部３２０１，３２０２をメインルーティング処理部３１０の外部装置として捉えてもよい。すなわち、メインルーティング処理部３１０とサブルーティング処理部３２０、サブルーティング処理部３２０１，３２０２とがそれぞれ別個に独立したパケットルーティング装置であってもよい。【０１１４】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１１５】
１、３０１、３０１ａ、３０２、３０ｍ  パケットルーティング装置
２、３２０、３２０１、３２０２  サブルーティング処理部
３、３１０  メインルーティング処理部
４  ヘッダチェック手段
５  送信手段
４０、４０Ａ、４０Ｂ  パケット
４１ａ  トラフィッククラス
４１Ａ、４１Ｂ  ヘッダ
４２Ａ  ルーティングヘッダ
４２Ｂ、４３Ａ  ＩＰｖ６ペイロード
２００  インターネット
３１１  インテリジェントＮＩＣ
３１２、３２２、３２２２  バス
３１３  処理部
３１４、３２４、３２４１、３２４２  記憶部
３１４ａ  ルーティングテーブル
３１４ｂ、３１４ｃ  サブルーティング処理部アドレス表
３２３、３２３１、３２３２  ヘッダ処理部
３３０  物理ネットワーク
【図１】
0004536139.tif 000002
【図２】
0004536139.tif 000003
【図３】
0004536139.tif 000004
【図４】
0004536139.tif 000005
【図５】
0004536139.tif 000006
【図６】
0004536139.tif 000007
【図７】
0004536139.tif 000008
【図８】
0004536139.tif 000009
【図９】
0004536139.tif 000010
【図１０】
0004536139.tif 000011
【図１１】
0004536139.tif 000012
【図１２】
0004536139.tif 000013
【図１３】
0004536139.tif 000014
【図１４】
0004536139.tif 000015
【図１５】
0004536139.tif 000016
【図１６】
0004536139.tif 000017
【図１７】
0004536139.tif 000018