(57)【要約】【課題】ＣＰＵ負荷を増加させること無くパケットの拡張ヘッダに対応した処理を行うことができるパケット中継装置を提供する。【解決手段】受信パケットに含まれる拡張ヘッダを読み取って、当該拡張ヘッダの構成を判別するための情報を含む判別ヘッダを生成し、これを当該受信パケットに付加してプロセッサに供給する。当該プロセッサは、受信パケットに付加されている判別ヘッダに基づいて当該受信パケットに含まれる拡張ヘッダの構成を判別してこれに応じた処理を施す。【選択図】図１
2011071701.tif 000002
【特許請求の範囲】
【請求項１】
通信網を介してパケットを受信する受信部と、前記受信部によって受信された受信パケットについてそのヘッダの内容に応じた処理を施すパケット処理部と、前記パケット処理部による処理が施されたパケットを他の通信網に送信する送信部と、を含むパケット中継装置であって、
前記パケット処理部は、
前記受信パケットに含まれる基本ヘッダの内容に応じた処理を施す基本ヘッダ処理部と、
前記受信パケットに含まれる拡張ヘッダを読み取って前記拡張ヘッダの構成を判別するための情報を含む判別ヘッダを生成しこれを前記受信パケットに付加する判別ヘッダ生成付加部と、
前記受信パケットに付加されている判別ヘッダに基づいて当該受信パケットに含まれる拡張ヘッダの構成を判別してこれに応じた処理を施す拡張ヘッダ処理部と、を更に含むことを特徴とするパケット中継装置。
【請求項２】
前記判別ヘッダは、前記受信パケットにおける拡張ヘッダの有無をその種別毎に示す拡張ヘッダフラグを少なくとも含み、
前記拡張ヘッダ処理部は、前記拡張ヘッダフラグによって前記受信パケットにいずれかの種別の前記拡張ヘッダが含まれていることが示されている場合にのみ前記受信パケットにおける当該拡張ヘッダに応じた処理を施すことを特徴とする請求項１に記載のパケット中継装置。
【請求項３】
前記判別ヘッダは、前記拡張ヘッダに後続する上位ヘッダの位置を示すオフセット値を更に含み、
前記拡張ヘッダ処理部は、前記オフセット値によって示された位置にある上位ヘッダに応じた処理を施すことを特徴とする請求項２に記載のパケット中継装置。
【請求項４】
前記判別ヘッダは、前記受信パケットの種別がＩＰｖ６パケットであるか否かを示すパケット種別識別子を含み、
前記拡張ヘッダ処理部は、前記パケット種別識別子によって前記受信パケットの種別がＩＰｖ６パケットであることが示されている場合にのみ前記受信パケットにおける当該拡張ヘッダに応じた処理を施すことを特徴とする請求項１乃至３のいずれか１つに記載のパケット中継装置。
【請求項５】
前記拡張ヘッダの種別は、ＩＰｖ６通信プロトコルにおけるホップバイホップオプション、デスティネーションオプション、ルーティング、フラグメント、認証、ＥＰＳの少なくともいずれかであることを特徴とする請求項１乃至４のいずれか１つに記載のパケット中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信網を介してパケットを中継するパケット中継装置に関する。
【背景技術】
【０００２】
今後、ＩＰｖ６（Internet Protocol version 6）プロトコルがインターネットの通信プロトコルとして主流になると言われている。ＩＰｖ６プロトコルにより通信されるパケット（以下、ＩＰｖ６パケットと称する）のヘッダは、現在主流であるＩＰｖ４プロトコルの場合とは異なり、拡張ヘッダは基本ヘッダから区別されており、基本ヘッダの後に拡張ヘッダが続く構成となっている。基本ヘッダは、４０バイト固定長であり、全てのＩＰｖ６パケットに付加される。拡張ヘッダには例えばホップバイホップ（中継点）オプション、デスティネーション（終点）オプション、ルーティング（経路）、フラグメント（断片）、認証、ＥＰＳなどの種別があり、それぞれ個別の役割を担っている。複数の付加サービスが用いられる場合には、それぞれの役割毎の拡張ヘッダが数珠つなぎでパケットに付加される。拡張ヘッダはあくまでオプションであり、付加サービスが用いられない場合にはパケットに付加されない。通常、パケットを中継する例えばルータなどの中継装置は、基本ヘッダを必ず処理しなくてはならないが、拡張ヘッダについては一部の例外を除いて処理する必要はない。その情報は、宛先ノードによってのみ処理される。ルータは固定長の基本ヘッダだけを処理すれば良いので効率的にパケットを処理できる。
【０００３】
しかし、昨今注目されているＮＧＮ（Next Generation Network：次世代通信網）向けのＳＢＣ（session border controller）やセキュリティゲートウェイなどの中継装置においては、基本ヘッダのみならず、拡張ヘッダの参照や、例えばＴＣＰ（Transmission Control Protocol）などのいわゆる上位ヘッダの情報を必要とする場合が多い。通常、中継装置において受信パケットを処理する場合、受信パケットを例えばＲＡＭ（Random Access Memory）などのメモリに記憶する。そして、メモリからその受信パケットのＩＰｖ６基本ヘッダ情報を読み出し、拡張ヘッダの有無を確認して、必要であれば数珠繋ぎとなっている後続の拡張ヘッダを読み出す。中継装置は、この処理を繰り返し、最後の拡張ヘッダについて処理した後に、ＴＣＰヘッダなどの上位ヘッダの情報を取得できる。このような処理をした場合、上位ヘッダに辿り着くまでに拡張ヘッダの読み出し処理と解析処理とを繰り返すことになり、その結果、メモリアクセス回数やＣＰＵ負荷の増加を招き、プロセッサの処理能力が低下し、中継装置全体でのスループットが低下してしまうという問題があった。
【０００４】
このような問題を解決し得る方法が例えば特許文献１に開示されている。当該方法は、ノードがパケットを受信したときに、メモリにキャッシュされている過去の受信パケットについての情報を参照し、対応するエントリが発見された場合、ノードが第１拡張ヘッダ及びキャッシュされたデータからの情報を使用して、残りの各拡張ヘッダを並列に読み取るものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１３０５０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示されている方法の場合、例えば新規のパケットを受信した場合などキャッシュのエントリに該当しない場合には効果が得られず、メモリアクセス回数も複数回必要となるので、ＣＰＵ負荷が増加してしまうという問題点があった。
【０００７】
本発明は上記した如き問題点に鑑みてなされたものであって、ＣＰＵ負荷を増加させること無くパケットの拡張ヘッダに対応した処理を行うことのできるパケット中継装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明によるパケット中継装置は、通信網を介してパケットを受信する受信部と、前記受信部によって受信された受信パケットについてそのヘッダの内容に応じた処理を施すパケット処理部と、前記パケット処理部による処理が施されたパケットを他の通信網に送信する送信部と、を含むパケット中継装置であって、前記パケット処理部は、前記受信パケットに含まれる基本ヘッダの内容に応じた処理を施す基本ヘッダ処理部と、前記受信パケットに含まれる拡張ヘッダを読み取って前記拡張ヘッダの構成を判別するための情報を含む判別ヘッダを生成しこれを前記受信パケットに付加する判別ヘッダ生成付加部と、前記受信パケットに付加されている判別ヘッダに基づいて当該受信パケットに含まれる拡張ヘッダの構成を判別してこれに応じた処理を施す拡張ヘッダ処理部と、を更に含むことを特徴とする。
【発明の効果】
【０００９】
本発明によるパケット中継装置によれば、ＣＰＵ負荷を増加させること無くパケットの拡張ヘッダに対応した処理を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】パケット中継装置を表すブロック図である。
【図２】ＩＰｖ６解析部（判別ヘッダ生成付加部）を表すブロック図である。
【図３】受信パケットの構成例を表す図である。
【図４】受信パケットに付加された判別ヘッダを表す図である。
【図５】判別ヘッダ付加処理ルーチンを表すフローチャートである。
【図６】ヘッダ解析及び判別ヘッダ生成処理のタイムチャートである。
【図７】拡張ヘッダ処理ルーチンを表すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明に係る実施例について添付の図面を参照しつつ詳細に説明する。
【００１２】
図１は本実施例によるパケット中継装置１００を表すブロック図である。パケット中継装置１００は、例えばＬＡＮ（Local Area Network）などの通信網２１０と例えばＷＡＮ（Wide Area Network）などの通信網２２０との間でパケットを中継する例えばルータなどの中継装置であり、送受信部１１０及び１２０と、記憶部１３０と、パケット処理部１４０と、を含む。
【００１３】
送受信部１１０は、通信網２１０を介してパケットを送受信する機能を有し、コネクタ１１１−１〜１１１−ｎ（ｎは1以上の整数）と、ＰＨＹ処理部１１２と、Ｌ２処理部１１３と、を含む。送受信部１１０は、例えば専用ＡＳＩＣ（Application Specific Integrated Circuit）などの演算処理集積回路によって構成できる。
【００１４】
コネクタ１１１−１は、通信網２１０を介してパケットを送受信する通信ポートである。つまり、コネクタ１１１−１は、通信網２１０から到来したパケットを受信し、当該受信したパケット（以下、受信パケットと称する）をＰＨＹ処理部１１２へ与える。また、コネクタ１１１−１は、ＰＨＹ処理部１１２からのパケットを通信網２１０を介して送信する。コネクタ１１１−２〜１１１−ｎの各々もコネクタ１１１−１と同様の構成である。
【００１５】
ＰＨＹ処理部１１２は、コネクタ１１１−１〜１１１−ｎのいずれかからのパケット又はＬ２処理部１１３からのパケットに対して、ＯＳＩ参照モデルの第１層である物理層（physical layer：ＰＨＹ層）についての処理を施す。当該処理には、例えば電気信号レベルの設定処理や光波長の設定処理などが含まれる。
【００１６】
Ｌ２処理部１１３は、ＰＨＹ処理部１１２からのパケット又はＩＰｖ６解析部１５０からのパケットに対して、ＯＳＩ参照モデルの第２層（Layer 2：Ｌ２層）であるデータリンク層についての処理を施す。当該処理には、例えばＭＡＣ（Media Access Control）フィルタリング処理やＬＡＮ側ノード間の通信ルーティング処理などが含まれる。
【００１７】
送受信部１２０は、通信網２２０を介してパケットを送受信する機能を有し、コネクタ１２１と、ＰＨＹ／ＭＡＣ部１２２と、を含む。送受信部１２０は、例えば専用ＡＳＩＣなどの演算処理集積回路によって構成できる。
【００１８】
コネクタ１２１は、通信網２２０を介してパケットを送受信する通信ポートである。つまり、コネクタ１２１は、通信網２２０から到来したパケットを受信し、その受信パケットをＰＨＹ／ＭＡＣ部１２２へ与える。また、コネクタ１１１−１は、ＰＨＹ／ＭＡＣ部１２２からのパケットを通信網２２０を介して送信する。
【００１９】
ＰＨＹ／ＭＡＣ部１２２は、コネクタ１２１からのパケット又はプロセッサ１６０からのパケットに対して、物理層及び第２層（データリンク層）についての処理を施す。
【００２０】
記憶部１３０は、例えばプロセッサ１６０が実行するためのコンピュータプログラムや受信パケットなどのデータを記憶する例えばＲＡＭ（Random Access Memory）などのメモリである。
【００２１】
パケット処理部１４０は、ＩＰｖ６解析部１５０と、プロセッサ１６０と、を含む。
【００２２】
ＩＰｖ６解析部１５０は、送受信部１１０からの受信パケットに含まれる拡張ヘッダを読み出して解析し、当該解析によって得られた、拡張ヘッダの構成を判別するための情報を含むヘッダ（以下、判別ヘッダと称する）を生成し、これを当該受信パケットに付加した後にプロセッサ１６０へ転送する例えばマイクロプロセッサなどの演算処理装置であり、パケットバッファ部１５１と、ヘッダ解析部１５２と、判別ヘッダ生成部１５３と、送信制御部１５４と、を含む。以下、ＩＰｖ６解析部１５０を判別ヘッダ生成付加部とも称する。
【００２３】
パケットバッファ部１５１は、送受信部１１０からの受信パケットを格納するバッファである。パケットバッファ部１５１は、当該受信パケットの全データの格納が完了した場合に、受信完了通知ＲＣを送信制御部１５４へ与える。
【００２４】
ヘッダ解析部１５２は、パケットバッファ部１５１による受信パケットの格納と並行して、当該受信パケットに含まれるヘッダを読み取りつつ解析する。図３は、受信パケットの構成例を表す図である。図３（ａ）は、イーサ（Ether）ヘッダ、ＩＰｖ６基本ヘッダ、ＴＣＰヘッダがアプリケーションデータの先頭に順に付加された受信パケットであり、拡張ヘッダを含まない例である。図３（ｂ）は、ＩＰｖ６基本ヘッダの次に拡張ヘッダ１が付加された受信パケットである。この場合、上位ヘッダであるＴＣＰヘッダは拡張ヘッダ１の次に付加されている。図３（ｃ）は、ＩＰｖ６基本ヘッダの次に、互いに種別の異なる拡張ヘッダ１及び２が付加された受信パケットである。この場合、上位ヘッダであるＴＣＰヘッダは拡張ヘッダ２の次に付加されている。拡張ヘッダ１及び２は、例えばルーティング（経路）、フラグメント（断片）などの通常のＩＰｖ６のオプションとしての拡張ヘッダである。なお、図３に示される受信パケットの構成は一例であり、受信パケットは３つ以上の拡張ヘッダを含んでいても良い。また、拡張ヘッダは、ホップバイホップ（中継点）オプション、デスティネーション（終点）オプション、認証、ＥＰＳなどの種別でも良い。
【００２５】
ヘッダ解析部１５２は、このような受信パケットについて、そのヘッダ部分を読み取り、（１）受信パケットの種別がＩＰｖ６パケットであるか否か、（２）受信パケットにおける拡張ヘッダの種別毎の有無、（３）受信パケットの先頭位置を基準とした、拡張ヘッダに後続する例えばＴＣＰなどのいわゆる上位ヘッダの位置について判別する。ヘッダ解析部１５２は、当該判別によって得られた情報ＡＨ（以下、ＩＰｖ６情報ＡＨと称する）を判別ヘッダ生成部１５３へ与える。
【００２６】
ヘッダ解析部１５２は、上記（１）については受信パケットに含まれるＥｔｈｅｒヘッダを参照することにより、上記（２）については各ヘッダ内の次ヘッダフィールドを参照することにより、上記（３）については例えば図３（ｃ）の場合にはパケット先頭のイーサヘッダから拡張ヘッダ２までのデータ量に基づいて、それぞれ判別する。
【００２７】
上記（１）について詳細には、ヘッダ解析部１５２は、Ｅｔｈｅｒヘッダ内の、Ｅｔｈｅｒヘッダの次に続く上位（Ｌ３）ヘッダを示す識別子（Ether Type）を参照することにより、Ｅｔｈｅｒヘッダの次のヘッダがＩＰｖ６基本ヘッダであるか否かを判別する。ヘッダ解析部１５２は、当該次のヘッダがＩＰｖ６基本ヘッダであると判別した場合には、受信パケットの種別がＩＰｖ６パケットであると判別する。上記（２）について詳細には、ヘッダ解析部１５２は、例えばＩＰｖ６基本ヘッダや拡張ヘッダなどのヘッダ内のいわゆる次ヘッダフィールドを参照して、当該ヘッダに後続するヘッダが拡張ヘッダであるのか上位ヘッダであるのかを判別する。
【００２８】
判別ヘッダ生成部１５３は、ヘッダ解析部１５２からのＩＰｖ６情報ＡＨに基づいて、拡張ヘッダの構成を判別するための情報を含む判別ヘッダを生成する。図４は、判別ヘッダ生成部１５３によって生成され、受信パケットに付加された判別ヘッダを表す図である。
【００２９】
判別ヘッダは、受信パケットの種別がＩＰｖ６パケットであるか否かを示すフラグＦＦ（以下、ＩＰｖ６フラグＦＦと称する）を含む。例えば、受信パケットの種別がＩＰｖ６パケットである場合には「１」、その他のパケットである場合には「０」として２進数で表される。
【００３０】
また、判別ヘッダは、受信パケットにおける拡張ヘッダの種別毎の有無を表すフラグＨ１〜Ｈ８（以下、拡張ヘッダフラグＨ１〜Ｈ８と称する）を含む。例えば拡張ヘッダフラグＨ１は中継点オプションヘッダ、Ｈ２は経路制御ヘッダ、Ｈ３は断片ヘッダ、Ｈ４は認証ヘッダ、Ｈ５は終点ヘッダ、・・・というように拡張ヘッダの種別毎にそれぞれ対応し、受信パケットにおけるその有無を表す。拡張ヘッダフラグＨ１〜Ｈ８の各々について、例えば受信パケットに含まれている拡張ヘッダの種別については「１」、含まれていない拡張ヘッダの種別については「０」として２進数で表される。
【００３１】
また、判別ヘッダは、受信パケットの先頭位置を基準とした、拡張ヘッダに後続する例えばＴＣＰなどのいわゆる上位ヘッダの位置を表すオフセット値を含む。オフセット値は、例えば受信パケットの先頭に位置するイーサヘッダから最後尾の拡張ヘッダまでのデータの合計サイズをバイト（ｂｙｔｅ）値で表したものである。
【００３２】
判別ヘッダ生成部１５３は、このような判別ヘッダＥＨを生成し、これを判別ヘッダ生成完了通知と共に送信制御部１５４へ与える。
【００３３】
送信制御部１５４は、パケットバッファ部１５１からの受信完了通知ＲＣと、判別ヘッダ生成部１５３からの判別ヘッダＥＨとを受け取った場合に、パケットバッファ部１５１へパケット供給指示ＣＰを与え、パケットバッファ部１５１から受信パケットを受け取る。続いて、送信制御部１５４は、当該受信パケットに判別ヘッダを付加して、これをプロセッサ１６０へ転送する。
【００３４】
プロセッサ１６０は、記憶部１３０に記憶されているコンピュータプログラムを読み出し、これに従った所定のパケット処理をＩＰｖ６解析部１５０からの受信パケットに施す。その際、プロセッサ１６０内の基本ヘッダ処理部１６１は受信パケットに含まれている基本ヘッダの内容に応じた処理を施し、拡張ヘッダ処理部１６２は受信パケットに付加されている判別ヘッダに基づいて拡張ヘッダや上位ヘッダについての処理を実行する。基本ヘッダ処理部１６１による処理は、ＩＰｖ６基本ヘッダについての通常のヘッダ処理である。拡張ヘッダ処理部１６２による処理の詳細については後述する。
【００３５】
なお、プロセッサ１６０は、これらのヘッダ処理の際に、受信パケットを記憶部１３０に一時的に記憶し、受信パケットのヘッダ情報を記憶部１３０から読み出して、所定のヘッダ処理を実行するようにしても良い。なお、判別ヘッダはパケット中継装置１００内でのみ用いられるので、プロセッサ１６０は判別ヘッダに基づくヘッダ処理を実行後、その判別ヘッダを受信パケットから取除く。
【００３６】
図５は、ＩＰｖ６解析部１５０による判別ヘッダ付加処理ルーチンを表すフローチャートである。ＩＰｖ６解析部１５０は、送受信部１１０からパケットを受け取る毎に当該ルーチンを実行する。以下、図５を参照しつつ、判別ヘッダ付加処理について説明する。
【００３７】
先ず、パケットバッファ部１５１が、送受信部１１０からの受信パケットを受け取り（ステップＳ１０１）、当該受信パケットのデータの格納を開始する（ステップＳ１０２）。パケットバッファ部１５１は、当該受信パケットの全データの格納が完了した場合に、受信完了通知ＲＣを送信制御部１５４へ与える。
【００３８】
ヘッダ解析部１５２は、パケットバッファ部１５１による受信パケットの格納と並行して、当該受信パケットに含まれるヘッダを読み取りつつ解析する（ステップＳ１０２）。詳細には、ヘッダ解析部１５２は、受信パケットについて、（１）受信パケットの種別がＩＰｖ６パケットであるか否か、（２）受信パケットにおける拡張ヘッダの種別毎の有無、（３）受信パケットの先頭位置を基準とした、拡張ヘッダに後続する例えばＴＣＰなどのいわゆる上位ヘッダの位置について判別する。ヘッダ解析部１５２は、当該解析によって得られたＩＰｖ６情報ＡＨを判別ヘッダ生成部１５３へ与える。
【００３９】
次に、判別ヘッダ生成部１５３は、ヘッダ解析部１５２からのＩＰｖ６情報ＡＨに基づいて、拡張ヘッダの構成を判別するための情報を含む判別ヘッダを生成する（ステップＳ１０３）。判別ヘッダは、例えば図４に示される構成である。詳細には、判別ヘッダ生成部１５３は、（１）受信パケットの種別がＩＰｖ６パケットであるか否かを示すＩＰｖ６フラグＦＦ、（２）受信パケットにおける拡張ヘッダの種別毎の有無を表す拡張ヘッダフラグＨ１〜Ｈ８、（３）受信パケットの先頭位置を基準とした、拡張ヘッダに後続する上位ヘッダの位置を表すオフセット値を含む判別ヘッダを生成する。判別ヘッダ生成部１５３は、生成した判別ヘッダＥＨを判別ヘッダ生成完了通知と共に送信制御部１５４へ与える。
【００４０】
送信制御部１５４は、パケットバッファ部１５１からの受信完了通知ＲＣと、判別ヘッダ生成部１５３からの判別ヘッダＥＨとを両方ともに受け取った場合に、パケットバッファ部１５１へパケット供給指示ＣＰを与え、パケットバッファ部１５１から受信パケットを受け取る。続いて、送信制御部１５４は、当該受信パケットに判別ヘッダを付加して（ステップＳ１０４）、これをプロセッサ１６０へ転送する（ステップＳ１０５）。
【００４１】
以上の処理により、拡張ヘッダの構成を判別するための情報を含む判別ヘッダが付加された受信パケットがプロセッサ１６０へ転送される。ＩＰｖ６解析部１５０は、各受信パケットについてこれと同じ処理を実行する。
【００４２】
図６は、判別ヘッダ付加処理ルーチン実行時におけるヘッダ解析及び判別ヘッダ生成処理のタイムチャートである。
【００４３】
先ず、パケットバッファ部１５１が、送受信部１１０からの受信パケット１を受け取り、その格納を開始するのと並行して、ヘッダ解析部１５２は、受信パケット１に含まれるヘッダ１をモニタしつつ解析する（図６の上段、ステップＳ１０１、Ｓ１０２）。ヘッダ解析部１５２による当該解析は、パケットバッファ部１５１が、受信パケット１のデータ全てを受信及び格納する前に完了できる。
【００４４】
次に、パケットバッファ部１５１は、受信パケット１の後続の受信パケット２を送受信部１１０から受け取り、その格納を開始するのと並行して、ヘッダ解析部１５２は、受信パケット２に含まれるヘッダ２をモニタしつつ解析する（図６の上段、ステップＳ１０１、Ｓ１０２）。
【００４５】
判別ヘッダ生成部１５３は、パケットバッファ部１５１が受信パケット２を送受信部１１０から受け取ったときから、ヘッダ解析部１５２からの受信パケット１についてのＩＰｖ６情報ＡＨに基づいて受信パケット１の判別ヘッダ１の生成を開始する（図６の中段、ステップＳ１０３）。判別ヘッダ生成部１５３による当該生成は、パケットバッファ部１５１が、受信パケット２のデータ全てを受信及び格納する前に完了できる。
【００４６】
送信制御部１５４は、判別ヘッダ生成部１５３からの判別ヘッダ１を、パケットバッファ部１５１からの受信パケット１に付加して、これをプロセッサ１６０へ転送する（図６の下段、ステップＳ１０４、Ｓ１０５）。送信制御部１５４は、パケットバッファ部１５１が受信パケット２を送受信部１１０から受け取っている間に、受信パケット１をプロセッサ１６０へ転送する。
【００４７】
ＩＰｖ６解析部１５０は、受信パケット２以降についても上記したのと同じ処理を反復して実行する。このように、ＩＰｖ６解析部１５０は、後続のパケットを受信している間に、判別ヘッダが付加された受信パケットをプロセッサ１６０へ転送するので、パケットの転送レートを低下させることなく判別ヘッダ付加処理を実行できる。
【００４８】
図７は、プロセッサ１６０による拡張ヘッダ処理ルーチンを表すフローチャートである。プロセッサ１６０は、判別ヘッダが付加された受信パケットをＩＰｖ６解析部１５０から受信する毎に当該ルーチンを実行する。以下、図7を参照しつつ、拡張ヘッダ処理について説明する。
【００４９】
先ず、プロセッサ１６０は、判別ヘッダが付加された受信パケットをＩＰｖ６解析部１５０から受信する（ステップＳ２０１）。次に、プロセッサ１６０内の基本ヘッダ処理部１６１が受信パケットに含まれている基本ヘッダの内容に応じた処理を施すと共に、拡張ヘッダ処理部１６２が受信パケットに付加されている判別ヘッダを抽出する（ステップＳ２０２）。拡張ヘッダ処理部１６２は、当該判別ヘッダに含まれるＩＰｖ６フラグＦＦの値を参照して、その値が例えば「１」であればＩＰｖ６パケットであり、「０」であるといったように受信パケットの種別を判別する（ステップＳ２０３）。
【００５０】
拡張ヘッダ処理部１６２は、受信パケットがＩＰｖ６パケットではないと判別した場合には、拡張ヘッダ処理を終了する。また、拡張ヘッダ処理部１６２は、受信パケットがＩＰｖ６パケットではあると判別した場合には、拡張ヘッダフラグＨ１〜Ｈ８を参照し、受信パケットに拡張ヘッダが含まれているか否かを判別する（ステップＳ２０４）。例えば拡張ヘッダフラグＨ１〜Ｈ８の各々の値が「０」であれば、拡張ヘッダ処理部１６２は、受信パケットに拡張ヘッダが含まれていないと判別し、拡張ヘッダ処理を終了する。
【００５１】
また、例えば拡張ヘッダフラグＨ１〜Ｈ８のうちのいずれかの値が「１」であれば、拡張ヘッダ処理部１６２は、受信パケットに拡張ヘッダが含まれていると判別し、当該拡張ヘッダに対応した例えばホップバイホップ（中継点）オプション、デスティネーション（終点）オプション、ルーティング（経路）、フラグメント（断片）、認証、ＥＰＳなどの処理を実行する（ステップＳ２０５）。
【００５２】
拡張ヘッダ処理部１６２は、拡張ヘッダの各々に対応した処理を実行した後、上位ヘッダの処理をするために、受信パケットの先頭位置からの上位ヘッダの位置を示すオフセット値を判別ヘッダから取得する（ステップＳ２０６）。拡張ヘッダ処理部１６２は、オフセット値に基づいて受信パケット内における上位ヘッダの位置を把握することができ、上位ヘッダについての処理を直ちに開始することができる。
【００５３】
なお、拡張ヘッダ処理部１６２は、受信パケットに拡張ヘッダが含まれているときであっても、その拡張ヘッダを無視して（すなわち上記ステップＳ２０５の処理を行わずに）上位ヘッダの処理をする場合もある。この場合にも、拡張ヘッダ処理部１６２は、上位ヘッダの位置を示すオフセット値を判別ヘッダから取得することにより（ステップＳ２０６）、上位ヘッダの位置を把握してその上位ヘッダについての処理を直ちに開始することができる。拡張ヘッダ処理部１６２は受信パケットから判別ヘッダを読み取った後又は判別ヘッダに基づくヘッダ処理を実行後、その判別ヘッダを受信パケットから取除く。
【００５４】
プロセッサ１６０は、上記した拡張ヘッダ処理に続いてＴＣＰなどの上位ヘッダやペイロード部分のデータについても適宜処理を行い、その後、受信パケットを送受信部１２０へ与える。プロセッサ１６０は、各受信パケットについて、これらと同じ処理を実行する。プロセッサ１６０は、受信パケットに対する所定の処理を完了した場合に送受信部１２０へ当該受信パケットを転送する。
【００５５】
上記したように、本実施例によるパケット中継装置は、受信パケットに含まれる拡張ヘッダを読み取り、当該拡張ヘッダの構成を判別するための情報を含む判別ヘッダを生成してこれを受信パケットに付加してからプロセッサへ転送する。このような処理を行うことにより、プロセッサはＩＰｖ６の拡張ヘッダの解析の要／不要を容易に判断することができる。また、受信パケットに拡張ヘッダが含まれている場合にも、上位ヘッダのオフセット値に基づいて上位ヘッダの情報を直接取得及び参照できる。これにより、プロセッサによるメモリアクセス回数を減少させると共にＣＰＵ負荷を増加させること無くパケットの拡張ヘッダに対応した処理を行うことができる。その結果、パケット中継装置全体での性能を向上させることもできる。
【００５６】
また、拡張ヘッダの有無の判断を含むヘッダ解析を全てのパケットに対して同じように実施するので、従来技術のような過去の受信パケットの情報（キャッシュデータ）を必要とせず、過去の情報が無い場合でも性能の低下は生じない。
【００５７】
なお、ＩＰｖ６解析部（判別ヘッダ生成付加部）１３０は、独立したハードウェアとして構成されても良いし、例えばプロセッサ１６０やＬ２処理部１１３を構成するハードウェアの内部に含まれるように構成されても良い。
【００５８】
また、本実施例は、一方の通信網（２１０）からのパケットにのみ判別ヘッダ生成処理を施した場合の例であるが、他方の通信網（２２０）からのパケットについても同様の判別ヘッダ生成処理を施すようにしても良い。
【符号の説明】
【００５９】
１００  パケット中継装置
１１０、１２０  送受信部
１１１−１〜１１１−ｎ  コネクタ
１１２  ＰＨＹ処理部
１１３  Ｌ２処理部
１２１  コネクタ
１２２  ＰＨＹ／ＭＡＣ部
１３０  記憶部
１４０  パケット処理部
１５０  ＩＰｖ６解析部（判別ヘッダ生成付加部）
１５１  パケットバッファ部
１５２  ヘッダ解析部
１５３  判別ヘッダ生成部
１５４  送信制御部
１６０  プロセッサ
１６１  基本ヘッダ処理部
１６２  拡張ヘッダ処理部
２１０、２２０  通信網
【図１】
2011071701.tif 000003
【図２】
2011071701.tif 000004
【図３】
2011071701.tif 000005
【図４】
2011071701.tif 000006
【図５】
2011071701.tif 000007
【図６】
2011071701.tif 000008
【図７】
2011071701.tif 000009