説明

印刷システム、印刷装置、印刷システムのデータ通信方法

【課題】通信回線の効率的な利用を図ることができるとともに、印刷データの転送時間の短縮化を図ることができる印刷システムを提供する。
【解決手段】ネットワークプリントシステムは、PC100とネットワークプリンタ200とがLAN300を介して接続されている。PC100のインターフェースモニタ150は、ネットワークプリンタ200へ送信すべき所定の印刷データのデータ量と、LAN300上のトラフィック量とに基づいて、当該所定の印刷データに関するパケットのパケットサイズを決定する。この決定されたパケットサイズに基づく、印刷データを含むパケットは、PC100からネットワークプリンタ200に向けて送信される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷データを送信する送信元装置と該送信元装置から送信された印刷データに基づき印刷処理を実行する印刷装置とが通信回線を介して接続される印刷システム、印刷装置、印刷システムのデータ通信方法に関する。
【背景技術】
【0002】
複数のコンピュータとネットワークプリンタとがネットワーク回線に接続されたネットワークプリントシステムにおけるデータ送信においては、コンピュータがネットワークプリンタへ送信可能なデータの最大のデータサイズすなわちパケットサイズは、前記ネットワーク回線での例えば最大転送単位(MTU)により一意である。
【0003】
上述したようなネットワークプリントシステムには、コンピュータとネットワークプリンタとのデータ通信の際に、フロー制御を実施しないようにシステム構築したものもある(例えば、特許文献1参照。)。
【0004】
この特許文献1では、パーソナルコンピュータが、送信すべきデータの通信データ量に応じて通信バッファサイズをデフォルト値よりも小さい値に設定し、この設定した通信バッファサイズに基づくデータを、ネットワークプリンタへ送信するようにしている。
【特許文献1】特開2000−181645号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1に開示された技術では、ネットワーク回線上のトラフィックが多い(混雑している)場合は、送信されたパケットのパケットサイズによってはデータロスト(パケットの消失)が発生することがあり、データロストしたパケットと同一のパケットを再送する必要がある。そのため、効率的なデータ送信を行うことができないという問題がある。
【0006】
また、ネットワーク回線上のトラフィックが多い場合は、そのトラフィック量に応じて、パーソナルコンピュータからネットワークプリンタへ送信するパケットそのものが遅延する確率が上がることとなり、そのため効率的なデータ送信を行うことができないという問題が内在している。
【0007】
上述したようなことから、パーソナルコンピュータからネットワークプリンタへのデータの送信に必要以上の時間を要することとなり、結果的に印刷処理時間が長くなってしまうという問題がある。
【0008】
そこで、本発明は、通信回線の効率的な利用を図ることができるとともに、印刷データの転送時間の短縮化を図ることのできる印刷システム、印刷装置、印刷システムのデータ通信方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するため、請求項1に記載の本発明の印刷システムは、印刷データを送信する送信元装置と該送信元装置から送信された印刷データに基づき印刷処理を実行する印刷装置とが通信回線を介して接続され、これらの装置間で所定の通信プロトコルに従ってデータの送受信を行う印刷システムであって、前記送信元装置は、前記印刷装置へ送信すべき所定の印刷データのデータ量と、前記通信回線上のトラフィック量および前記印刷装置の負荷状態の少なくとも何れか一方の情報とに基づいて、当該所定の印刷データに関するパケットのパケットサイズを決定するパケットサイズ決定手段、を有し、前記パケットサイズ決定手段によって決定されたパケットサイズに基づくパケットを前記印刷装置へ送信する、ことを特徴とする。
【0010】
請求項2に記載の発明は、上記請求項1に記載の発明において、前記パケットサイズ決定手段は、印刷データを含まない所定のパケットを前記印刷装置へ送信した時点から、当該所定のパケットを受信した前記印刷装置から送信される当該所定のパケットの受信時刻を示す旨を受信した場合の当該受信時刻までの通信時間と、前記所定の印刷データのデータ量とを基に、当該所定の印刷データに関するパケットのパケットサイズを決定する、ことを特徴とする。
【0011】
請求項3に記載の発明は、上記請求項1に記載の発明において、前記パケットサイズ決定手段は、印刷データを含まない所定のパケットを前記印刷装置へ送信した時点から、当該所定のパケットを受信した前記印刷装置から送信される肯定応答を示す旨を受信する時点までの通信時間と、前記所定の印刷データのデータ量とを基に、当該所定の印刷データに関するパケットのパケットサイズを決定する、ことを特徴とする。
【0012】
請求項4に記載の発明は、上記請求項2または3に記載の発明において、前記送信元装置は、それぞれ異なる複数の通信時間情報とそれぞれ異なる複数のデータ量情報と複数のパケットサイズ情報とが関連付けされた情報を記憶する記憶手段、を更に備え、前記パケットサイズ決定手段は、前記所定のパケットを送信したことにより得られた前記通信時間と前記所定の印刷データのデータ量と前記記憶手段の記憶内容とに基づいて、前記所定の印刷データに関するパケットのパケットサイズを決定する、ことを特徴とする。
【0013】
請求項5に記載の発明は、上記請求項1〜4の何れか一項に記載の発明において、前記パケットサイズ決定手段は、前記印刷装置に対し負荷状態を問い合せるとともに、この問い合せに対する結果として前記印刷装置から返信される負荷状態を示す情報を取得し、この取得した負荷状態を示す情報と前記所定の印刷データのデータ量とに基づいて、当該所定の印刷データに関するパケットのパケットサイズを決定する、ことを特徴とする。
【0014】
請求項6に記載の発明は、上記請求項1〜5の何れか一項に記載の発明において、前記印刷装置は、前記送信元装置から送信された前記所定のパケットを受信した場合に、当該所定のパケットを受信した受信時刻を示す旨を、前記パケットサイズ決定手段に向けて送信する受信時刻通知手段、を有することを特徴とする。
【0015】
請求項7に記載の発明は、上記請求項1〜6の何れか一項に記載の発明において、前記印刷装置は、前記送信元装置からの負荷状態に関する問い合わせを受信した場合に、当該印刷装置の印刷処理状況を示す情報を当該問い合わせに対する結果として前記送信元装置へ返信する負荷状態通知手段、を有することを特徴とする。
【0016】
請求項8に記載の発明は、上記請求項7に記載の発明において、前記負荷状態通知手段は、既に受信されている前記送信元装置からのパケットに含まれる印刷データに対する印刷処理が実行されている最中に、前記負荷状態に関する問い合わせがあった場合は、受信可能なデータのデータサイズを示す情報を当該問い合わせに対する結果として前記送信元装置へ返信する、ことを特徴とする。
【0017】
請求項9に記載の発明は、上記請求項1〜8の何れか一項に記載の発明において、前記パケットサイズ決定手段は、既に決定したパケットサイズに基づく、印刷データを含むパケットを送信した時点から、当該パケットを受信した前記印刷装置から送信される肯定応答を示す旨を受信する時点までの応答時間と、送信すべき印刷データのデータ量とに基づき、当該既に決定したパケットサイズを補正する、ことを特徴とする。
【0018】
請求項10に記載の発明は、上記請求項1〜9の何れか一項に記載の発明において、前記送信元装置と前記印刷データとの間のデータ通信にあってはフロー制御は実施されない、ことを特徴とする。
【0019】
また、上記課題を解決するため、請求項11に記載の本発明の印刷装置は、印刷データを送信する送信元装置と通信回線を介して接続され、該送信元装置との間でフロー制御機能を有しない所定の通信プロトコルに従ってデータ通信する印刷装置であって、前記送信元装置からの負荷状態に関する問い合わせを受信した場合に、当該印刷装置の印刷処理状況を示す情報を当該問い合わせに対する結果として前記送信元装置へ返信する負荷状態通知手段、を有することを特徴とする。
【0020】
請求項12に記載の発明は、上記請求項11に記載の発明において、前記負荷状態通知手段は、既に受信されている前記送信元装置からの所定の印刷データに関するパケットに含まれる印刷データに対する印刷処理が実行されている最中に、前記負荷状態に関する問い合わせがあった場合は、受信可能なデータのデータサイズを示す情報を当該問い合わせに対する結果として前記送信元装置へ返信する、ことを特徴とする。
【0021】
請求項13に記載の発明は、上記請求項11または12に記載の発明において、前記送信元装置から送信され印刷データを含まない所定のパケットを受信した場合に、当該所定のパケットを受信した受信時刻を示す旨を、前記送信元装置へ送信する受信時刻通知手段、を更に備えた、ことを特徴とする。
【0022】
さらに、上記課題を解決するため、請求項14に記載の本発明の印刷システムのデータ通信方法は、送信元装置が所定の印刷データに関するパケットを通信回線を通じて印刷装置へ送信する印刷システムのデータ通信方法であって、前記送信元装置と前記印刷装置との間のデータ通信に関わるフロー制御を実施せずに、前記送信元装置が、印刷データを含むパケットを送信する前に、前記印刷装置から取得した当該印刷装置の負荷状態および前記通信回線上のトラフィック量の少なくとも何れか一方の情報と前記所定の印刷データのデータ量とに基づいてパケットサイズを決定し、この決定したパケットサイズに基づく、印刷データを含むパケットを前記印刷装置へ送信する、ことを特徴とする。
【発明の効果】
【0023】
本発明によれば、通信回線の効率的な利用を図ることができるとともに、印刷データの転送時間の短縮化を図ることができ、これにより印刷装置での印刷処理時間を短縮させることができる。
【発明を実施するための最良の形態】
【0024】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための図面において、同一の構成要素には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0025】
本実施の形態では、本発明の印刷システムを適用したネットワークプリントシステムについて説明する。送信元装置はホストコンピュータとし、印刷装置はプリンタつまり共有されるネットワークプリンタとし、通信回線はネットワーク例えばローカルエリアネットワーク(以下「LAN」という。)とする。
【0026】
また、本実施の形態では、送信元装置と印刷装置とは、所定の通信プロトコル、例えばTCP(Transmission Control Protocol)/IP(Internet Protocol)に従ってデータ通信するようになっている。また、そのデータ通信においてはフロー制御は実施されないようになっている。
【0027】
(実施の形態1)
【0028】
図1は、本発明の実施の形態1に係るネットワークプリントシステムの全体構成を示している。
【0029】
図1に示すように、ネットワークプリントシステム1は、単数または複数のホストコンピュータ(以下「PCという」。)100とネットワークプリンタ200とが共有ネットワークである伝送媒体としのLAN300に接続されている。
【0030】
このようなネットワークプリントシステム1では、LAN(通信回線)300に接続されている全てのPC(送信元装置)100からの印刷データをネットワークプリンタ(印刷装置)200が印刷可能である。
【0031】
PC100は、所定の表示情報を表示する表示部101、印刷データに対する印刷指示など入力情報を入力する入力部102、所定の情報を記憶する記憶部103、通信のためのインターフェースを司る通信インターフェース(以下「通信I/F」という。)104、これらの構成要素に対する制御を行う制御部105を備えている。
【0032】
記憶部103は、図示しない第1の記憶領域、第2の記憶領域および第3の記憶領域を有している。
【0033】
第1の記憶領域は、所定のアプリケーション、所定のオペレーティングシステム、所定の通信プロトコルに対応するプログラム、所定のデバイスドライバ、後述する処理手順(図3、図5〜図9参照)に対応するプログラムなど、所定のプログラム、後述するパケットサイズ決定テーブル(図4参照)を記憶する領域であり、例えばハードディスクやROM(読み出し専用メモリ)などで構成される。
【0034】
第2の記憶領域は、印刷データを格納する領域であり、例えばハードディスク、RAM(随時書き込み読み出しメモリ)などで構成される。
【0035】
第3の記憶領域は、上記第1の記憶領域から読み出されたプログラム、上記第2の記憶領域から読み出された印刷データ、データ通信のときに授受されるデータを記憶する領域(ワークエリア)であり、例えばRAMなどで構成される。また、この第3の記憶領域は、後述するパケットサイズを求めるなど所定の演算処理のときに使用するワークエリアを有している。
【0036】
制御部105は、上記第1の記憶領域から上記第3の記憶領域へ所定のプログラムを読み込んで実行することにより、例えばネットワークプリンタ200との印刷処理に関するデータ通信を行う。また、制御部105は、PC100全体の制御を行うものであり、例えばCPU(中央演算処理装置)で構成される。
【0037】
ネットワークプリンタ200は、所定の情報を記憶する記憶部201、画像形成処理(印刷処理)を実行する印刷部202、通信のためのインターフェースを司る通信インターフェース(以下「通信I/F」という。)203、これらの構成要素を含むネットワークプリンタ200全体の制御を行う制御部204を備えている。
【0038】
通信I/F203は、例えばNIC(Network Interface Card:ネットワークインターフェースカード)であり、所定の情報を記憶する記憶部(図示せず)、および通信相手装置とのデータ通信を行う制御部(図示せず)を備えている。
【0039】
通信I/F203において、記憶部(図示せず)は、所定の通信プロトコルに対応するプログラムを記憶する例えばROMなど第1の記憶領域(図示せず)と、PC100とのデータ通信のときに授受されるデータを記憶する例えばRAMなど第2の記憶領域(図示せず)とを有している。制御部は、第1の記憶領域に記憶されているプログラムを実行することによりPC100とのデータ通信を行う。
【0040】
記憶部201は、所定のファームウェアを記憶する例えばROMなど第1の記憶領域(図示せず)と、この第1の記録領域から読み込まれたファームウェアや、通信I/F203を介して受信された印刷データを記憶する例えばRAMなど第2の記憶領域(図示せず)とを有している。
【0041】
印刷部202は、制御部204の制御の下、記録用紙に印刷データに対応する画像を印刷する。
【0042】
制御部204は、記憶部201の第1の記憶領域から第2の記憶領域へ所定のファームウェアを読み込んで実行することにより、例えば受信された印刷データに基づき印刷画像を生成し、これの印刷処理を印刷部202に依頼する。
【0043】
図2は、本実施の形態1に係るネットワークプリントシステムのプロトコルスタックの構成を示している。
【0044】
PC100は、アプリケーション110、オペレーティングシステム(以下「OS」という。)120、プリンタドライバ130、プリントスプーラ140、インターフェースモニタ150、TCP/IP・ソケットインターフェース(以下「ソケットインターフェース」という。)160の各機能を有している。
【0045】
アプリケーション110は、印刷データの生成、印刷ジョブの指示などを行う。
【0046】
プリンタドライバ130は、ネットワークプリンタ200に対応したプリンタ用のデバイスドライバである。
【0047】
プリントスプーラ140は、複数のPC100が接続されたネットワークプリントシステムである場合に、共有されるネットワークプリンタ200が使用されるときは、そのネットワークプリンタ200に送信される印刷ジョブを調整する役割を果たす。
【0048】
すなわち、各々のPC100から送信される印刷ジョブは、ネットワークプリンタ200が他のPCからの印刷要求に対する印刷処理を実行していないときに、プリントスプーラ140から送信されるように調整される。
【0049】
また、プリントスプーラ140は、インターフェースモニタ150に対する印刷キューを作成して1印刷ジョブずつ処理を実行する。
【0050】
インターフェースモニタ150は、ネットワークを監視する機能(通信監視機能)と、パケットサイズ決定手段の機能とを有している。このパケットサイズ決定手段は、次の(1)〜(4)の各機能を含んでいる。
【0051】
(1)ネットワークプリンタ200へ送信すべき所定の印刷データのデータ量と、LAN300上のトラフィック量とに基づいて、当該所定の印刷データに関するパケットのパケットサイズを決定する。
【0052】
(2)ネットワークプリンタ200へ印刷データを含まない所定のパケットを送信した時点から、当該所定のパケットを受信したネットワークプリンタ200から送信される当該所定のパケットの受信時刻を示す旨を受信した場合の当該受信時刻までの通信時間(到達時間)と、送信すべき所定の印刷データのデータ量とに基づいて、送信すべきパケットのパケットサイズを決定する。
【0053】
(3)ネットワークプリンタ200へパケットを送信した時点から、当該パケットを受信したネットワークプリンタ200から送信される肯定確認応答(ACK信号)を受信する時点までの通信時間(応答時間)と、送信すべき所定の印刷データのデータ量とに基づいて、送信すべきパケットのパケットサイズを決定する。
【0054】
(4)既に決定したパケットサイズに基づくパケット(印刷データを含むパケット)を送信した時点から、当該パケットを受信したネットワークプリンタ200から送信される肯定確認応答(ACK信号)を受信する時点までの応答時間と、送信すべき所定の印刷データのデータ量とに基づいて、当該既に決定したパケットサイズを補正する。
【0055】
ソケットインターフェース160は、LAN300とのインターフェースを司る機能を有している。
【0056】
ここで、アプリケーション110、OS120、プリンタドライバ130、プリントスプーラ140、インターフェースモニタ150、ソケットインターフェース160は、図1に示したPC100の記憶部103の第1の記憶領域(ハードディスク、ROMなど)に記憶されている。
【0057】
そして、制御部105が、記憶部103の第1の記憶領域に記憶されている前記各プログラムを読み込んで実行することにより、上述した各構成要素110〜160のそれぞれの機能を実現する。これによりPC100とネットワークプリンタ200とのデータ通信が可能となる。この場合、OS120の制御の下、アプリケーション110、プリンタドライバ130、プリントスプーラ140、インターフェースモニタ150、ソケットインターフェース160が動作するようになっている。
【0058】
このようなPC100は、OS120のルールに従ってネットワークプリンタ200とのデータ通信を行うものである。このとき、PC100は、インターフェースモニタ150を介してネットワークプリンタ200とデータ通信し、印刷を行うように構成されている。
【0059】
すなわち、PC100では、印刷ジョブを指示するためのアプリケーション110からの印刷データは、OS120を介して、プリンタドライバ130、プリントスプーラ140、インターフェースモニタ150、ソケットインターフェース160の順に流れてゆく。
【0060】
ネットワークプリンタ200は、印刷部202を制御するファームウェア(以下「プリンタFW」という。)210と、NIC(ネットワークインターフェースカード)220とを有している。
【0061】
プリンタFW210は、印刷データをスプールする機能(スプール機能)を有しておらず、逐次印刷要求された印刷ジョブの順番に従ってその印刷ジョブを印刷する。また、プリンタFW210は、前の印刷ジョブの印刷が完了するまでは次の印刷ジョブは受け付けない。すなわち、前の印刷ジョブの印刷が完了するまでは、次の印刷ジョブは印刷されない。さらに、プリンタFW210は、受信された印刷データに基づき印刷画像を生成し、印刷処理を印刷部202に依頼する。
【0062】
ここで、プリンタFW210は、図1に示したネットワークプリンタ200の記憶部201の第1の記憶領域(ROMなど)に記憶されている。制御部204が記憶部201からプリンタFW210を読み込んで実行することにより、当該プリンタFW210の機能を実現する。
【0063】
NIC220は、プリンタFW210とNIC220とのインターフェースであるNIC・I/F230と、インターフェースモニタ(プリントデーモン)240と、LAN300とのインターフェースを司る機能を有するTCP/IP・ソケットインターフェース(以下「ソケットインターフェース」という)250とを有している。
【0064】
インターフェースモニタ240は、ネットワークを監視する機能(通信監視機能)と、所定のパケットを受信した場合の当該所定のパケットの受信時刻を示す旨をPC100のインターフェースモニタ150へ通知する受信時刻通知手段の機能とを有している。
【0065】
なお、NIC220はハードウェアとしては通信I/F203に対応するものであるので、図1に示した通信I/F203はNIC220に置き換えることができる。
【0066】
ここで、NIC・I/F230、インターフェースモニタ240、ソケットインターフェース250は、図1に示したネットワークプリンタ200の通信I/F203(NIC220)内の記憶部(図示せず)の第1の記憶領域(ROMなど)に記憶されている。そして、通信I/F203(NIC220)の制御部(図示せず)がその記憶部(図示せず)から上述した各構成要素240〜260を読み込んで実行することにより、これらの構成要素の機能を実現する。
【0067】
このようなネットワークプリンタ200では、NIC220がPC100からの印刷データをLAN300を介して受け取ると、その印刷データは、ソケットインターフェース250、インターフェースモニタ240、NIC・I/F230、プリンタFW210の順に流れる。
【0068】
なお、この一連の印刷動作において、NIC220は、同時に64接続すなわち64台分のPC100からの接続要求に応答することが可能であるが、プリンタFW210は1つの印刷ジョブしか処理することができないので、前の印刷ジョブの印刷が完了するまでは次の印刷ジョブをプリンタFW210へ送信しない。
【0069】
そのため、他のPC100からの印刷要求は、各々のPC100内にあるプリントスプーラ140によって、プリンタFW210の印刷処理が終了するのを待たされることとなる。各々の印刷ジョブは、プリンタFW210が空き状態となった時に順番に印刷されることになる。
【0070】
本実施の形態1では、PC100のインターフェースモニタ150、およびネットワークプリンタ200のインターフェースモニタ240には、それぞれフロー制御の機能はない。すなわち、PC100とネットワークプリンタ200とのデータ通信においては、フロー制御は実施されない。
【0071】
また、TCP/IPの標準規約(RFC792/RFC1812)で取り決められているICMP(Internet Control Message Protocol)を使用して、PC100とネットワークプリンタ200とが通信(疎通)を確認し合うようになっている。
【0072】
このICMPとは、IP(Internet Protocol)のエラーメッセージや制御メッセージを転送するプロトコルのことであり、TCP/IPで接続されたPCやネットワークプリンタ等のネットワーク機器間で、互いの状態を確認するために用いられるプロトコルのことである。
【0073】
ICMPパケットのフォーマットは、送信先IPアドレス、送信元IPアドレスを含むIPヘッダと、データ部分(ICMPメッセージ)とから構成される。
【0074】
このICMPメッセージは、1バイトの「タイプ(Type)」、1バイトの「コード(Code)」、2バイトの「チェックサム」の各フィールドから構成される。必要に応じて所定のバイトの追加データフィールドが続く。
【0075】
ICMPの種類は、タイプ(Type)フィールドの性質によって、調査のために使用されるメッセージ(「Queryメッセージ」)と、エラーを通知するためのメッセージ(「Errorメッセージ」)とに大きく分けられる。また「Queryメッセージ」は、pingなどの調査コマンドに対して返答(レスポンス)させるメッセージ、換言すれば正常応答でもある。
【0076】
ICMPメッセージとしては、エコー応答(タイプ0)、エコー要求(タイプ8)、タイムスタンプ要求(タイプ13)、タイムスタンプ応答(タイプ14)などがある。
【0077】
次に、ネットワークプリントシステム1のPC100のインターフェースモニタ150による印刷ジョブ開始処理について、図3を参照して説明する。
【0078】
図3は、インターフェースモニタ150による印刷ジョブ開始処理の処理手順を示すフォローチャートである。
【0079】
PC100のアプリケーション110が印刷ジョブを実行すると、印刷データが、OS120、プリンタドライバ130、プリントスプーラ140を経由して、インターフェースモニタ150に流れてくる。
【0080】
インターフェースモニタ150がプリンタドライバ130から呼ばれて動作を開始すると、図3に示すように、インターフェースモニタ150は、ソケットインターフェース160を初期化し(ステップS101)、LAN300を介してネットワークプリンタ200との接続を行うとともに(ステップS102)、その接続が成功したか否かを判断する(ステップS103)。
【0081】
ここで、上記接続とは、PC100とネットワークプリンタ200とが相互にデータ通信することができる状態のことを意味する。
【0082】
次に、インターフェースモニタ150は、ステップS103において接続が成功しないと判断した場合は、上記ステップS102に戻る。そして、一定時間、データの授受が行われず、接続に失敗したと判断したインターフェースモニタ150は、この接続状態を解除する。
【0083】
ステップS103において接続が成功したと判断したインターフェースモニタ150が、ソケットインターフェース160に対しICMPパケットを含むIPパケットの送信を指示すると、ソケットインターフェース160は、インターフェースモニタ150の指示に従ってICMPパケット(これを送信ICMPパケットとする)を含むIPパケット(これを送信IPパケットとする)をLAN300を介してネットワークプリンタ200へ送出する(ステップS104)。
【0084】
インターフェースモニタ150は、上記ステップS104で、送信IPパケットがソケットインターフェース160を通じてネットワークプリンタ200へ送信された場合、ソケットインターフェース160を通じてネットワークプリンタ200からの上記送信ICMPパケットに対する応答を待つことになる。
【0085】
これは、送信IPパケットを送信した時点から、ネットワークプリンタからの送信IPパケットに含まれる送信ICMPパケットに対する応答のパケットを受信する時点までの応答時間を基に、インターフェースモニタ150が、LAN300のトラフィックを判断する(LAN300の混み具合を判断する)ためである。
【0086】
従って、インターフェースモニタ150は、送信IPパケットが送信された送信時刻、およびネットワークプリンタ200からの応答のパケットが受信された受信時刻を認識できるようになっている。
【0087】
ところで、上述したようにして送信IPパケットがネットワークプリンタ200へ送出されると、インターフェースモニタ150は、ネットワークプリンタ200からの当該送信IPパケットに含まれる送信ICMPパケットに対する応答が有るか否か、すなわちソケットインターフェース160を通じて、応答のためのICMPパケット(これを応答ICMPパケットとする)を含むIPパケット(これを応答IPパケットとする)を受信したか否かを判断する(ステップS105)。
【0088】
次に、インターフェースモニタ150は、ステップS105において、ネットワークプリンタ200からの応答が有ると判断した場合、つまり応答IPパケットを受信したと判断した場合は、送信IPパケットをネットワークプリンタ200へ送信した時点(送信時刻)から、このネットワークプリンタ200からの応答IPパケットを受信した時点(受信時刻)までの応答時間を計測(算出)し(ステップS106)、さらに、今回の応答は予め設定された所定の回数N、すなわち応答パケットの受信回数は所定の回数N、例えば5回目であるか否かを判断する(ステップS107)。
【0089】
ステップS105においてネットワークプリンタ200からの応答が無い場合、ステップS107において応答が所定の回数Nに達していない場合は、上記ステップS104に戻る。
【0090】
ステップS107においてネットワークプリンタ200からの応答が所定の回数Nに達したと判断したインターフェースモニタ150は、ステップS106で計測(算出)した回数N当たりの応答時間の平均値を算出するとともに(ステップS108)、この応答時間の平均値(平均応答時間)と送信すべき印刷データのデータ量と図4に示す予め設定されるパケットサイズ決定テーブル400とに基づき、当該印刷データに関するパケットのパケットサイズ(データサイズ)を求める(ステップS109)。
【0091】
そして、インターフェースモニタ150は、上記ステップS109で求めたパケットサイズを基に、ソケットインターフェース160に対してデータ送信のためのパケットサイズを設定する(ステップS110)。
【0092】
これにより、PC120からネットワークプリンタ200への、設定されたパケットサイズに基づくパケットの通信が開始される。
【0093】
ところで、上述した応答時間(平均応答時間)はLAN300のトラフィックの状況(トラフィック量)に比例するものである。すなわち、応答時間(平均応答時間)が短いほどトラフィックが少ない(換言すれば通信速度が速い)ということを意味し、一方、応答時間(平均応答時間)が長いほどトラフィックが多い(換言すれば通信速度が遅い)ということを意味する。
【0094】
図4に示すパケットサイズ決定テーブル400は、応答時間(トラフィック量に対応)と送信すべき印刷データなど所定のデータのデータ量とを基に、パケットサイズを決定するときに参照されるテーブルである。
【0095】
すなわち、パケットサイズ決定テーブル400は、それぞれ異なる複数の応答時間情報とそれぞれ異なるデータ量情報とパケットサイズ情報とが関連付けされた情報である。
【0096】
このようなパケットサイズ決定テーブル400は、PC100の記憶部103内の第1の記憶領域(例えばROMなど)に記憶されている。
【0097】
図4において、「応答時間の項目」の中のT1〜T6はそれぞれ応答時間情報を示し、これらの応答時間情報は「T1<T2<T3<T4<T5<T6」の関係が成立している。なお、これらの応答時間情報は、特定の応答時間を示しているのでは無く、第1の応答時間から第2の応答時間までの所定の範囲の応答時間情報である。
【0098】
また、「データ量の項目」のD1〜D6はそれぞれデータ量情報を示し、これらのデータ量情報は「D1>D2>D3>D4>D5>D6」の関係が成立している。なお、これらのデータ量情報は、特定のデータ量を示しているのでは無く、第1のデータ量から第2のデータ量までの所定の範囲のデータ量情報である。
【0099】
さらに、α11〜α16、β22〜β26、γ33〜γ36、およびξ66はそれぞれパケットサイズ情報を示している。これらのパケットサイズ情報は、最大のパケットサイズを示している。同一のデータ量に注目した場合、パケットサイズは、応答時間情報が「T6」から「T1」の方に向かうに従って、大きくなっている。例えば、データ量がD1の場合では、パケットサイズは「α11>α12>α13>α14>α15>α16」の関係が成立している。
【0100】
ここで、このようなパケットサイズ決定テーブル400を利用したパケットサイズの決定について説明する。
【0101】
送信すべき印刷データのデータ量がパケットサイズ決定テーブル400のデータ量D1に対応し、上記ステップS108で求められた平均応答時間がパケットサイズ決定テーブル400の応答時間T1に対応する場合、求めるべきパケットサイズは、データ量D1と応答時間T2とが交差するセル(要素)つまりα11となる。
【0102】
これは、送信すべき印刷データのデータ量に応じて、応答時間が速い場合、すなわちLAN300上のトラフィックが少なく通信速度がある程度速い場合は、パケットサイズを大きくして効率的なデータ送信を図ることを意味する。
【0103】
また、送信すべき印刷データのデータ量がパケットサイズ決定テーブル400のデータ量D1に対応し、上記ステップS108で求められた平均応答時間がパケットサイズ決定テーブル400の応答時間T6に対応する場合、求めるべきパケットサイズは、データ量D1と応答時間T6とが交差するセル(要素)つまりα16となる。
【0104】
これは、送信すべき印刷データのデータ量に応じて、応答時間が遅い場合、すなわちLAN300上のトラフィックが多く通信速度が遅い場合は、パケットサイズを小さくして効率的なデータ送信を図ることを意味する。
【0105】
さらに、送信すべき印刷データのデータ量がパケットサイズ決定テーブル400のデータ量D3に対応し、上記ステップS108で求められた平均応答時間がパケットサイズ決定テーブル400の応答時間T2に対応する場合、求めるべきパケットサイズは、データ量D3と応答時間T2とが交差するセルが存在しないので、データ量D3において最大のパケットサイズであるγ33となる。
【0106】
なお、上述したようなことから、パケットサイズ決定テーブル400は、LAN300上の回線の混み具合(トラフィック)を予め定義したテーブルであると言える。
【0107】
以上説明したように、LAN300のトラフィック量に対応する応答時間(平均応答時間)とネットワークプリンタ200へ送信すべき印刷データのデータ量とに基づきパケットサイズを決定することができ、このパケットサイズに基づくパケットによる最適なデータ通信を実施することができる。
【0108】
また、効率的なデータ通信を実現することができるので、ネットワークプリンタ200が印刷ジョブを処理する時間のうちデータ転送に係る時間を短縮させることができ、これによりネットワークプリンタ200での印刷処理時間を短縮させることができる。
【0109】
次に、ネットワークプリントシステム1の応答時間(平均応答時間)算出処理理について、図5を参照して説明する。
【0110】
図5は、ネットワークプリントシステム1のICMPに従った応答時間(平均応答時間)算出処理の処理手順を示すシーケンスである。
【0111】
ここで、これ以降の説明においては、PC100から送信される、ICMPパケットを「送信ICMPパケット」とし、この送信ICMPパケットを含むIPパケットを「送信IPパケット」とする。また、ネットワークプリンタ200から送信される、送信ICMPパケットに対する応答のためのICMPパケットを「応答ICMPパケット」とし、この応答ICMPパケットを含むIPパケットを「応答IPパケット」とする。
【0112】
インターフェースモニタ150は、ネットワーク機器同士(PC100とネットワークプリンタ200間)の通信が確立するか否かを確認するためのメッセージ、例えばエコー要求(「Echo Request」)をICMPパケットにセットする。
【0113】
すなわち、上述したICMPパケットのフォーマットにおけるICMPメッセージの「タイプ」フィールドに「8」をセットする。この「タイプ=8」は、エコー要求であることを示し、かつ調査のためのメッセージ(「Queryメッセージ」)であることを示している。
【0114】
さて、インターフェースモニタ150は、このような送信ICMPパケットを含む送信IPパケットを、ネットワークプリンタ200(調査対象装置)に実装されているNIC220に向けて送信する(S201)。
【0115】
エコー要求(「Echo Request」)がセットされた送信ICMPパケットを含む送信IPパケットをネットワークプリンタ200が受信すると、NIC220のインターフェースモニタ240は、その送信IPパケット内の送信ICMPパケット(エコー要求(「Echo Request」)がセット)を参照し、このエコー要求に応答すべく、自己のプリンタが正常に稼働しているときには正常に稼働していることを示すメッセージ、例えばエコー応答(Echo Reply)をICMPパケットにセットする。
【0116】
すなわち、ICMPメッセージの「タイプ」フィールドに「0」をセットする。この「タイプ=0」は、エコー応答(Echo Reply)であることを示し、かつ正常応答のためのメッセージ(「Queryメッセージ」)であることを示している。
【0117】
そして、インターフェースモニタ240は、このような値をセットした応答ICMPパケットを含む応答IPパケット、PC100のインターフェースモニタ150に向けて返信する(S202)。
【0118】
次に、PC100のインターフェースモニタ150は、レスポンスタイムを計測するために、ネットワークプリンタ200に対して到達時刻を返答させるためのタイムスタンプ要求(「Timestamp Request」)をICMPパケットにセットする。
【0119】
すなわち、上述したICMPパケットのフォーマットにおけるICMPメッセージの「タイプ」フィールドに「13」をセットする。この場合、ICMPパケットの所定のフィールド(「Originate Timestamp」のフィールド)に、送信元ホストつまりPC100がパケットを送信した時間が記述される。
【0120】
なお「タイプ=13」は、タイムスタンプ要求であることを示し、かつ調査のためのメッセージ(「Queryメッセージ」)であることを示している。
【0121】
そして、インターフェースモニタ150は、このような値がセットされた送信ICMPパケットを含む送信IPパケットを、ネットワークプリンタ200に実装されているNIC220に向けて送信する(S203)。
【0122】
タイムスタンプ要求(「Timestamp Request」)がセットされた送信ICMPパケットを含む送信IPパケットをネットワークプリンタ200が受信すると、NIC220のインターフェースモニタ240は、その送信IPパケット内の送信ICMPパケット(タイムスタンプ要求(「Timestamp Request」)がセット)を参照し、このタイムスタンプ要求に応答すべく、送信元ホストつまりPC100がレスポンスタイムを計測するために、到達時刻を返答するタイムスタンプ応答(「Timestamp Reply」)をICMPパケットにセットする。
【0123】
すなわち、ICMPメッセージの「タイプ」フィールドに「14」をセットする。この「タイプ=14」は、タイムスタンプ応答であることを示し、かつ正常応答のためのメッセージ(「Queryメッセージ」)であることを示している。なお、この場合、ICMPパケットの所定のフィールド(「Receive Timestamp」フィールド)に、宛先ホストつまりネットワークプリンタ200がパケットを受信した時間(到達時刻)が記述される。
【0124】
そして、インターフェースモニタ240は、このような値をセットした応答ICMPパケットを含む応答IPパケットを、PC100のインターフェースモニタ150に向けて返信することになる(S204)。
【0125】
すると、タイムスタンプ応答(「Timestamp Reply」)がセットされた応答ICMPパケットを含む応答IPパケットを受信したPC100のインターフェースモニタ150では、応答IPパケットをネットワークプリンタ200へ送信した時点から、このネットワークプリンタ200からの応答IPパケットを受信した時点までの応答時間(通信時間)を計測(算出)する(S205)。
【0126】
そして、上記S203〜S205の処理と同様の処理が所定の回数N分繰り返されることになる。ここで、所定の回数N目の処理が実行されると(S206〜S208)、PC100のインターフェースモニタ150は、既に求めた複数(N)の応答時間の平均値(平均応答時間)を算出する(S209)。
【0127】
次に、インターフェースモニタ150は、この算出した平均応答時間と送信すべき印刷データのデータ量とパケットサイズ決定テーブル400(図4参照)とに基づき、当該印刷データに関するパケットのパケットサイズを求めるとともに、この求めたパケットサイズを基に、ソケットインターフェース160に対してデータ送信のためのパケットサイズを設定する(S210)。
【0128】
これにより、PC100からネットワークプリンタ200への、設定されたパケットサイズに基づくパケットの通信が開始される(S211)。
【0129】
次に、ネットワークプリントシステム1のパケットサイズ補正処理について、図6を参照して説明する。
【0130】
図6は、そのパケットサイズ補正処理の処理手順を示すシーケンスである。なお、図6では、IPパケット、ICMPパケットの表示は省略している。
【0131】
最初に、上記図5に示した処理手順のS201〜S209と同様の処理が実行される(S301〜306)。この例では、タイムスタンプ要求を1回送信するようにしているが、図5に示した例の場合と同様に複数回送信するようにしてもよい。
【0132】
ここで、送信すべき印刷データのデータ量がパケットサイズ決定テーブル400のデータ量D1に対応し、上記ステップS305で求められた平均応答時間がパケットサイズ決定テーブル400の応答時間T1に対応するものとする。この場合、S306で求められるパケットサイズはα11となる。
【0133】
そして、パケットサイズα11に基づく、印刷データを含む送信IPパケットが、PC100からネットワークプリンタ200に向けて送信される(S307)。このとき、インターフェースモニタ150は、この印刷データを含む送信IPパケットが送信された時点(送信時刻)を認識しておく。
【0134】
ネットワークプリンタ200では、インターフェースモニタ240は、PC100からの送信IPパケットを正常に受信した場合は、その送信IPパケットに対する肯定確認応答(ACK)を含む応答IPパケットをPC100へ送信する(S308)。
【0135】
PC100では、インターフェースモニタ150は、ACKを含む応答IPパケットが受信された時点(受信時刻)と上記送信時刻とに基づき、印刷データの送信時刻から当該印刷データに対する肯定確認応答(ACK)の受信時刻までの時間(応答時間)を算出(計測)する(S309)。
【0136】
同様にして、パケットサイズα11に基づく、印刷データを含む送信IPパケットが、PC100からネットワークプリンタ200に向けて送信されるとともに(S310)、この送信パケットに対する肯定確認応答(ACK)を含む応答IPパケットが、ネットワークプリンタ200からPC100に向けて送信される(S311)。
【0137】
PC100では、インターフェースモニタ150は、上記S309の処理と同様に、印刷データ(つまり送信IPパケット)の送信時刻から当該印刷データ(送信IPパケット)に対するACK(つまり応答IPパケット)の受信時刻までの時間(応答時間)を算出(計測)する(S312)。
【0138】
そして、インターフェースモニタ150は、上述したようにして求めた複数の応答時間の平均値(平均応答時間)を算出するとともに(S313)、この算出した平均応答時間を基に、上記S306で決定したパケットサイズを補正し、この補正後のパケットサイズを基に、ソケットインターフェース160に対してデータ送信のためのパケットサイズを設定する(S314)
【0139】
このステップS314の処理において、求められた平均応答時間はパケットサイズ決定テーブル400の応答時間T3に対応するものとする。また、送信すべき印刷データのデータ量は上述したようにパケットサイズ決定テーブル400のデータ量D1に対応している。そのため、応答時間T3とデータ量D1とに基づきパケットサイズα13が求められる。
【0140】
インターフェースモニタ150は、この求めたパケットサイズα13を基に、ソケットインターフェース160に対してデータ送信のためのパケットサイズを設定する。すなわち、パケットサイズはα11からα13に補正されたことになる。
【0141】
そして、上述したようにして補正された補正後のパケットサイズα13がソケットインターフェース160に対して設定されると、パケットサイズα13に基づく、印刷データを含む送信IPパケットが、PC100からネットワークプリンタ200に向けて送信される(S315)。
【0142】
ネットワークプリンタ200のソケットインターフェース160は、PC100からの送信IPパケットを正常に受信した場合、肯定確認応答(ACK)を含む応答IPパケットをPC100へ送信する(S316)。
【0143】
なお、本実施の形態1では、図6に示した補正処理手順に示す如く、複数のIPパケット(印刷データ)分の平均応答時間を算出し、この平均応答時間と送信すべき印刷データのデータ量とに基づきパケットサイズを補正するようにしているが、本発明はこれに限定されることなく、IPパケット(印刷データ)毎に求められる応答時間と送信すべき印刷データのデータ量とに基づき、パケットサイズを補正するようにしてもよい。
【0144】
また、本実施の形態1では、パケットサイズを求めるに際し、送信すべき印刷データのデータ量は同一であるものとしたが、本発明はこれに限定されることなく、次のようにしてもよい。
【0145】
すなわち、上記図6に示した処理手順のステップS314の処理において、求められた平均応答時間はパケットサイズ決定テーブル400の応答時間T3に対応するものとする。また、送信すべき印刷データは未送信の印刷データであるので、その未送信の印刷データのデータ量はパケットサイズ決定テーブル400のデータ量D2に対応するものとする。そして、応答時間T3とデータ量D2とに基づきパケットサイズβ23を求めるようにする。
【0146】
また、本実施の形態1では、図5および図6の処理手順に示す如く、タイムスタンプ要求に対応する送信IPパケットの送信時刻から、当該送信IPパケットに対するタイムスタンプ応答に対応する応答IPパケットの受信時刻までの応答時間(通信時間)を求めるようにしているが、本発明はこれに限定されことなく、次のようにしてもよい。
【0147】
すなわち、インターフェースモニタ150は、タイムスタンプ要求に対応する送信IPパケットの送信時刻から、当該送信IPパケットつまりタイムスタンプ要求に対するタイムスタンプ応答に対応する応答IPパケット内の応答ICMPに含まれる受信時刻までの通信時間(到達時間)を算出する。なお、その受信時刻(到達時刻)は、当該ICMPの「Receive Timestamp」フィールドに記述されている受信時刻(到達時刻)を参照することで知ることができる。そして、この到達時間と送信すべき印刷データのデータとパケットサイズ決定テーブルとに基づいて、パケットサイズを決定するようにする。
【0148】
以上説明したように、LAN300のトラフィック量に対応する応答時間(平均応答時間)とネットワークプリンタ200へ送信すべき印刷データのデータ量とに基づきパケットサイズを決定することができる。また、ネットワークプリンタ200による印刷ジョブの実行中に取得したLAN300のトラフィック量に対応する応答時間とネットワークプリンタ200へ送信すべき印刷データのデータ量とに基づき既に決定されたパケットサイズを補正することができる。
【0149】
すなわち、LAN300の動的に変化するトラフィック量に対応する応答時間に応じて決定されたパケットサイズを、印刷データを含むパケットの通信処理において定期的に取得したLAN300の動的に変化するトラフィック量に対応する応答時間、および送信すべき印刷データのデータ量に基づき補正することができるので、最適なデータ通信を実施することができる。
【0150】
また、ネットワークプリンタ200による印刷ジョブの処理の最中に、LAN300のトラフィック量が動的に変化した場合であっても、効率的なデータ通信を実現することができるので、ネットワークプリンタ200が印刷ジョブを処理する時間のうちデータ転送に係る時間を大幅に短縮させることができ、これによりネットワークプリンタ200での印刷処理時間を短縮させることができる。
【0151】
(実施の形態2)
【0152】
次に、本実施の形態2に係るネットワークプリントシステムについて説明する。
【0153】
本実施の形態2に係るネットワークプリントシステムは、図1に示した実施の形態1のネットワークプリントシステムの全体構成と同様の構成になっている。また、ネットワークプリントシステムのプロトコルスタックは、図2に示した実施の形態1のプロトコルスタックと同様の構成になっている。
【0154】
このネットワークプリントシステムでは、送信すべき印刷データのデータ量とネットワークプリンタの負荷状況とに基づいて当該印刷データに関するパケットのパケットサイズを決定するようにしている。
【0155】
なお、本実施の形態2のネットワークプリントシステムは、実施の形態1とは、基本的には上述した如く構成および機能は同一であるものの、一部相違する点もある。次に、その相違する点について説明する。
【0156】
PC100では、データサイズ決定手段の機能を有するインターフェースモニタ150は、実施の形態1の場合の(1)〜(4)の各機能に加えて、次の(5)〜(7)の各機能も有している。
【0157】
(5)ネットワークプリンタ200に対し負荷状態を問い合せるとともに、この問い合せに対する結果としてネットワークプリンタ200から返信される負荷状態を示す情報を取得し、この取得した負荷状態を示す情報と送信すべき所定の印刷データのデータ量とに基づいて、当該所定の印刷データに関するパケットのパケットサイズを決定する。
【0158】
(6)ネットワークプリンタ200による当該PC100からの印刷データに対する印刷処理の実行中に、ネットワークプリンタ200に対し負荷状態を問い合せるとともに、この問い合せに対する結果としてネットワークプリンタ200から返信される負荷状態を示す情報を取得し、この取得した負荷状態を示す情報と送信すべき所定の印刷データのデータ量とに基づいて、既に決定したパケットサイズを補正する。
【0159】
(7)送信すべき所定の印刷データのデータ量と、LAN300上のトラフィック量と、ネットワークプリンタ200の負荷状態とに基づいて、当該所定の印刷データに関するパケットのパケットサイズを決定または補正する。
【0160】
また、ネットワークプリンタ200においては、プリンタFW210は、PC100からの負荷状態に関する問い合わせを受信した場合に、当該ネットワークプリンタの印刷処理状況を示す情報を当該問い合わせに対する結果としてPC100へ返信する負荷状態通知手段の機能を有している。
【0161】
また、負荷状態通知手段の機能を有するプリンタFW210は、既に受信されているPC100からのパケットに含まれる印刷データに対する印刷処理が実行されている最中に、負荷状態に関する問い合わせがあった場合は、受信可能なデータのデータサイズを示す情報を当該問い合わせに対する結果としてPC100へ返信する機能を有している。
【0162】
次に、ネットワークプリントシステムのPC100のインターフェースモニタ150による印刷ジョブ開始処理について、図7を参照して説明する。
【0163】
最初に、インターフェースモニタ150は、図3に示した処理手順のステップS101からS103と同様の処理を実行する(ステップS401〜S403)。
【0164】
次に、ステップS303において接続が成功したと判断したインターフェースモニタ150が、ソケットインターフェース160に対し、負荷状態に関する問い合わせを意味するダミーパケットの送信を指示すると、ソケットインターフェース160は、インターフェースモニタ150の指示に従って例えば64バイトのダミーパケット(負荷状態に関する問い合わせ)をLAN300を介してネットワークプリンタ200へ送出する(ステップS404)。
【0165】
インターフェースモニタ150は、上記ステップS404で、ダミーパケットがソケットインターフェース160を通じてネットワークプリンタ200へ送信された場合、ソケットインターフェース160を通じてネットワークプリンタ200からの応答を待つことになる。
【0166】
なお、このとき、ネットワークプリンタ200のプリンタFW210は、接続要求を出したPC100以外のホストコンピュータ(PC)からの印刷ジョブを処理している場合には、ウィンドウサイズ(データウィンドウサイズ)の値が「0」にセットされた応答パケットを接続要求を出したPC100へ返信することになる。この場合、ネットワークプリンタ200は、ビジー状態であるため、PC100を含む他のPCからの印刷ジョブを受け付けることができない。
【0167】
一方、接続要求を出したPC100の印刷ジョブを処理可能である場合は、応答パケットのウィンドウサイズが、受信可能なバッファサイズとなっている。
【0168】
このウィンドウサイズすなわち受信可能なバッファサイズは、負荷状態に関する問い合わせに対する結果としての印刷処理状況を示す情報であり、また受信可能なデータのデータサイズを示す情報でもある。
【0169】
PC100(のインターフェースモニタ150)は、負荷状態に関する問い合わせを、ネットワークプリンタ200(の印刷部202)による印刷処理の途中においても繰り返すことにより、ネットワークプリンタ200の印刷処理における負荷の係わり具合を認識することができる。
【0170】
ところで、上述したようにしてダミーパケットがネットワークプリンタ200に向けて送出されると、インターフェースモニタ150は、ネットワークプリンタ200(のプリンタFW210)からの応答パケットの返信(応答)が有るか否かを判断する(ステップS405)。
【0171】
次に、インターフェースモニタ150は、ステップS405において、ネットワークプリンタ200(のプリンタFW210)からの応答パケットの返信があると判断した場合、つまり応答パケットを受信した場合は、当該応答パケットのウィンドウサイズの値を、例えば記憶部103の第3の記憶領域(ワークエリア)に一時保存するとともに(ステップS406)、今回の応答は予め設定された所定の回数、すなわち応答パケットの受信回数は所定の回数N、例えば5回目であるか否かを判断する(ステップS407)。
【0172】
ステップS405においてネットワークプリンタ200からの応答が無い場合、ステップS407において応答が所定の回数Nに達していない場合は、上記ステップS404に戻る。
【0173】
ステップS407においてネットワークプリンタ200からの応答(応答パケット)が所定の回数Nに達したと判断したインターフェースモニタ150は、ステップS406で一時保存した複数の応答パケットに関するウィンドウサイズの値の平均値(平均ウィンドウサイズ)を算出するとともに(ステップS408)、この平均ウィンドウサイズと送信すべき印刷データのデータ量とに基づき、当該印刷データに関するパケットのパケットサイズ(データサイズ)を求める(ステップS409)。
【0174】
この場合、パケットサイズは、平均ウィンドウサイズを採用することで最大のパケットサイズとすることが可能であるが、送信すべき印刷データのデータ量に応じて、適宜、平均ウィンドウサイズを複数に分割したサイズとすることが好ましい。
【0175】
そして、インターフェースモニタ150は、上記ステップS409で求めたパケットサイズを基に、ソケットインターフェース160に対してデータ送信のためのパケットサイズを設定する(ステップS410)。
【0176】
以上説明したように、ネットワークプリンタ200の受信可能なバッファサイズとネットワークプリンタ200へ送信すべき印刷データのデータ量とに基づきパケットサイズを決定することができ、このパケットサイズに基づくパケットによる最適なデータ通信を実施することができる。
【0177】
また、効率的なデータ通信を実現することができるので、ネットワークプリンタ200が印刷ジョブを処理する時間のうちデータ転送に係る時間を短縮させることができ、これによりネットワークプリンタ200での印刷処理時間を短縮させることができる。
【0178】
次に、ネットワークプリントシステム1のパケットサイズ補正処理について、図8を参照して説明する。
【0179】
図8は、そのパケットサイズ補正処理の処理手順を示すシーケンスである。
【0180】
最初に、上述したように、PC100のソケットインターフェース160が、インターフェースモニタ150の指示に従って例えば64バイトのダミーパケット(負荷状態に関する問い合わせ)をLAN300を介してネットワークプリンタ200へ送出すると(S501)、ネットワークプリンタ200のプリンタFW210は、そのダミーパケット(IPパケット)を正常に受信した場合は、所定の値がセットされたウィンドウサイズを含む応答パケット(IPパケット)をPC100に向けて送信する(S502)。
【0181】
このとき、PC100のインターフェースモニタ150は、受信した応答パケット内のタウィンドウサイズの値を記憶部103に一時保存する。
【0182】
同様にして、送信されたダミーパケットが予め設定された所定値に達するまで、上記S501、S502の処理が繰り返される(S503、S504)。
【0183】
そして、インターフェースモニタ150は、ソケットインターフェース160から送信されたダミーパケットが予め設定された所定値に達した場合は、一時保存されている所定値(複数)分のウィンドウサイズの値の平均値(平均ウィンドウサイズ)を求め(S505)、この平均ウィンドウサイズと送信すべき印刷データのデータ量とに基づき、当該印刷データに関するパケットのパケットサイズを求める。
【0184】
次に、インターフェースモニタ150は、この求めたパケットサイズを基に、ソケットインターフェース160に対してデータ送信のためのパケットサイズを設定する(ステップS506)。
【0185】
ここで、求められた平均ウィンドウサイズは値「WS1」であるとし、この平均ウィンドウサイズWS1を、パケットサイズPS1と定義する。このパケットサイズPS1に基づく、印刷データを含むパケット(IPパケット)が、PC100からネットワークプリンタ200に向けて送信される(S507)。
【0186】
ネットワークプリンタ200は、そのパケットを正常に受信した場合は、肯定確認応答(ACK)を含むパケット(IPパケット)をPC100へ送信する(S508)。
【0187】
同様の処理が複数のパケット分について実施される。すなわち、PC100による印刷データを含むパケット(パケットサイズPS1)の送信処理が実施され(S509)、またネットワークプリンタ200による受信したパケットに対する肯定確認応答(ACK)を含むパケットの送信処理が実施される(S510)。
【0188】
このようにして印刷データを含む複数のパケットを送信した時点では、PC100には、未送信の印刷データが存在するもとする。
【0189】
S510が終了した後、PC100では、インターフェースモニタ150は、次の印刷データを含むパケットを送信せずに、ネットワークプリンタ200の負荷状態を知るために、ダミーパケットをネットワークプリンタ200に向けて送信する(S511)。このダミーパケットを受信したネットワークプリンタ200のプリンタFW210は、所定の値がセットされたウィンドウサイズを含む応答パケットを、PC100に向けて送信する(S512)。
【0190】
なお、ここでは、ダミーパケットは1回のみ送信するようにしているが、複数回送信するようにしてもよい。
【0191】
そして、PC100では、インターフェースモニタ150は、一時保存されている1つのウィンドウサイズの値を取得するか、あるいは一時保存されている複数のウィンドウサイズの値の平均値(平均ウィンドウサイズ)を求める(S513)。
【0192】
次に、インターフェースモニタ150は、取得したウィンドウサイズ(または求めた平均ウィンドウサイズ)と、送信すべき印刷データのデータ量とに基づき、既に決定されているパケットサイズを補正し、この補正後のパケットサイズを基に、ソケットインターフェース160に対してデータ送信のためのパケットサイズを設定する(S514)。
【0193】
このステップS514の処理において、取得したウィンドウサイズは値「WS3」であるとし、このウィンドウサイズWS3を、パケットサイズPS3と定義する。ここで、ウィンドウサイズは「WS3<WS1」の関係が成立するものとする。そのため、パケットサイズも「PS3<PS1」の関係が成立することになる。
【0194】
そして、補正前のパケットサイズPS1よりも小さいパケットサイズPS3に基づく、印刷データを含むパケット(IPパケット)が、PC100からネットワークプリンタ200に向けて送信される(S515)。この場合、パケットサイズはPS1からPS3に補正されている。
【0195】
以上説明したように、ネットワークプリンタ200の受信可能なバッファサイズと送信すべき印刷データのデータ量とに基づきパケットサイズを決定することができる。また、ネットワークプリンタ200による印刷ジョブの実行中に取得したネットワークプリンタ200の受信可能なバッファサイズと送信すべき印刷データのデータ量とに基づき既に決定されたパケットサイズを補正することができる。
【0196】
すなわち、ネットワークプリンタ200の動的に変化する印刷処理状況(受信可能なバッファサイズ)に応じて決定されたパケットサイズを、印刷データを含むパケットの送信処理において定期的に取得したネットワークプリンタ200の動的に変化する印刷処理状況(受信可能なバッファサイズ)、および送信すべき印刷データのデータ量に基づき補正することができるので、最適なデータ通信を実施することができる。
【0197】
また、ネットワークプリンタ200による印刷ジョブの処理の最中に、ネットワークプリンタ200の動的に変化する受信可能なバッファサイズに応じたパケットを送信することにより効率的なデータ通信を実現することができるので、ネットワークプリンタ200が印刷ジョブを処理する時間のうちデータ転送に係る時間を大幅に短縮させることができ、これによりネットワークプリンタ200での印刷処理時間を短縮させることができる。
【0198】
次に、ネットワークプリントシステム1の他のパケットサイズ補正処理について、図9を参照して説明する。
【0199】
図9は、他のパケットサイズ補正処理の処理手順を示すシーケンスである。
【0200】
最初に、図8に示した処理手順のS501〜S506と同様の処理が実施される(S601〜S606)。この場合も、S606で、求められた平均ウィンドウサイズWS1を、パケットサイズPS1と定義する。
【0201】
そして、パケットサイズPS1に基づく、印刷データを含むパケット(IPパケット)が、PC100からネットワークプリンタ200に向けて送信される(S607)。このとき、インターフェースモニタ150は、この印刷データを含むパケットが送信された時点(送信時刻)を認識しておく。
【0202】
ネットワークプリンタ200は、その印刷データを含むパケットを正常に受信した場合、肯定確認応答(ACK)を含むパケット(IPパケット)をPC100へ送信する(S608)。
【0203】
PC100では、インターフェースモニタ150は、肯定確認応答(ACK)を含むパケットが受信された時点(受信時刻)と上記送信時刻とに基づき、印刷データの送信時刻から当該印刷データに関する肯定確認応答(ACK)の受信時刻までの応答時間を算出(計測)する(S609)。
【0204】
同様にして、パケットサイズPS1に基づく、印刷データを含むパケット(IPパケット)が、PC100からネットワークプリンタ200に向けて送信されるとともに(S610)、このパケットに対する肯定確認応答(ACK)を含むパケット(IPパケット)が、ネットワークプリンタ200からPC100に向けて送信される(S611)。
【0205】
PC100では、インターフェースモニタ150は、上記S609の処理と同様に、印刷データの送信時刻から当該印刷データに関するACKの受信時刻までの時間(応答時間)を算出(計測)するとともに(S612)、上述したようにして求めた複数の応答時間の平均値(平均応答時間)を算出する(S613)。
【0206】
次に、インターフェースモニタ150は、この算出した平均応答時間を基に上記S606で決定したパケットサイズを補正するとともに、この補正後のパケットサイズを基に、ソケットインターフェース160に対してデータ送信のためのパケットサイズを設定する(S614)。
【0207】
このステップS614の処理において、求められた平均応答時間は、図4に示したパケットサイズ決定テーブル400の応答時間T3に対応するものとする。また、送信すべき印刷データ信(未送信の印刷データ)のデータ量は、パケットサイズ決定テーブル400のデータ量D2に対応するものとする。そのため、応答時間T3とデータ量D2とに基づきパケットサイズβ23が求められる。なお、ここでは、パケットサイズは、β23=PS3<PS1とする。
【0208】
インターフェースモニタ150は、この求めたパケットサイズPS3(β23)を基に、ソケットインターフェース160に対してデータ送信のためのパケットサイズを設定する。すなわち、パケットサイズはPS1からPS3に補正されたことになる。
【0209】
そして、上述したようにして補正された補正後のパケットサイズPS3がソケットインターフェース160に対して設定されると、パケットサイズPS3に基づく、印刷データを含むパケット(IPパケット)が、PC100からネットワークプリンタ200に向けて送信される(S615)。
【0210】
以上説明したように、ネットワークプリンタ200の受信可能なバッファサイズと送信すべき印刷データのデータ量とに基づきパケットサイズを決定することができる。また、ネットワークプリンタ200による印刷ジョブの実行中に取得したLAN300のトラフィック量に対応する応答時間と送信すべき印刷データのデータ量とに基づき既に決定されたパケットサイズを補正することができる。
【0211】
すなわち、ネットワークプリンタ200の動的に変化する印刷処理状況(受信可能なバッファサイズ)に応じて決定されたパケットサイズを、印刷データを含むパケットの送信処理において定期的に取得したLAN300の動的に変化するトラフィック量に対応する応答時間、送信すべき印刷データのデータ量、およびパケットサイズ決定テーブル400に基づき補正することができるので、最適なデータ通信を実施することができる。
【0212】
また、ネットワークプリンタ200による印刷ジョブの処理の最中に、LAN300のトラフィックが動的に変化した場合であっても、効率的なデータ通信を実現することができるので、ネットワークプリンタ200が印刷ジョブを処理する時間のうちデータ転送に係る時間を大幅に短縮させることができ、これによりネットワークプリンタ200での印刷処理時間を短縮させることができる。
【産業上の利用可能性】
【0213】
本発明は、複写機能およびプリント機能を有する画像形成装置(いわゆる複合機としての画像形成装置)とホストコンピュータなど送信元装置とが通信回線を介して接続される印刷システムに適用することができる。
【図面の簡単な説明】
【0214】
【図1】実施の形態1に係るネットワークプリントシステムの全体構成を示す構成図である。
【図2】実施の形態1に係るネットワークプリントシステムのプロトコルスタックの構成を示す構成図である。
【図3】実施の形態1に係るホストコンピュータのインターフェースモニタによる印刷ジョブ開始処理の処理手順を示すフローチャートである。
【図4】実施の形態1に係るパケットサイズ決定テーブルの一例を示す図である。
【図5】実施の形態1に係るネットワークプリントシステムの応答時間算出処理の処理手順を示すシーケンスである。
【図6】実施の形態1に係るネットワークプリントシステムのパケットサイズ補正処理の処理手順を示すシーケンスである。
【図7】実施の形態2に係るホストコンピュータのインターフェースモニタによる印刷ジョブ開始処理の処理手順を示すフローチャートである。
【図8】実施の形態2に係るネットワークプリントシステムのパケットサイズ補正処理の処理手順を示すシーケンスである。
【図9】実施の形態2に係るネットワークプリントシステムの他のパケットサイズ補正処理の処理手順を示すシーケンスである。
【符号の説明】
【0215】
1 ネットワークプリントシステム
100 ホストコンピュータ(送信元装置)
101 表示部
102 入力部
103 記憶部(記憶手段)
104 通信インターフェース
105 制御部(パケットサイズ決定手段)
110 アプリケーション
120 オペレーティングシステム
130 プリンタドライバ
140 プリントスプーラ
150 インターフェースモニタ(パケットサイズ決定手段)
160 ソケットインターフェース
200 ネットワークプリンタ(印刷装置)
201 記憶部
202 印刷部
203 通信インターフェース
204 制御部(負荷状態通知手段)
210 プリンタファームウェア(負荷状態通知手段)
220 NIC(ネットワークインターフェースカード)
230 NICインターフェース
240 インターフェースモニタ(受信時刻通知手段)
250 ソケットインターフェース
300 LAN(通信回線)
400 パケットサイズ決定テーブル(記憶手段)

【特許請求の範囲】
【請求項1】
印刷データを送信する送信元装置と該送信元装置から送信された印刷データに基づき印刷処理を実行する印刷装置とが通信回線を介して接続され、これらの装置間で所定の通信プロトコルに従ってデータの送受信を行う印刷システムであって、
前記送信元装置は、
前記印刷装置へ送信すべき所定の印刷データのデータ量と、前記通信回線上のトラフィック量および前記印刷装置の負荷状態の少なくとも何れか一方の情報とに基づいて、当該所定の印刷データに関するパケットのパケットサイズを決定するパケットサイズ決定手段、
を有し、
前記パケットサイズ決定手段によって決定されたパケットサイズに基づくパケットを前記印刷装置へ送信する、
ことを特徴とする印刷システム。
【請求項2】
前記パケットサイズ決定手段は、
印刷データを含まない所定のパケットを前記印刷装置へ送信した時点から、当該所定のパケットを受信した前記印刷装置から送信される当該所定のパケットの受信時刻を示す旨を受信した場合の当該受信時刻までの通信時間と、前記所定の印刷データのデータ量とを基に、当該所定の印刷データに関するパケットのパケットサイズを決定する、
ことを特徴とする請求項1記載の印刷システム。
【請求項3】
実施形態1
前記パケットサイズ決定手段は、
印刷データを含まない所定のパケットを前記印刷装置へ送信した時点から、当該所定のパケットを受信した前記印刷装置から送信される肯定応答を示す旨を受信する時点までの通信時間と、前記所定の印刷データのデータ量とを基に、当該所定の印刷データに関するパケットのパケットサイズを決定する、
ことを特徴とする請求項1記載の印刷システム。
【請求項4】
前記送信元装置は、
それぞれ異なる複数の通信時間情報とそれぞれ異なる複数のデータ量情報と複数のパケットサイズ情報とが関連付けされた情報を記憶する記憶手段、を更に備え、
前記パケットサイズ決定手段は、
前記所定のパケットを送信したことにより得られた前記通信時間と前記所定の印刷データのデータ量と前記記憶手段の記憶内容とに基づいて、前記所定の印刷データに関するパケットのパケットサイズを決定する、
ことを特徴とする請求項2または3記載の印刷システム。
【請求項5】
前記パケットサイズ決定手段は、
前記印刷装置に対し負荷状態を問い合せるとともに、この問い合せに対する結果として前記印刷装置から返信される負荷状態を示す情報を取得し、この取得した負荷状態を示す情報と前記所定の印刷データのデータ量とに基づいて、当該所定の印刷データに関するパケットのパケットサイズを決定する、
ことを特徴とする請求項1〜4の何れか一項に記載の印刷システム。
【請求項6】
前記印刷装置は、
前記送信元装置から送信された前記所定のパケットを受信した場合に、当該所定のパケットを受信した受信時刻を示す旨を、前記パケットサイズ決定手段に向けて送信する受信時刻通知手段、
を有することを特徴とする請求項1〜5の何れか一項に記載の印刷システム。
【請求項7】
前記印刷装置は、
前記送信元装置からの負荷状態に関する問い合わせを受信した場合に、当該印刷装置の印刷処理状況を示す情報を当該問い合わせに対する結果として前記送信元装置へ返信する負荷状態通知手段、
を有することを特徴とする請求項1〜6の何れか一項に記載の印刷システム。
【請求項8】
前記負荷状態通知手段は、
既に受信されている前記送信元装置からのパケットに含まれる印刷データに対する印刷処理が実行されている最中に、前記負荷状態に関する問い合わせがあった場合は、受信可能なデータのデータサイズを示す情報を当該問い合わせに対する結果として前記送信元装置へ返信する、
ことを特徴とする請求項7記載の印刷システム。
【請求項9】
前記パケットサイズ決定手段は、
既に決定したパケットサイズに基づく、印刷データを含むパケットを送信した時点から、当該パケットを受信した前記印刷装置から送信される肯定応答を示す旨を受信する時点までの応答時間と、送信すべき印刷データのデータ量とに基づき、当該既に決定したパケットサイズを補正する、
ことを特徴とする請求項1〜8の何れか一項に記載の印刷システム。
【請求項10】
前記送信元装置と前記印刷データとの間のデータ通信にあってはフロー制御は実施されない、
ことを特徴とする請求項1〜9の何れか一項に記載の印刷システム。
【請求項11】
印刷データを送信する送信元装置と通信回線を介して接続され、該送信元装置との間でフロー制御機能を有しない所定の通信プロトコルに従ってデータ通信する印刷装置であって、
前記送信元装置からの負荷状態に関する問い合わせを受信した場合に、当該印刷装置の印刷処理状況を示す情報を当該問い合わせに対する結果として前記送信元装置へ返信する負荷状態通知手段、
を有することを特徴とする印刷装置。
【請求項12】
前記負荷状態通知手段は、
既に受信されている前記送信元装置からの所定の印刷データに関するパケットに含まれる印刷データに対する印刷処理が実行されている最中に、前記負荷状態に関する問い合わせがあった場合は、受信可能なデータのデータサイズを示す情報を当該問い合わせに対する結果として前記送信元装置へ返信する、
ことを特徴とする請求項11記載の印刷装置。
【請求項13】
前記送信元装置から送信され印刷データを含まない所定のパケットを受信した場合に、当該所定のパケットを受信した受信時刻を示す旨を、前記送信元装置へ送信する受信時刻通知手段、を更に備えた、
ことを特徴とする請求項11または12記載の印刷装置。
【請求項14】
送信元装置が所定の印刷データに関するパケットを通信回線を通じて印刷装置へ送信する印刷システムのデータ通信方法であって、
前記送信元装置と前記印刷装置との間のデータ通信に関わるフロー制御を実施せずに、
前記送信元装置が、印刷データを含むパケットを送信する前に、前記印刷装置から取得した当該印刷装置の負荷状態および前記通信回線上のトラフィック量の少なくとも何れか一方の情報と前記所定の印刷データのデータ量とに基づいてパケットサイズを決定し、この決定したパケットサイズに基づく、印刷データを含むパケットを前記印刷装置へ送信する、
ことを特徴とする印刷システムのデータ通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2008−46828(P2008−46828A)
【公開日】平成20年2月28日(2008.2.28)
【国際特許分類】
【出願番号】特願2006−221310(P2006−221310)
【出願日】平成18年8月14日(2006.8.14)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】