通信装置及びその制御方法、並びにプログラム、ネットワークインタフェース装置
【課題】IPsecのライフタイム情報を引き継いでも通信可能な通信装置及びその制御方法、並びにプログラム、ネットワークインタフェース装置を提供する。
【解決手段】通信装置は、第1の電力モードでの稼働から第2の電力モードでの稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻における第1管理手段により管理された第1ライフタイム情報を記憶手段に記憶するように制御し、第2の電力モードでの稼働から第1の電力モードでの稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻における第2管理手段により管理された第2ライフタイム情報、記憶手段により記憶された移行時刻、及び第1ライフタイム情報から第2ライフタイム情報を補正する。
【解決手段】通信装置は、第1の電力モードでの稼働から第2の電力モードでの稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻における第1管理手段により管理された第1ライフタイム情報を記憶手段に記憶するように制御し、第2の電力モードでの稼働から第1の電力モードでの稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻における第2管理手段により管理された第2ライフタイム情報、記憶手段により記憶された移行時刻、及び第1ライフタイム情報から第2ライフタイム情報を補正する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置及びその制御方法、並びにプログラム、ネットワークインタフェース装置に関し、特に、IPsecで通信を行う通信装置及びその制御方法、並びにプログラム、ネットワークインタフェース装置に関する。
【背景技術】
【0002】
従来より、情報処理システムの待機時の消費電力を削減するための省電力モードが知られている。省電力モードを備える情報処理システムの一例に、メインCPUを備える本体側の情報処理装置と、サブCPUを備えるNIC(Network Interface Card)装置から構成される通信装置とがある。このような通信装置では、省電力モード時は本体側の情報処理装置への電力供給を停止し、消費電力が少ないNIC装置側の各モジュールには通常の電力供給を行った状態で待機することが一般的である。
【0003】
これに関連して、省電力モードへ移行しメインCPUへの電力供給が停止されるときに、メインCPUがサブCPUに対して、応答すべきマルチキャストパケットのアドレスを通知しておくことが開示されている(例えば、特許文献1参照)。これにより、メインCPUに対する電力供給が停止された状態でのマルチキャストパケットの受信に対して、サブCPUがメインCPUの代わりに応答でき、メインCPUの起動が不要となる。そのため、メインCPUに対する電力供給の停止を延長でき、省電力の効果が高まる。
【0004】
また、近年、機密情報の保護のために、ネットワークパケットを暗号化して通信する技術として、IPSec(Internet Protocol Security)の暗号化技術が知られている。これらの技術を用いることで、データを暗号化した状態でネットワークを介して送受信することができる。そのため、情報漏洩の防止が可能となる。また、この場合、省電力モードへの移行時にメインCPUからサブCPUへIPSecのSA情報を引き継ぐことが考えられる。これにより、省電力モードにおいてもサブCPU側のモジュールがネットワークのセッションを引き継いで通信することが可能となる。
【0005】
このように、本体側の情報処理装置が省電力モードに移行したときに、IPSecのSA情報をNIC装置に引き継ぐことで、省電力モードにおいてもNIC装置が本体側の情報処理装置の代わりに受信パケットに対する応答できる。
【0006】
また、このときSA情報内のコネクション確立時からの残り時間とデータ転送量を監視して、IPSecセッションのライフタイム情報を管理している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−259906号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、SA情報の引き継ぎの際に、情報処理装置側とNIC装置間でSA情報の引き継ぎによって生じる処理時間が考慮されない環境では、セッションのライフタイム情報を正確に管理できず、正常にIPSecの通信を行えない場合がある。この処理時間とは、情報処理装置側とNIC装置側でのSA情報の転送に要する時間と、各装置がSA情報を受け取ってから実際に各装置内のIPSecモジュールを用いて管理を開始するまでの時間である。
【0009】
つまり、情報処理装置側からNIC側へSA情報を引き継ぐ場合、情報処理装置側からNIC装置側へSA情報の転送を開始した時点から、省電力モードへの移行が完了してNIC装置側のIPSecモジュールがNIC装置側のタイマーなどを用いてSA情報の管理を開始する時点までの時間が、IPSecセッションのライフタイム情報に反映されないこととなる。
【0010】
また同様に、NIC装置側から情報処理装置側へSA情報を引き継ぐ場合、NIC装置側から本体側へSA情報の転送を開始した時点から、省電力モードからの復帰が完了して情報処理装置側のIPSecモジュールが本体側のタイマーなどを用いてSA情報の管理を開始する時点までの時間が、IPSecセッションのライフタイム情報に反映されないこととなる。
【0011】
このように、セッション確立時からの本来のライフタイム情報と、省電力モードへの移行が生じた場合のライフタイム情報とでは、省電力モードへの移行と復帰が起こるごとに差異が生じる。そのため、省電力モードへの移行と復帰が多く繰り返された場合には、前記の差異が分単位などの大きいものとなる。このような場合、ライフタイム情報が示す期限を迎えてもセッションが正常に終了しないことや、自装置内では期限内のセッションであるにもかかわらず実際の通信は不可能であるなどの問題が生じることがある。
【0012】
上述したように、従来の技術では、ライフタイム情報を引き継いだ場合に通信が不可能となることがあった。
【0013】
本発明の目的は、IPsecのライフタイム情報を引き継いでも通信可能な通信装置及びその制御方法、並びにプログラム、そしてネットワークインタフェース装置を提供することにある。
【課題を解決するための手段】
【0014】
上記目的を達成するために、請求項1記載の通信装置は、第1の電力モード、及び前記第1の電力よりも消費電力が小さい第2の電力モードのいずれかで稼働可能な通信装置であって、前記第1の電力モードで稼働している場合に、IPsecのライフタイム情報を管理する第1管理手段と、前記第2の電力モードで稼働する場合に前記ライフタイム情報を管理する第2管理手段と、前記第1の電力モードでの稼働から前記第2の電力モードでの稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻における前記第1管理手段により管理された第1ライフタイム情報を記憶手段に記憶するように制御する記憶制御手段と、前記第2の電力モードでの稼働から前記第1の電力モードでの稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻における前記第2管理手段により管理された第2ライフタイム情報、前記記憶手段により記憶された前記移行時刻、及び第1ライフタイム情報から前記第2ライフタイム情報を補正する補正手段とを備えたことを特徴とする。
【発明の効果】
【0015】
本発明によれば、IPsecのライフタイム情報を引き継いでも通信可能な通信装置及びその制御方法、並びにプログラム、そしてネットワークインタフェース装置を提供することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施の形態に係る通信装置を含むネットワークの全体図である。
【図2】図1における通信装置のハードウェア構成を示すブロック図である。
【図3】図1における通信装置のソフトウェア構成を示すブロック図である。
【図4】図2における情報処理装置が省電力モードに移行する際に、NICにSA情報を引き継ぐ引き継ぎ処理の手順を示すフローチャートである。
【図5】図2における情報処理装置が省電力モードから通常電力モードに復帰する際に、NICからSA情報を引き継ぐ復帰処理の手順を示すフローチャートである。
【図6】図2における情報処理装置が通常電力モードから省電力モードへ移行する際のライフタイム補正部により実行される記録処理の手順を示すフローチャートである。
【図7】図2における情報処理装置が省電力モードから通常電力モードへ復帰する際のライフタイム補正部の復帰処理の手順を示すフローチャートである。
【図8】本発明の実施の形態に係る通信装置を含むネットワークの全体図である。
【図9】情報処理装置が通常電力モードから省電力モードへ移行する際のライフタイム補正部の移行処理の手順を示すフローチャートである。
【図10】情報処理装置が省電力モードから通常電力モードへ復帰する際のライフタイム補正部の復帰処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態について図面を参照しながら詳述する。
【0018】
まず、本実施の形態で用いられるIPSecは、特定の認証アルゴリズムや暗号アルゴリズムを用いて、ネットワーク上を流れるデータの盗聴や改ざんを防ぐためのプロトコルである。パケットフォーマットを含むIPSec及びIKEの詳細については、RFC(Request For Comment)に定義されている。
【0019】
また、本実施の形態では、通信装置が暗号化通信を実行する場合の処理について説明した第1の実施の形態と、同種通信装置のコネクション(SA)が存在する場合のライフタイム情報(以下、「ライフタイム」という)の補正処理について説明した第2の実施形態とが記載される。
【0020】
[第1の実施形態]
図1は、本発明の実施の形態に係る通信装置100を含むネットワークの全体図である。
【0021】
図1において、通信装置100とPC110とがLAN120を介して接続され、相互に通信可能となっている。通信装置100及びPC110には、それぞれIPSec通信を実行するための構成が備えられており、通信装置100とPC110との通信は、全てIPSecが適用されているものとする。
【0022】
図2は、図1における通信装置100のハードウェア構成を示すブロック図である。
【0023】
図2において、通信装置100は、情報処理装置(上位装置)210、NIC(ネットワークインタフェース装置)220、操作部230、スキャナ240、及びプリンタ250を含む。情報処理装置210は、NIC220を介してLAN120に接続されている。
【0024】
情報処理装置210は、CPU211、拡張I/F212、ROM213、RAM214、HDD215、NVRAM216、操作部I/F217、スキャナI/F218、及びプリンタI/F219を含む。なお、各々の「I/F」は、インターフェースを示している。
【0025】
CPU211は、情報処理装置210のソフトウェアプログラムを実行し、装置全体の制御を行う。RAM214は、ランダムアクセスメモリであり、CPU211が装置を制御する際に、一時的なデータの格納などに使用される。ROM213は、リードオンリーメモリであり、装置のブートプログラムや固定パラメータ等が格納されている。
【0026】
HDD215は、ハードディスクドライブであり、様々なデータの格納に使用される。NVRAM216は、不揮発性のメモリであり、情報処理装置210の各種設定値を保存するためのものである。操作部I/F217は、ユーザにより操作される操作部230を制御し、操作部230に備えられた液晶パネルに各種操作画面を表示させるとともに、操作画面を介して入力されるユーザからの指示をCPU211に伝達する。
【0027】
スキャナI/F218は、スキャナ240を制御する。スキャナ240は、原稿上の画像を読み取って画像データを生成する。プリンタI/F219は、プリンタ250を制御する。プリンタ250は、画像データに基づく画像を記録媒体上に印刷する。拡張I/F212は、NIC220側の拡張I/F222と接続され、NIC220を介してLAN120上の外部装置(PC110)とのデータ通信を制御する。
【0028】
一方、NIC220は、CPU221、拡張I/F222、ROM223、RAM224(記憶手段)、及びネットワークI/F225を含む。
【0029】
CPU221は、NIC220のソフトウェアプログラムを実行し、NIC220全体の制御を行う。RAM224は、ランダムアクセスメモリであり、CPU221がNIC220を制御する際に、一時的なデータの格納などに使用される。ROM223は、リードオンリーメモリであり、装置のブートプログラムや固定パラメータ等が格納されている。
【0030】
拡張I/F222は、情報処理装置210側の拡張I/F212と接続され、情報処理装置210とNIC220との間のデータ通信を制御する。ネットワークI/F225は、LAN120に接続され、NIC220(情報処理装置210、通信装置100)とLAN120上の外部装置(PC110)との間のデータ通信を制御する。
【0031】
情報処理装置210は、通常電力モードと、通常電力モードよりも消費電力が小さい省電力モードのいずれかを一方で稼働可能となっている。通常電力モードから省電力モードに移行する場合は、CPU211、HDD215、NVRAM216などに対する電力供給が停止される。一方、NIC220は、情報処理装置210とは別のACIC(Application Specific Integrated Circuit)で動作している。このため、情報処理装置210が省電力モードに移行した状態においてもNIC220に対しては電力供給が継続され、後述する代理応答機能を実現する。
【0032】
図3は、図1における通信装置100のソフトウェア構成を示すブロック図である。
【0033】
図3において、情報処理装置210におけるソフトウェア構成は、スリープ制御部310、IPsec制御部308、IPsec処理部309、ライフタイム補正部311、及びCPU間通信部307を含む。
【0034】
スリープ制御部310は、通常電力モード(第1の電力モード)と、通常電力より消費電力が小さい省電力で稼働する省電力モード(第2の電力モード)の切り替え制御を行う。IPSec処理部309は、IPSec通信の実行に必要な情報を取得するためのネゴシエーション処理や、外部装置との間で送受信するパケットの暗号化/復号化処理を行う。
【0035】
IPSec制御部308(第1管理手段)は、IPSec処理部309を制御するとともに、IPSec処理部309がIPSecに関する処理を行う際に必要となる情報を保持し、IPsecのライフタイム情報を管理する。CPU間通信部307は、拡張I/F212及び拡張I/F222を介して、NIC220上で動作するソフトウェアとのデータ送受信を行う。
【0036】
ライフタイム補正部311(補正手段)は、省電力モードから通常電力モードへ復帰した際に、SA情報に生じたずれを補正する。ここでは、RTC(Real Time Clock)及びSNTP(Simple Network Time Protocol)を基に補正を行うが、RTC及びSNTPに限定されず、リアルタイムで時刻が取得できる手法であれば構わない。
【0037】
一方、NIC220におけるソフトウェア構成は、代理応答処理部301(代理通信手段)、IPsec送信処理ライブラリ302、IPsec制御部303、IPsec処理部304、ネットワークI/F制御部305、及びCPU間通信部306を含む。
【0038】
CPU間通信部306は、拡張I/F222及び拡張I/F212を介して、情報処理装置210上で動作するソフトウェアとのデータ送受信を行う。
【0039】
IPSec処理部304は、外部装置との間で送受信するパケットの暗号化/復号化処理を行う。なお、ここでは、IPSec処理部304は、IPSec処理部309とは異なり、IPSec通信の実行に必要な情報を取得するためのネゴシエーションを行う構成は備えていないものとするが、IPSec処理部309と同一の構成であっても構わない。IPSec制御部303(第2管理手段)は、IPSec処理部304を制御するとともに、IPSec処理部304がIPSecに関する処理を行う際に必要となる情報を保持し、IPsecのライフタイム情報を管理する。
【0040】
ネットワークI/F制御部305は、ネットワークI/F225によるパケットの送受信を制御する。なお、ネットワークI/F制御部305は、情報処理装置210が通常電力モードと省電力モードのどちらで動作しているかを常に把握している。そして、ネットワークI/F制御部305は、情報処理装置210が通常電力モードで動作している場合は、LAN120から受信するパケットを情報処理装置210に転送する。また、情報処理装置210が省電力モードで動作している場合は、LAN120から受信するパケットをIPSec処理部304に転送する。
【0041】
代理応答処理部301は、省電力モードでの稼働中にIPSec処理部304から転送される受信パケットを受け取る。IPSec処理部304がパケットを受信するのは、情報処理装置210が省電力モードで動作している場合のみであるため、代理応答処理部301も、この場合にのみ動作する。
【0042】
代理応答処理部301は、受信したパケットを3種類に分類する。この3種類とは、「破棄すべきパケット」、「情報処理装置210に転送すべきパケット」及び「代理で応答すべきパケット」である。「破棄すべきパケット」とは、自装置宛てのパケットではない場合など、無視してもよい(応答する必要がない)パケットであり、これに分類された場合、受信したパケットは破棄される。
【0043】
「情報処理装置210に転送すべきパケット」とは、受信したパケットに対して何らかの処理が必要であるが、NIC220だけでは必要な処理を行うことができないパケットである。このようなパケットを受信した場合、代理応答処理部301は、情報処理装置210を省電力モードから通常電力モードに復帰させ、受信したパケットを情報処理装置210に転送する。
【0044】
「代理で応答すべきパケット」とは、情報処理装置210の代わりにNIC220が応答を行うパケットである。この場合、代理応答処理部301は、IPSec送信処理ライブラリ302を利用して、応答として送信するパケットを暗号化してから送信する。
【0045】
IPSec送信処理ライブラリ302は、API(Application Program Interface)を提供するモジュールであり、代理応答処理部301からインパラメータとして渡されたパケットに対して、必要に応じて暗号化処理を施す。そして、暗号化したパケットをAPI返り値とともにアウトパラメータとして出力する。
【0046】
図4は、図2における情報処理装置210が省電力モードに移行する際に、NIC220にSA情報を引き継ぐ引き継ぎ処理の手順を示すフローチャートである。
【0047】
図4に示される引き継ぎ処理は、CPU211により実行される。
【0048】
通常電力状態において、IPSec制御部308は、SA情報の更新および管理を行う(ステップS401)。次いで、予め登録されているソフトウェアモジュールがスリープ状態へ移行しても問題ないかを確認するために、各モジュールに対してスリープ移行の可否を問い合わせる。そして、省電力モードに移行可能か否か判別する(ステップS402)。本実施形態では、IPSec制御部308が、スリープ移行可否の問い合わせ対象として登録されているものとする。ここで、スリープ移行“不可”となる場合とは、例えばIPSec処理部309が外部装置とネゴシエーションを行っている場合である。
【0049】
ステップS402の判別の結果、省電力モードに移行不可能なとき(ステップS402でNO)、パケットを受信したか否か判別する(ステップS403)。受信パケットがないときは(ステップS403でNO)、ステップS401に戻る。受信パケットがあるときは(ステップS403でYES)、IPSec処理部309で受信パケットの処理を行い(ステップS404)、ステップS401に戻る。
【0050】
ステップS402の判別の結果、省電力モードに移行可能なとき(ステップS402でYES)、ライフタイム補正部311でRTC又はSNTPを用いて、NIC220にSA情報を転送する直前の時刻、すなわち省電力モード移行時の移行時刻を取得し、ライフタイム補正部311内(例えばRAM214のライフタイム補正部の占有領域)に記録する(ステップS405)。その後、情報処理装置210からNIC220へ、CPU間通信部306とCPU間通信部307を介して、SA情報を転送することで引き継いで(ステップS408)、本処理を終了する。
【0051】
図5は、図2における情報処理装置210が省電力モードから通常電力モードに復帰する際に、NIC220からSA情報を引き継ぐ復帰処理の手順を示すフローチャートである。
【0052】
図5において、省電力状態では、IPSec制御部303によりSA情報の更新及び管理が行われる(ステップS501)。
【0053】
次いで、IPsec制御部308により更新及び管理でされているSA情報のライフタイムと、省電力モードからの復帰条件を比較することで復帰条件を満たしているか否か判別する(ステップS502)。
【0054】
ステップS502の判別の結果、復帰条件を満たさないとき(ステップS502でNO)、代理応答処理部301によりNIC220が代理で応答するべき受信パケットがあるか否かを判別する(ステップS503)。代理で応答するべき受信パケットについては、省電力移行前に情報処理装置210からNIC220に対して設定されている。ステップS503の判別の結果、代理で応答すべき受信パケットがないとき(ステップS503でNO)、ステップS501に戻る。応答すべき受信パケットがあるとき(ステップS503でYES)、IPSec処理部309で受信パケットの処理を行い(ステップS504)、ステップS501に戻る。
【0055】
ステップS502の判別の結果、省電力モード復帰条件が満たされていると判別されたとき(ステップS502でYES)、NIC220から情報処理装置210へ、CPU間通信部307とCPU間通信部306を介して、SA情報を転送することで情報処理装置210にSA情報を引き継ぐ(ステップS505)。そして、引き継いだSA情報に対し、ライフタイム補正部311でSA情報のライフタイムを修正して(ステップS506)、本処理を終了する。
【0056】
図6は、図2における情報処理装置210が通常電力モードから省電力モードへ移行する際のライフタイム補正部311により実行される記録処理の手順を示すフローチャートである。
【0057】
この図6に示されるフローチャートは、図4のステップS405の処理の詳細を示している。
【0058】
図6において、省電力移行時に、ライフタイム補正部311は、NIC220に転送するSA情報のライフタイム(経過時間)(第1ライフタイム情報)をRAM214に記録するように制御する(ステップS601)(記憶制御手段)。
【0059】
次いで、SNTPを用いて現在時刻を取得するか否か判別する(ステップS602)。ステップS602の判別の結果、SNTPを用いて現在時刻を取得できたとき(ステップS602でYES)、その取得した時間を記録して(ステップS603)、本処理を終了する。一方、取得できなかったとき(ステップS602でNO)、情報処理装置210内のRTCを用いて現在時刻を記録して(ステップS604)、本処理を終了する。
【0060】
図7は、図2における情報処理装置210が省電力モードから通常電力モードへ復帰する際のライフタイム補正部311の復帰処理の手順を示すフローチャートである。
【0061】
この図7に示されるフローチャートは、図5のステップS506の処理の詳細を示している。
【0062】
図7において、通常電力モード復帰時に、省電力モード移行時の時刻を、SNTPを用いて記録したか否かを判別する(ステップS701)。ステップS701の判別の結果、省電力モード移行時の時刻の記録にSNTPを用いたとき(ステップS701でYES)、SNTPを用いて現在時刻を取得し(ステップS702)、ステップS704に進む。一方、SNTPを用いていないとき(ステップS701でNO)、RTCを用いて現在時刻を取得し(ステップS703)、ステップS704に進む。
【0063】
次いで、省電力モード移行時に記録した経過時間とNIC220から受信したSA情報(第2ライフタイム情報)のライフタイムが示す残り時間から、その差分を算出する(ステップS704)。より詳細には、残り時間から経過時間が定まるので、その経過時間と省電力モード移行時に記録した経過時間との差分を算出する。
【0064】
そして、省電力モード移行時に記録した移行時刻と、ステップS702またはステップS703のいずれかで取得した時刻から、その差分を算出する(ステップS705)。
【0065】
次いで、ステップS704とステップS705で算出したそれぞれの差分が等しいか否かを判別する(ステップS706)。ステップS706の判別の結果、差分が一致するとき(ステップS706でYES)、SA情報のライフタイムの補正は行わずに本処理を終了する。一方、これらの差分が異なるとき(ステップS706でNO)、ステップS704とステップS705で算出したそれぞれの差分から、更に差分を算出し、その差分を用いてNIC220から受信したライフタイムの残り時間を補正して(ステップS707)、本処理を終了する。
【0066】
図4〜図7の処理によれば、通常電力での稼働から省電力での稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻におけるIPsec制御部308により管理された第1ライフタイム情報をRAM214に記憶するように制御し、省電力での稼働から通常電力での稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻におけるIPsec制御部303により管理された第2ライフタイム情報、RAM214により記憶された移行時刻、及び第1ライフタイム情報から第2ライフタイム情報を補正するので、IPsecのライフタイム情報を引き継いでも通信可能とすることができる。
【0067】
[第2の実施形態]
第2の実施形態では、同種通信装置のコネクション(SA)が存在する場合のライフタイムの補正処理について説明する。
【0068】
図8は、本発明の実施の形態に係る通信装置800を含むネットワークの全体図である。
【0069】
通信装置800と通信装置810とがLAN820を介して接続され、相互に通信可能となっている。通信装置800及び通信装置810には、同一のシステム構成がとられ、それぞれIPSec通信を実行するための構成が備えられている。そして、通信装置800と通信装置810との通信は、全てIPSecが適用されているものとする。なお、通信装置800と通信装置810は、第1の実施形態の通信装置100と同様のハードウェア構成とソフトウェア構成を持つものとする。従って、図2、図3を用いながらの説明となる。
【0070】
図9は、情報処理装置210が通常電力モードから省電力モードへ移行する際のライフタイム補正部の移行処理の手順を示すフローチャートである。
【0071】
図9において、省電力移行時に、ライフタイム補正部311は、NIC220に転送するSA情報からライフタイム(経過時間)を記録する(ステップS901)。
【0072】
次いで、ライフタイム補正部311は、保持するSA内に補正用の対向システムとなる通信中の通信装置とのセッションが存在するか否かを判別する(ステップS902)(判別手段)。ステップS902の判別の結果、セッションが存在するとき(ステップS902でYES)、ライフタイム補正部311は、省電力モードからの復帰時の補正用の対向システムとして該当するセッション(ここでは通信装置810)を設定して(ステップS902)、その設定した対向システムからライフタイムを取得し、そのライフタイムを記録して(ステップS904)、本処理を終了する。すなわち、第1の実施の形態におけるIPsec制御部308により管理された第1ライフタイム情報に代えて、相手装置(ここでは通信装置810)から取得したライフタイム情報をRAM214に記憶するように制御する。
【0073】
一方、該当するセッションが存在しないとき(ステップS902でNO)、情報処理装置210内のRTCを用いて現在時刻を記録して(ステップS905)、本処理を終了する。
【0074】
図10は、情報処理装置210が省電力モードから通常電力モードへ復帰する際のライフタイム補正部の復帰処理の手順を示すフローチャートである。
【0075】
図10において、通常電力モード復帰時に、省電力モード移行時に補正用の対向システムが設定されたか否かを判別する(ステップS1001)。ステップS1001の判別の結果、省電力モード移行時に前記対向システムが設定されているとき(ステップS1001でYES)、対向システムから、対向システムのSAの復帰時刻におけるライフタイムを取得する(ステップS1002)。次いで、省電力モード移行時に記録した対向システムのライフタイムと、ステップS1002で対向システムから受信したライフタイムを比較して、省電力モード中のライフタイムの経過時間を算出する(ステップS1003)。そして、省電力モード移行時に記録したSAのライフタイムに省電力モード中のライフタイムの経過時間を反映させ、NIC220から受信したライムタイムを差し替えて、SAのライフタイムを補正して(ステップS1004)、本処理を終了する。
【0076】
一方、S1001の判別の結果、対向システムの設定されていないとき(ステップS1001でNO)、RTCを用いて現在時刻を取得する(ステップS1005)。
【0077】
次いで、省電力モード移行時に記録したライフタイムの残り時間とNIC220から受信したSA情報のライフタイム内の残り時間から、その差分を算出する(ステップS1006)。より詳細には、残り時間から経過時間が定まるので、その経過時間と省電力モード移行時に記録した経過時間との差分を算出する。
【0078】
そして、省電力モード移行時に記録した時刻と、ステップS1006で取得した時刻から、その差分を算出する(ステップS1007)。
【0079】
次いで、ステップS1006とステップS1007で算出したそれぞれの差分が等しいかを判別する(ステップS1008)。ステップS1008の判別の結果、これらの差分が一致するとき(ステップS1008でYES)、SA情報のライフタイムの補正は行わずに本処理を終了する。一方、ステップS1008の判別の結果、これらの差分が異なるとき(ステップS1008でNO)、ステップS706とステップS707で算出したそれぞれの差分から、更に差分を算出し、その差分を用いてNIC220から受信したライフタイムの残り時間を補正して(ステップS1009)、本処理を終了する。
【0080】
このように、図10の処理では、第1の実施の形態におけるIPsec制御部303により管理された第2ライフタイム情報に代えて、相手装置(ここでは通信装置810)から取得した前記復帰時刻におけるライフタイム情報から第2ライフタイム情報を補正するようになっている。
【0081】
(他の実施の形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0082】
100,800,810 通信装置
110 PC
120 LAN
210 情報処理装置
211,221 CPU
212,222 拡張I/F
213,223 ROM
214,224 RAM
215 HDD
216 NVRAM
220 NIC
301 代理応答処理部
302 IPsec送信処理ライブラリ
303,308 IPsec制御部
304,309 IPsec処理部
305 ネットワークI/F制御部
306,307 CPU間通信部
310 スリープ制御部
311 ライフタイム補正部
【技術分野】
【0001】
本発明は、通信装置及びその制御方法、並びにプログラム、ネットワークインタフェース装置に関し、特に、IPsecで通信を行う通信装置及びその制御方法、並びにプログラム、ネットワークインタフェース装置に関する。
【背景技術】
【0002】
従来より、情報処理システムの待機時の消費電力を削減するための省電力モードが知られている。省電力モードを備える情報処理システムの一例に、メインCPUを備える本体側の情報処理装置と、サブCPUを備えるNIC(Network Interface Card)装置から構成される通信装置とがある。このような通信装置では、省電力モード時は本体側の情報処理装置への電力供給を停止し、消費電力が少ないNIC装置側の各モジュールには通常の電力供給を行った状態で待機することが一般的である。
【0003】
これに関連して、省電力モードへ移行しメインCPUへの電力供給が停止されるときに、メインCPUがサブCPUに対して、応答すべきマルチキャストパケットのアドレスを通知しておくことが開示されている(例えば、特許文献1参照)。これにより、メインCPUに対する電力供給が停止された状態でのマルチキャストパケットの受信に対して、サブCPUがメインCPUの代わりに応答でき、メインCPUの起動が不要となる。そのため、メインCPUに対する電力供給の停止を延長でき、省電力の効果が高まる。
【0004】
また、近年、機密情報の保護のために、ネットワークパケットを暗号化して通信する技術として、IPSec(Internet Protocol Security)の暗号化技術が知られている。これらの技術を用いることで、データを暗号化した状態でネットワークを介して送受信することができる。そのため、情報漏洩の防止が可能となる。また、この場合、省電力モードへの移行時にメインCPUからサブCPUへIPSecのSA情報を引き継ぐことが考えられる。これにより、省電力モードにおいてもサブCPU側のモジュールがネットワークのセッションを引き継いで通信することが可能となる。
【0005】
このように、本体側の情報処理装置が省電力モードに移行したときに、IPSecのSA情報をNIC装置に引き継ぐことで、省電力モードにおいてもNIC装置が本体側の情報処理装置の代わりに受信パケットに対する応答できる。
【0006】
また、このときSA情報内のコネクション確立時からの残り時間とデータ転送量を監視して、IPSecセッションのライフタイム情報を管理している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−259906号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、SA情報の引き継ぎの際に、情報処理装置側とNIC装置間でSA情報の引き継ぎによって生じる処理時間が考慮されない環境では、セッションのライフタイム情報を正確に管理できず、正常にIPSecの通信を行えない場合がある。この処理時間とは、情報処理装置側とNIC装置側でのSA情報の転送に要する時間と、各装置がSA情報を受け取ってから実際に各装置内のIPSecモジュールを用いて管理を開始するまでの時間である。
【0009】
つまり、情報処理装置側からNIC側へSA情報を引き継ぐ場合、情報処理装置側からNIC装置側へSA情報の転送を開始した時点から、省電力モードへの移行が完了してNIC装置側のIPSecモジュールがNIC装置側のタイマーなどを用いてSA情報の管理を開始する時点までの時間が、IPSecセッションのライフタイム情報に反映されないこととなる。
【0010】
また同様に、NIC装置側から情報処理装置側へSA情報を引き継ぐ場合、NIC装置側から本体側へSA情報の転送を開始した時点から、省電力モードからの復帰が完了して情報処理装置側のIPSecモジュールが本体側のタイマーなどを用いてSA情報の管理を開始する時点までの時間が、IPSecセッションのライフタイム情報に反映されないこととなる。
【0011】
このように、セッション確立時からの本来のライフタイム情報と、省電力モードへの移行が生じた場合のライフタイム情報とでは、省電力モードへの移行と復帰が起こるごとに差異が生じる。そのため、省電力モードへの移行と復帰が多く繰り返された場合には、前記の差異が分単位などの大きいものとなる。このような場合、ライフタイム情報が示す期限を迎えてもセッションが正常に終了しないことや、自装置内では期限内のセッションであるにもかかわらず実際の通信は不可能であるなどの問題が生じることがある。
【0012】
上述したように、従来の技術では、ライフタイム情報を引き継いだ場合に通信が不可能となることがあった。
【0013】
本発明の目的は、IPsecのライフタイム情報を引き継いでも通信可能な通信装置及びその制御方法、並びにプログラム、そしてネットワークインタフェース装置を提供することにある。
【課題を解決するための手段】
【0014】
上記目的を達成するために、請求項1記載の通信装置は、第1の電力モード、及び前記第1の電力よりも消費電力が小さい第2の電力モードのいずれかで稼働可能な通信装置であって、前記第1の電力モードで稼働している場合に、IPsecのライフタイム情報を管理する第1管理手段と、前記第2の電力モードで稼働する場合に前記ライフタイム情報を管理する第2管理手段と、前記第1の電力モードでの稼働から前記第2の電力モードでの稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻における前記第1管理手段により管理された第1ライフタイム情報を記憶手段に記憶するように制御する記憶制御手段と、前記第2の電力モードでの稼働から前記第1の電力モードでの稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻における前記第2管理手段により管理された第2ライフタイム情報、前記記憶手段により記憶された前記移行時刻、及び第1ライフタイム情報から前記第2ライフタイム情報を補正する補正手段とを備えたことを特徴とする。
【発明の効果】
【0015】
本発明によれば、IPsecのライフタイム情報を引き継いでも通信可能な通信装置及びその制御方法、並びにプログラム、そしてネットワークインタフェース装置を提供することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施の形態に係る通信装置を含むネットワークの全体図である。
【図2】図1における通信装置のハードウェア構成を示すブロック図である。
【図3】図1における通信装置のソフトウェア構成を示すブロック図である。
【図4】図2における情報処理装置が省電力モードに移行する際に、NICにSA情報を引き継ぐ引き継ぎ処理の手順を示すフローチャートである。
【図5】図2における情報処理装置が省電力モードから通常電力モードに復帰する際に、NICからSA情報を引き継ぐ復帰処理の手順を示すフローチャートである。
【図6】図2における情報処理装置が通常電力モードから省電力モードへ移行する際のライフタイム補正部により実行される記録処理の手順を示すフローチャートである。
【図7】図2における情報処理装置が省電力モードから通常電力モードへ復帰する際のライフタイム補正部の復帰処理の手順を示すフローチャートである。
【図8】本発明の実施の形態に係る通信装置を含むネットワークの全体図である。
【図9】情報処理装置が通常電力モードから省電力モードへ移行する際のライフタイム補正部の移行処理の手順を示すフローチャートである。
【図10】情報処理装置が省電力モードから通常電力モードへ復帰する際のライフタイム補正部の復帰処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態について図面を参照しながら詳述する。
【0018】
まず、本実施の形態で用いられるIPSecは、特定の認証アルゴリズムや暗号アルゴリズムを用いて、ネットワーク上を流れるデータの盗聴や改ざんを防ぐためのプロトコルである。パケットフォーマットを含むIPSec及びIKEの詳細については、RFC(Request For Comment)に定義されている。
【0019】
また、本実施の形態では、通信装置が暗号化通信を実行する場合の処理について説明した第1の実施の形態と、同種通信装置のコネクション(SA)が存在する場合のライフタイム情報(以下、「ライフタイム」という)の補正処理について説明した第2の実施形態とが記載される。
【0020】
[第1の実施形態]
図1は、本発明の実施の形態に係る通信装置100を含むネットワークの全体図である。
【0021】
図1において、通信装置100とPC110とがLAN120を介して接続され、相互に通信可能となっている。通信装置100及びPC110には、それぞれIPSec通信を実行するための構成が備えられており、通信装置100とPC110との通信は、全てIPSecが適用されているものとする。
【0022】
図2は、図1における通信装置100のハードウェア構成を示すブロック図である。
【0023】
図2において、通信装置100は、情報処理装置(上位装置)210、NIC(ネットワークインタフェース装置)220、操作部230、スキャナ240、及びプリンタ250を含む。情報処理装置210は、NIC220を介してLAN120に接続されている。
【0024】
情報処理装置210は、CPU211、拡張I/F212、ROM213、RAM214、HDD215、NVRAM216、操作部I/F217、スキャナI/F218、及びプリンタI/F219を含む。なお、各々の「I/F」は、インターフェースを示している。
【0025】
CPU211は、情報処理装置210のソフトウェアプログラムを実行し、装置全体の制御を行う。RAM214は、ランダムアクセスメモリであり、CPU211が装置を制御する際に、一時的なデータの格納などに使用される。ROM213は、リードオンリーメモリであり、装置のブートプログラムや固定パラメータ等が格納されている。
【0026】
HDD215は、ハードディスクドライブであり、様々なデータの格納に使用される。NVRAM216は、不揮発性のメモリであり、情報処理装置210の各種設定値を保存するためのものである。操作部I/F217は、ユーザにより操作される操作部230を制御し、操作部230に備えられた液晶パネルに各種操作画面を表示させるとともに、操作画面を介して入力されるユーザからの指示をCPU211に伝達する。
【0027】
スキャナI/F218は、スキャナ240を制御する。スキャナ240は、原稿上の画像を読み取って画像データを生成する。プリンタI/F219は、プリンタ250を制御する。プリンタ250は、画像データに基づく画像を記録媒体上に印刷する。拡張I/F212は、NIC220側の拡張I/F222と接続され、NIC220を介してLAN120上の外部装置(PC110)とのデータ通信を制御する。
【0028】
一方、NIC220は、CPU221、拡張I/F222、ROM223、RAM224(記憶手段)、及びネットワークI/F225を含む。
【0029】
CPU221は、NIC220のソフトウェアプログラムを実行し、NIC220全体の制御を行う。RAM224は、ランダムアクセスメモリであり、CPU221がNIC220を制御する際に、一時的なデータの格納などに使用される。ROM223は、リードオンリーメモリであり、装置のブートプログラムや固定パラメータ等が格納されている。
【0030】
拡張I/F222は、情報処理装置210側の拡張I/F212と接続され、情報処理装置210とNIC220との間のデータ通信を制御する。ネットワークI/F225は、LAN120に接続され、NIC220(情報処理装置210、通信装置100)とLAN120上の外部装置(PC110)との間のデータ通信を制御する。
【0031】
情報処理装置210は、通常電力モードと、通常電力モードよりも消費電力が小さい省電力モードのいずれかを一方で稼働可能となっている。通常電力モードから省電力モードに移行する場合は、CPU211、HDD215、NVRAM216などに対する電力供給が停止される。一方、NIC220は、情報処理装置210とは別のACIC(Application Specific Integrated Circuit)で動作している。このため、情報処理装置210が省電力モードに移行した状態においてもNIC220に対しては電力供給が継続され、後述する代理応答機能を実現する。
【0032】
図3は、図1における通信装置100のソフトウェア構成を示すブロック図である。
【0033】
図3において、情報処理装置210におけるソフトウェア構成は、スリープ制御部310、IPsec制御部308、IPsec処理部309、ライフタイム補正部311、及びCPU間通信部307を含む。
【0034】
スリープ制御部310は、通常電力モード(第1の電力モード)と、通常電力より消費電力が小さい省電力で稼働する省電力モード(第2の電力モード)の切り替え制御を行う。IPSec処理部309は、IPSec通信の実行に必要な情報を取得するためのネゴシエーション処理や、外部装置との間で送受信するパケットの暗号化/復号化処理を行う。
【0035】
IPSec制御部308(第1管理手段)は、IPSec処理部309を制御するとともに、IPSec処理部309がIPSecに関する処理を行う際に必要となる情報を保持し、IPsecのライフタイム情報を管理する。CPU間通信部307は、拡張I/F212及び拡張I/F222を介して、NIC220上で動作するソフトウェアとのデータ送受信を行う。
【0036】
ライフタイム補正部311(補正手段)は、省電力モードから通常電力モードへ復帰した際に、SA情報に生じたずれを補正する。ここでは、RTC(Real Time Clock)及びSNTP(Simple Network Time Protocol)を基に補正を行うが、RTC及びSNTPに限定されず、リアルタイムで時刻が取得できる手法であれば構わない。
【0037】
一方、NIC220におけるソフトウェア構成は、代理応答処理部301(代理通信手段)、IPsec送信処理ライブラリ302、IPsec制御部303、IPsec処理部304、ネットワークI/F制御部305、及びCPU間通信部306を含む。
【0038】
CPU間通信部306は、拡張I/F222及び拡張I/F212を介して、情報処理装置210上で動作するソフトウェアとのデータ送受信を行う。
【0039】
IPSec処理部304は、外部装置との間で送受信するパケットの暗号化/復号化処理を行う。なお、ここでは、IPSec処理部304は、IPSec処理部309とは異なり、IPSec通信の実行に必要な情報を取得するためのネゴシエーションを行う構成は備えていないものとするが、IPSec処理部309と同一の構成であっても構わない。IPSec制御部303(第2管理手段)は、IPSec処理部304を制御するとともに、IPSec処理部304がIPSecに関する処理を行う際に必要となる情報を保持し、IPsecのライフタイム情報を管理する。
【0040】
ネットワークI/F制御部305は、ネットワークI/F225によるパケットの送受信を制御する。なお、ネットワークI/F制御部305は、情報処理装置210が通常電力モードと省電力モードのどちらで動作しているかを常に把握している。そして、ネットワークI/F制御部305は、情報処理装置210が通常電力モードで動作している場合は、LAN120から受信するパケットを情報処理装置210に転送する。また、情報処理装置210が省電力モードで動作している場合は、LAN120から受信するパケットをIPSec処理部304に転送する。
【0041】
代理応答処理部301は、省電力モードでの稼働中にIPSec処理部304から転送される受信パケットを受け取る。IPSec処理部304がパケットを受信するのは、情報処理装置210が省電力モードで動作している場合のみであるため、代理応答処理部301も、この場合にのみ動作する。
【0042】
代理応答処理部301は、受信したパケットを3種類に分類する。この3種類とは、「破棄すべきパケット」、「情報処理装置210に転送すべきパケット」及び「代理で応答すべきパケット」である。「破棄すべきパケット」とは、自装置宛てのパケットではない場合など、無視してもよい(応答する必要がない)パケットであり、これに分類された場合、受信したパケットは破棄される。
【0043】
「情報処理装置210に転送すべきパケット」とは、受信したパケットに対して何らかの処理が必要であるが、NIC220だけでは必要な処理を行うことができないパケットである。このようなパケットを受信した場合、代理応答処理部301は、情報処理装置210を省電力モードから通常電力モードに復帰させ、受信したパケットを情報処理装置210に転送する。
【0044】
「代理で応答すべきパケット」とは、情報処理装置210の代わりにNIC220が応答を行うパケットである。この場合、代理応答処理部301は、IPSec送信処理ライブラリ302を利用して、応答として送信するパケットを暗号化してから送信する。
【0045】
IPSec送信処理ライブラリ302は、API(Application Program Interface)を提供するモジュールであり、代理応答処理部301からインパラメータとして渡されたパケットに対して、必要に応じて暗号化処理を施す。そして、暗号化したパケットをAPI返り値とともにアウトパラメータとして出力する。
【0046】
図4は、図2における情報処理装置210が省電力モードに移行する際に、NIC220にSA情報を引き継ぐ引き継ぎ処理の手順を示すフローチャートである。
【0047】
図4に示される引き継ぎ処理は、CPU211により実行される。
【0048】
通常電力状態において、IPSec制御部308は、SA情報の更新および管理を行う(ステップS401)。次いで、予め登録されているソフトウェアモジュールがスリープ状態へ移行しても問題ないかを確認するために、各モジュールに対してスリープ移行の可否を問い合わせる。そして、省電力モードに移行可能か否か判別する(ステップS402)。本実施形態では、IPSec制御部308が、スリープ移行可否の問い合わせ対象として登録されているものとする。ここで、スリープ移行“不可”となる場合とは、例えばIPSec処理部309が外部装置とネゴシエーションを行っている場合である。
【0049】
ステップS402の判別の結果、省電力モードに移行不可能なとき(ステップS402でNO)、パケットを受信したか否か判別する(ステップS403)。受信パケットがないときは(ステップS403でNO)、ステップS401に戻る。受信パケットがあるときは(ステップS403でYES)、IPSec処理部309で受信パケットの処理を行い(ステップS404)、ステップS401に戻る。
【0050】
ステップS402の判別の結果、省電力モードに移行可能なとき(ステップS402でYES)、ライフタイム補正部311でRTC又はSNTPを用いて、NIC220にSA情報を転送する直前の時刻、すなわち省電力モード移行時の移行時刻を取得し、ライフタイム補正部311内(例えばRAM214のライフタイム補正部の占有領域)に記録する(ステップS405)。その後、情報処理装置210からNIC220へ、CPU間通信部306とCPU間通信部307を介して、SA情報を転送することで引き継いで(ステップS408)、本処理を終了する。
【0051】
図5は、図2における情報処理装置210が省電力モードから通常電力モードに復帰する際に、NIC220からSA情報を引き継ぐ復帰処理の手順を示すフローチャートである。
【0052】
図5において、省電力状態では、IPSec制御部303によりSA情報の更新及び管理が行われる(ステップS501)。
【0053】
次いで、IPsec制御部308により更新及び管理でされているSA情報のライフタイムと、省電力モードからの復帰条件を比較することで復帰条件を満たしているか否か判別する(ステップS502)。
【0054】
ステップS502の判別の結果、復帰条件を満たさないとき(ステップS502でNO)、代理応答処理部301によりNIC220が代理で応答するべき受信パケットがあるか否かを判別する(ステップS503)。代理で応答するべき受信パケットについては、省電力移行前に情報処理装置210からNIC220に対して設定されている。ステップS503の判別の結果、代理で応答すべき受信パケットがないとき(ステップS503でNO)、ステップS501に戻る。応答すべき受信パケットがあるとき(ステップS503でYES)、IPSec処理部309で受信パケットの処理を行い(ステップS504)、ステップS501に戻る。
【0055】
ステップS502の判別の結果、省電力モード復帰条件が満たされていると判別されたとき(ステップS502でYES)、NIC220から情報処理装置210へ、CPU間通信部307とCPU間通信部306を介して、SA情報を転送することで情報処理装置210にSA情報を引き継ぐ(ステップS505)。そして、引き継いだSA情報に対し、ライフタイム補正部311でSA情報のライフタイムを修正して(ステップS506)、本処理を終了する。
【0056】
図6は、図2における情報処理装置210が通常電力モードから省電力モードへ移行する際のライフタイム補正部311により実行される記録処理の手順を示すフローチャートである。
【0057】
この図6に示されるフローチャートは、図4のステップS405の処理の詳細を示している。
【0058】
図6において、省電力移行時に、ライフタイム補正部311は、NIC220に転送するSA情報のライフタイム(経過時間)(第1ライフタイム情報)をRAM214に記録するように制御する(ステップS601)(記憶制御手段)。
【0059】
次いで、SNTPを用いて現在時刻を取得するか否か判別する(ステップS602)。ステップS602の判別の結果、SNTPを用いて現在時刻を取得できたとき(ステップS602でYES)、その取得した時間を記録して(ステップS603)、本処理を終了する。一方、取得できなかったとき(ステップS602でNO)、情報処理装置210内のRTCを用いて現在時刻を記録して(ステップS604)、本処理を終了する。
【0060】
図7は、図2における情報処理装置210が省電力モードから通常電力モードへ復帰する際のライフタイム補正部311の復帰処理の手順を示すフローチャートである。
【0061】
この図7に示されるフローチャートは、図5のステップS506の処理の詳細を示している。
【0062】
図7において、通常電力モード復帰時に、省電力モード移行時の時刻を、SNTPを用いて記録したか否かを判別する(ステップS701)。ステップS701の判別の結果、省電力モード移行時の時刻の記録にSNTPを用いたとき(ステップS701でYES)、SNTPを用いて現在時刻を取得し(ステップS702)、ステップS704に進む。一方、SNTPを用いていないとき(ステップS701でNO)、RTCを用いて現在時刻を取得し(ステップS703)、ステップS704に進む。
【0063】
次いで、省電力モード移行時に記録した経過時間とNIC220から受信したSA情報(第2ライフタイム情報)のライフタイムが示す残り時間から、その差分を算出する(ステップS704)。より詳細には、残り時間から経過時間が定まるので、その経過時間と省電力モード移行時に記録した経過時間との差分を算出する。
【0064】
そして、省電力モード移行時に記録した移行時刻と、ステップS702またはステップS703のいずれかで取得した時刻から、その差分を算出する(ステップS705)。
【0065】
次いで、ステップS704とステップS705で算出したそれぞれの差分が等しいか否かを判別する(ステップS706)。ステップS706の判別の結果、差分が一致するとき(ステップS706でYES)、SA情報のライフタイムの補正は行わずに本処理を終了する。一方、これらの差分が異なるとき(ステップS706でNO)、ステップS704とステップS705で算出したそれぞれの差分から、更に差分を算出し、その差分を用いてNIC220から受信したライフタイムの残り時間を補正して(ステップS707)、本処理を終了する。
【0066】
図4〜図7の処理によれば、通常電力での稼働から省電力での稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻におけるIPsec制御部308により管理された第1ライフタイム情報をRAM214に記憶するように制御し、省電力での稼働から通常電力での稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻におけるIPsec制御部303により管理された第2ライフタイム情報、RAM214により記憶された移行時刻、及び第1ライフタイム情報から第2ライフタイム情報を補正するので、IPsecのライフタイム情報を引き継いでも通信可能とすることができる。
【0067】
[第2の実施形態]
第2の実施形態では、同種通信装置のコネクション(SA)が存在する場合のライフタイムの補正処理について説明する。
【0068】
図8は、本発明の実施の形態に係る通信装置800を含むネットワークの全体図である。
【0069】
通信装置800と通信装置810とがLAN820を介して接続され、相互に通信可能となっている。通信装置800及び通信装置810には、同一のシステム構成がとられ、それぞれIPSec通信を実行するための構成が備えられている。そして、通信装置800と通信装置810との通信は、全てIPSecが適用されているものとする。なお、通信装置800と通信装置810は、第1の実施形態の通信装置100と同様のハードウェア構成とソフトウェア構成を持つものとする。従って、図2、図3を用いながらの説明となる。
【0070】
図9は、情報処理装置210が通常電力モードから省電力モードへ移行する際のライフタイム補正部の移行処理の手順を示すフローチャートである。
【0071】
図9において、省電力移行時に、ライフタイム補正部311は、NIC220に転送するSA情報からライフタイム(経過時間)を記録する(ステップS901)。
【0072】
次いで、ライフタイム補正部311は、保持するSA内に補正用の対向システムとなる通信中の通信装置とのセッションが存在するか否かを判別する(ステップS902)(判別手段)。ステップS902の判別の結果、セッションが存在するとき(ステップS902でYES)、ライフタイム補正部311は、省電力モードからの復帰時の補正用の対向システムとして該当するセッション(ここでは通信装置810)を設定して(ステップS902)、その設定した対向システムからライフタイムを取得し、そのライフタイムを記録して(ステップS904)、本処理を終了する。すなわち、第1の実施の形態におけるIPsec制御部308により管理された第1ライフタイム情報に代えて、相手装置(ここでは通信装置810)から取得したライフタイム情報をRAM214に記憶するように制御する。
【0073】
一方、該当するセッションが存在しないとき(ステップS902でNO)、情報処理装置210内のRTCを用いて現在時刻を記録して(ステップS905)、本処理を終了する。
【0074】
図10は、情報処理装置210が省電力モードから通常電力モードへ復帰する際のライフタイム補正部の復帰処理の手順を示すフローチャートである。
【0075】
図10において、通常電力モード復帰時に、省電力モード移行時に補正用の対向システムが設定されたか否かを判別する(ステップS1001)。ステップS1001の判別の結果、省電力モード移行時に前記対向システムが設定されているとき(ステップS1001でYES)、対向システムから、対向システムのSAの復帰時刻におけるライフタイムを取得する(ステップS1002)。次いで、省電力モード移行時に記録した対向システムのライフタイムと、ステップS1002で対向システムから受信したライフタイムを比較して、省電力モード中のライフタイムの経過時間を算出する(ステップS1003)。そして、省電力モード移行時に記録したSAのライフタイムに省電力モード中のライフタイムの経過時間を反映させ、NIC220から受信したライムタイムを差し替えて、SAのライフタイムを補正して(ステップS1004)、本処理を終了する。
【0076】
一方、S1001の判別の結果、対向システムの設定されていないとき(ステップS1001でNO)、RTCを用いて現在時刻を取得する(ステップS1005)。
【0077】
次いで、省電力モード移行時に記録したライフタイムの残り時間とNIC220から受信したSA情報のライフタイム内の残り時間から、その差分を算出する(ステップS1006)。より詳細には、残り時間から経過時間が定まるので、その経過時間と省電力モード移行時に記録した経過時間との差分を算出する。
【0078】
そして、省電力モード移行時に記録した時刻と、ステップS1006で取得した時刻から、その差分を算出する(ステップS1007)。
【0079】
次いで、ステップS1006とステップS1007で算出したそれぞれの差分が等しいかを判別する(ステップS1008)。ステップS1008の判別の結果、これらの差分が一致するとき(ステップS1008でYES)、SA情報のライフタイムの補正は行わずに本処理を終了する。一方、ステップS1008の判別の結果、これらの差分が異なるとき(ステップS1008でNO)、ステップS706とステップS707で算出したそれぞれの差分から、更に差分を算出し、その差分を用いてNIC220から受信したライフタイムの残り時間を補正して(ステップS1009)、本処理を終了する。
【0080】
このように、図10の処理では、第1の実施の形態におけるIPsec制御部303により管理された第2ライフタイム情報に代えて、相手装置(ここでは通信装置810)から取得した前記復帰時刻におけるライフタイム情報から第2ライフタイム情報を補正するようになっている。
【0081】
(他の実施の形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0082】
100,800,810 通信装置
110 PC
120 LAN
210 情報処理装置
211,221 CPU
212,222 拡張I/F
213,223 ROM
214,224 RAM
215 HDD
216 NVRAM
220 NIC
301 代理応答処理部
302 IPsec送信処理ライブラリ
303,308 IPsec制御部
304,309 IPsec処理部
305 ネットワークI/F制御部
306,307 CPU間通信部
310 スリープ制御部
311 ライフタイム補正部
【特許請求の範囲】
【請求項1】
第1の電力モード、及び前記第1の電力モードよりも消費電力が小さい第2の電力モードのいずれかで稼働可能な通信装置であって、
前記第1の電力モードで稼働している場合に、IPsecのライフタイム情報を管理する第1管理手段と、
前記第2の電力モードで稼働する場合に前記ライフタイム情報を管理する第2管理手段と、
前記第1の電力モードでの稼働から前記第2の電力モードでの稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻における前記第1管理手段により管理された第1ライフタイム情報を記憶手段に記憶するように制御する記憶制御手段と、
前記第2の電力モードでの稼働から前記第1の電力モードでの稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻における前記第2管理手段により管理された第2ライフタイム情報、前記記憶手段により記憶された前記移行時刻、及び第1ライフタイム情報から前記第2ライフタイム情報を補正する補正手段と
を備えたことを特徴とする通信装置。
【請求項2】
前記通信装置とIPsecにより通信中の相手装置が、前記補正手段を有するか否かを判別する判別手段をさらに備え、
前記判別手段により前記相手装置が前記補正手段を有すると判別されたとき、前記記憶制御手段は、前記第1管理手段により管理された第1ライフタイム情報に代えて、前記相手装置から取得したライフタイム情報を前記記憶手段に記憶するように制御し、
前記補正手段は、前記第2管理手段により管理された第2ライフタイム情報に代えて、前記相手装置から取得した前記復帰時刻におけるライフタイム情報から前記第2ライフタイム情報を補正することを特徴とする請求項1記載の通信装置。
【請求項3】
第1の電力モードで稼働している場合にIPsecのライフタイム情報を管理するとともに、IPsecによる通信を行う上位装置と、前記第1の電力モードよりも消費電力が小さい第2の電力モードで稼働する場合に前記ライフタイム情報を管理するネットワークインタフェース装置とを備えた通信装置における前記ネットワークインタフェース装置であって、
前記第1の電力モードでの稼働から前記第2の電力モードでの稼働に移行する場合に、前記上位装置よりIPsecのライフタイム情報を取得する取得手段と、
前記第2の電力モードでの稼働中に、前記取得手段により取得されたライフタイム情報を用いて、前記上位装置に代えてIPsecによる通信を行う代理通信手段と
を備えたことを特徴とするネットワークインタフェース装置。
【請求項4】
第1の電力モード、及び前記第1の電力モードよりも消費電力が小さい第2の電力モードのいずれかで稼働可能であり、前記第1の電力モードで稼働している場合に、IPsecのライフタイム情報を管理する第1管理手段と、前記第2の電力モードで稼働する場合に前記ライフタイム情報を管理する第2管理手段とを備えた通信装置の制御方法であって、
前記第1の電力モードでの稼働から前記第2の電力モードでの稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻における前記第1管理手段により管理された第1ライフタイム情報を記憶手段に記憶するように制御する記憶制御ステップと、
前記第2の電力モードでの稼働から前記第1の電力モードでの稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻における前記第2管理手段により管理された第2ライフタイム情報、前記記憶手段により記憶された前記移行時刻、及び第1ライフタイム情報から前記第2ライフタイム情報を補正する補正ステップと
を備えたことを特徴とする制御方法。
【請求項5】
第1の電力モード、及び前記第1の電力モードよりも消費電力が小さい第2の電力モードのいずれかで稼働可能であり、前記第1の電力モードで稼働している場合に、IPsecのライフタイム情報を管理する第1管理手段と、前記第2の電力モードで稼働する場合に前記ライフタイム情報を管理する第2管理手段とを備えた通信装置の制御方法をコンピュータに実行させるためのプログラムであって、
前記制御方法は、
前記第1の電力モードでの稼働から前記第2の電力モードでの稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻における前記第1管理手段により管理された第1ライフタイム情報を記憶手段に記憶するように制御する記憶制御ステップと、
前記第2の電力モードでの稼働から前記第1の電力モードでの稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻における前記第2管理手段により管理された第2ライフタイム情報、前記記憶手段により記憶された前記移行時刻、及び第1ライフタイム情報から前記第2ライフタイム情報を補正する補正ステップと
を備えたことを特徴とするプログラム。
【請求項1】
第1の電力モード、及び前記第1の電力モードよりも消費電力が小さい第2の電力モードのいずれかで稼働可能な通信装置であって、
前記第1の電力モードで稼働している場合に、IPsecのライフタイム情報を管理する第1管理手段と、
前記第2の電力モードで稼働する場合に前記ライフタイム情報を管理する第2管理手段と、
前記第1の電力モードでの稼働から前記第2の電力モードでの稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻における前記第1管理手段により管理された第1ライフタイム情報を記憶手段に記憶するように制御する記憶制御手段と、
前記第2の電力モードでの稼働から前記第1の電力モードでの稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻における前記第2管理手段により管理された第2ライフタイム情報、前記記憶手段により記憶された前記移行時刻、及び第1ライフタイム情報から前記第2ライフタイム情報を補正する補正手段と
を備えたことを特徴とする通信装置。
【請求項2】
前記通信装置とIPsecにより通信中の相手装置が、前記補正手段を有するか否かを判別する判別手段をさらに備え、
前記判別手段により前記相手装置が前記補正手段を有すると判別されたとき、前記記憶制御手段は、前記第1管理手段により管理された第1ライフタイム情報に代えて、前記相手装置から取得したライフタイム情報を前記記憶手段に記憶するように制御し、
前記補正手段は、前記第2管理手段により管理された第2ライフタイム情報に代えて、前記相手装置から取得した前記復帰時刻におけるライフタイム情報から前記第2ライフタイム情報を補正することを特徴とする請求項1記載の通信装置。
【請求項3】
第1の電力モードで稼働している場合にIPsecのライフタイム情報を管理するとともに、IPsecによる通信を行う上位装置と、前記第1の電力モードよりも消費電力が小さい第2の電力モードで稼働する場合に前記ライフタイム情報を管理するネットワークインタフェース装置とを備えた通信装置における前記ネットワークインタフェース装置であって、
前記第1の電力モードでの稼働から前記第2の電力モードでの稼働に移行する場合に、前記上位装置よりIPsecのライフタイム情報を取得する取得手段と、
前記第2の電力モードでの稼働中に、前記取得手段により取得されたライフタイム情報を用いて、前記上位装置に代えてIPsecによる通信を行う代理通信手段と
を備えたことを特徴とするネットワークインタフェース装置。
【請求項4】
第1の電力モード、及び前記第1の電力モードよりも消費電力が小さい第2の電力モードのいずれかで稼働可能であり、前記第1の電力モードで稼働している場合に、IPsecのライフタイム情報を管理する第1管理手段と、前記第2の電力モードで稼働する場合に前記ライフタイム情報を管理する第2管理手段とを備えた通信装置の制御方法であって、
前記第1の電力モードでの稼働から前記第2の電力モードでの稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻における前記第1管理手段により管理された第1ライフタイム情報を記憶手段に記憶するように制御する記憶制御ステップと、
前記第2の電力モードでの稼働から前記第1の電力モードでの稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻における前記第2管理手段により管理された第2ライフタイム情報、前記記憶手段により記憶された前記移行時刻、及び第1ライフタイム情報から前記第2ライフタイム情報を補正する補正ステップと
を備えたことを特徴とする制御方法。
【請求項5】
第1の電力モード、及び前記第1の電力モードよりも消費電力が小さい第2の電力モードのいずれかで稼働可能であり、前記第1の電力モードで稼働している場合に、IPsecのライフタイム情報を管理する第1管理手段と、前記第2の電力モードで稼働する場合に前記ライフタイム情報を管理する第2管理手段とを備えた通信装置の制御方法をコンピュータに実行させるためのプログラムであって、
前記制御方法は、
前記第1の電力モードでの稼働から前記第2の電力モードでの稼働に移行する場合に、移行時の移行時刻、及び当該移行時刻における前記第1管理手段により管理された第1ライフタイム情報を記憶手段に記憶するように制御する記憶制御ステップと、
前記第2の電力モードでの稼働から前記第1の電力モードでの稼働に復帰する場合に、復帰時の復帰時刻、当該復帰時刻における前記第2管理手段により管理された第2ライフタイム情報、前記記憶手段により記憶された前記移行時刻、及び第1ライフタイム情報から前記第2ライフタイム情報を補正する補正ステップと
を備えたことを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2012−226577(P2012−226577A)
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願番号】特願2011−93958(P2011−93958)
【出願日】平成23年4月20日(2011.4.20)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願日】平成23年4月20日(2011.4.20)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]