(57)【要約】【課題】モバイルＩＰｖ６処理時の処理負荷の低減、メモリの使用量の軽減、処理能力の増加を図ることができる通信装置提供する。【解決手段】アプリケーション処理部より受信してバッファに記憶されているペイロードについてモバイルＩＰｖ６処理を行うか否かを判定し、モバイルＩＰｖ６処理を行うと判定した場合には、ペイロードに付与したインナー側ＩＰｖ６ヘッダの前に、ＥＳＰヘッダの推定データ量分の前記バッファの記憶領域を予め確保する。そして、確保したＥＳＰヘッダの推定データ量分の記憶領域の前にトンネル化処理によるアウター側ＩＰｖ６ヘッダを付与し、ペイロードとその前に付与されたインナー側ＩＰｖ６ヘッダを暗号化すると共に、確保したＥＳＰヘッダの推定データ量分の記憶領域に、ＥＳＰペイロードを設定する。【選択図】図１
2010206276.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション処理部より受信してバッファに記憶されているペイロードについてモバイルＩＰｖ６処理を行うか否かを判定するモバイルＩＰｖ６処理判定手段と、
前記モバイルＩＰｖ６処理を行うと判定した場合には、前記ペイロードに付与したインナー側ＩＰｖ６ヘッダの前に、ＥＳＰヘッダの推定データ量分の前記バッファの記憶領域を予め確保する推定データ量確保手段と、
前記確保したＥＳＰヘッダの推定データ量分の記憶領域の前にトンネル化処理によるアウター側ＩＰｖ６ヘッダを付与するトンネル化処理手段と、
前記ペイロードとその前に付与された前記インナー側ＩＰｖ６ヘッダを暗号化すると共に、前記確保したＥＳＰヘッダの推定データ量分の記憶領域に、ＥＳＰペイロードを設定するＩＰＳｅｃ処理手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記ペイロードの前記バッファにおける先頭アドレスをレイヤ４の情報、前記インナー側ＩＰｖ６ヘッダの前記バッファにおける先頭アドレスをレイヤ３の情報として、予めデータテーブルに記憶するレイヤ情報記憶手段を備え、
前記トンネル化処理手段は、前記トンネル化処理による前記アウター側ＩＰｖ６ヘッダの付与時に、前記レイヤ情報記憶手段の前記データテーブルにおいて、前記インナー側ＩＰｖ６ヘッダの前記バッファにおける先頭アドレスをレイヤ４の情報として書き換え、前記アウター側ＩＰｖ６ヘッダの前記バッファにおける先頭アドレスをレイヤ３の情報として書き換える
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
通信装置における処理方法であって、
前記通信装置のモバイルＩＰｖ６処理判定手段が、アプリケーション処理部より受信してバッファに記憶されているペイロードについてモバイルＩＰｖ６処理を行うか否かを判定し、
前記通信装置の推定データ量確保手段が、前記モバイルＩＰｖ６処理を行うと判定した場合には、前記ペイロードに付与したインナー側ＩＰｖ６ヘッダの前に、ＥＳＰヘッダの推定データ量分の前記バッファの記憶領域を予め確保し、
前記通信装置のトンネル化処理手段が、前記確保したＥＳＰヘッダの推定データ量分の記憶領域の前にトンネル化処理によるアウター側ＩＰｖ６ヘッダを付与し、
前記通信装置のＩＰＳｅｃ処理手段が、前記ペイロードとその前に付与された前記インナー側ＩＰｖ６ヘッダを暗号化すると共に、前記確保したＥＳＰヘッダの推定データ量分の記憶領域に、ＥＳＰペイロードを設定する
ことを特徴とする処理方法。
【請求項４】
前記通信装置のレイヤ情報記憶手段が、前記ペイロードの前記バッファにおける先頭アドレスをレイヤ４の情報、前記インナー側ＩＰｖ６ヘッダの前記バッファにおける先頭アドレスをレイヤ３の情報として、予めデータテーブルに記憶し、
前記通信装置の前記トンネル化処理手段が、前記トンネル化処理による前記アウター側ＩＰｖ６ヘッダの付与時に、前記レイヤ情報記憶手段の前記データテーブルにおいて、前記インナー側ＩＰｖ６ヘッダの前記バッファにおける先頭アドレスをレイヤ４の情報として書き換え、前記アウター側ＩＰｖ６ヘッダの前記バッファにおける先頭アドレスをレイヤ３の情報として書き換える
ことを特徴とする請求項３に記載の処理方法。
【請求項５】
通信装置のコンピュータを、
アプリケーション処理部より受信してバッファに記憶されているペイロードについてモバイルＩＰｖ６処理を行うか否かを判定するモバイルＩＰｖ６処理判定手段、
前記モバイルＩＰｖ６処理を行うと判定した場合には、前記ペイロードに付与したインナー側ＩＰｖ６ヘッダの前に、ＥＳＰヘッダの推定データ量分の前記バッファの記憶領域を予め確保する推定データ量確保手段、
前記確保したＥＳＰヘッダの推定データ量分の記憶領域の前にトンネル化処理によるアウター側ＩＰｖ６ヘッダを付与するトンネル化処理手段、
前記ペイロードとその前に付与された前記インナー側ＩＰｖ６ヘッダを暗号化すると共に、前記確保したＥＳＰヘッダの推定データ量分の記憶領域に、ＥＳＰペイロードを設定するＩＰＳｅｃ処理手段、
として機能させるためのプログラム。
【請求項６】
前記トンネル化処理手段は、前記ペイロードの前記バッファにおける先頭アドレスをレイヤ４の情報、前記インナー側ＩＰｖ６ヘッダの前記バッファにおける先頭アドレスをレイヤ３の情報として、予めデータテーブルに記憶するレイヤ情報記憶手段を備えた請求項５に記載の前記通信装置のコンピュータを、さらに、
前記トンネル化処理による前記アウター側ＩＰｖ６ヘッダの付与時に、前記レイヤ情報記憶手段の前記データテーブルにおいて、前記インナー側ＩＰｖ６ヘッダの前記バッファにおける先頭アドレスをレイヤ４の情報として書き換え、前記アウター側ＩＰｖ６ヘッダの前記バッファにおける先頭アドレスをレイヤ３の情報として書き換える機能を有する手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイルＩＰｖ６処理を行う通信装置およびその処理方法ならびにそのプログラムに関する。
【背景技術】
【０００２】
コンピュータの発達により、回路は変更せずソフトウェアのみを変更すれば機能の追加が可能な組込機器が多く利用されている。ここで、このような組込機器では、低スペック（性能が低い）なマイクロコンピュータを用いており、ＲＯＭ／ＲＡＭ容量が少ないといった制限がある。そして、組込機器が通信機能を備え、その通信機能にモバイルＩＰｖ６の機能を実装しようとした場合に、制限内の性能を実現し、ＲＯＭ／ＲＡＭの容量内に機能を実装するために処理に工夫が必要である。
【０００３】
ここで、モバイルＩＰｖ６ではＩＰｖ６拡張ヘッダを、ＩＰＳｅｃ処理部と、モバイルＩＰｖ６プロトコルが操作してパケット生成等の処理を行う。そして、ＩＰＳｅｃ処理部では、認証（ＡＨ）ヘッダやＥＳＰヘッダを、また、モバイルＩＰｖ６プロトコル側では、ディスティネーションヘッダや、タイプ２ルーティングヘッダ、モバイルヘッダの処理を行う。
しかしながら、拡張ヘッダには、生成順番があり、モバイルＩＰｖ６の制御パケットでは、ＩＰｖ６ヘッダ、ディスティネーションヘッダもしくはタイプ２ルーティングヘッダ、ＡＨヘッダ、ＥＳＰヘッダ、モバイルヘッダの順で、また、データパケットの場合、ＩＰｖ６ヘッダ、ＡＨヘッダ、ＥＳＰヘッダ、ＩＰｖ６ヘッダ、上位プロトコルデータの順で生成する。また、ＡＨヘッダなどは、処理上、その生成が省略される場合がある。このようにパケットの種別によって設定される拡張ヘッダが異なるため、モバイルＩＰｖ６処理、ＩＰＳｅｃ処理、ＩＰｖ６処理は、お互いに情報のやり取りを行って、パケットを生成することとなる。そして、このような情報のやり取りが発生するために、処理が複雑となり、かつ、メモリの使用量の増加や、処理能力が低下に影響を与えている。なお、ＩＰｖ６拡張ヘッダの生成に関連する技術が特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−００５９８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこでこの発明は、通信機器を備えた組込機器等の通信装置において、モバイルＩＰｖ６の処理時の処理負荷の低減、メモリの使用量の軽減、処理能力の増加を図ることができる通信装置およびその処理方法ならびにそのプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、アプリケーション処理部より受信してバッファに記憶されているペイロードについてモバイルＩＰｖ６処理を行うか否かを判定するモバイルＩＰｖ６処理判定手段と、前記モバイルＩＰｖ６処理を行うと判定した場合には、前記ペイロードに付与したインナー側ＩＰｖ６ヘッダの前に、ＥＳＰヘッダの推定データ量分の前記バッファの記憶領域を予め確保する推定データ量確保手段と、前記確保したＥＳＰヘッダの推定データ量分の記憶領域の前にトンネル化処理によるアウター側ＩＰｖ６ヘッダを付与するトンネル化処理手段と、前記ペイロードとその前に付与された前記インナー側ＩＰｖ６ヘッダを暗号化すると共に、前記確保したＥＳＰヘッダの推定データ量分の記憶領域に、ＥＳＰペイロードを設定するＩＰＳｅｃ処理手段と、を備えることを特徴とする通信装置である。
【０００７】
また本発明は、通信装置における処理方法であって、前記通信装置のモバイルＩＰｖ６処理判定手段が、アプリケーション処理部より受信してバッファに記憶されているペイロードについてモバイルＩＰｖ６処理を行うか否かを判定し、前記通信装置の推定データ量確保手段が、前記モバイルＩＰｖ６処理を行うと判定した場合には、前記ペイロードに付与したインナー側ＩＰｖ６ヘッダの前に、ＥＳＰヘッダの推定データ量分の前記バッファの記憶領域を予め確保し、前記通信装置のトンネル化処理手段が、前記確保したＥＳＰヘッダの推定データ量分の記憶領域の前にトンネル化処理によるアウター側ＩＰｖ６ヘッダを付与し、前記通信装置のＩＰＳｅｃ処理手段が、前記ペイロードとその前に付与された前記インナー側ＩＰｖ６ヘッダを暗号化すると共に、前記確保したＥＳＰヘッダの推定データ量分の記憶領域に、ＥＳＰペイロードを設定することを特徴とする処理方法である。
【０００８】
また本発明は、通信装置のコンピュータを、アプリケーション処理部より受信してバッファに記憶されているペイロードについてモバイルＩＰｖ６処理を行うか否かを判定するモバイルＩＰｖ６処理判定手段、前記モバイルＩＰｖ６処理を行うと判定した場合には、前記ペイロードに付与したインナー側ＩＰｖ６ヘッダの前に、ＥＳＰヘッダの推定データ量分の前記バッファの記憶領域を予め確保する推定データ量確保手段、前記確保したＥＳＰヘッダの推定データ量分の記憶領域の前にトンネル化処理によるアウター側ＩＰｖ６ヘッダを付与するトンネル化処理手段、前記ペイロードとその前に付与された前記インナー側ＩＰｖ６ヘッダを暗号化すると共に、前記確保したＥＳＰヘッダの推定データ量分の記憶領域に、ＥＳＰペイロードを設定するＩＰＳｅｃ処理手段、として機能させるためのプログラムである。
【発明の効果】
【０００９】
本発明によれば、予めＩＰＳｅｃ処理で使用する認証、暗号化用のバッファエリアを確保しており、モバイルＩＰｖ６→ＩＰＳｅｃ→モバイルＩＰｖ６の順での処理ではなく、モバイルＩＰｖ６→ＩＰＳｅｃで処理することができ、コピー処理が不要となる。これにより、モバイルＩＰｖ６とＩＰＳｅｃの処理を高速化でき、またメモリエリア（ＲＯＭ／ＲＡＭ）を削減することができる。また、この処理により、トンネル化の処理において管理するレイヤ情報のテーブル等における書き換えのみで実現ができるため、コピーのためのバッファ、処理が不要となる。
また本発明によれば、モバイルＩＰｖ６とＩＰＳｅｃのソフトウェアが独立で動作可能であるため、ＩＰＳｅｃの暗号化・認証処理をソフトウェアからハードウェアへの対応を容易に行うことができる。
また、コピー処理を削減することで、処理量が削減され、通信制御装置の消費電力の削減が可能となる。
【図面の簡単な説明】
【００１０】
【図１】通信装置の構成を示すブロック図である。
【図２】パケット生成処理の処理概要を示す図である。
【図３】ＲＦＣで規定されているＥＳＰヘッダフォーマットを示す図である。
【図４】本実施形態によるＥＳＰヘッダの仮フォーマットを示す図である。
【図５】通信装置の処理フローを示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態による通信装置を図面を参照して説明する。
図１は同実施形態による通信装置の構成を示すブロック図である。
この図において、符号１は通信装置である。そして通信装置１は、通信系ＡＰＬ（アプリケーション）１０１、設定系ＡＰＬ１０２、通信用ＡＰＩ（Application Program Interface）１０３、設定用ＡＰＩ１０４、ＩＫＥ（Internet Key Exchange）処理部１０５、モバイルＩＰｖ６（以下、ＭＩＰｖ６）プロトコル処理部１０６、ＴＣＰ（Transmission Control Protocol）／ＵＤＰ（User Datagram Protocol）処理部１０７、ＩＰｖ６処理部１０８、Ｎｅｔｉｆ（network interface）部１０９、モバイルＩＰｖ６（以下、ＭＩＰｖ６）／ＩＰＳｅｃドライバ処理部１１０、ＳＰＤ（Security Policy Database）／ＳＡＤ（Security Association Database）１１１、ＢＵリスト記憶部１１２、暗号化・認証処理部１１３、イーサネット（登録商標）ドライバ処理部１１４、ルーティングテーブル１１５の各処理部および記憶部を少なくとも備えている。
【００１２】
ここで、通信装置１において、通信系ＡＰＬ１０１は、通信処理を行うアプリケーションプログラムを実行する機能部である。また設定系ＡＰＬ１０２はＩＰＳｅｃ（IP Security Protocol）等における設定をユーザがから受け付ける処理や、各処理部のパラメータを設定するアプリケーションプログラムを実行する機能部である。また通信用ＡＰＩは通信処理に関するアプリケーションプログラムインタフェースの機能部である。また設定用ＡＰＩは設定に関するアプリケーションプログラムインタフェースの機能部である。またＩＫＥ処理部１０５は、ＩＰＳｅｃで利用されているインターネット鍵交換プロトコルＩＫＥ（バージョン２）の機能部である。またＭＩＰｖ６プロトコル処理部１０６は、モバイルＩＰｖ６プロトコルの機能部である。またＴＣＰ／ＵＤＰ処理部１０７はＴＣＰやＵＤＰの各プロトコルの処理を行う機能部である。またＩＰｖ６処理部１０８は、ＩＰｖ６に関する処理を行う処理部である。またＮｅｔｉｆ部１０９は、下位のドライバとのインターフェースであるｎｅｔｉｆの処理を行う機能部である。またＭＩＰｖ６／ＩＰｓｅｃドライバ１１０は、モバイルＩＰｖ６やＩＰＳｅｃに関する処理を行うドライバの機能部であり、通信パケットに、ＭＩＰｖ６機能としてモバイルヘッダの生成を行い、また、ＩＰＳｅｃ機能として暗号化、認証ヘッダを生成するための処理を行う。なお、モバイルＩＰｖ６とは、ＩＰｖ６の拡張仕様の一つであり、移動通信中において、同じＩＰアドレスを用いて途切れることなく通信を継続するための仕組である。またＳＰＤ／ＳＡＤ１１１は、セキュリティポリシーに関する情報や、通信相手ごとの設定情報（通信プロトコル，アルゴリズム、鍵）を記憶するデータベースである。また、ＢＵ（Binding Update）リスト記憶部１１２は、対応付け更新（Binding Update）による対応付け情報（どの相手と通信を行っているかを示す情報）のリストを記憶する記憶部である。また暗号化・認証処理部１１３はＩＰＳｅｃに関する暗号化や認証の処理を行う処理部である。またイーサネット（登録商標）ドライバ処理部１１４はイーサネット（登録商標）に関する通信処理を行う処理部である。またルーティングテーブル１１５は、どの通信をどの装置へ転送するかを記憶する記憶部である。
【００１３】
なお、パケットを送信する場合、通信系ＡＰＬ１０１，通信用ＡＰＩ１０３，ＴＣＰ／ＵＤＰ処理部１０７，ＩＰｖ６処理部１０８，Ｎｅｔｉｆ部１０９の順でパケットが転送され、モバイルＩＰやＩＰＳｅｃの処理が必要な場合に、ＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０に転送されて、トンネル化の処理や、拡張ヘッダ部分の生成の処理が行われ、イーサネット（登録商標）ドライバ処理部１１４を介してパケット送信される。また、受信処理の場合には、イーサネット（登録商標）ドライバ処理部１１４を介して受信し、ＩＰｖ６処理部１０８に転送され、モバイルＩＰやＩＰＳｅｃ用のパケットであれば、ＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０に転送されて、復号化や認証の処理が行われて、拡張ヘッダがはずされ、ＩＰｖ６処理部１０８、ＴＣＰ／ＵＤＰ処理部１０７、通信用ＡＰＩ１０３、通信系ＡＰＬ１０１の順でパケットが処理されていく。
【００１４】
図２はパケット生成処理の処理概要を示す図である。
図３はＲＦＣで規定されているＥＳＰヘッダフォーマットを示す図である。
図４は本実施形態によるＥＳＰヘッダの仮フォーマットを示す図である。
図５は通信装置の処理フローを示す図である。
次に、図１〜図５を用いて本発明の実施形態による通信装置の処理の詳細について説明する。
本実施形態の特徴的構成としては、図１におけるＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０において、ＩＰｖ６の拡張ヘッダを生成する処理と、ＩＰｖ６  ｏｖｅｒ  ＩＰｖ６のトンネル化処理を行う点である。なおパケット生成用のバッファは、各レイヤのパケットヘッダを記憶する。まず通信装置１における送信時の処理について以下説明する。
【００１５】
通信系ＡＰＬ１０１がパケットを送信する場合、通信系ＡＰＬ１０１は、下位層において追加される可能性のある全てのヘッダ長分のサイズの記憶領域をバッファにおいて確保する（ステップＳ１０１）。図２の（１）においてはステップＳ１０１のバッファの記憶領域の確保処理を示している。そして、送信するパケットは、図１で示される通信形ＡＰＬ１０１，ＴＣＰ／ＵＤＰ処理部１０７で処理され、ＩＰｖ６処理部１０８に転送される。ここで、ＩＰｖ６処理部１０８は、ＩＰｖ６  over  ＩＰｖ６のトンネル化処理においてインナー側に格納されている部分を処理し、ＡＰＬペイロードの前にＩＰｖ６ヘッダを付与する（ステップＳ１０２）。図２の（２）においてはステップＳ１０２のＡＰＬペイロードにＩＰｖ６ヘッダを付与する処理を示している。このとき、バッファは、レイヤ３の情報としてインナー側のＡＰＬペイロードの前に付与されたＩＰｖ６ヘッダを特定するための情報と、レイヤ４の情報としてＡＰＬペイロードを特定するための情報とをテーブル等に記憶し管理している。
【００１６】
次に、ＩＰｖ６処理部１０８は、送信するパケットが、モバイルＩＰｖ６の処理を行う必要があるかを判断する（ステップＳ１０３）。このモバイルＩＰｖ６の処理を行う必要があるかの判断において、ＩＰｖ６処理部１０８は、ＭＩＰｖ６プロトコル処理部１０６に問い合わせ、ＭＩＰｖ６プロトコル処理部１０６が、送信するパケットの送信先アドレスより、ルーティングテーブル１１５の検索を行う。そして、ルーティングテーブル１１５に送信するパケットの送信先アドレスと一致するものがあった場合、ＢＵリスト記憶部１１２を参照する。ＢＵリスト記憶部１１２中に送信先アドレスが存在した場合に、モバイルＩＰｖ６処理を行うことになる。ＭＩＰｖ６プロトコル処理部１０６は、その結果をＩＰｖ６処理部１０８へ通知する。そして、ＩＰｖ６処理部１０８は、モバイルＩＰｖ６の処理が必要なければ、そのまま、送信するパケットを、Ｎｅｔｉｆ部１０９を介してイーサネット（登録商標）ドライバ１１４に転送し、当該イーサネット（登録商標）ドライバ１１４が、パケットを通信先の装置へ送信する処理を行う（ステップＳ１０４）。
【００１７】
また、ＩＰｖ６処理部１０８は、ステップＳ１０３の処理において、モバイルＩＰｖ６の処理が必要であると判定した場合、Ｎｅｔｉｆ部１０９を介してＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０へパケットを転送する。そして、ＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０は、送信するパケットのトンネル化処理（アウター側のＩＰｖ６ヘッダ処理）および必要なヘッダ情報を付与する処理を行う。このとき、まずＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０は、ＭＩＰｖ６プロトコル処理部１０６にＡＨ（Authentication Header）／ＥＳＰ（Encapsulating Security Payload）ヘッダのサイズを問合せ（ステップＳ１０５）、そのサイズの領域をバッファに確保する（ステップＳ１０６）。例えば、この確保の処理は、当該サイズの領域についてのアドレス等を記憶しておく。なお、確保するＥＳＰヘッダは、ＲＦＣで規定されているフォーマット（図３）とは異なる、仮フォーマット（図４）となる。
【００１８】
また、ＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０は、トンネル化を行う必要があるため、インナー側のＩＰｖ６ヘッダをレイヤ４として扱うように変更する。つまり、レイヤ３の情報としてインナー側のＡＰＬペイロードの前に付与されたＩＰｖ６ヘッダを特定するための情報を、レイヤ４の情報として書き換える。そしてトンネル化処理によってＥＳＰヘッダの前に付与するアウター側のＩＰｖ６ヘッダをレイヤ３の情報として取り扱うように変更を行う。つまり、レイヤ３の情報としてアウター側のＥＳＰヘッダの前に付与されたＩＰｖ６ヘッダを特定するための情報を、レイヤ３の情報として書き換える。これにより、テーブル等に記憶し管理しているレイヤ３とレイヤ４の情報のバッファにおける記憶アドレスを変更するだけであるため、簡単にトンネル化処理によるバッファの管理が可能となる。図２の（３）はモバイルＩＰｖ６の処理によりバッファ上に生成されたパケットのフォーマットを示す図である。この図においてＥＳＰヘッダ（仮）の部分に、後の処理としてＡＨ（Authentication Header）／ＥＳＰ（Encapsulating Security Payload）ヘッダが格納されることとなる。
【００１９】
そして、モバイルＩＰｖ６の処理が終了すると、ＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０は、ＩＰＳｅｃ処理として、該当のＥＳＰ処理およびＡＨ処理を行い（ステップＳ１０７）、暗号化、認証の処理を実施する（ステップＳ１０８）。図２の（４）はＩＰＳｅｃ処理によりバッファ上に生成されたパケットのフォーマットを示す図である。そして、ＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０は、送信するパケットをイーサネット（登録商標）ドライバ処理部１１４へ転送し、当該イーサネット（登録商標）ドライバ処理部１１４が送信先への送信処理を行う（ステップＳ１０９）。
【００２０】
次に通信装置１における受信時の処理について以下説明する。
ここで、受信時の処理については、送信時の処理とは、逆方向で処理を行う。つまり、受信したパケットは、最初にイーサネット（登録商標）ドライバ処理部１１４が受信し、Ｎｅｔｉｆ部１０９、ＩＰｖ６処理部１０８に順次転送される。そして、ＩＰｖ６処理部１０８は、受信したパケットが、モバイルＩＰｖ６の処理を行う必要があるかを判断する。この判断の処理の具体例は送信時と同様である。そして、モバイルＩＰｖ６の処理が必要でないと判定した場合には、そのままＴＣＰ／ＵＤＰ処理部１０７に渡され、通信用ＡＰＩ１０３を介して通信系ＡＰＬ１０１に転送され処理される。
【００２１】
また、モバイルＩＰｖ６の処理が必要であると判定した場合(この時、図２のＩＰＳｅｃ処理後のようなパケットである)には、ＩＰｖ６処理部１０８は、受信したパケットをＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０に転送する。そしてＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０は、まず、ＩＰＳｅｃ処理にて、複合化、認証処理を実施する。これにより、パケットは、図２のモバイルＩＰｖ６処理後のパケットのフォーマットとなる。そしてＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０は、次に、モバイルＩＰｖ６の処理を開始し、トンネル化されたパケットのレイヤ３のアウター側の処理後、レイヤ４として記憶している値をレイヤ３として変更することでインナー側の処理が可能となる。そして、ＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０は、必要な拡張ヘッダの処理を行い、再度、ＩＰｖ６処理部１０８へ、処理後のパケットを転送する。このとき、パケットは図２のＩＰｖ６処理後のフォーマットとなっている。そして、その後、ＴＣＰ／ＵＤＰ処理部１０７に渡され、通信用ＡＰＩ１０３を介して通信系ＡＰＬ１０１に転送され処理される。
【００２２】
以上、本発明の実施形態について説明したが、上述の処理によれば、予めＩＰＳｅｃ処理で使用する認証、暗号化用のバッファエリアを確保しており、モバイルＩＰｖ６→ＩＰＳｅｃ→モバイルＩＰｖ６の順での処理ではなく、モバイルＩＰｖ６→ＩＰＳｅｃで処理することができ、コピー処理が不要となる。
つまり、モバイルＩＰｖ６の場合、制御用パケットと通常の通信パケットを扱う。その場合のパケットは以下の順となる。制御用パケットの場合、アウター側ＩＰｖ６ヘッダ、ディスティネーションヘッダもしくはタイプ２ルーティングヘッダ、ＡＨヘッダ、ＥＳＰヘッダ、モバイルヘッダの順で作成される。また、通常の通信パケットの場合には、アウター側ＩＰｖ６ヘッダ、ＡＨヘッダ、ＥＳＰヘッダ、インナー側ＩＰｖ６パケット、ペイロードの順で作成される。そして、本実施形態においてＩＰＳｅｃの処理で生成するヘッダは、ＡＨヘッダと、ＥＳＰヘッダであるため、ＩＰＳｅｃ処理より先に処理が行われるモバイルＩＰｖ６の処理において、ＭＩＰｖ６／ＩＰＳｅｃドライバ処理部１１０は、アウター側のＩＰｖ６ヘッダとインナー側のＩＰｖ６ヘッダの間に挿入されるＡＨ、ＥＳＰヘッダを抜いたパケットをモバイル側で作成する。ここで、従来の処理であれば、ＡＨヘッダとＥＳＰヘッダの挿入する領域を設けずに、先にモバイルＩＰｖ６の処理をして、後にＩＰＳｅｃ処理を行うため、ＩＰＳｅｃ処理においてアウター側のＩＰｖ６ヘッダとインナー側のＩＰｖ６ヘッダの間にＡＨヘッダとＥＳＰヘッダを挿入する場合には、一旦アウター側のＩＰｖ６ヘッダをメモリ等にコピーして、インナー側の前にＡＨヘッダとＥＳＰヘッダを挿入し、コピーしたＩＰｖ６ヘッダをＡＨヘッダとＥＳＰヘッダの前に付け直す処理や、インナー側のＩＰｖ６ヘッダやペイロード等のデータをメモリ等に一旦コピーしてアウター側のＩＰｖ６ヘッダの後ろにＡＨヘッダとＥＳＰヘッダを挿入してその後ろにコピーしたインナー側のＩＰｖ６ヘッダやペイロードを付け直す処理を行っていた。しかしながら、本実施形態の処理によればモバイルＩＰｖ６の処理においてアウター側のＩＰｖ６ヘッダとインナー側のＩＰｖ６ヘッダの間に予めＨＡヘッダやＥＳＰヘッダの挿入領域を確保しておくため、上述のコピーの処理をしなくともＩＰＳｅｃの処理において予め確保された領域にＨＡヘッダやＥＳＰヘッダを挿入すれば、そのまま送信が可能となる。これにより、モバイルＩＰｖ６の処理とＩＰＳｅｃの処理を高速化でき、またメモリエリア（ＲＯＭ／ＲＡＭ）を削減することができる。また、この処理により、トンネル化の処理において管理するレイヤ情報のテーブル等における書き換えのみで実現ができるため、コピーのためのバッファ処理が不要となる。
また本発明によれば、モバイルＩＰｖ６とＩＰＳｅｃのソフトウェアが独立で動作可能であるため、ＩＰＳｅｃの暗号化・認証処理をソフトウェアからハードウェアへの対応を容易に行うことができる。
【００２３】
上述の通信装置は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００２４】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００２５】
１０１・・・通信系ＡＰＬ
１０２・・・設定系ＡＰＬ
１０３・・・通信用ＡＰＩ
１０４・・・設定用ＡＰＩ
１０５・・・ＩＫＥ処理部
１０６・・・ＭＩＰｖ６プロトコル処理部
１０７・・・ＴＣＰ／ＵＤＰ処理部
１０８・・・ＩＰｖ６処理部
１０９・・・Ｎｅｔｉｆ処理部
１１０・・・ＭＩＰｖ６／ＩＰＳｅｃドライバ処理部
１１１・・・ＳＰＤ／ＳＡＤ
１１２・・・ＢＵリスト記憶部
１１３・・・暗号化・認証処理部
１１４・・・イーサネット（登録商標）ドライバ
１１５・・・ルーティングテーブル
【図１】
2010206276.tif 000003
【図２】
2010206276.tif 000004
【図３】
2010206276.tif 000005
【図４】
2010206276.tif 000006
【図５】
2010206276.tif 000007