(57)【特許請求の範囲】
【請求項１】
第１の制御部と第２の制御部の両方に電力が供給される第１の電力モードと、当該第２の制御部に電力が供給されるが当該第１の制御部には電力が供給されない第２の電力モードのいずれかで動作可能な画像処理装置であって、
前記第２の制御部は、
外部装置から送信されたパケットを受信する受信手段と、
前記受信手段が受信した受信パケットのヘッダを削除する前に、前記受信手段が受信した受信パケットをコピーして記憶する記憶手段と、
前記受信手段が受信した受信パケットのヘッダを削除することで、前記受信手段が受信した受信パケットを解析する解析手段と、
前記画像処理装置が前記第２の電力モードである場合に、前記画像処理装置を前記第２の電力モードから前記第１の電力モードに移行させるか否かを、前記解析手段による解析の結果に基づいて判定する判定手段と、
前記判定手段によって前記画像処理装置を前記第２の電力モードから前記第１の電力モードに移行させると判定された場合に、前記画像処理装置を前記第２の電力モードから前記第１の電力モードに移行させ、前記解析手段によってヘッダが削除された受信パケットではなく前記記憶手段が記憶している受信パケットを前記第１の制御部に転送する処理手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記判定手段によって前記画像処理装置を前記第２の電力モードから前記第１の電力モードに移行させないと判定された場合に、前記処理手段は、前記受信パケットに対する応答を行うか、又は、前記受信パケットを破棄するかを、前記解析手段による解析の結果に基づいて決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理手段は、前記受信パケットに対する処理が完了したことに応じて前記記憶手段が記憶している受信パケットを削除することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記受信手段が受信した受信パケットは暗号化されたパケットであり、
前記解析手段は、前記受信手段が受信した受信パケットを復号化することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記受信手段が受信した受信パケットはＩＰｓｅｃで暗号化されたパケットであることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
第１の制御部と第２の制御部の両方に電力が供給される第１の電力モードと、当該第２の制御部に電力が供給されるが当該第１の制御部には電力が供給されない第２の電力モードのいずれかで動作可能な画像処理装置の制御方法であって、
前記第２の制御部は、
受信手段が、外部装置から送信されたパケットを受信する受信工程と、
記憶手段が、前記受信工程で受信した受信パケットのヘッダを削除する前に、前記受信工程で受信した受信パケットをコピーして記憶する記憶工程と、
解析手段が、前記受信工程で受信した受信パケットのヘッダを削除することで、前記受信工程で受信した受信パケットを解析する解析工程と、
判定手段が、前記画像処理装置が前記第２の電力モードである場合に、前記画像処理装置を前記第２の電力モードから前記第１の電力モードに移行させるか否かを、前記解析工程での解析の結果に基づいて判定する判定工程と、
処理手段が、前記判定工程で前記画像処理装置を前記第２の電力モードから前記第１の電力モードに移行させると判定された場合に、前記画像処理装置を前記第２の電力モードから前記第１の電力モードに移行させ、前記解析工程でヘッダが削除された受信パケットではなく前記記憶手段が記憶している受信パケットを前記第１の制御部に転送する処理工程と
を実行することを特徴とする画像処理装置の制御方法。
【請求項７】
請求項６に記載の画像処理装置の制御方法における各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、省電力制御を実行する画像処理装置、その制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
近年の画像処理装置には、稼動していない状態が一定時間以上経過した場合は、電力の供給を機器の一部に限定し低電力で動作する「スリープ状態」へ遷移する省電力機能を有しているものがある。また、画像処理装置は、ネットワーク技術の普及に伴い、ネットワークを利用して機器とホスト間で定期的にデータのやりとりを行うことが一般的である。機器が「スリープ状態」である場合にネットワーク経由のデータを処理するためには、機器を「非スリープ状態」に遷移する必要がある。したがって、頻繁にネットワーク上でデータのやり取りが行われる環境では「スリープ状態」時間が短くなってしまう。
【０００３】
これを解決する手法として、特許文献１には、機器に複数のＣＰＵを搭載し、非スリープ時にはメインＣＰＵで処理を行うが、スリープ時には、電力消費の小さいサブＣＰＵでメインＣＰＵの処理を代替させる手法が提案されている。さらに、ネットワークプロトコルの多様化、複雑化に伴いサブＣＰＵが代替できる処理を拡充するために、サブＣＰＵにプロトコルスタックを搭載する手法も考えられている。
【０００４】
一方、近年、ネットワーク上を流れるデータの改ざん、盗聴を防ぐためのセキュリティ機能の普及に伴い、機器は、通信相手と複雑なネゴシエーションを行い、その結果に基づいて暗号処理、復号化処理を行う方式が用いられている。これに伴い、機器とホスト間で定期的にやりとりされるネットワークデータのやりとりにも、セキュリティ通信が利用される機会が増えている。このようなセキュリティ通信時にも、サブＣＰＵにセキュリティ機能を搭載し、メインＣＰＵとセキュリティ通信に必要な情報を交換することで、メインＣＰＵの処理を代替させる手段も考えられている。これらセキュリティ技術の普及と省電力技術の向上に伴い、機器とネットワーク上のホストとのやりとりがセキュリティ通信で行われていても、機器の低電力状態を保ったまま、データ処理を行うことが望まれている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２５９９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術には以下に記載する問題がある。上記従来技術のように、サブＣＰＵにプロトコルスタックを搭載する方式では、ネットワークパケットを受信してスリープ状態から復帰した場合、メインＣＰＵがその受信パケットを適切に処理できないという問題が発生する。これは、サブＣＰＵのプロトコルスタックがＩＰヘッダやＥｔｈｅｒｎｅｔヘッダなどを除去し、パケットのボディ部のみだけをメインＣＰＵへ転送することが主な原因であった。そのためメインＣＰＵでは受信したパケットに必要なヘッダ情報が付加されていないため、適切な処理を行うことができなかった。
【０００７】
加えて、セキュリティ通信時においては、サブＣＰＵが正しく受信パケットをメインＣＰＵに転送したとしても、その後のセキュリティ通信で不正なシーケンスとなり正常に通信できない問題がある。これは、セキュリティ通信には通信保証のための情報が存在し、サブＣＰＵで更新した情報をメインＣＰＵに転送していることが主な原因であった。そのためメインＣＰＵでは、受信したパケットとセキュリティ通信に必要な情報に不整合が生じてしまい、その後の通信シーケンスが正常に処理できなくなっていた。
【０００８】
本発明は、上述の問題に鑑みて成されたものであり、スリープ状態においてメインＣＰＵの機能の一部を代替するサブＣＰＵにプロトコルスタッフを搭載するとともに、スリープ状態において外部から受信したパケットを解析した後にメインＣＰＵで当該パケットを処理すると判断した場合に、適切な情報をメインＣＰＵに対して転送する画像処理装置、その制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、第１の制御部と第２の制御部の両方に電力が供給される第１の電力モードと、当該第２の制御部に電力が供給されるが当該第１の制御部には電力が供給されない第２の電力モードのいずれかで動作可能な画像処理装置であって、前記第２の制御部は、外部装置から送信されたパケットを受信する受信手段と、前記受信手段が受信した受信パケットのヘッダを削除する前に、前記受信手段が受信した受信パケットをコピーして記憶する記憶手段と、前記受信手段が受信した受信パケットのヘッダを削除することで、前記受信手段が受信した受信パケットを解析する解析手段と、前記画像処理装置が前記第２の電力モードである場合に、前記画像処理装置を前記第２の電力モードから前記第１の電力モードに移行させるか否かを、前記解析手段による解析の結果に基づいて判定する判定手段と、前記判定手段によって前記画像処理装置を前記第２の電力モードから前記第１の電力モードに移行させると判定された場合に、前記画像処理装置を前記第２の電力モードから前記第１の電力モードに移行させ、前記解析手段によってヘッダが削除された受信パケットではなく前記記憶手段が記憶している受信パケットを前記第１の制御部に転送する処理手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明は、スリープ状態においてメインＣＰＵの機能の一部を代替するサブＣＰＵにプロトコルスタッフを搭載するとともに、スリープ状態において外部から受信したパケットを解析した後にメインＣＰＵで当該パケットを処理すると判断した場合に、適切な情報をメインＣＰＵに対して転送する画像処理装置、その制御方法、及びプログラムを提供できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態におけるネットワーク構成を示す図である。
【図２】第１の実施形態における画像処理装置のＨ／Ｗ構成図を示す図である。
【図３】第１の実施形態における画像処理装置のＳ／Ｗ構成図を示す図である。
【図４】第１の実施形態におけるプロトコルスタックの処理を示す図である。
【図５】第１の実施形態におけるサブＣＰＵの処理を示すフローチャートである。
【図６】第２の実施形態におけるＳＡ情報の属性を示す図である。
【図７】第２の実施形態における画像処理装置の従来技術の課題を示す図である。
【図８】第２の実施形態における画像処理装置の従来技術の課題を示す図である。
【図９】第２の実施形態における画像処理装置の従来技術の課題を示す図である。
【図１０】第２の実施形態におけるサブＣＰＵの処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１３】
＜第１の実施形態＞
＜システム構成＞
以下では、図１乃至図５を参照して、第１の実施形態について説明する。本実施形態では、画像処理装置が外部機器とネットワークパケットをやり取りする際に、セキュリティ通信ではなく、平文でネットワークパケットを送受信する場合について説明する。まず、図１を参照して、本実施形態に係る画像処理装置を使用したネットワークシステムの構成について説明する。
【００１４】
画像処理装置１０１とホストコンピュータ１０２とがネットワーク１０３を介して接続され、相互に通信可能となっている。画像処理装置１０１、及びホストコンピュータ１０２は、共にＩＰＳＥＣ機能が有効になっており、画像処理装置１０１とホストコンピュータ１０２との間の通信は、全てＩＰＳＥＣが適用されているものとする。
【００１５】
＜画像処理装置のハードウェア構成＞
次に、図２を参照して、画像処理装置１０１のハードウェア構成について説明する。画像処理装置１０１は、図２に示すように、ＣＰＵ２０９を有し、装置全体を統括的に制御するユニット２２０（第１制御手段）と、ＣＰＵ２１１を有し、ユニット２２０が省電力制御によるスリープ状態へ移行した際に、ユニット２２０の一部の処理を代行するユニット２２１（第２制御手段）との２つの制御部で構成される。なお、ここでは、画像処理装置１０１として、複写機を一例に説明する。したがって、ユニット２２０は複写機のコントローラ部分に相当し、ユニット２２１は複写機のＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）に相当する。また、画像処理装置１０１は、省電力機能を有し、「スリープ状態」である場合には、ユニット２２１のみに電源が供給され、それ以外への電源供給を停止することで、消費電力の低減を実現する。
【００１６】
ユニット２２０は、スキャナＩ／Ｆ２０１、拡張Ｉ／Ｆ制御部２０２、ＲＯＭ２０３、ＲＡＭ２０４、ＨＤＤ２０５、プリンタＩ／Ｆ２０６、ＮＶＲＡＭ２０７、パネル制御部２０８、及びＣＰＵ２０９を備える。各コンポーネントは、システムバス２１０によって相互通信可能に接続される。また、ユニット２２１は、ＣＰＵ２１１、拡張Ｉ／Ｆ制御部２１２、ＲＯＭ２１３、ＲＡＭ２１４、及びネットワークＩ／Ｆ２１５を備える。各コンポーネントは、システムバス２１６によって相互通信可能に接続される。
【００１７】
ＲＯＭ２０３のプログラム用ＲＯＭには、ＣＰＵ２０９が実行可能な制御プログラム等が記憶される。ＲＯＭ２０３のデータ用ＲＯＭには、ユニット２２０上で利用される情報等が記憶される。ＣＰＵ２０９は、ＲＯＭ２０３のプログラム用ＲＯＭに記憶された制御プログラムに基づいてシステムバス２１０に接続される各種のデバイスとのアクセスを総括的に制御する。また、プリンタＩ／Ｆ２０６を介して接続されるプリンタ２２２に出力情報としての画像信号を出力したり、スキャナＩ／Ｆ２０１を介して接続されるスキャナ２１８から入力される画像信号を制御する。
【００１８】
ＲＡＭ２０４は、主としてＣＰＵ２０９の主メモリ，ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができる。ハードディスクドライブ（ＨＤＤ）２０５は、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶したり、プリントジョブを一時的にスプールし、スプールされたジョブを外部から制御するためのジョブ格納領域として使用される。さらに、スキャナ２１８から読み取った画像データやプリントジョブの画像データをＢＯＸデータとして保持し、ネットワークから参照したり、印刷を行うＢＯＸデータ格納領域としても使用される。２０７は不揮発性メモリ（ＮＶＲＡＭ）であり、操作パネル２１９を介して設定される各種設定情報をパネル制御部２０８を経由して記憶している。
【００１９】
ＲＯＭ２１３のプログラム用ＲＯＭには、ＣＰＵ２１１が実行可能な制御プログラム等が記憶される。ＲＯＭ２１３のデータ用ＲＯＭには、ユニット２２１上で利用される情報等が記憶される。ＣＰＵ２１１は、ＲＯＭ２１３のプログラム用ＲＯＭに記憶された制御プログラムに基づいてシステムバス２１６に接続される各種のデバイスとのアクセスを総括的に制御する。ＲＡＭ２１４は、主としてＣＰＵ２１１の主メモリ，ワークエリア等として機能する。ＣＰＵ２１１は、ネットワークＩ／Ｆ２１５を介して、ネットワーク上のホストコンピュータや他の画像処理装置との通信処理が可能となっている。
【００２０】
また、ユニット２２０とユニット２２１は、拡張Ｉ／Ｆ制御部２０２、２１２及び拡張Ｉ／Ｆ２１７を介して接続される。ユニット２２０のＣＰＵ２０９は、拡張Ｉ／Ｆ制御部２０２を経由して、ユニット２２１とデータの送受信を行うことができる。同様に、ユニット２２１のＣＰＵ２１１は、拡張Ｉ／Ｆ制御部２１２を経由して、ユニット２２０とデータの送受信を行うことができる。
【００２１】
＜画像処理装置のソフトウェア構成＞
次に、図３を参照して、画像処理装置１０１のソフトウェア構成について説明する。画像処理装置のソフトウェア構成は大きく非スリープ状態で動作するメインＣＰＵファーム３０１とスリープ状態で動作するサブＣＰＵファーム３０９に分けられる。
【００２２】
まず、メインＣＰＵファーム３０１について説明する。メインＣＰＵファーム３０１は、プロトコルスタック３０２、画像処理部３０７、ＣＰＵ間通信部３０８、及びスリープ制御部３１９を含む。スリープ制御部３１９は、ユニット２２０上のＣＰＵ２０９上で動作し、ユニット２２０へも電力が供給されている「非スリープ状態」から、ユニット２２１へのみ電力が供給される「スリープ状態」に移行する制御を行う。
【００２３】
プロトコルスタック３０２は、Ｅｔｈｅｒｎｅｔヘッダ処理部３０３と、ＩＰヘッダ処理部３０４と、ＴＣＰ／ＵＤＰヘッダ処理部３０５とから構成され、受信パケットのヘッダ部分を各処理部によって順次解析する。なお、各処理部は、解析したヘッダ部分を順次削除する。ＩＰＳＥＣ処理部３０６は、ＩＰヘッダ処理部３０４のレイヤで動作し、ＩＰＳＥＣネゴシエーション処理や、送受信するネットワークパケットのＩＰＳＥＣ処理、ＩＰＳＥＣ処理に必要なＳＡ（Ｓｅｃｕｔｉｒｙ  Ａｓｓｏｓｉａｔｉｏｎ）の管理などを行う。
【００２４】
ＣＰＵ間通信部３０８は、ユニット２２０上のＣＰＵ２０９上で動作し、拡張Ｉ／Ｆ制御部２０２から拡張Ｉ／Ｆ２１７を介して、ユニット２２１上のＣＰＵ２１１で動作するソフトウェアとのデータ送受信を行う。また、メインＣＰＵファーム３０１は、画像処理部３０７などのアプリケーションを多く搭載する。
【００２５】
次に、サブＣＰＵファーム３０９について説明する。サブＣＰＵファーム３０９は、プロトコルスタック３１０、代理応答処理部３１６、ＷＯＬ処理部３１７、及びＣＰＵ間通信部３１８を含む。ＣＰＵ間通信部３１８は、ユニット２２１上のＣＰＵ２１１上で動作し、拡張Ｉ／Ｆ制御部２０２から拡張Ｉ／Ｆ２１７を介して、ユニット２２０上のＣＰＵ２０９で動作するソフトウェアとのデータ送受信を行う。
【００２６】
プロトコルスタック３１０は、Ｅｔｈｅｒｎｅｔヘッダ処理部３１１と、ＩＰヘッダ処理部３１２と、ＴＣＰ／ＵＤＰヘッダ処理部３１３とから構成される。ＩＰＳＥＣ処理部３１４は、ユニット２２１上のＣＰＵ２１１上で動作し、送受信するネットワークパケットのＩＰＳＥＣ処理、ＳＡの管理を行う。また、プロトコルスタック３１０は、さらに、受信したパケットやＳＡ情報を一時的に保存するための一時記憶領域３１５を搭載する。
【００２７】
代理応答処理部３１６は、受信したパケットに対してメインＣＰＵを復帰させずに、サブＣＰＵの能力だけで応答可能かを判断して、応答パケットを作成、送信制御を行う。ＷＯＬ（ＷａｋｅＯｎＬａｎ）処理部３１７は、受信したパケットがメインＣＰＵを復帰させるパターンかどうかを判断し、復帰させる場合は、復帰処理を行う。ここで、ＷＯＬ処理とはＬＡＮを介して遠隔の装置を起動する処理を示す。例えば、本実施形態においては、ホストコンピュータ１０２がネットワーク１０３を介して画像処理装置１０１をスリープ状態から起動させる処理を示す。
【００２８】
サブＣＰＵ３０９はメインＣＰＵがスリープ状態の場合にのみ起動する。サブＣＰＵ３０９は、受信したネットワークデータを、３種に分類する。ここで、３種とは、「破棄」「メインＣＰＵへ転送」「代理で応答を送信」である。「破棄」は、自装置宛パケットではない場合など無視してよいネットワークデータを受信した場合を示し、これに分類された場合、受信したネットワークデータに対する処理は何も行わず、破棄する。即ち、「破棄」は、ユニット２２０（メインＣＰＵ）の起動が不要である。「本体（メイン）ＣＰＵへ転送」は、受信したネットワークデータに対して何らかの処理が必要であるが、電源が供給されているユニット２２１（サブＣＰＵ）だけでは処理を行えないネットワークデータを受信した場合を示す。この場合、サブＣＰＵは、画像処理装置１０１を「スリープ状態」から「非スリープ状態」へ移行し、受信したネットワークパケットをメインＣＰＵ（ＣＰＵ２０９）へ転送する。「代理で応答」は、ユニット２２０（メインＣＰＵ）の起動が不要と判断し、受信したネットワークデータに対しての応答を、ユニット２２１だけで作成し送信する。送受信するパケットがＩＰＳＥＣのパケットであれば、ＩＰＳＥＣ処理部３１４を利用して送受信を制御する。
【００２９】
＜パケット受信＞
次に、図４を参照して、一般的なプロトコルスタックを搭載するパケット受信の挙動について説明する。ＴＣＰで通信を行う印刷データのパケットデータ４０５を画像処理装置が受信した場合、まずはＥｔｈｅｒｎｅｔヘッダ処理部４０１がＥｔｈｅｒｎｅｔヘッダ部を解析する。実際のパケットパラメータは多くの定義があるが、ここでは、本発明に関連するパラメータのみを対象に記載している。Ｅｔｈｅｒｎｅｔヘッダ処理部４０１は、受信パケットの送信先ＭＡＣアドレスを参照し、自装置のＭＡＣアドレスと一致するか否かを判断し、一致する場合、Ｅｔｈｅｒｎｅｔヘッダ部分を除去してＩＰヘッダ処理部４０２にパケットを転送する。自装置のＭＡＣアドレスに一致しない場合は受信パケットを破棄する。
【００３０】
次に、ＩＰヘッダ処理部４０２は、Ｅｔｈｅｒｎｅｔヘッダ部が取り除かれたパケット４０６を解析する。ＩＰヘッダ処理部４０２は、宛先ＩＰアドレスが自装置のＩＰアドレスと一致するか、チェックサム値が正しいかどうか等を判断し、受信すべきと判断したらＴＣＰ／ＵＤＰヘッダ処理部４０３にパケットを転送する。受信すべきと判断しない場合は、パケットを破棄するかエラーパケットを送信する。
【００３１】
次に、ＴＣＰ／ＵＤＰヘッダ処理部４０３は、ＩＰヘッダ部が取り除かれたパケット４０７を解析する。ＴＣＰ／ＵＤＰヘッダ処理部４０３では、主に宛先ポート番号については機器が開いているポート番号に一致するかどうか、シーケンス番号が正しい値かどうかを判断する。問題ないと判断した場合はヘッダ部分を取り除いて上位のアプリケーション部分である画像処理部４０４にパケットを転送する。受信すべきと判断しない場合は、パケットを破棄するかエラーパケットを送信する。画像処理部４０４は、ＴＣＰヘッダが取り除かれたパケット４０８を解析してアプリケーション固有の処理を行う。
【００３２】
これらの一連のシーケンスがサブＣＰＵのプロトコルスタック３１０及びメインＣＰＵのプロトコルスタック３０２で実施される。サブＣＰＵにプロトコルスタックを搭載する場合、図４で示したように、各ヘッダ部を除去した後にＷＯＬあるいは代理応答の判断を行う。この時、ＷＯＬだと判断した場合は、ヘッダ部が除去されたＰＡＹＬＯＡＤ部しか含まないパケットデータをメインＣＰＵへ転送することになり、メインＣＰＵではヘッダ部がないため正常にパケット処理をできないという問題が発生してしまう。本実施形態では、これらの問題が発生しないようにパケット受信を制御する。
【００３３】
＜サブＣＰＵにおけるパケット受信＞
次に、図５を参照して、本実施形態における、サブＣＰＵファーム３０９においてスリープ状態中にパケットを受信する際の処理手順について説明する。なお、サブＣＰＵには代理応答パケットパターンやＷＯＬパケットパターンは予めメインＣＰＵ側から通知あるいはユーザ設定等で設定されているものとする。また、以下で説明する処理は、ＣＰＵ２１１がＲＯＭ２１３に格納された制御プログラムをＲＡＭ２１４にロードして実行することにより実現される。
【００３４】
メインＣＰＵがスリープ状態に移行し、サブＣＰＵ（ＣＰＵ２１１）が起動した後、サブＣＰＵはネットワークパケットの受信待ち状態となる。Ｓ５０１において、ＣＰＵ２１１は、パケットデータを受信したか否かを判定する。パケットデータを受信していない場合は、Ｓ５０１の判定を定期的に繰り返す。一方、パケットデータを受信した場合はＳ５０２に進み、ＣＰＵ２１１は、受信したパケットデータを一旦サブＣＰＵファーム内の一時記憶領域３１５にコピーして保存する。
【００３５】
このように、本実施形態では、これ以降の処理における解析処理において使用される受信パケットとは別に、当該受信パケットのコピーを一時記憶領域３１５へ退避させる。これにより、プロトコルスタックにおいて、受信パケットのヘッダ部分を順次解析しつつ、解析したヘッダ部分を削除する場合であっても、メインＣＰＵへ受信パケットを転送する必要があるときは、一時記憶領域３１５に退避した元の受信パケットを転送することができる。
【００３６】
次に、Ｓ５０３において、ＣＰＵ２１１は、受信パケットをＥｔｈｅｒｎｅｔヘッダ処理部３１１、ＩＰヘッダ処理部３１２などに転送していき、各解析処理部でヘッダ解析を行い、パケットデータからヘッダ部を除去する。続いて、Ｓ５０４において、ＣＰＵ２１１は、ヘッダ解析及びＰＡＹＬＯＡＤ部分の解析結果に従って、受信したパケットがサブＣＰＵにおいて代理応答可能なパケットパターンであるか否かを判定する。代理応答可能であると判断するとＳ５０５に進み、代理応答が不可能であると判断するとＳ５０８に進む。
【００３７】
Ｓ５０５において、代理応答処理部３１６は、代理応答パケットを作成する。続いて、Ｓ５０６において、代理応答処理部３１６は、ＣＰＵ間通信部３１８を介して作成された代理応答パケットを送信する。続いて、Ｓ５０７において、ＣＰＵ２１１は、受信パケットに対する代理応答が完了した後に、一時記憶領域３１５に保存した受信パケットを消去して、再びパケット受信待ちに戻る。
【００３８】
一方、Ｓ５０４で代理応答パターンではないと判断した場合は、Ｓ５０８において、ＷＯＬ処理部３１７は、Ｗａｋｅ  Ｏｎ  ＬＡｎで画像処理装置１０１を起動するべきか否かを判定する。即ち、ＷＯＬ処理部３１７は、受信パケットがメインＣＰＵのスリープ状態からの起動を外部装置から指示するパケットであるか否かを判定する。画像処理装置１０１を起動すべきでないと判断した場合は、Ｓ５０９に進み、受信パケットを破棄して、Ｓ５０７に進み、一時記憶領域３１５に保存した受信パケットも消去して、再びパケット受信待ちに戻る。
【００３９】
一方、Ｓ５０８で画像処理装置１０１を起動すべき、即ち、メインＣＰＵ（ＣＰＵ２０９）を起動すべきと判断した場合は、Ｓ５１０に進み、ＣＰＵ２１１は、ＣＰＵ間通信部３１８を介してメインＣＰＵを起動させる。ここで、ＷＯＬ処理部３１７にあるヘッダ部が除去されたパケットをメインＣＰＵ側へ転送してしまうと、メインＣＰＵのプロトコルスタックは正常に処理を実行することができない。そこで、本実施形態によれば、Ｓ５１１において、ＣＰＵ２１１は、一時記憶領域３１５に保存されているパケットデータ（受信パケット）をメインＣＰＵに転送する。その後、Ｓ５１２において、ＣＰＵ２１１は、一時記憶領域３１５からパケットデータを消去し、サブＣＰＵの処理を終了する。
【００４０】
以上説明したように、本実施形態に係る画像処理装置は、サブＣＰＵファームにプロトコルスタックが搭載されている場合であっても、正しくＷＯＬ処理を実施することができる。具体的には、本画像処理装置は、スリープ状態において受信したパケットがメインＣＰＵで処理する必要がある場合に、プロトコルスタックで解析した後のヘッダ部分が消去されたデータではなく、一時記憶領域に退避しておいた受信パケットをメインＣＰＵへ転送する。
【００４１】
＜第２の実施形態＞
次に、図６乃至図１０を参照して、第２の実施形態について説明する。本実施形態は、画像処理装置が行うセキュリティ通信としてＩＰＳＥＣ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｉｔｙ）を扱った場合について説明する。ＩＰＳＥＣは、特定の認証アルゴリズムや暗号アルゴリズムを用いて、ネットワーク上を流れるデータの盗聴や改ざんを防ぐためのプロトコルである。ＩＰＳＥＣは、ＡＨ（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｈｅａｄｅｒ）とＥＳＰ（Ｅｎｃａｐｓｕｌａｔｉｏｎｓ  Ｓｅｃｕｒｉｔｙ  Ｐａｙｌｏａｄ）の２つのプロトコルで構成され、ＡＨでは認証のみを、ＥＳＰでは認証と暗号化を行う。どちらのプロトコルを利用するか、また、その際利用する認証アルゴリズム種別や暗号アルゴリズム種別の決定は、ＩＰＳＥＣ通信前のネゴシエーションで行う。さらに、暗号アルゴリズムで利用する鍵についても、ＩＫＥ（Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）を利用することによって、ＩＰＳＥＣ通信前に、通信機器間で交換する方式が定義されている。パケットフォーマットを含むＩＰＳＥＣ及びＩＫＥの詳細については、ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔ）に定義が行われているため、本実施形態では詳細に記載しない。
【００４２】
＜Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ＞
機器間でＩＰＳｅｃ通信が確立されると、その通信に応じてＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）が生成される。ここで、図６を参照して、ＳＡのパラメータ例について説明する。ＳＡは多くのパラメータから構成されるが、ここでは本実施形態に関連のあるパラメータのみを列挙する。
【００４３】
ＳＰＩ（Ｓｅｃｕｒｉｔｙ  Ｐａｒａｍｅｔｅｒ  Ｉｎｄｅｘ）は、ＳＡを識別するための値である。暗号アルゴリズムは、このトラフィックで利用する暗号アルゴリズムの種別を示す。認証アルゴリズムは、このトラフィックで利用する認証アルゴリズムの種別を示す。暗号鍵は、このトラフィックを暗号化する際に利用する鍵情報を示す。認証鍵は、このトラフィックの認証を行う際に利用する鍵情報を示す。
【００４４】
有効期間は、ＳＡの有効期間として、時間（秒単位）で設定される。経過時間はＳＡが作成された時刻（ＩＰＳＥＣネゴシエーションが完了した時刻）からの経過時間を示し、ＳＡの有効期間に達していないか、ＳＡの有効性を判断するために用いる。送信データ量は、ＳＡ生成から送信したデータ量を示す。シーケンス番号は、リプレイ攻撃から防御するための値で、ＩＰＳＥＣヘッダに設定され、パケットを送信するたびに、１ずつ加算される。送信元アドレスは、このＳＡに対応付けられるＩＰＳＥＣトラフィックの送信元ＩＰアドレスを示す。送信先アドレスは、このＳＡに対応付けられるＩＰＳＥＣトラフィックの送信先ＩＰアドレスを示す。送信元ポート番号、このＳＡに対応付けられるＩＰＳＥＣトラフィックの送信元ポート番号を示す。送信先ポート番号は、このＳＡに対応付けられるＩＰＳＥＣトラフィックの送信先ポート番号を示す。
【００４５】
＜比較例による制御＞
次に、図７乃至図９を参照して、本実施形態における対策を施さない場合の比較例となる実施形態の課題について説明する。図７に示すように、メインＣＰＵ７０２とサブＣＰＵ７０３から構成される機器７０１と、外部ホスト７０４の間でＩＰＳＥＣ通信を確立し、メインＣＰＵ内におけるＩＰＳＥＣ処理部がＳＡ７０５を生成したとする。メインＣＰＵ７０２がスリープ状態へ移行し、サブＣＰＵ７０３が起動すると、メインＣＰＵ７０２内のＩＰＳＥＣ処理部からサブＣＰＵ７０３内のＩＰＳＥＣ処理部へＳＡが転送され、サブＣＰＵ７０３内でＳＡ７０６を保持する。
【００４６】
この状態で、外部ホスト７０４からＩＰＳＥＣパケット７０７が送信された場合、サブＣＰＵ７０３内のＩＰＳＥＣ処理部が受信パケットを解析する。この時ＩＰＳＥＣ処理部はパケットのシーケンス番号を参照し、期待する値に一致するかどうかを判断する。ＳＡ７０６のシーケンス番号は８００なので、期待するシーケンス番号は８０１である。図７に示すように、受信パケット７０７のシーケンス番号が８０１の場合は、ＩＰＳＥＣ処理部は受信パケットが正当なパケットだと判断してＩＰＳＥＣ処理を開始する。
【００４７】
図８は、サブＣＰＵ７０３のＩＰＳＥＣ処理部がＩＰＳＥＣ処理を実行した後の様子を示す。サブＣＰＵ７０３のＩＰＳＥＣ処理部がデータの復号化を実施したため、保持するＳＡのシーケンス番号は８０１となり、データ量は受信したサイズ分だけ更新しＳＡ８０６となる。この復号化したパケットをサブＣＰＵ７０３内のＷＯＬ処理部でＷＯＬ処理を実行するかどうかを判断した結果、ＷＯＬ処理を実行すると判断した場合、サブＣＰＵ７０３はメインＣＰＵ７０２を起動させる。
【００４８】
起動後の様子を図９に示す。この時、サブＣＰＵ７０３は一時記憶領域から受信パケット９０７をメインＣＰＵ７０２に転送し、ＳＡは図８において更新した後のＳＡ８０６を転送する。メインＣＰＵ７０２は転送されたＳＡ８０６に対して、メインＣＰＵ７０２のＩＰＳＥＣ処理部で保持するＳＡ情報を更新してＳＡ９０５とする。その後、パケット９０７を受信しメインＣＰＵ７０２のＩＰＳＥＣ処理部で復号化処理を実施するが、保持するシーケンス番号８０１が期待する値は８０２であるのに対して、パケット９０７のシーケンス番号は８０１となる。したがって、ＩＰＳＥＣ処理部は、不正なシーケンス番号であるとみなしてＩＰＳＥＣ処理を実施しない。このように比較例の構成においては、ＩＰＳＥＣパケットでＷＯＬ処理を実行した場合に正しくＩＰＳＥＣパケットを処理できない問題が発生してしまう。
【００４９】
＜本実施形態による制御＞
次に、図１０を参照して、本実施形態におけるサブＣＰＵファームの処理手順について説明する。また、以下で説明する処理は、ＣＰＵ２１１がＲＯＭ２１３に格納された制御プログラムをＲＡＭ２１４にロードして実行することにより実現される。
【００５０】
サブＣＰＵファーム３０９が起動すると、Ｓ１００１において、ＣＰＵ２１１は、メインＣＰＵファーム３０１からＳＡ情報の転送があるかどうかを判定する。Ｓ１００２において、ＣＰＵ２１１は、ＳＡ情報の転送があると判定すると、サブＣＰＵのＩＰＳＥＣ処理部３１４にＳＡ情報を設定する。続いて、Ｓ１００３において、サブＣＰＵは、ネットワークパケットの受信待ち状態となる。Ｓ１００３でネットワークパケットを受信すると、Ｓ１００４に進み、ＣＰＵ２１１は、受信パケットを一時記憶領域３１５にコピーして保存する。
【００５１】
次に、Ｓ１００５において、ＣＰＵ２１１は、受信パケットに対してプロトコルスタック３１０を利用してヘッダ解析処理を行う。さらに、Ｓ１００６において、ＣＰＵ２１１は、ＩＰレイヤにおいてはＩＰＳＥＣ処理部３１４を利用して受信パケットがＩＰＳＥＣパケットであるかどうかを判定する。Ｓ１００７において、ＣＰＵ２１１は、受信パケットがＩＰＳＥＣであると判断すると、この時点でＩＰＳＥＣ処理部３１４に存在している、受信パケットに関するＳＡ情報だけを一時記憶領域３１５にコピーして保存する。ＩＰＳＥＣ処理部３１４には、複数のセッションに対応付けられている複数のＳＡ情報が存在するが、受信パケットに対応するＳＡだけを一時記憶領域３１５に保存する。このように、本実施形態では、受信パケットに加えて、対応するＳＡ情報を一時記憶領域３１５へ退避する。
【００５２】
次に、Ｓ１００８において、ＣＰＵ２１１は、復号鍵を利用して受信パケットの復号化を行い、成功したか否かを判定する。受信パケットの復号化に失敗した場合は、Ｓ１００９に進み、ＣＰＵ２１１は、自装置宛ではない、あるいはエラーシーケンスとみなし、一時記憶領域３１５のＳＡ情報を消去し、Ｓ１０１０で一時記憶領域３１５のパケットデータを消去し、処理をＳ１００３に戻す。一方、Ｓ１００８で復号化に成功した場合は、Ｓ１０１１に進み、ＣＰＵ２１１は、ＩＰＳＥＣ処理部３１４に存在するＳＡ情報のシーケンス番号やデータ送信量などを更新し、Ｓ１０１２に進む。また、Ｓ１００６において、平文パケットを受信した場合もＳ１０１２に進む。
【００５３】
Ｓ１０１２において、ＣＰＵ２１１は、代理応答処理部３１６で受信パケットが代理応答パケットパターンに合致するかどうかを判定する。代理応答すべきと判断した場合はＳ１０１３に進み、ＣＰＵ２１１は、代理応答処理部３１６で応答パケットパターンを作成する。続いて、Ｓ１０１４において、ＣＰＵ２１１は、受信パケットがＩＰＳＥＣパケットである否かを判定する。ここでは、ＩＰＳＥＣパケットである場合は、応答するパケットもＩＰＳＥＣパケットである必要があるため、送信パケットを暗号化すべきかどうかをＩＰＳＥＣ処理部３１４で判定している。
【００５４】
暗号化すべきと判定すると、Ｓ１０１５に進み、ＣＰＵ２１１は、ＩＰＳＥＣ処理部３１４で送信パケットを、暗号化方式に合わせて対応する暗号鍵を用いて暗号化する。続いて、Ｓ１０１６において、ＣＰＵ２１１は、一時記憶領域３１５に保存したＳＡ情報を消去し、Ｓ１０１７に進む。この系の場合は一時記憶領域３１５に保存したＳＡ情報は使用しない。一方、Ｓ１０１４において平文でパケットを送信すると判断した場合はＳ１０１７に進む。
【００５５】
Ｓ１０１７において、ＣＰＵ２１１は、プロトコルスタック３１０によって応答パケットを送信する。その後、Ｓ１０１８において、ＣＰＵ２１１は、一時記憶領域３１５に保存してあったパケットデータを消去し、処理をＳ１００３に戻して再びパケットデータ受信待ち状態に戻る。この系の場合は一時記憶領域３１５に保存したパケットデータは使用しない。
【００５６】
Ｓ１０１２で代理応答すべきでないと判断すると、Ｓ１０１９において、ＣＰＵ２１１は、ＷＯＬ処理部３１７で受信したパケットパターンがＷＯＬ処理を実行すべきかどうかを判定する。ＷＯＬ処理を実行すべきでないと判断すると、Ｓ１０２０に進み、ＣＰＵ２１１は、機器に関係のないパケットなのでパケットを破棄する。その後、Ｓ１０１８に進み、ＣＰＵ２１１は、一時記憶領域３１５に保存してあったパケットデータも消去して、処理をＳ１００３に戻して再びパケットデータ受信待ち状態に戻る。
【００５７】
一方、Ｓ１０１９でＷＯＬ処理を実行すべきと判断すると、Ｓ１０２１において、ＣＰＵ２１１は、ＣＰＵ間通信部を介してメインＣＰＵを起動させる。続いて、Ｓ１０２２において、ＣＰＵ２１１は、ＷＯＬパケットがＩＰＳＥＣパケットであったかどうかを判定する。ＩＰＳＥＣパケットだと判定すると、Ｓ１０２３に進み、ＣＰＵ２１１は、一時記憶領域３１５にコピーしてあったＷＯＬに関連するＳＡ情報と、ＩＰＳＥＣ処理部に保存されている残りのＳＡ情報をメインＣＰＵのＩＰＳＥＣ処理部３０６に転送する。転送後は、Ｓ１０２４に進み、ＣＰＵ２１１は、一時記憶領域３１５からＳＡ情報を消去する。続いて、Ｓ１０２９に進み、ＣＰＵ２１１は、ＩＰＳｅｃ処理部３１４に残りのＳＡ情報があれば当該情報をメインＣＰＵへ転送する。その後、Ｓ１０２７に進み、ＣＰＵ２１１は、一時記憶領域３１５に保存してあったＩＰＳＥＣ受信パケットをメインＣＰＵに転送し、Ｓ１０２８で転送終了後、一時記憶領域３１５に保存したパケットデータを消去する。
【００５８】
Ｓ１０２２で平文パケットでＷＯＬ処理を実行すると判定すると、Ｓ１０２５に進み、ＣＰＵ２１１は、サブＣＰＵのＩＰＳＥＣ処理部３１４にＳＡ情報が保存されてるか否かを判定する。保存されている場合はＳ１０２６に進み、ＣＰＵ２１１は、メインＣＰＵのＩＰＳＥＣ処理部３０６へＳＡ情報を転送する。その後、Ｓ１０２７において、ＣＰＵ２１１は、一時記憶領域３１５に保存してあった平文の受信パケットをメインＣＰＵに転送し、転送終了後Ｓ１０２８において、一時記憶領域３１５に保存したパケットデータを消去する。
【００５９】
一方、Ｓ１０２５でＩＰＳＥＣ処理部３１４にＳＡ情報がなければ、メインＣＰＵへＳＡ情報を転送する必要がないため、Ｓ１０２７に進み、ＣＰＵ２１１は、一時記憶領域３１５に保存してあった平文の受信パケットをメインＣＰＵに転送する。転送終了後Ｓ１０２８に進み、ＣＰＵ２１１は、一時記憶領域３１５に保存したパケットデータを消去する。
【００６０】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005824257.tif 000002
【図２】
0005824257.tif 000003
【図３】
0005824257.tif 000004
【図４】
0005824257.tif 000005
【図５】
0005824257.tif 000006
【図６】
0005824257.tif 000007
【図７】
0005824257.tif 000008
【図８】
0005824257.tif 000009
【図９】
0005824257.tif 000010
【図１０】
0005824257.tif 000011