(57)【要約】【課題】通信全体における通信性能向上を実現する。【解決手段】通信割り当て部５１は、同時に実行される複数のアプリケーション通信について、ＴＯＥ（TCP/IP offload Engine）４０を備えるハード通信手段５３によるハードウェア通信またはソフト通信手段５２によるソフトウェア通信への割り当て処理を、各アプリケーション通信にかかる基準情報に基づいて実行する。これにより、各アプリケーション通信にかかる基準情報を通信装置の使用環境に応じて適宜選択することで、通信全体における通信性能の向上を実現することができる。【選択図】        図５
2008312094.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで並行に実行される複数のアプリケーション通信を処理する通信装置において、
ソフトウェアによるＴＣＰ／ＩＰ制御により前記アプリケーション通信を実行するソフト通信手段と、
ＴＯＥ（TCP/IP offload Engine）によるＴＣＰ／ＩＰ制御により前記アプリケーション通信を実行するハード通信手段と、
同時に実行される前記複数のアプリケーション通信について、前記ハード通信手段によるハードウェア通信または前記ソフト通信手段によるソフトウェア通信への割り当て処理を、前記各アプリケーション通信にかかる基準情報に基づいて実行する通信割り当て手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（Security Association）であり、
前記通信割り当て手段は、ＳＡを抽出した場合にはＩＰｓｅｃの確立に前記ソフト通信手段によるソフトウェア通信が使われたものと判定し、ＳＡを抽出しない場合にはＩＰｓｅｃの確立に前記ハード通信手段によるハードウェア通信が使われたものと判定して、ＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信については既にＳＡが構築済みの前記ソフト通信手段によるソフトウェア通信または前記ハード通信手段によるハードウェア通信に対して割り当てる、
ことを特徴とする請求項１記載の通信装置。
【請求項３】
前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、前記複数のアプリケーション通信の通信量に関係する情報であり、
前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信のそれぞれの前記通信量に関係する情報について、相対的に数値が大きい前記アプリケーション通信に対して前記ハード通信手段によるハードウェア通信を優先的に割り当てる、
ことを特徴とする請求項１記載の通信装置。
【請求項４】
前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、前記複数のアプリケーション通信毎に予め定められた優先度であり、
前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信毎に予め定められた優先度を参照し、優先度が高い前記アプリケーション通信に対して前記ハード通信手段によるハードウェア通信を優先的に割り当てる、
ことを特徴とする請求項１記載の通信装置。
【請求項５】
前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、前記複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度であり、
前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度を参照し、優先度が高いユーザにかかる前記アプリケーション通信に対して前記ハード通信手段によるハードウェア通信を優先的に割り当てる、
ことを特徴とする請求項１記載の通信装置。
【請求項６】
前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、前記複数のアプリケーション通信の通信対象の使用傾向であり、
前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信の通信対象の使用傾向を参照し、通信に負荷の掛かる使用傾向がある前記通信対象への前記アプリケーション通信に対して前記ハード通信手段によるハードウェア通信を優先的に割り当てる、
ことを特徴とする請求項１記載の通信装置。
【請求項７】
前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（Security Association）と、前記複数のアプリケーション通信の通信量に関係する情報と、前記複数のアプリケーション通信毎に予め定められた優先度と、前記複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度と、前記複数のアプリケーション通信の通信対象の使用傾向との少なくとも２以上を用いたものであり、
前記通信割り当て手段は、少なくとも２以上の前記基準情報に対して予め定められた優先度に従い、前記複数のアプリケーション通信を前記ソフト通信手段によるソフトウェア通信または前記ハード通信手段によるハードウェア通信に対して割り当てる、
ことを特徴とする請求項１記載の通信装置。
【請求項８】
前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信にかかる前記基準情報を自ら解析して、前記各アプリケーション通信について、前記ハード通信手段によるハードウェア通信または前記ソフト通信手段によるソフトウェア通信への割り当て処理を実行する、
ことを特徴とする請求項１記載の通信装置。
【請求項９】
前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信にかかる前記基準情報を外部から受け取り、前記各アプリケーション通信について、前記ハード通信手段によるハードウェア通信または前記ソフト通信手段によるソフトウェア通信への割り当て処理を実行する、
ことを特徴とする請求項１記載の通信装置。
【請求項１０】
ネットワークで並行に実行される複数のアプリケーション通信処理をコンピュータに実行させるプログラムであって、
同時に実行される前記複数のアプリケーション通信について、ソフトウェアによるＴＣＰ／ＩＰ制御により前記アプリケーション通信を実行するソフト通信手段によるソフトウェア通信またはＴＯＥ（TCP/IP offload Engine）によるＴＣＰ／ＩＰ制御により前記アプリケーション通信を実行するハード通信手段によるハードウェア通信への割り当て処理を、前記各アプリケーション通信にかかる基準情報に基づいて実行する通信割り当て機能を、
前記コンピュータに実行させることを特徴とするプログラム。
【請求項１１】
前記通信割り当て機能が割り当て処理の基準に用いる前記基準情報は、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（Security Association）であり、
前記通信割り当て機能は、ＳＡを抽出した場合にはＩＰｓｅｃの確立に前記ソフト通信手段によるソフトウェア通信が使われたものと判定し、ＳＡを抽出しない場合にはＩＰｓｅｃの確立に前記ハード通信手段によるハードウェア通信が使われたものと判定して、ＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信については既にＳＡが構築済みの前記ソフト通信手段によるソフトウェア通信または前記ハード通信手段によるハードウェア通信に対して割り当てる、
ことを特徴とする請求項１０記載のプログラム。
【請求項１２】
前記通信割り当て機能が割り当て処理の基準に用いる前記基準情報は、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（Security Association）と、前記複数のアプリケーション通信の通信量に関係する情報と、前記複数のアプリケーション通信毎に予め定められた優先度と、前記複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度と、前記複数のアプリケーション通信の通信対象の使用傾向との少なくとも２以上を用いたものであり、
前記通信割り当て機能は、少なくとも２以上の前記基準情報に対して予め定められた優先度に従い、前記複数のアプリケーション通信を前記ソフト通信手段によるソフトウェア通信または前記ハード通信手段によるハードウェア通信に対して割り当てる、
ことを特徴とする請求項１０記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置およびプログラムに関する。
【背景技術】
【０００２】
インターネットやイントラネットにおいて標準的に用いられるプロトコルであるＴＣＰ／ＩＰ通信において、そのプロトコル処理はネットワークデータを扱うネットワークサーバなどのＣＰＵによって行われている。このようなプロトコル処理は、ＣＰＵに大きな負荷をかけるものである。
【０００３】
近年、ネットワークの高速化が進んでおり、ネットワークサーバにおいては、ＣＰＵが処理できる速度をネットワークの速度が上回りつつあるという問題が生じている。
【０００４】
そこで、上述したようなネットワークサーバにおけるネットワーク処理の負荷低減のために、ＴＯＥ（TCP/IP offload Engine）というソリューションが提案されている（例えば、特許文献１参照）。ＴＯＥは、ネットワーク処理において多くのＣＰＵ処理時間を必要とするネットワークプロトコル処理、またはネットワークプロトコルのチェックサム処理などをハードウェア化したものである。より詳細には、ＴＯＥは、ＯＳＩ（Open Systems Interconnection）７階層参照モデルにおけるＴＣＰより上位の層で作られたパケットに対し、ＴＣＰ／ＵＤＰヘッダ処理・ＩＰヘッダ処理を一貫して行うハードウェアである。このようなハードウェアであるＴＯＥがネットワーク処理（ＴＣＰ／ＩＰ処理）の一部もしくは全部を行うことにより、ネットワークサーバのＣＰＵ負荷を低減させることが可能となる。また、ハードウェア処理された通信は、一般に、ソフトウェア処理よりも高速に動作するため、システムのスループットを向上させることが可能となる。
【０００５】
【特許文献１】特開２００６−０１４１４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したようなＴＯＥは、ハードウェアによる実装となるため、通信能力がメモリ容量などハードウェア制約に大きく依存するという特徴がある。具体的には、セッション数への影響が大きく、通信上限が数セッション〜数十セッション程度に限られる場合がある。必要な通信に十分な能力を持ったハードウェア構成とすれば問題ないが、小型化や低廉化のためにそれができない状況も多い。
【０００７】
このような状況の解決法として、ＴＯＥによるハードウェア通信と、ソフトウェア通信を併用し使い分ける方法が考えられる。ＴＯＥに割り当てることのできない通信は従来通りのソフトウェア通信を用いることで、セッション数の上限などの問題を回避することができる。
【０００８】
ただし、上述したような方法を採用する場合、ハードウェア通信とソフトウェア通信の使い分け方が、トータルの通信性能に大きく影響することとなる。例えば、簡単な使い分け方として「早く開始された通信から順にＴＯＥを割り当てる」ようにした場合、後発の通信で通信量・通信頻度ともに多いものがあったとしても、それはソフトウェア通信に割り当てられることとなる。そのような通信を優先的にＴＯＥに割り当てことができれば、通信トータルで見た際の通信性能を高めることができる。通信性能の向上とは、単に平均通信速度を上げるという意味ではなく、平均通信速度を下げるとしても必要な通信にはＴＯＥを割り当てた上での、全体最適化を指す。例えば、通信量・頻度ともに少なくとも、通信速度のためにどうしてもＴＯＥを使いたい通信があれば、それにＴＯＥが割り当てられるべきである。
【０００９】
すなわち、通信装置の使用環境によって、求められる通信性能も異なることになる。ある環境では、通信性能として平均通信速度が求められるだろうし、別の環境では特定の通信に通信速度が求められるだろうし、また別の環境ではセキュリティ通信に通信速度が求められることになる。
【００１０】
本発明は、上記に鑑みてなされたものであって、通信全体における通信性能向上を実現することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、ネットワークで並行に実行される複数のアプリケーション通信を処理する通信装置において、ソフトウェアによるＴＣＰ／ＩＰ制御により前記アプリケーション通信を実行するソフト通信手段と、ＴＯＥ（TCP/IP offload Engine）によるＴＣＰ／ＩＰ制御により前記アプリケーション通信を実行するハード通信手段と、同時に実行される前記複数のアプリケーション通信について、前記ハード通信手段によるハードウェア通信または前記ソフト通信手段によるソフトウェア通信への割り当て処理を、前記各アプリケーション通信にかかる基準情報に基づいて実行する通信割り当て手段と、を備える。
【００１２】
また、請求項２にかかる発明は、請求項１記載の通信装置において、前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（Security Association）であり、前記通信割り当て手段は、ＳＡを抽出した場合にはＩＰｓｅｃの確立に前記ソフト通信手段によるソフトウェア通信が使われたものと判定し、ＳＡを抽出しない場合にはＩＰｓｅｃの確立に前記ハード通信手段によるハードウェア通信が使われたものと判定して、ＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信については既にＳＡが構築済みの前記ソフト通信手段によるソフトウェア通信または前記ハード通信手段によるハードウェア通信に対して割り当てる。
【００１３】
また、請求項３にかかる発明は、請求項１記載の通信装置において、前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、前記複数のアプリケーション通信の通信量に関係する情報であり、前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信のそれぞれの前記通信量に関係する情報について、相対的に数値が大きい前記アプリケーション通信に対して前記ハード通信手段によるハードウェア通信を優先的に割り当てる。
【００１４】
また、請求項４にかかる発明は、請求項１記載の通信装置において、前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、前記複数のアプリケーション通信毎に予め定められた優先度であり、前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信毎に予め定められた優先度を参照し、優先度が高い前記アプリケーション通信に対して前記ハード通信手段によるハードウェア通信を優先的に割り当てる。
【００１５】
また、請求項５にかかる発明は、請求項１記載の通信装置において、前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、前記複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度であり、前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度を参照し、優先度が高いユーザにかかる前記アプリケーション通信に対して前記ハード通信手段によるハードウェア通信を優先的に割り当てる。
【００１６】
また、請求項６にかかる発明は、請求項１記載の通信装置において、前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、前記複数のアプリケーション通信の通信対象の使用傾向であり、前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信の通信対象の使用傾向を参照し、通信に負荷の掛かる使用傾向がある前記通信対象への前記アプリケーション通信に対して前記ハード通信手段によるハードウェア通信を優先的に割り当てる。
【００１７】
また、請求項７にかかる発明は、請求項１記載の通信装置において、前記通信割り当て手段が割り当て処理の基準に用いる前記基準情報は、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（Security Association）と、前記複数のアプリケーション通信の通信量に関係する情報と、前記複数のアプリケーション通信毎に予め定められた優先度と、前記複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度と、前記複数のアプリケーション通信の通信対象の使用傾向との少なくとも２以上を用いたものであり、前記通信割り当て手段は、少なくとも２以上の前記基準情報に対して予め定められた優先度に従い、前記複数のアプリケーション通信を前記ソフト通信手段によるソフトウェア通信または前記ハード通信手段によるハードウェア通信に対して割り当てる。
【００１８】
また、請求項８にかかる発明は、請求項１記載の通信装置において、前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信にかかる前記基準情報を自ら解析して、前記各アプリケーション通信について、前記ハード通信手段によるハードウェア通信または前記ソフト通信手段によるソフトウェア通信への割り当て処理を実行する。
【００１９】
また、請求項９にかかる発明は、請求項１記載の通信装置において、前記通信割り当て手段は、同時に実行される前記複数のアプリケーション通信にかかる前記基準情報を外部から受け取り、前記各アプリケーション通信について、前記ハード通信手段によるハードウェア通信または前記ソフト通信手段によるソフトウェア通信への割り当て処理を実行する。
【００２０】
また、請求項１０にかかる発明は、ネットワークで並行に実行される複数のアプリケーション通信処理をコンピュータに実行させるプログラムであって、同時に実行される前記複数のアプリケーション通信について、ソフトウェアによるＴＣＰ／ＩＰ制御により前記アプリケーション通信を実行するソフト通信手段によるソフトウェア通信またはＴＯＥ（TCP/IP offload Engine）によるＴＣＰ／ＩＰ制御により前記アプリケーション通信を実行するハード通信手段によるハードウェア通信への割り当て処理を、前記各アプリケーション通信にかかる基準情報に基づいて実行する通信割り当て機能を、前記コンピュータに実行させる。
【００２１】
また、請求項１１にかかる発明は、請求項１０記載のプログラムにおいて、前記通信割り当て機能が割り当て処理の基準に用いる前記基準情報は、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（Security Association）であり、前記通信割り当て機能は、ＳＡを抽出した場合にはＩＰｓｅｃの確立に前記ソフト通信手段によるソフトウェア通信が使われたものと判定し、ＳＡを抽出しない場合にはＩＰｓｅｃの確立に前記ハード通信手段によるハードウェア通信が使われたものと判定して、ＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信については既にＳＡが構築済みの前記ソフト通信手段によるソフトウェア通信または前記ハード通信手段によるハードウェア通信に対して割り当てる。
【００２２】
また、請求項１２にかかる発明は、請求項１０記載のプログラムにおいて、前記通信割り当て機能が割り当て処理の基準に用いる前記基準情報は、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（Security Association）と、前記複数のアプリケーション通信の通信量に関係する情報と、前記複数のアプリケーション通信毎に予め定められた優先度と、前記複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度と、前記複数のアプリケーション通信の通信対象の使用傾向との少なくとも２以上を用いたものであり、前記通信割り当て機能は、少なくとも２以上の前記基準情報に対して予め定められた優先度に従い、前記複数のアプリケーション通信を前記ソフト通信手段によるソフトウェア通信または前記ハード通信手段によるハードウェア通信に対して割り当てる。
【発明の効果】
【００２３】
請求項１にかかる発明によれば、同時に実行される複数のアプリケーション通信について、ＴＯＥ（TCP/IP offload Engine）を備えるハード通信手段によるハードウェア通信またはソフト通信手段によるソフトウェア通信への割り当て処理を、各アプリケーション通信にかかる基準情報に基づいて実行することにより、各アプリケーション通信にかかる基準情報を通信装置の使用環境に応じて適宜選択することで、通信全体における通信性能向上を実現することができる、という効果を奏する。
【００２４】
また、請求項２にかかる発明によれば、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（基準情報）を抽出した場合にはＩＰｓｅｃの確立にソフト通信手段によるソフトウェア通信が使われたものと判定し、ＳＡを抽出しない場合にはＩＰｓｅｃの確立にハード通信手段によるハードウェア通信が使われたものと判定して、ＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信については既にＳＡが構築済みのソフト通信手段によるソフトウェア通信またはハード通信手段によるハードウェア通信に対して割り当てるようにしたことにより、「ＴＯＥ利用によるＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信」にＴＯＥを割り当てることによって、通信全体における通信性能向上（ＩＰｓｅｃ処理に必要な時間の短縮）を実現することができる、という効果を奏する。
【００２５】
また、請求項３にかかる発明によれば、同時に実行される複数のアプリケーション通信のそれぞれの通信量に関係する情報（基準情報）について、相対的に数値が大きいアプリケーション通信に対してハード通信手段によるハードウェア通信を優先的に割り当てることにより、より「通信量」の多いものにＴＯＥを割り当てることによって、通信全体における通信性能向上（平均通信速度の向上）を実現することができる、という効果を奏する。ここで、同時に実行される複数のアプリケーション通信のそれぞれの通信量に関係する情報（基準情報）とは、例えば、アプリケーションごとの過去のトータルの通信量、アプリケーションごとの過去のトータルの通信量を通信回数で割ったアプリケーションごとの一回当りの平均通信量、通信頻度などである。
【００２６】
また、請求項４にかかる発明によれば、同時に実行される複数のアプリケーション通信毎に予め定められた優先度（基準情報）を参照し、優先度が高いアプリケーション通信に対してハード通信手段によるハードウェア通信を優先的に割り当てることにより、より「アプリケーションの優先度」の高いものにＴＯＥを割り当てることによって、通信全体における通信性能向上（各アプリケーションへの通信速度の必要性に応じた、通信速度配分）を実現することができる、という効果を奏する。
【００２７】
また、請求項５にかかる発明によれば、同時に実行される複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度（基準情報）を参照し、優先度が高いユーザにかかるアプリケーション通信に対してハード通信手段によるハードウェア通信を優先的に割り当てることにより、より「通信利用ユーザの優先度」の高いものにＴＯＥを割り当てることによって、通信全体における通信性能向上（各ユーザの通信速度の必要性に応じた、通信速度配分）を実現することができる、という効果を奏する。
【００２８】
また、請求項６にかかる発明によれば、同時に実行される複数のアプリケーション通信の通信対象の使用傾向（基準情報）を参照し、通信に負荷の掛かる使用傾向がある通信対象へのアプリケーション通信に対してハード通信手段によるハードウェア通信を優先的に割り当てることにより、通信全体における通信性能向上（平均通信速度の向上）を実現することができる、という効果を奏する。ここで、同時に実行される複数のアプリケーション通信の通信対象の使用傾向（基準情報）とは、通信対象であるクライアントの使用傾向や、通信対象ユーザの使用傾向などである。
【００２９】
また、請求項７にかかる発明によれば、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡと、複数のアプリケーション通信の通信量に関係する情報と、複数のアプリケーション通信毎に予め定められた優先度と、複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度と、複数のアプリケーション通信の通信対象の使用傾向とを基準情報とし、少なくとも２以上の基準情報に対して予め定められた優先度に従い、複数のアプリケーション通信をソフト通信手段によるソフトウェア通信またはハード通信手段によるハードウェア通信に対して割り当てることにより、ＴＯＥの割り当ての選択に複数の基準情報を組み合わせて使用することで、その通信装置の使用環境に合わせた柔軟な形での、通信全体における通信性能向上を実現することができる、という効果を奏する。
【００３０】
また、請求項８にかかる発明によれば、同時に実行される複数のアプリケーション通信にかかる基準情報を自ら解析して、各アプリケーション通信について、ハード通信手段によるハードウェア通信またはソフト通信手段によるソフトウェア通信への割り当て処理を実行することにより、通信全体における通信性能向上を実現することができる、という効果を奏する。
【００３１】
また、請求項９にかかる発明によれば、同時に実行される複数のアプリケーション通信にかかる基準情報を外部から受け取り、各アプリケーション通信について、ハード通信手段によるハードウェア通信またはソフト通信手段によるソフトウェア通信への割り当て処理を実行することにより、通信全体における通信性能向上を実現することができる、という効果を奏する。
【００３２】
また、請求項１０にかかる発明によれば、同時に実行される複数のアプリケーション通信について、ＴＯＥ（TCP/IP offload Engine）を備えるハード通信手段によるハードウェア通信またはソフト通信手段によるソフトウェア通信への割り当て処理を、各アプリケーション通信にかかる基準情報に基づいて実行することにより、各アプリケーション通信にかかる基準情報を通信装置の使用環境に応じて適宜選択することで、通信全体における通信性能向上を実現することができる、という効果を奏する。
【００３３】
また、請求項１１にかかる発明によれば、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（基準情報）を抽出した場合にはＩＰｓｅｃの確立にソフト通信手段によるソフトウェア通信が使われたものと判定し、ＳＡを抽出しない場合にはＩＰｓｅｃの確立にハード通信手段によるハードウェア通信が使われたものと判定して、ＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信については既にＳＡが構築済みのソフト通信手段によるソフトウェア通信またはハード通信手段によるハードウェア通信に対して割り当てるようにしたことにより、「ＴＯＥ利用によるＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信」にＴＯＥを割り当てることによって、通信全体における通信性能向上（ＩＰｓｅｃ処理に必要な時間の短縮）を実現することができる、という効果を奏する。
【００３４】
また、請求項１２にかかる発明によれば、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡと、複数のアプリケーション通信の通信量に関係する情報と、複数のアプリケーション通信毎に予め定められた優先度と、複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度と、複数のアプリケーション通信の通信対象の使用傾向とを基準情報とし、少なくとも２以上の基準情報に対して予め定められた優先度に従い、複数のアプリケーション通信をソフト通信手段によるソフトウェア通信またはハード通信手段によるハードウェア通信に対して割り当てることにより、ＴＯＥの割り当ての選択に複数の基準情報を組み合わせて使用することで、その通信装置の使用環境に合わせた柔軟な形での、通信全体における通信性能向上を実現することができる、という効果を奏する。
【発明を実施するための最良の形態】
【００３５】
以下に添付図面を参照して、この発明にかかる通信装置およびプログラムの最良な実施の形態を詳細に説明する。
【００３６】
本発明を実施するための最良の形態について図面を参照して説明する。以下では、ＴＯＥ（TCP/IP offload Engine）について簡単に説明し、その後、本実施の形態の通信装置を含む情報処理システムについて説明する。
【００３７】
［ＴＯＥの概要］
ＴＯＥ（TCP/IP offload Engine）とは、ネットワークデータを扱うネットワークサーバなどのＣＰＵの代わりにＴＣＰ／ＩＰのプロトコル処理を行う機能、あるいはそのような機能を持ったネットワークアダプタのことである。ＴＯＥは、主に、ＮＩＣ（Network Interface Card）やＨＢＡ（Host Bus Adapter）、ｉＳＣＳＩ（internet SCSI）などのプリント基板に実装される。
【００３８】
ＴＯＥは、ＯＳＩ参照モデルにおけるＴＣＰより上位の層で作られたパケットに対し、ＴＣＰ／ＵＤＰヘッダ処理・ＩＰヘッダ処理を一貫して行うハードウェアである。このようなハードウェアであるＴＯＥがネットワーク処理（ＴＣＰ／ＩＰ処理）の一部もしくは全部を行うことにより、ＣＰＵ負荷を低減させることが可能となる。また、ハードウェア処理された通信は、一般に、ソフトウェア処理よりも高速に動作するため、システムのスループットを向上させることが可能となる。
【００３９】
図１は、本発明の前提となるＴＯＥによるデータ移動例を示す模式図である。図１に示すように、まず、パケットがＮＩＣ（Network Interface Card）によって受信されると、パケットはＴＯＥにロードされる（１）。ＴＯＥは、ＴＣＰ／ＩＰヘッダを処理した後（２）、データをＮＩＣメモリからユーザメモリスペースにコピーする（３）。その後、ＮＩＣがＣＰＵに割り込んで、パケットがユーザから利用可能であることを指示する（４）。
【００４０】
ここで、比較のために、従来のネットワーク移動について図２を参照して説明する。図２に示すように、パケットがＮＩＣによって受信されると、パケットはドライバ／カーネルメモリスペースに移される（１１）。次いで、ネットワークコントローラがＣＰＵに割り込んで、パケットの着信をシグナル通知する（１２）。その後、ＣＰＵは、ＴＣＰ／ＩＰヘッダを処理した後（１３）、ＤＭＡエンジンによってカーネルメモリスペースからユーザメモリスペースにコピーする（１４）。
【００４１】
図２に示すように、従来はＣＰＵによる複数のデータ移動が必要となっている。いずれの場合も、ＣＰＵは、データを読取り、必要に応じて修正し、メモリに書き込んで戻す必要がある。このようなＣＰＵによる複数のデータ移動は、メモリアクセスの障害となる可能性があり、ＣＰＵ負荷が増大する要因となっている。一方、図１に示すＴＯＥによるデータ移動においては、メモリの読み取り／修正／書込みというシーケンスをＣＰＵが実行する必要がなくなるので、ＣＰＵ負荷の低減が可能になる。
【００４２】
すなわち、ＴＯＥは、従来ホスト側のＣＰＵリソースが費やされていたＴＣＰ／ＩＰ処理の一部あるいは全部を負担することで、ＣＰＵの負担を軽減し、処理を高速化させ、システムのスループットを向上させる役割を担っている。これにより、ホスト側は、ＣＰＵリソースを本来のアプリケーション処理だけに割り当てることが可能になる。
【００４３】
［第１の実施の形態］
本発明の第１の実施の形態を図３ないし図６に基づいて説明する。本実施の形態は通信装置としてＭＦＰ（Multi Function Peripheral）と称される複合機を適用した例である。
【００４４】
図３は、本発明の第１の実施の形態にかかる情報処理システム１のネットワーク構成を示すブロック図である。図３に示すように、本実施の形態の情報処理システム１は、通信装置２と、通信装置２と通信を行う複数台のクライアントコンピュータ（以下、クライアントという）４とがネットワーク３を介して接続されたシステムを想定する。また、ネットワーク３には、通信機器同士の接続を中継するルータ５が接続されており、例えばインターネット上にあるクライアント（図示せず）などとの通信を経由する。本実施の形態の通信装置２は、コピー機能、ファクシミリ（ＦＡＸ）機能、プリント機能、スキャナ機能及び入力画像（スキャナ機能による読み取り原稿画像やプリンタあるいはＦＡＸ機能により入力された画像）を配信する機能等を複合したいわゆるＭＦＰ（Multi Function Peripheral）と称される複合機を適用した例である。また、図３においては、ＩＰｖ４ネットワークでの構成を記載しているが、本発明はＩＰのバージョンによらないため、ＩＰｖ４／ＩＰｖ６を問わずに構成可能である。
【００４５】
ここで、図４は通信装置２の構成を示すブロック図である。図４に示すように、通信装置２は、この通信装置２の各部の制御処理および画像形成処理などの各種制御処理を行うコントローラ１１を備えている。コントローラ１１には、通信装置２の動作制御を行うＣＰＵ（Central Processing Unit）１２が備えられている。ＣＰＵ１２には、所定の機能を発揮するＡＳＩＣ（Application Specific Integrated Circuit）１３、ＣＰＵ１２やＡＳＩＣ１３が実行するプログラムや必要なデータ等を記憶するためのＲＯＭ（Read Only Memory）１４と、ＣＰＵ１２のワークエリア等を構成するためのＲＡＭ（Random Access Memory）１５とが内部バス１６を介して接続されている。
【００４６】
さらに、ＣＰＵ１２には、ＮＩＣ（Network Interface Card）１７、ＨＤＤ（Hard Disk Drive）１８、プリンタエンジン３１のインタフェースであるプリンタＩ／Ｆ１９、スキャナ３２のインタフェースであるスキャナＩ／Ｆ２０、ＦＣＵ（Fax Control Unit）３３のインタフェースであるＦＡＸ Ｉ／Ｆ２１が、内部バス１６を介して接続されており、これらの各要素間のデータのやりとりは、主としてこの内部バス１６を介して行われる。
【００４７】
ＮＩＣ１７は、通信装置２をネットワーク３に接続するために組み込まれたインタフェース・カードである。例えば、ＮＩＣ１７は、ネットワーク３を介してクライアント４を接続し、クライアント４から印刷データ等を受信したり、クライアント４へ印刷結果情報等を送信する等の動作を行う。また、本実施の形態においては、ＮＩＣ１７は、上述したようなＴＯＥ（TCP/IP offload Engine）４０を備えている。
【００４８】
ＨＤＤ１８は、文書データ情報、文書データ、印刷データ等の種々のデータを記憶するためのものである。
【００４９】
次に、本実施の形態の通信装置２のコントローラ１１のＣＰＵ１２がプログラムに従って実現する機能の内、特徴的な機能である通信制御処理について説明する。
【００５０】
ここで、図５は通信制御処理を実行する通信制御部５５の構成を示すブロック図である。通信制御処理は、その処理の多くをプログラムである通信制御ソフトウェアを用いて実現するものであるが、本実施の形態では、通信制御ソフトウェアをハードウェア化して処理の高速化を図ったものも、通信制御ソフトウェアの一部として扱っている。
【００５１】
図５に示すように、通信制御部５５は、大きく分けて次の４つの部位から構成されている。より具体的には、アプリケーション部５０と、ソフトＴＣＰ／ＩＰ制御部５２と、ハードＴＣＰ／ＩＰ制御部５３と、ネットワーク通信ドライバ５４とを備えている。なお、上述の構成は必要最小限の構成要素であり、他の装置やモジュールを追加することで、より高機能な通信制御処理を実行することができる。例えば、各制御部５２，５３にログ取得用モジュールを組み込むことによって、中継したパケット情報を記録し、ログ出力や、統計情報を得ることが可能となる。
【００５２】
アプリケーション部５０は、通信装置２のユーザに対して提供するアプリケーションに関する処理を行う。
【００５３】
ソフトＴＣＰ／ＩＰ制御部５２は、ソフト通信手段として機能するものであって、ソフトウェアによってＴＣＰ／ＩＰ制御を行う部位であり、ＴＣＰ／ＵＤＰ制御部・ＩＰ制御部・ＩＰｓｅｃ制御部を有している。
【００５４】
ハードＴＣＰ／ＩＰ制御部５３は、ハード通信手段として機能するものであって、ハードウェアであるＴＯＥ（TCP/IP offload Engine）４０によってＴＣＰ／ＩＰ制御を行う部位である。
【００５５】
ネットワーク通信ドライバ５４は、ネットワーク通信のためのハードウェア制御を行う部位である。具体的には、ネットワーク通信ドライバ５４は、ＯＳＩ７階層参照モデルにおけるデータリンク層のプロトコルにあたる。
【００５６】
また、図５に示すように、アプリケーション部５０には、ハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信とソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信との何れかに割り当てる処理を専任で行うモジュールである通信割り当て手段として機能する通信割り当て部５１が設けられている。全てのアプリケーションは通信割り当て部５１を介して通信されることになることから、通信割り当て部５１は、複数のアプリケーション通信について、ハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信とソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信との何れかに割り当てる処理を行うことが可能となる。
【００５７】
上述したような通信割り当て部５１と、ソフトＴＣＰ／ＩＰ制御部５２と、ハードＴＣＰ／ＩＰ制御部５３と、ネットワーク通信ドライバ５４とにより、通信制御部５５が構成されている。
【００５８】
ここで、図６は通信制御部５５の通信制御処理の流れを示すフローチャートである。図６に示すように、通信制御部５５は、通信依頼に待機し（ステップＳ１）、アプリケーションからの通信依頼を受信すると（ステップＳ２）、通信情報を抽出する（ステップＳ３）。ここで、ステップＳ３で抽出される通信情報（基準情報）は、複数のアプリケーション通信の通信量に関係する情報であり、例えばアプリケーション部５０のアプリケーションごとの過去の通信量である。アプリケーションごとの過去の通信量は、ＲＡＭ１５やＨＤＤ１８に記録されている。
【００５９】
続いて通信制御部５５は、通信割り当て部５１により、ステップＳ３で抽出した過去の通信情報からハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信とソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信との選択処理を行う（ステップＳ４）。
【００６０】
選択処理は、複数のアプリケーション通信の通信量に関係する情報の相対的関係を基に、どのアプリケーション通信にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当てるか否かを決定するものである。具体的には、同時に通信を行う可能性のある他のアプリケーションの通信量と比較して、所定のアプリケーション通信に対してハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当てるか否かを決定するものである。本実施の形態においては、単純に過去の通信量の多いものに対して、ハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当てる。これは過去の通信量の多いアプリケーションは、今後も通信量が多くなることが予想されるため、そのようなアプリケーションの通信には優先的にハードウェア通信を割り当てるようにしたものである。本実施の形態では、通信割り当て部５１がアプリケーションごとの通信量をＨＤＤ１８などの記録装置に記録しておき、その通信量をハードＴＣＰ／ＩＰ制御部５３の割り当ての基準に用いる。
【００６１】
その後、通信制御部５５は、所定のアプリケーションからデータを選択されたハードウェア通信またはソフトウェア通信により送信する通信処理を実行し（ステップＳ５）、当該アプリケーション通信の通信量を通信情報としてＲＡＭ１５やＨＤＤ１８に記録し（ステップＳ６）、次の通信依頼に待機する（ステップＳ１）。
【００６２】
例えば、ソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信へ割り当てられてきたＷｅｂ通信の通信量が他のアプリケーション通信に比べて相対的に多くなってきたような場合には、受信待ちで新たに起きたセッションでハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信に動的に割り当てるようにする。
【００６３】
なお、本実施の形態においては、複数のアプリケーション通信の通信量に関係する通信情報をアプリケーション部５０のアプリケーションごとの過去のトータルの通信量としたが、これに限るものではない。例えば、アプリケーションごとの過去のトータルの通信量を通信回数で割ったアプリケーションごとの一回当りの平均通信量を通信情報としても良い。また、通信情報は通信量に限るものではなく、通信頻度などであっても良い。さらに、通信量をアプリケーションの単位以外でも記録しておき（通信ユーザなど）、割り当てにその情報を用いるようにしても良い。
【００６４】
このように本実施の形態によれば、同時に実行される複数のアプリケーション通信について、ハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信またはソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信への割り当て処理を、各アプリケーション通信にかかる基準情報に基づいて実行することにより、各アプリケーション通信にかかる基準情報を通信装置の使用環境に応じて適宜選択することで、通信全体における通信性能向上を実現することができる。
【００６５】
より具体的には、同時に実行される複数のアプリケーション通信のそれぞれの過去のトータルの通信量に関係する情報（基準情報）について、相対的に数値が大きいアプリケーション通信に対してハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当てることにより、より「通信量」の多いものにＴＯＥ４０を割り当てることによって、通信全体における通信性能向上（平均通信速度の向上）を実現することができる。
【００６６】
また、本実施の形態においては、通信割り当て部５１は、同時に実行される複数のアプリケーション通信の通信量に関係する情報（基準情報）を自ら解析して、各アプリケーション通信について、ハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信またはソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信への割り当て処理を実行することにより、通信全体における通信性能向上を実現することができる。
【００６７】
［第２の実施の形態］
次に、本発明の第２の実施の形態を図７に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００６８】
第１の実施の形態では、通信割り当て部５１は複数のアプリケーション通信の通信量に関係する情報の相対的関係を基に、ハードウェア通信とソフトウェア通信との割り当て処理を行うようにしたが、本実施の形態は、予め決定しておいたアプリケーション通信の優先度（基準情報）に応じてハードウェア通信とソフトウェア通信との割り当て処理を行うようにした点で異なるものとなっている。
【００６９】
本実施の形態においては、クライアント４が通信装置２に対して「設定」と「印刷」とについてのアプリケーション通信をそれぞれ行う例を示す。なお、本実施の形態においては、受信の例を示しているが、送信も同様に構成することができることは言うまでもない。
【００７０】
ここで、図７は通信制御部５５の通信制御処理の流れを示すフローチャートである。図７に示すように、通信制御部５５は、まず、アプリケーション毎の優先度の設定を受け付ける（ステップＳ１１）。例えば、「印刷」のためのデータ量は「設定」のために通信すべきデータ量よりも多いことから、本実施の形態では、「設定」にかかるアプリケーション通信の優先度を低く、「印刷」にかかるアプリケーション通信の優先度を高くする。このようなアプリケーション毎の優先度は、ＲＡＭ１５やＨＤＤ１８に記録される。
【００７１】
その後、通信依頼に待機し（ステップＳ１２）、アプリケーションから「受信待機」という通信依頼を受信すると（ステップＳ１３）、通信情報を抽出する（ステップＳ１４）。ここで、ステップＳ１４で抽出される通信情報は、通信を行うアプリケーションの優先度である。
【００７２】
続いて通信制御部５５は、通信割り当て部５１により、ステップＳ１４で抽出した通信情報（アプリケーションの優先度）に基づいてハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信とソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信との選択処理を行う（ステップＳ１５）。
【００７３】
選択処理は、同時に通信を行う可能性のある他のアプリケーションの優先度と比較して、所定のアプリケーション通信に対してハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当てるか否かを決定するものである。本実施の形態においては、「印刷」にかかるアプリケーション通信が「設定」にかかるアプリケーション通信よりも優先度が高く設定されているので、「印刷」にかかるアプリケーション通信に優先的にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を割り当てる。なお、アプリケーションの粒度を落とすことで、より細かい機能単位で優先度設定することも可能となる。
【００７４】
その後、通信制御部５５は、優先度を低いとした「設定」のための受信待機をソフトウェア通信で行い、優先度を高いとした「印刷」のための受信待機をハードウェア通信で行う通信処理を実行し（ステップＳ１６）、次の通信依頼に待機する（ステップＳ１２）。
【００７５】
これにより、クライアント４から「設定」のアプリケーション通信の受信があった場合、通信装置２は、ネットワーク通信ドライバ５４を通して受けた受信パケットをソフトＴＣＰ／ＩＰ制御部５２で受けて処理し、アプリケーション部５０へ渡す。すなわち、クライアント４から「設定」のアプリケーション通信の受信があった場合には、ソフトウェア処理による低速通信になる。一方、クライアント４から「印刷」のアプリケーション通信の受信があった場合は、ネットワーク通信ドライバ５４を通して受けた受信パケットをハードＴＣＰ／ＩＰ制御部５３のＴＯＥ４０で受けて処理し、アプリケーション部５０へ渡すことができる。すなわち、クライアント４から「印刷」のアプリケーション通信の受信があった場合には、ハードウェア処理による高速通信になる。
【００７６】
このように本実施の形態によれば、同時に実行される複数のアプリケーション通信毎に予め定められた優先度（基準情報）を参照し、優先度が高いアプリケーション通信に対してハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当てることにより、より「アプリケーションの優先度」の高いものにＴＯＥ４０を割り当てることによって、通信全体における通信性能向上（各アプリケーションへの通信速度の必要性に応じた、通信速度配分）を実現することができる。
【００７７】
なお、通信割り当て部５１は、同一のアプリケーション内でも「プリント制御情報」送信と「プリントデータ」受信とのように、優先度が高いアプリケーション通信（「プリントデータ」受信）に対してハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当て、優先度が低いアプリケーション通信（「プリント制御情報」送信）に対してソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信を割り当てることもできる。
【００７８】
また、本実施の形態においては、通信割り当て部５１は、同時に実行される複数のアプリケーション通信毎に予め定められた優先度（基準情報）を外部から受け取り、各アプリケーション通信について、ハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信またはソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信への割り当て処理を実行することにより、通信全体における通信性能向上を実現することができる。
【００７９】
なお、通信を受け付けたら新たなソケットを作って受信を始めるようなアプリケーション（例えば、Ｗｅｂ通信やプリント受信など）の場合には、通信割り当て部５１は、ある程度の個数を受け付けた場合、セッションの占有率により、ハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信からソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信に割り当てを変更することもできる。この場合、通信割り当て部５１は、同時に実行される複数のアプリケーション通信の通信量に関係する情報（基準情報）を自ら解析して、各アプリケーション通信について、ハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信またはソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信への割り当て処理を実行することにより、通信全体における通信性能向上を実現することができる。
【００８０】
［第３の実施の形態］
次に、本発明の第３の実施の形態を図８に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００８１】
第１の実施の形態では、通信割り当て部５１は複数のアプリケーション通信の通信量に関係する情報の相対的関係を基に、ハードウェア通信とソフトウェア通信との割り当て処理を行うようにしたが、本実施の形態は、アプリケーション通信にかかるユーザ毎の優先度（基準情報）に応じてハードウェア通信とソフトウェア通信との割り当て処理を行うようにした点で異なるものとなっている。
【００８２】
本実施の形態においては、通信装置２から一般ユーザが利用するクライアント４と課金ユーザが利用するクライアント４に対してアプリケーション通信を行う例を示している。なお、本実施の形態においては、スキャンデータ送信の例を示しているが、その他のデータの送信や受信も同様に構成することができることは言うまでもない。また、ユーザの優先度の判定は必ずしも課金によって行う必要はなく、事前に設定したユーザ情報によって行うなど、さまざまな方法で行う方法が考えられる。
【００８３】
ここで、図８は通信制御部５５の通信制御処理の流れを示すフローチャートである。図８に示すように、通信制御部５５は、まず、ユーザ毎の優先度の設定を受け付ける（ステップＳ２１）。このようなユーザ毎の優先度は、アプリケーションが有しているアカウントリストなどから受け取ることが可能である。本実施の形態においては、例えば、課金ユーザのアプリケーション通信の優先度を高く、一般（課金していない）ユーザのアプリケーション通信の優先度を低くする。このようなユーザ毎の優先度は、ＲＡＭ１５やＨＤＤ１８に記録される。
【００８４】
その後、通信制御部５５は、通信依頼に待機し（ステップＳ２２）、アプリケーションからの通信依頼を受信すると（ステップＳ２３）、通信情報を抽出する（ステップＳ２４）。ここで、ステップＳ２４で抽出される通信情報は、アプリケーション通信にかかるユーザの優先度である。
【００８５】
続いて通信制御部５５は、通信割り当て部５１により、ステップＳ２４で抽出した通信情報（ユーザの優先度）に基づいてハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信とソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信との選択処理を行う（ステップＳ２５）。
【００８６】
選択処理は、同時に通信を行う可能性のある他のユーザの優先度と比較して、所定のユーザによるアプリケーション通信に対してハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当てるか否かを決定するものである。本実施の形態においては、課金ユーザのアプリケーション通信の方が、一般（課金していない）ユーザのアプリケーション通信よりも優先度が高く設定されているので、課金ユーザとのアプリケーション通信に優先的にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を割り当てる。
【００８７】
その後、通信制御部５５は、通信処理を実行し（ステップＳ１６）、次の通信依頼に待機する（ステップＳ１２）。
【００８８】
これにより、一般（課金していない）ユーザのクライアント４に対するアプリケーション通信の依頼（例えば、スキャンデータ送信）があった場合、通信装置２は、送信パケットをソフトＴＣＰ／ＩＰ制御部５２で処理し、ネットワーク通信ドライバ５４へ渡す。すなわち、一般（課金していない）ユーザのクライアント４との通信は、ソフトウェア処理による低速通信になる。一方、課金ユーザのクライアント４に対するアプリケーション通信の依頼（例えば、スキャンデータ送信）があった場合、通信装置２は、送信パケットをハードＴＣＰ／ＩＰ制御部５３のＴＯＥ４０で受けて処理し、ネットワーク通信ドライバ５４へ渡す。すなわち、課金ユーザのクライアント４との通信は、ハードウェア処理による高速通信になる。
【００８９】
このように本実施の形態によれば、同時に実行される複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度（基準情報）を参照し、優先度が高いユーザにかかるアプリケーション通信に対してハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当てることにより、より「通信利用ユーザの優先度」の高いものにＴＯＥ４０を割り当てることによって、通信全体における通信性能向上（各ユーザの通信速度の必要性に応じた、通信速度配分）を実現することができる。
【００９０】
なお、本実施の形態においては、一般（課金していない）ユーザまたは課金ユーザによってユーザの優先度（基準情報）を決めるようにしたが、これに限るものではなく、管理者やゲストの別によってユーザの優先度（基準情報）を決めるようにしても良い。このような管理者やゲストの別は、アカウントリストやアドレス帳から受け取ることができる。
【００９１】
また、本実施の形態においては、通信割り当て部５１は、同時に実行される複数のアプリケーション通信にかかるユーザ毎に予め定められた優先度（基準情報）を外部から受け取り、各アプリケーション通信について、ハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信またはソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信への割り当て処理を実行することにより、通信全体における通信性能向上を実現することができる。
【００９２】
［第４の実施の形態］
次に、本発明の第４の実施の形態を図９および図１０に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００９３】
第１の実施の形態では、通信割り当て部５１は複数のアプリケーション通信の通信量に関係する情報の相対的関係を基に、ハードウェア通信とソフトウェア通信との割り当て処理を行うようにしたが、本実施の形態は、通信対象であるクライアント４の使用傾向（基準情報）に応じてハードウェア通信とソフトウェア通信との割り当て処理を行うようにした点で異なるものとなっている。ここで、通信対象であるクライアント４の使用傾向とは、例えば、印刷枚数、印刷頻度、継続して印刷を行うか、印刷やスキャンのデータの傾向などである。
【００９４】
ここで、図９は通信制御部５５の通信制御処理の流れを示すフローチャートである。図９に示すように、通信制御部５５は、通信依頼に待機し（ステップＳ３１）、アプリケーションから「受信待機」という通信依頼を受信すると（ステップＳ３２）、通信情報を抽出する（ステップＳ３３）。ここで、ステップＳ３３で抽出される通信情報は、通信対象であるクライアント４を選別し、その通信対象であるクライアント４の過去の使用傾向（印刷枚数、印刷頻度、継続して印刷を行うか、印刷やスキャンのデータの傾向など）に関する情報である。
【００９５】
続いて通信制御部５５は、通信割り当て部５１により、ステップＳ３３で抽出した通信情報（通信対象であるクライアント４の過去の使用傾向）に基づいてハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信とソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信との選択処理を行う（ステップＳ３４）。
【００９６】
選択処理は、通信対象であるクライアント４の使用傾向を分析し、分析結果に基づいて通信の全体の最適化が図れる方向で選択を行う。本実施の形態においては、同時に通信を行う可能性のある他のクライアント４の使用傾向と比較して、所定のクライアント４に対するアプリケーション通信に対してハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当てるか否かを決定するものである。
【００９７】
例えば、図１０に示すように、クライアント４（ＰＣ１）とクライアント４（ＰＣ２）とがあるとする。クライアント４（ＰＣ１）は、
・印刷時は、複数回継続して印刷することが多い。
・印刷データは、容量が大きいものが多い。
という使用傾向がある。一方、クライアント４（ＰＣ２）は、
・印刷時は、毎回単発である。
・印刷データは、容量が小さいものが多い。
という使用傾向がある。したがって、図１０に示す例においては、クライアント４（ＰＣ１）の方が通信に負荷の掛かる使い方をする傾向があるため、クライアント４（ＰＣ１）のアプリケーション通信に優先的にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を割り当てる。
【００９８】
その後、通信制御部５５は、クライアント４（ＰＣ２）の受信待機をソフトウェア通信で行い、通信に負荷の掛かる使い方をする傾向があるクライアント４（ＰＣ１）の受信待機をハードウェア通信で行う通信処理を実行し（ステップＳ３５）、今回の通信による、通信対象であるクライアント４の使用内容を通信情報としてＲＡＭ１５やＨＤＤ１８に記録し（ステップＳ３６）、次の通信依頼に待機する（ステップＳ３１）。
【００９９】
これにより、ある対象との通信に対して、その対象との過去の通信内容の分析から、その通信内容を予測することができる。その予測を基に、ハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を割り当てることによって、通信の全体最適が可能となる通信に対して優先的にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を割り当てる処理を行うことができる。
【０１００】
なお、本実施の形態においては、通信対象であるクライアント４の使用傾向に応じてハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信とソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信との選択処理を行うようにしたが、これに限るものではなく、通信対象ユーザで割り当てるようにしても良い。この場合は、ユーザが別の機クライアント４器から画像形成装置を使用する場合にも、ユーザの使用傾向に沿ったＴＯＥ４０の割り当てを行うことができる。
【０１０１】
このように本実施の形態によれば、同時に実行される複数のアプリケーション通信の通信対象の使用傾向（基準情報）を参照し、通信に負荷の掛かる使用傾向がある通信対象へのアプリケーション通信に対してハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信を優先的に割り当てることにより、通信全体における通信性能向上（平均通信速度の向上）を実現することができる。
【０１０２】
［第５の実施の形態］
次に、本発明の第５の実施の形態を図１１および図１２に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【０１０３】
第１の実施の形態では、通信割り当て部５１は複数のアプリケーション通信の通信量に関係する情報の相対的関係を基に、ハードウェア通信とソフトウェア通信との割り当て処理を行うようにしたが、本実施の形態は、複数のアプリケーション通信の通信量に関係する情報である通信量（基準情報）と、ユーザ毎の優先度（基準情報）に応じてハードウェア通信とソフトウェア通信との割り当て処理を行うようにした点で異なるものとなっている。
【０１０４】
ここで、図１１は通信制御部５５の通信制御処理の流れを示すフローチャートである。図１１に示すように、まず、通信制御部５５は、各基準の優先度や基準で用いられる設定値の設定を受け付ける（ステップＳ４１）。例えば、図１２に示す例では、２つの基準には優先度が付けられており、過去のアプリケーション通信量はアプリケーションＢが最大だが、ユーザ優先度はユーザＡが最大であり、優先度間の優先度はユーザ優先度の方が高いため、ＴＯＥ４０（ハードＴＣＰ／ＩＰ制御部５３）の割り当て優先度としては「アプリケーションＡとユーザＡの通信」が最高となっている。このような各基準の優先度や基準で用いられる設定値は、ＲＡＭ１５やＨＤＤ１８に記録される。
【０１０５】
その後、通信制御部５５は、通信依頼に待機し（ステップＳ４２）、アプリケーションからの通信依頼を受信すると（ステップＳ４３）、通信情報を抽出する（ステップＳ４４）。ここで、ステップＳ４４で抽出される通信情報は、各基準で用いられる優先度や設定値である。本実施の形態では、アプリケーションごとの通信量と、使用ユーザごとのＴＯＥ４０の割り当て優先度である。
【０１０６】
続いて通信制御部５５は、通信割り当て部５１により、ステップＳ４４で抽出した通信情報（アプリケーションごとの通信量と、使用ユーザごとのＴＯＥ４０の割り当て優先度）に基づいてハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信とソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信との選択処理を行う（ステップＳ４５）。
【０１０７】
選択処理は、各基準の判定結果と、基準間の優先度の違いによって選択する。より具体的には、所定の通信に対して、基準ごとにＴＯＥ４０の割り当て優先度を判定し、判定したそれぞれのＴＯＥ４０の割り当て優先度から、各基準間の優先度を基にしての一つのＴＯＥ４０の割り当て優先度を求め、それが高い通信ほど優先的にＴＯＥ４０を割り当てる処理を行う。
【０１０８】
その後、通信制御部５５は、通信処理を実行し（ステップＳ４６）、情報を記録しておく必要のある基準がある場合はその情報を通信情報としてＲＡＭ１５やＨＤＤ１８に記録し（ステップＳ４７）、次の通信依頼に待機する（ステップＳ４２）。
【０１０９】
これにより、アプリケーションの新たな通信時には、これまでのアプリケーションの通信量と、ユーザごとの優先度を基に、ＴＯＥ４０（ハードＴＣＰ／ＩＰ制御部５３）の割り当てを行うことができる。
【０１１０】
このように本実施の形態によれば、少なくとも２以上の基準情報に対して予め定められた優先度に従い、複数のアプリケーション通信をソフト通信手段によるソフトウェア通信またはハード通信手段によるハードウェア通信に対して割り当てることにより、ＴＯＥ４０の割り当ての選択に複数の基準情報を組み合わせて使用することで、その通信装置の使用環境に合わせた柔軟な形での、通信全体における通信性能向上を実現することができる。
【０１１１】
［第６の実施の形態］
次に、本発明の第６の実施の形態を図１３に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【０１１２】
第１の実施の形態では、通信割り当て部５１は複数のアプリケーション通信の通信量に関係する情報の相対的関係を基に、ハードウェア通信とソフトウェア通信との割り当て処理を行うようにしたが、本実施の形態は、ＩＰｓｅｃ通信がハードウェア通信とソフトウェア通信とのいずれで確立されているかに応じてハードウェア通信とソフトウェア通信との割り当て処理を行うようにした点で異なるものとなっている。
【０１１３】
ＩＰｓｅｃは、暗号通信のための標準プロトコルであり、認証や暗号のプロトコル、鍵交換のプロトコル、ヘッダ構造など、複数のプロトコルを総称するものである。ＩＰｓｅｃでは、実際にやり取りするデータの暗号化は処理の軽い共通鍵方式を利用する。また、ＩＰｓｅｃでは、共通鍵でデータをやりとりする前の手続きとして、論理的コネクションを張る。このような論理的コネクションは、ＳＡ（Security Association）と呼ばれている。このようなＳＡ（Security Association）には、有効期間が設定されている。
【０１１４】
本実施の形態においては、通信装置２がクライアント４に対して通信を行う例を示している。なお、本実施の形態においては、スキャンデータ送信の例を示しているが、その他のデータの送信や受信も同様に構成することができることは言うまでもない。
【０１１５】
ここで、図１３は通信制御部５５の通信制御処理の流れを示すフローチャートである。図１３に示すように、通信制御部５５は、通信依頼に待機し（ステップＳ５１）、通信装置２のアプリケーションからのクライアント４に対する通信依頼を受信すると（ステップＳ５２）、通信情報を抽出する（ステップＳ５３）。ここで、ステップＳ５３で抽出される通信情報は、ＩＰｓｅｃ通信において作成されているＳＡ（Security Association）である。ＳＡは、ＩＰｓｅｃを利用した暗号化通信において、通信に先立って暗号化方式や暗号鍵などの暗号化情報を交換・共有し、安全な通信路を確立するために作成される。このようにＩＰｓｅｃ通信において作成されているＳＡは、ＩＰｓｅｃの確立にソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信が使われた場合には、ＲＡＭ１５やＨＤＤ１８に記録されている。一方、ＩＰｓｅｃの確立にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信が使われた場合には、ＳＡはＴＯＥ４０に記録されている。
【０１１６】
ここで、ソフトウェアによるＳＡの抽出は、ＩＰｓｅｃの確立にソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信が使われた場合に限られている。そこで、本実施の形態においては、ＳＡが抽出された場合には、ＩＰｓｅｃの確立にソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信が使われたことがわかる。なお、ＴＯＥ４０に記録されているＳＡをチェック可能なＡＰＩ（Application Program Interface）があれば、ＩＰｓｅｃの確立にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信が使われたことがわかるようにしても良い。
【０１１７】
続いて通信制御部５５は、ステップＳ５３で作成済みのＳＡが抽出され、かつ、ＳＡが有効期間内であって使用できる場合には、通信割り当て部５１を用いて、当該ＳＡに基づいてハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信とソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信との選択処理を行う（ステップＳ５４）。
【０１１８】
選択処理は、ステップＳ５３で作成済みのＳＡが抽出され、かつ、ＳＡが有効期間内であって使用できる場合には、通信装置２とクライアント４とのＩＰｓｅｃの確立にソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信が使われたと判定する。一方、ステップＳ５３で抽出されたＳＡが有効期間外である場合、または、ステップＳ５３でＳＡが抽出されなかった場合には、通信装置２とクライアント４とのＩＰｓｅｃの確立にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信が使われたと判定する。そして、ＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信については、既にＳＡが構築済みのハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信またはソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信に割り当てる。
【０１１９】
その後、通信制御部５５は、通信処理を実行し（ステップＳ５５）、ＳＡを作成した場合はその情報を通信情報としてＲＡＭ１５やＨＤＤ１８に記録し（ステップＳ５６）、次の通信依頼に待機する（ステップＳ５１）。
【０１２０】
これにより、ユーザから通信の要求があった場合、通信装置２は、アプリケーションから通信割り当て部５１を通して、送信パケットをソフトＴＣＰ／ＩＰ制御部５２で送るか、ハードＴＣＰ／ＩＰ制御部５３で送るかを決めて、ネットワーク通信ドライバ５４を通して送信することができる。
【０１２１】
このように本実施の形態によれば、ＩＰｓｅｃ通信を利用した暗号化通信に先立って暗号化情報を交換・共有して通信路を確立するために作成されるＳＡ（基準情報）を抽出した場合にはＩＰｓｅｃの確立にソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信が使われたものと判定し、ＳＡを抽出しない場合にはＩＰｓｅｃの確立にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信が使われたものと判定して、ＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信については既にＳＡが構築済みのソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信またはハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信に対して割り当てるようにしたことにより、「ＴＯＥ利用によるＩＰｓｅｃ ＳＡ再利用が可能なアプリケーション通信」にＴＯＥ４０を割り当てることによって、通信全体における通信性能向上（ＩＰｓｅｃ処理に必要な時間の短縮）を実現することができる。
【０１２２】
なお、第５の実施の形態で説明したように、少なくとも２以上の基準情報に対して予め定められた優先度に従い、複数のアプリケーション通信をソフトＴＣＰ／ＩＰ制御部５２によるソフトウェア通信またはハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信に対して割り当てるようにした場合であって基準情報としてＳＡを適用する場合に、ＳＡが抽出されなかった場合には、他の基準情報との優先度に拘わらず、強制的にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信が割り当てられることになる。そこで、このような場合には、ＩＰｓｅｃ通信であるかどうかをアプリケーションで確認できるようにする。そうすれば、ＩＰｓｅｃ通信である場合に限り、ＳＡが抽出されなかった場合には、他の基準情報との優先度に拘わらず、強制的にハードＴＣＰ／ＩＰ制御部５３によるハードウェア通信が割り当てられる。
【図面の簡単な説明】
【０１２３】
【図１】本発明の前提となるＴＯＥによるデータ移動例を示す模式図である。
【図２】従来のデータ移動例を示す模式図である。
【図３】本発明の第１の実施の形態にかかる情報処理システムのネットワーク構成を示すブロック図である。
【図４】通信装置の構成を示すブロック図である。
【図５】通信制御部の構成を示すブロック図である。
【図６】通信制御処理の流れを示すフローチャートである。
【図７】本発明の第２の実施の形態にかかる通信制御処理の流れを示すフローチャートである。
【図８】本発明の第３の実施の形態にかかる通信制御処理の流れを示すフローチャートである。
【図９】本発明の第４の実施の形態にかかる通信制御処理の流れを示すフローチャートである。
【図１０】割り当て例を示す説明図である。
【図１１】本発明の第５の実施の形態にかかる通信制御処理の流れを示すフローチャートである。
【図１２】割り当て例を示す説明図である。
【図１３】本発明の第６の実施の形態にかかる通信制御処理の流れを示すフローチャートである。
【符号の説明】
【０１２４】
２      通信装置
５１      通信割り当て手段
５２      ソフト通信手段
５３      ハード通信手段
【図１】
2008312094.tif 000003
【図２】
2008312094.tif 000004
【図３】
2008312094.tif 000005
【図４】
2008312094.tif 000006
【図５】
2008312094.tif 000007
【図６】
2008312094.tif 000008
【図７】
2008312094.tif 000009
【図８】
2008312094.tif 000010
【図９】
2008312094.tif 000011
【図１０】
2008312094.tif 000012
【図１１】
2008312094.tif 000013
【図１２】
2008312094.tif 000014
【図１３】
2008312094.tif 000015