(57)【特許請求の範囲】
【請求項１】
他の装置からパケットを受信してから予め定めた時間の経過後に当該パケットに対する確認応答を当該他の装置へ返信する遅延確認応答を行うか否かを指定するための情報である確認応答情報を設定する設定手段と、
前記設定手段が設定した前記確認応答情報と、他の装置から受信するパケットに含まれる、自装置と当該他の装置との間で確立された接続を識別するために用いられる識別情報とを関連付けた関連付け情報を保持する保持手段と、
他の装置から受信するパケットに含まれる前記識別情報に基づき、前記保持手段に保持されている前記確認応答情報を参照することにより、当該パケットに対して前記遅延確認応答を行うか否かを判定する判定処理をＯＳＩ（Open Systems Interconnection）基本参照モデルにおけるトランスポート層にて行う判定手段と
を備え、
前記設定手段及び前記保持手段は、前記トランスポート層とは異なる階層にて、それぞれ前記確認応答情報を設定し、前記関連付け情報を保持し、
前記設定手段は、他の装置から予め定められた基準値以下のデータ量を含むパケットを前記トランスポート層にて受信するときであって、かつ当該パケットが当該トランスポート層よりも上位の階層に渡されることを示す付加情報を当該パケットが含むときに、前記確認応答情報として、前記遅延確認応答を行うことを指定するための情報を設定することを特徴とする通信装置。
【請求項２】
他の装置からパケットを受信してから予め定めた時間の経過後に当該パケットに対する確認応答を当該他の装置へ返信する遅延確認応答を行うか否かを指定するための情報である確認応答情報を、当該他の装置から接続要求を受け付けると設定する設定手段と、
前記設定手段が設定した前記確認応答情報と、他の装置から受信するパケットに含まれる、自装置と当該他の装置との間で確立された接続を識別するために用いられる識別情報とを関連付けた関連付け情報を保持する保持手段と、
他の装置から受信するパケットに含まれる前記識別情報に基づき、前記保持手段に保持されている前記確認応答情報を参照することにより、当該パケットに対して前記遅延確認応答を行うか否かを判定する判定処理を行う判定手段と、
前記自装置と前記他の装置との間で確立された前記接続が切断されると、前記確認応答情報の設定を解除する設定解除手段と
を備えたことを特徴とする通信装置。
【請求項３】
前記判定手段は、ＯＳＩ（Open Systems Interconnection）基本参照モデルにおけるトランスポート層にて前記判定処理を行い、
前記設定手段及び前記保持手段は、前記トランスポート層とは異なる階層にて、それぞれ前記確認応答情報を設定し、前記関連付け情報を保持することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記設定手段は、他の装置から予め定められた基準値以下のデータ量を含むパケットを前記トランスポート層にて受信するときであって、かつ当該パケットが当該トランスポート層よりも上位の階層に渡されることを示す付加情報を当該パケットが含むときに、前記確認応答情報として、前記遅延確認応答を行うことを指定するための情報を設定することを特徴とする請求項３に記載の通信装置。
【請求項５】
自装置と一又は複数の他の装置との間における現在の通信量を把握する把握手段を更に備え、
前記設定手段は、前記把握手段が把握した前記通信量に基づき、前記確認応答情報を設定することを特徴とする請求項１乃至４のいずれかに記載の通信装置。
【請求項６】
前記把握手段は、前記通信量として、自装置と一又は複数の他の装置との間で現在確立されている接続の個数を把握し、
前記設定手段は、前記把握手段が把握した前記個数が予め定められたしきい値以上であるときに、前記確認応答情報として、前記遅延確認応答を行うことを指定するための情報を設定することを特徴とする請求項５に記載の通信装置。
【請求項７】
自装置と一又は複数の他の装置との間における現在の通信量を把握する把握手段と、
前記把握手段が把握した前記通信量に基づき、前記他の装置からパケットを受信してから予め定めた時間の経過後に当該パケットに対する確認応答を当該他の装置へ返信する遅延確認応答を行うか否かを指定するための情報である確認応答情報を、当該他の装置から接続要求を受け付けると設定する設定手段と、
前記設定手段が設定した前記確認応答情報と、前記他の装置から受信するパケットに含まれる、自装置と当該他の装置との間で確立された接続を識別するために用いられる識別情報とを関連付けて保持する保持手段と、
前記他の装置から受信するパケットに含まれる前記識別情報に基づき、前記保持手段に保持されている前記確認応答情報を参照することにより、当該パケットに対して前記遅延確認応答を行うか否かを判定する判定処理を行う判定手段と、
前記自装置と前記他の装置との間で確立された前記接続が切断されると、前記確認応答情報の設定を解除する設定解除手段と、
前記判定手段が行う前記判定処理に従い前記他の装置に確認応答を返信しながら当該他の装置から受信したパケットを介して、画像データを取得する取得手段と、
前記取得手段により取得された前記画像データに基づき、画像を形成する画像形成手段と
を備えたことを特徴とする画像形成装置。
【請求項８】
コンピュータに、
第１の通信装置が第２の通信装置からパケットを受信してから予め定めた時間の経過後に当該第１の通信装置が当該パケットに対する確認応答を当該第２の通信装置へ返信する遅延確認応答を行うか否かを指定するための情報である確認応答情報を、当該第２の通信装置から当該第１の通信装置が接続要求を受け付けると設定する機能と、
設定された前記確認応答情報と、前記第１の通信装置が前記第２の通信装置から受信するパケットに含まれる、当該第１の通信装置と当該第２の通信装置との間で確立された接続を識別するために用いられる識別情報とを関連付けて保持手段に保持させる機能と、
前記第１の通信装置が前記第２の通信装置から受信するパケットに含まれる前記識別情報に基づき、前記保持手段に保持されている前記確認応答情報を参照することにより、当該パケットに対して当該第１の通信装置が当該第２の通信装置へ前記遅延確認応答を行うか否かを判定する機能と、
前記第１の通信装置と前記第２の通信装置との間で確立された前記接続が切断されると、前記確認応答情報の設定を解除する機能と
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、画像形成装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、受信したデータの種類が「連続」である場合には、原則として遅延確認応答を用いた処理を行い、受信したデータの種類が「非連続」である場合には、原則として遅延確認応答を用いずＴＣＰに基づいた通常の受信処理を行うパケット通信装置が記載されている。
【０００３】
非特許文献１には、ＴＣＰ／ＩＰネットワークにおいて、ＬＰＲなどのＴＣＰ／ＩＰポートへの印刷が遅くなることがあり、これを回避するためＰＵＳＨフラグが有効なパケットを受信すると即時ＡＣＫすることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−７２３７２号公報
【非特許文献】
【０００５】
【非特許文献１】“Windows 2000でＴＣＰ／ＩＰポートへの印刷が遅い”、［online］、マイクロソフト・コーポレーション、平成１８年８月２日、［平成２２年９月９日検索］、インターネット＜ＵＲＬ：http://support.microsoft.com/kb/816627/ja＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、自装置と他の装置との間で確立された接続ごとに、他の装置から受信するパケットに対する確認応答を遅延確認応答にするか否かを選択できるようにすることにある。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明は、他の装置からパケットを受信してから予め定めた時間の経過後に当該パケットに対する確認応答を当該他の装置へ返信する遅延確認応答を行うか否かを指定するための情報である確認応答情報を設定する設定手段と、前記設定手段が設定した前記確認応答情報と、他の装置から受信するパケットに含まれる、自装置と当該他の装置との間で確立された接続を識別するために用いられる識別情報とを関連付けた関連付け情報を保持する保持手段と、他の装置から受信するパケットに含まれる前記識別情報に基づき、前記保持手段に保持されている前記確認応答情報を参照することにより、当該パケットに対して前記遅延確認応答を行うか否かを判定する判定処理をＯＳＩ（Open Systems Interconnection）基本参照モデルにおけるトランスポート層にて行う判定手段とを備え、前記設定手段及び前記保持手段は、前記トランスポート層とは異なる階層にて、それぞれ前記確認応答情報を設定し、前記関連付け情報を保持し、前記設定手段は、他の装置から予め定められた基準値以下のデータ量を含むパケットを前記トランスポート層にて受信するときであって、かつ当該パケットが当該トランスポート層よりも上位の階層に渡されることを示す付加情報を当該パケットが含むときに、前記確認応答情報として、前記遅延確認応答を行うことを指定するための情報を設定することを特徴とする通信装置である。
請求項２に記載の発明は、他の装置からパケットを受信してから予め定めた時間の経過後に当該パケットに対する確認応答を当該他の装置へ返信する遅延確認応答を行うか否かを指定するための情報である確認応答情報を、当該他の装置から接続要求を受け付けると設定する設定手段と、前記設定手段が設定した前記確認応答情報と、他の装置から受信するパケットに含まれる、自装置と当該他の装置との間で確立された接続を識別するために用いられる識別情報とを関連付けた関連付け情報を保持する保持手段と、他の装置から受信するパケットに含まれる前記識別情報に基づき、前記保持手段に保持されている前記確認応答情報を参照することにより、当該パケットに対して前記遅延確認応答を行うか否かを判定する判定処理を行う判定手段と、前記自装置と前記他の装置との間で確立された前記接続が切断されると、前記確認応答情報の設定を解除する設定解除手段とを備えたことを特徴とする通信装置である。
請求項３に記載の発明は、前記判定手段は、ＯＳＩ（Open Systems Interconnection）基本参照モデルにおけるトランスポート層にて前記判定処理を行い、前記設定手段及び前記保持手段は、前記トランスポート層とは異なる階層にて、それぞれ前記確認応答情報を設定し、前記関連付け情報を保持することを特徴とする請求項２に記載の通信装置である。
請求項４に記載の発明は、前記設定手段は、他の装置から予め定められた基準値以下のデータ量を含むパケットを前記トランスポート層にて受信するときであって、かつ当該パケットが当該トランスポート層よりも上位の階層に渡されることを示す付加情報を当該パケットが含むときに、前記確認応答情報として、前記遅延確認応答を行うことを指定するための情報を設定することを特徴とする請求項３に記載の通信装置である。
請求項５に記載の発明は、自装置と一又は複数の他の装置との間における現在の通信量を把握する把握手段を更に備え、前記設定手段は、前記把握手段が把握した前記通信量に基づき、前記確認応答情報を設定することを特徴とする請求項１乃至４のいずれかに記載の通信装置である。
請求項６に記載の発明は、前記把握手段は、前記通信量として、自装置と一又は複数の他の装置との間で現在確立されている接続の個数を把握し、前記設定手段は、前記把握手段が把握した前記個数が予め定められたしきい値以上であるときに、前記確認応答情報として、前記遅延確認応答を行うことを指定するための情報を設定することを特徴とする請求項５に記載の通信装置である。
請求項７に記載の発明は、自装置と一又は複数の他の装置との間における現在の通信量を把握する把握手段と、前記把握手段が把握した前記通信量に基づき、前記他の装置からパケットを受信してから予め定めた時間の経過後に当該パケットに対する確認応答を当該他の装置へ返信する遅延確認応答を行うか否かを指定するための情報である確認応答情報を、当該他の装置から接続要求を受け付けると設定する設定手段と、前記設定手段が設定した前記確認応答情報と、前記他の装置から受信するパケットに含まれる、自装置と当該他の装置との間で確立された接続を識別するために用いられる識別情報とを関連付けて保持する保持手段と、前記他の装置から受信するパケットに含まれる前記識別情報に基づき、前記保持手段に保持されている前記確認応答情報を参照することにより、当該パケットに対して前記遅延確認応答を行うか否かを判定する判定処理を行う判定手段と、前記自装置と前記他の装置との間で確立された前記接続が切断されると、前記確認応答情報の設定を解除する設定解除手段と、前記判定手段が行う前記判定処理に従い前記他の装置に確認応答を返信しながら当該他の装置から受信したパケットを介して、画像データを取得する取得手段と、前記取得手段により取得された前記画像データに基づき、画像を形成する画像形成手段とを備えたことを特徴とする画像形成装置である。
請求項８に記載の発明は、コンピュータに、第１の通信装置が第２の通信装置からパケットを受信してから予め定めた時間の経過後に当該第１の通信装置が当該パケットに対する確認応答を当該第２の通信装置へ返信する遅延確認応答を行うか否かを指定するための情報である確認応答情報を、当該第２の通信装置から当該第１の通信装置が接続要求を受け付けると設定する機能と、設定された前記確認応答情報と、前記第１の通信装置が前記第２の通信装置から受信するパケットに含まれる、当該第１の通信装置と当該第２の通信装置との間で確立された接続を識別するために用いられる識別情報とを関連付けて保持手段に保持させる機能と、前記第１の通信装置が前記第２の通信装置から受信するパケットに含まれる前記識別情報に基づき、前記保持手段に保持されている前記確認応答情報を参照することにより、当該パケットに対して当該第１の通信装置が当該第２の通信装置へ前記遅延確認応答を行うか否かを判定する機能と、前記第１の通信装置と前記第２の通信装置との間で確立された前記接続が切断されると、前記確認応答情報の設定を解除する機能とを実現させることを特徴とするプログラムである。
【発明の効果】
【０００８】
請求項１の発明によれば、本構成を有していない場合に比較して、自装置と他の装置との間で確立された接続ごとに、トランスポート層における処理に負荷をかけずに、他の装置から受信するパケットに対する確認応答を遅延確認応答にするか否かを選択し、さらに、他の装置へ確認応答を送信することによる通信量の増大を抑えることができる。
請求項２の発明によれば、自装置と他の装置との間で確立された接続ごとに、自装置と他の装置との間の接続状態に応じて設定され又は設定解除される確認応答情報により、他の装置から受信するパケットに対する確認応答を遅延確認応答にするか否かを選択することができる。
請求項３の発明によれば、本構成を有していない場合に比較して、トランスポート層における処理に負荷をかけずに、他の装置から受信するパケットに対する確認応答を遅延確認応答にするか否かを選択することができる。
請求項４の発明によれば、本構成を有していない場合に比較して、他の装置へ確認応答を送信することによる通信量の増大を抑えることができる。
請求項５の発明によれば、自装置と他の装置との間における現在の通信量に応じて、他の装置から受信するパケットに対する確認応答を遅延確認応答にするか否かを選択することができる。
請求項６の発明によれば、一又は複数の他の装置と通信することにより自装置に負荷がかかってきたときであっても、本構成を有していない場合に比較して、他の装置に対する処理の遅延の発生を抑えることができる。
請求項７の発明によれば、自装置と他の装置との間で確立された接続ごとに、自装置と他の装置との間の接続状態に応じて設定され又は設定解除される確認応答情報により、他の装置から受信するパケットに対する確認応答を遅延確認応答にするか否かを選択し、一又は複数の他の装置と通信することにより自装置に負荷がかかってきたときであっても、本構成を有していない場合に比較して、他の装置から受信した画像データについての画像形成処理の遅延の発生を抑えることができる。
請求項８の発明によれば、第１の通信装置と第２の通信装置との間で確立された接続ごとに、第１の装置と第２の装置との間の接続状態に応じて設定され又は設定解除される確認応答情報により、第１の通信装置が第２の通信装置から受信するパケットに対する確認応答を遅延確認応答にするか否かを選択することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係るＴＥＬＮＥＴサーバに適用される通信プロトコルの階層構造を示した概念図である。
【図２】ＴＥＬＮＥＴサーバのハードウェア構成例を示したブロック図である。
【図３】ＴＥＬＮＥＴサーバのソケットレベルにおけるＡＣＫ情報管理部の機能構成例を示したブロック図である。
【図４】第１の実施形態に係るＴＥＬＮＥＴサーバのアプリケーションレベルにおける動作例を示したフローチャートである。
【図５】ＴＥＬＮＥＴサーバのＴＣＰレベルにおける受信処理の動作例を示したフローチャートである。
【図６】第２の実施形態に係るＬＰＲサーバのアプリケーションレベルにおける動作例を示したフローチャートである。
【図７】ＬＰＲサーバのＴＣＰレベルにおける受信処理の動作例を示したフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
通信プロトコルとしてＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）を採用する通信においては、受信ホストが、送信ホストからパケットを受信するたびに、送信ホストへ確認応答（ＡＣＫ：Acknowledgement）を返信し、通信の信頼性を確保している。しかしながら、パケットが短時間に多数送信されると、それに伴い確認応答も多数返信されるため、トラフィックが増大してしまう。
【００１１】
このため、パケットを受信してから予め定めた時間経過後に、受信ホストがそれまでに受信したパケットに対する確認応答を送信ホストへ返信するという遅延確認応答（以下、「遅延ＡＣＫ」という）が用いられている。これに対し、受信したパケットに対する確認応答を直ちに送信ホストへ返信することを即時確認応答という（以下、「即時ＡＣＫ」という）。
【００１２】
受信ホストが送信ホストからパケットを短時間に多数受信する場合は、遅延ＡＣＫを用いることによりトラフィックが低減される。しかしながら、遅延ＡＣＫのための待機時間内に受信ホストが後続するパケットを受信しない場合は、遅延ＡＣＫを用いることにより却って通信速度が低下してしまう。
【００１３】
そこで、ネットワークから受信したパケットのアドレスからアプリケーションを特定し、その結果に基づいて遅延ＡＣＫと即時ＡＣＫの何れを行うかを決定することが考えられる。例えば、ポート番号が２１であれば、アプリケーションはＦＴＰでありデータが連続するため、遅延ＡＣＫを有効とし、ポート番号が２３であれば、アプリケーションはＴＥＬＮＥＴであり送信ホストと受信ホストが交互に通信しデータが非連続するため、即時ＡＣＫを有効とすることなどが考えられる。
【００１４】
また、ＴＣＰヘッダのコードビットに含まれるＰＳＨフラグが有効であれば、そのパケットはデータの区切れを示すと考えられる。そこでこのときは、受信ホストは後続データがないと判断し、通信速度の低下を防ぐために即時ＡＣＫを行うことも考えられる。
【００１５】
しかしながら、例えば受信ホストがＴＥＬＮＥＴサーバの場合は、ＴＥＬＮＥＴクライアントからＰＳＨフラグが有効でありかつ少量サイズのデータのパケットを受信するため、上記の方法をとると即時ＡＣＫを行うことになる。ＰＳＨフラグの本来の意味は、これが有効なパケットを受信したらそのパケットを上位の階層に渡すということであり、必ずしも、通信相手に対して即時に応答するということではない。このため、ＰＳＨフラグが有効か否かということに基づき即時ＡＣＫを選択すると、ＡＣＫの返信によりトラフィックの増大を招くことになる。
【００１６】
また、例えば受信ホストがＬＰＲサーバの場合は、複数のＬＰＲソケットでパケットを受信するため、上記の方法のように遅延ＡＣＫと即時ＡＣＫの選択をアプリケーションで固定すると、全ての受信において即時ＡＣＫしたときに、ＬＰＲサーバに負荷がかかり、処理遅延が発生し得る。
【００１７】
そこで、以下に説明する第１及び第２の実施形態では、受信ホストが、送信ホストから受信するパケットに対する確認応答を遅延ＡＣＫと即時ＡＣＫの何れにするかを指定するためのＡＣＫ情報を、ソケット番号及びＴＣＰコネクション情報と関連付けて保持する。そして、受信ホストは、この関連付けられた情報を参照することにより、ＴＣＰコネクションにおいて受信されたパケットに対して遅延ＡＣＫと即時ＡＣＫの何れを行うかを判定する。
【００１８】
＜第１の実施形態＞
第１の実施形態では、通信装置の一例としての受信ホストがＴＥＬＮＥＴサーバ１０である場合の例を説明する。
図１は、第１の実施形態に係るＴＥＬＮＥＴサーバ１０に適用される通信プロトコルの階層構造を示した概念図である。図示するように、ＴＥＬＮＥＴサーバ１０に適用される通信プロトコルの階層には、最上位から下位に向かって順に、アプリケーションレベル１、ソケットレベル２、ＴＣＰレベル３、下位層４がある。上位の階層は下位の階層からデータを受け取り、上位の階層は下位の階層にデータを渡す。図１ではこれらのデータのやり取りを、それぞれ上向き及び下向きの矢印で示している。
【００１９】
これらの階層をＯＳＩ（Open System Interconnection）基本参照モデルと比較すると、アプリケーションレベル１はアプリケーション層に、ソケットレベル２はセッション層に、ＴＣＰレベル３はトランスポート層にそれぞれ対応する。下位層４は、ネットワーク層、データリンク層及び物理層をまとめたものである。第１の実施形態では、トランスポート層のプロトコルとしてＴＣＰを用いる。
【００２０】
ソケットレベル２は、アプリケーション層とトランスポート層の間で定義されるＡＰＩ（Application Program Interface）としての機能に加えて、ＡＣＫ情報管理部５を備えている。また、ＴＣＰレベル３は、通常のＴＣＰの機能に加えて、ＡＣＫ処理選択部６を備えている。このように、ＡＣＫ情報管理部５とＡＣＫ処理選択部６は、図１に示す通信プロトコルの階層構造において、互いに異なる階層に設けられている。尚、ＡＣＫ情報管理部５とＡＣＫ処理選択部６の機能の詳細については後述する。
【００２１】
図２は、ＴＥＬＮＥＴサーバ１０のハードウェア構成例を示したブロック図である。図示するように、ＴＥＬＮＥＴサーバ１０は、ＣＰＵ（Central Processing Unit）１１と、ＲＡＭ（Random Access Memory）１２と、ＲＯＭ（Read Only Memory）１３と、ＨＤＤ（Hard Disk Drive）１４と、入出力コントローラ１５と、通信インタフェース１６とを備える。
【００２２】
ＣＰＵ１１は、ＯＳ（Operating System）やアプリケーション等の各種ソフトウェアを実行する。
ＲＡＭ１２は、ＣＰＵ１１の作業用メモリ等として用いられるメモリである。
ＲＯＭ１３は、ＣＰＵ１１が実行する各種プログラム等を記憶するメモリである。
ＨＤＤ１４は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
入出力コントローラ１５は、入力手段として設けられるマウス、キーボード、及び表示手段として設けられるディスプレイ等をそれぞれ接続する。
通信インタフェース１６は、ネットワークを介してＴＥＬＮＥＴクライアントとの間でデータを送受信する。
【００２３】
図１に示す下位層４のうち、データリンク層及び物理層に相当する部分の機能は、通信インタフェース１６により実現される。また、アプリケーションレベル１、ソケットレベル２及びＴＣＰレベル３並びに下位層４のうちネットワーク層に相当する部分の各機能は、ソフトウェアにより実現される。即ち、ＣＰＵ１１が、ＲＯＭ１３等に記憶されたプログラムをＲＡＭ１２に読み込んで実行することにより実現される。
【００２４】
以下では、第１の実施形態に係るＴＥＬＮＥＴサーバ１０の機能構成について詳細に説明する。
まず、図１に示すソケットレベル２におけるＡＣＫ情報管理部５について説明する。ＡＣＫ情報管理部５は、遅延ＡＣＫと即時ＡＣＫの何れを行うかを指定するためのＡＣＫ情報を、ソケット番号及びＴＣＰコネクション情報と関連付けて保持し、アプリケーションレベル１及びＴＣＰレベル３との間でＡＣＫ情報の受け渡しを行う。言い換えると、アプリケーションレベル１とＴＣＰレベル３は、それぞれソケット番号とＴＣＰコネクション情報を介して、ソケットレベル２におけるＡＣＫ情報を参照する。
【００２５】
図３は、ＴＥＬＮＥＴサーバ１０のソケットレベル２におけるＡＣＫ情報管理部５の機能構成例を示したブロック図である。図示するように、ＡＣＫ情報管理部５は、ＡＣＫ情報設定手段５１と、ＡＣＫ情報解除手段５２と、ＡＣＫ情報問合せ手段５３と、ＡＣＫ情報保持手段５４と、ＡＣＫ情報取得手段５５とを備える。これらのうち、ＡＣＫ情報保持手段５４は、例えばＲＡＭ１２により実現される。また、ＡＣＫ情報設定手段５１、ＡＣＫ情報解除手段５２、ＡＣＫ情報問合せ手段５３及びＡＣＫ情報取得手段５５の各機能は、ＣＰＵ１１がＲＯＭ１３等に記憶されたプログラムをＲＡＭ１２に読み込んで実行することにより実現される。
【００２６】
ＡＣＫ情報設定手段５１は、アプリケーションレベル１において、ＴＥＬＮＥＴサーバ１０がＴＥＬＮＥＴクライアントからＴＣＰ接続の接続要求を受け付けたときに、ＴＥＬＮＥＴクライアントと接続されたソケットについて、ＡＣＫ情報を設定する。ＡＣＫ情報とは、ＴＥＬＮＥＴクライアントから受信するパケットに対する確認応答を遅延ＡＣＫと即時ＡＣＫの何れにするかを指定するための情報（確認応答情報の一例）である。ＡＣＫ情報には、例えば即時ＡＣＫを指定するための「即時ＡＣＫ有効」、遅延ＡＣＫを指定するための「遅延ＡＣＫ有効」などがある。第１の実施形態に係るＴＥＬＮＥＴサーバ１０のＡＣＫ情報設定手段５１は、ＡＣＫの返信によるトラフィックの増大を抑制するという観点から、ＡＣＫ情報として、遅延ＡＣＫを指定するための「遅延ＡＣＫ有効」を設定する。第１の実施形態では、設定手段の一例として、ＡＣＫ情報設定手段５１を設けている。
尚、ソケットとは、ＴＣＰ／ＩＰで通信を行うコンピュータが持つＩＰアドレスと、ポート番号とを組み合わせたネットワークアドレスである。
【００２７】
ＡＣＫ情報解除手段５２は、アプリケーションレベル１において、ＴＥＬＮＥＴサーバ１０とＴＥＬＮＥＴクライアントとのＴＣＰ接続が切断されるときに、ＴＥＬＮＥＴクライアントと接続されたソケットについてのＡＣＫ情報の設定（第１の実施形態では「遅延ＡＣＫ有効」の設定）を解除する。
【００２８】
ＡＣＫ情報問合せ手段５３は、ＡＣＫ情報設定手段５１により設定されているＡＣＫ情報の個数についての問い合わせをアプリケーションレベル１から受け付け、その個数をアプリケーションレベル１に返信する。ＡＣＫ情報設定手段５１がＴＣＰ接続ごとにＡＣＫ情報を設定することから、このＡＣＫ情報の個数は、ＴＥＬＮＥＴサーバ１０と一又は複数のＴＥＬＮＥＴクライアントとの間で現在確立されているＴＣＰ接続の個数に相当する。そして、ＴＣＰ接続の個数が多いほど、ＴＥＬＮＥＴサーバ１０とＴＥＬＮＥＴクライアントとの間における現在の通信量も多くなると考えられる。アプリケーションレベル１は、ＡＣＫ情報問合せ手段５３にＡＣＫ情報の個数を問い合わせてＴＣＰ接続の個数を得ることにより、ＴＥＬＮＥＴサーバ１０とＴＥＬＮＥＴクライアントとの間における現在の通信量を把握する。第１の実施形態では、把握手段の一例として、ＡＣＫ情報問合せ手段５３を設けている。
【００２９】
ＡＣＫ情報保持手段５４は、ＡＣＫ情報設定手段５１により設定されたＡＣＫ情報を、そのＡＣＫ情報に対応するソケットのソケット番号及びＴＣＰ接続のＴＣＰコネクション情報と関連付けて保持する。ここで、ソケット番号とは、ＴＥＬＮＥＴクライアントと接続されたソケットについてのＩＰアドレスとポート番号の対応を識別子化したものである。また、ＴＣＰコネクション情報とは、ＴＥＬＮＥＴクライアントとの間で確立されたＴＣＰ接続におけるＩＰアドレスとポート番号とを含む情報である。第１の実施形態では、識別情報の一例として、ソケット番号及びＴＣＰコネクション情報を用いており、保持手段の一例として、ＡＣＫ情報保持手段５４を設けている。
【００３０】
ＡＣＫ情報取得手段５５は、ＴＣＰレベル３においてＴＥＬＮＥＴサーバ１０がパケットを受信したときに、そのＴＣＰ接続のＴＣＰコネクション情報に関連付けられたＡＣＫ情報をＡＣＫ情報保持手段５４から取得する。
【００３１】
また、ＴＣＰレベル３におけるＡＣＫ処理選択部６（図１参照）は、受信したパケットのＴＣＰヘッダに含まれるＴＣＰコネクション情報に基づき、ソケットレベル２のＡＣＫ情報管理部５に保持されているＡＣＫ情報を参照することにより、ＴＣＰコネクションにおいて受信されたパケットに対して遅延ＡＣＫと即時ＡＣＫの何れを行うかを選択する。第１の実施形態では、判定手段の一例として、ＡＣＫ処理選択部６を設けている。
【００３２】
以下では、第１実施形態に係るＴＥＬＮＥＴサーバ１０の動作について、詳細に説明する。
図４は、第１の実施形態に係るＴＥＬＮＥＴサーバ１０のアプリケーションレベル１における動作例を示したフローチャートである。
【００３３】
ＴＥＬＮＥＴサーバ１０はソケット生成からアクセプトまで一連のソケット処理を行いＴＥＬＮＥＴクライアントからの接続を待つ。即ち、ＴＥＬＮＥＴサーバ１０は、まず接続要求を受け付けるためのソケットを確保し（socket）（ステップ１０１）、監視するポート番号を指定する（bind）（ステップ１０２）。そして、ソケットを接続要求の監視モードにし（listen）（ステップ１０３）、ＴＥＬＮＥＴクライアントからの接続要求を受理する（accept）（ステップ１０４）。
【００３４】
ＴＥＬＮＥＴサーバ１０は、ＴＥＬＮＥＴクライアントから接続要求を受け付けると、その接続におけるソケットについて、ソケットレベル２のＡＣＫ情報設定手段５１にＡＣＫ情報として「遅延ＡＣＫ有効」を設定させ（ステップ１０５）、ＴＥＬＮＥＴクライアントからのデータ到着を待つ。
このとき、ソケットレベル２においては、ＡＣＫ情報設定手段５１が、アプリケーションレベル１からの指示により設定されたＡＣＫ情報を、ＡＣＫ情報保持手段５４へ引き継ぐ。上述の通り、ＡＣＫ情報保持手段５４は、このＡＣＫ情報を、ソケット番号及びＴＣＰコネクション情報と関連付けて保持する。
【００３５】
そして、ＴＥＬＮＥＴクライアントからデータを受信すると（recv）（ステップ１０６）、ＴＥＬＮＥＴサーバ１０は、受信したデータを解析する（ステップ１０７）。解析の結果、受信データの終了でない場合は（ステップ１０８でＮｏ）、ＴＣＰレベル３のＡＣＫ処理選択部６による、後述する遅延ＡＣＫ回避判断処理の結果に応じてＡＣＫが付与された応答が、ＴＥＬＮＥＴサーバ１０からＴＥＬＮＥＴクライアントへ送信される（send）（ステップ１０９）。その後、処理はステップ１０６へ戻り、ＴＥＬＮＥＴサーバ１０のデータ受信が終了するまで、ステップ１０６からステップ１０９までの処理が繰り返される。
【００３６】
そして、受信データ終了になると（ステップ１０８でＹｅｓ）、ＴＥＬＮＥＴクライアントとのＴＣＰ接続が切断される。このとき、ソケットレベル２のＡＣＫ情報解除手段５２に、ＴＥＬＮＥＴクライアントと接続されたソケットについての「遅延ＡＣＫ有効」の設定を解除させる（ステップ１１０）。その後、ＴＥＬＮＥＴサーバ１０は、ＴＥＬＮＥＴクライアントからの次の接続要求を受理するまで待機し、ステップ１０４以下の処理が繰り返される。
【００３７】
次に、ＴＣＰレベル３においてＴＥＬＮＥＴサーバ１０が行う受信処理について説明する。
図５は、ＴＥＬＮＥＴサーバ１０のＴＣＰレベル３における受信処理の動作例を示したフローチャートである。
【００３８】
ＴＥＬＮＥＴサーバ１０は、まずＴＥＬＮＥＴクライアントからパケットを受信する（ステップ２０１）。通常、ＴＥＬＮＥＴクライアントは、全てのパケットについて、ＴＣＰヘッダのコードビットに含まれるＰＳＨフラグを有効に設定して送信するため、ＴＣＰレベル３では、パケットを受信すると規定のＰＳＨフラグ処理が行われ、そのパケットがＴＣＰレベル３よりも上位の階層であるソケットレベル２に渡される（ステップ２０２）。このとき、受信されたパケットのＴＣＰヘッダに含まれるＴＣＰコネクション情報がソケットレベル２に渡される。そして、ＴＣＰレベル３のＡＣＫ処理選択部６は、現在ＴＣＰレベル３において受信処理を行っているＴＣＰ接続におけるＴＣＰコネクション情報に関連付けられたＡＣＫ情報を、ＡＣＫ情報保持手段５４からＡＣＫ情報取得手段５５を介して取得する（ステップ２０３）。
【００３９】
続いて、ＡＣＫ処理選択部６は、ステップ２０３で取得したＡＣＫ情報に基づき、分岐処理を行う（ステップ２０４）。即ち、ＡＣＫ情報が「即時ＡＣＫ有効」であれば即時ＡＣＫ処理を選択し（ステップ２０５）、ＡＣＫ情報が「遅延ＡＣＫ有効」であれば遅延ＡＣＫ処理を選択して（ステップ２０６）、受信パケットを上位層へ引き継ぐ（ステップ２０７）。このステップ２０４における分岐処理が、確認応答を即時確認応答と遅延確認応答の何れにするかを判定する判定処理の一例としての、遅延ＡＣＫ回避判断処理である。
その後、処理はステップ２０１に戻り、ＴＥＬＮＥＴサーバ１０は次のパケット到来を待つ。
以上により、ＴＥＬＮＥＴサーバ１０の動作についての説明を終了する。
【００４０】
第１の実施形態では、ＡＣＫ情報として「遅延ＡＣＫ有効」が設定されているため、ステップ２０６において遅延ＡＣＫ処理が選択される。したがって、ＴＥＬＮＥＴクライアントによりパケットのＴＣＰヘッダに「ＰＳＨフラグ有効」が設定されていても、即時ＡＣＫされることなく遅延ＡＣＫ処理が行われ、即時ＡＣＫに起因するトラフィックの増大が抑制される。
第１の実施形態に係るＴＥＬＮＥＴサーバ１０のように、ＴＣＰレベル３において受信するパケットが、「ＰＳＨフラグ有効」の設定（そのパケットを上位の階層に渡すことを示す付加情報の一例）を含み、かつそのパケットに含まれるデータ量が少ない（予め定められた基準値以下である）ときは、ＡＣＫ情報として「遅延ＡＣＫ有効」を設定すればよい。
【００４１】
＜第２の実施形態＞
第２の実施形態では、通信装置の一例としての受信ホストがＬＰＲサーバである場合の例を説明する。ＬＰＲ（Line PRinter daemon protocol）は、ＴＣＰ／ＩＰネットワークを経由して印刷を行うためのプロトコルである。第２の実施形態に係るＬＰＲサーバは、ネットワークを介してそのＬＰＲサーバに接続されたプリンタ等に印刷を行わせる。
第２の実施形態においても、通信プロトコルの階層構造、ＬＰＲサーバのハードウェア構成及びＡＣＫ情報管理部５の機能構成例は、図１から図３に示した第１の実施形態のＴＥＬＮＥＴサーバ１０のものと同様である。このため、第２の実施形態においても、第１の実施形態と同一の符号を用いる。
【００４２】
ただし、第２の実施形態に係るＬＰＲサーバのＡＣＫ情報設定手段５１は、ＬＰＲ受信タスクの処理遅延を抑制するという観点から、第１の実施形態とは異なり、ＡＣＫ情報として「ＰＳＨフラグ付き遅延ＡＣＫ有効」（図６及び図７では、「遅延ＡＣＫｗｉｔｈＰＳＨ」と記載する）又は「遅延ＡＣＫ有効」を設定する。「ＰＳＨフラグ付き遅延ＡＣＫ有効」は、ＴＣＰヘッダのＰＳＨフラグが有効に設定されているパケットを受信した場合のみ、即時ＡＣＫを行うことを意味する。また、「遅延ＡＣＫ有効」は、常に遅延ＡＣＫを行うことを意味する。
これ以外の構成要素については、第１の実施形態と同様であるため、その詳細な説明は省略する。
【００４３】
以下では、第２実施形態に係るＬＰＲサーバの動作について、詳細に説明する。
図６は、第２の実施形態に係るＬＰＲサーバのアプリケーションレベル１における動作例を示したフローチャートである。
【００４４】
まず、図６（Ａ）は、ＬＰＲメインタスクのフローチャートである。ＬＰＲサーバはソケット生成からアクセプトまで一連のソケット処理を行いＬＰＲクライアントからの接続を待つ。即ち、ＬＰＲサーバは、まず接続要求を受け付けるためのソケットを確保し（socket）（ステップ３０１）、監視するポート番号を指定する（bind）（ステップ３０２）。そして、ソケットを接続要求の監視モードにし（listen）（ステップ３０３）、ＬＰＲクライアントからの接続要求を受理する（accept）（ステップ３０４）。
【００４５】
ＬＰＲサーバは、ＬＰＲクライアントから接続要求を受け付けるとＬＰＲ受信タスクを起動する（ステップ３０５）。その後、処理はステップ３０４に戻って、ＬＰＲメインタスクは複数受信に備えるため、次の接続を待つ。
【００４６】
図６（Ｂ）は、ＬＰＲ受信タスクのフローチャートである。ＬＰＲサーバが複数の接続要求を受け付けると、それぞれの接続要求について、図６（Ｂ）の処理が並列して実行される。
ＬＰＲ受信タスクは、まず、ソケットレベル２におけるＡＣＫ情報問合せ手段５３を介して、現在設定されているＡＣＫ情報の個数（即ち、現在確立されているＴＣＰ接続の個数）を問い合わせる（ステップ３１１）。これにより、アプリケーションレベル１では、ＬＰＲサーバとＬＰＲクライアントの間における現在の通信量を把握する。
【００４７】
そして、得られたＡＣＫ情報の個数が予め定めたしきい値以下であれば（ステップ３１２でＹｅｓ）、その受信タスクについて、ソケットレベル２におけるＡＣＫ情報設定手段５１に、ＡＣＫ情報として「ＰＳＨフラグ付き遅延ＡＣＫ有効」を設定させる（ステップ３１３）。
一方、ステップ３１１で得られたＡＣＫ情報の個数が予め定めたしきい値よりも大きければ（ステップ３１２でＮｏ）、その受信タスクについて、ソケットレベル２におけるＡＣＫ情報設定手段５１に、ＡＣＫ情報として「遅延ＡＣＫ有効」を設定させる（ステップ３１４）。これは、ＬＰＲサーバが複数のＬＰＲクライアントとの間で接続を確立しているときに、個々の受信について即時ＡＣＫをしているとＬＰＲサーバに負荷がかかるため、遅延ＡＣＫを行うことにより処理量を減らして、個々のＬＰＲ受信タスク自体の処理遅延を防ぐためである。
【００４８】
また、このときソケットレベル２においては、第１の実施形態と同様に、ＡＣＫ情報設定手段５１が、アプリケーションレベル１からの指示により設定されたＡＣＫ情報を、ＡＣＫ情報保持手段５４へ引き継ぐ。上述の通り、ＡＣＫ情報保持手段５４は、このＡＣＫ情報を、ソケット番号及びＴＣＰコネクション情報と関連付けて保持する。
【００４９】
そして、ＬＰＲ受信タスクでは、ＬＰＲサーバがＬＰＲクライアントからデータを受信し（recv）（ステップ３１５）、ＴＣＰレベル３のＡＣＫ処理選択部６による遅延ＡＣＫ回避判断処理の結果に応じてＡＣＫが付与された応答を、ＬＰＲクライアントへ送信する（send）（ステップ３１６）。受信データの終了でない場合は（ステップ３１７でＮｏ）、処理はステップ３１１へ戻り、ＬＰＲサーバのデータ受信が終了するまで、ステップ３１１からステップ３１７までの処理が繰り返される。
【００５０】
そして、受信データが終了になると（ステップ３１７でＹｅｓ）、ソケットレベル２のＡＣＫ情報解除手段５２に、現在のＬＰＲ受信タスクについてのＡＣＫ情報（「ＰＳＨフラグ付き遅延ＡＣＫ有効」又は「遅延ＡＣＫ有効」）の設定を解除させ（ステップ３１８）、ＬＰＲ受信タスクは処理を終了する。
【００５１】
次に、ＴＣＰレベル３においてＬＰＲサーバが行う受信処理について説明する。
図７は、ＬＰＲサーバのＴＣＰレベル３における受信処理の動作例を示したフローチャートである。
【００５２】
ＬＰＲサーバは、まずＬＰＲクライアントからパケットを受信する（ステップ４０１）。受信したパケットのＴＣＰヘッダが「ＰＳＨフラグ有効」に設定されている場合には、ＴＣＰレベル３では、パケットを受信すると規定のＰＳＨフラグ処理が行われ、そのパケットがＴＣＰレベル３よりも上位の階層であるソケットレベル２に渡される（ステップ４０２）。このとき、受信されたパケットのＴＣＰヘッダに含まれるＴＣＰコネクション情報がソケットレベル２に渡される。そして、ＴＣＰレベル３のＡＣＫ処理選択部６は、現在ＴＣＰレベル３において受信処理を行っているＴＣＰ接続におけるＴＣＰコネクション情報に関連付けられたＡＣＫ情報を、ＡＣＫ情報保持手段５４からＡＣＫ情報取得手段５５を介して取得する（ステップ４０３）。
【００５３】
続いて、ＡＣＫ処理選択部６は、ステップ４０３で取得したＡＣＫ情報に基づき、分岐処理を行う（ステップ４０４）。即ち、ＡＣＫ情報が「即時ＡＣＫ有効」であれば即時ＡＣＫ処理を選択し（ステップ４０５）、ＡＣＫ情報が「遅延ＡＣＫ有効」であれば遅延ＡＣＫ処理を選択する（ステップ４０６）。
【００５４】
また、ＡＣＫ情報が「ＰＳＨフラグ付き遅延ＡＣＫ有効」であれば、ＡＣＫ処理選択部６は更に、ステップ４０１において受信したパケットのＴＣＰヘッダが「ＰＳＨフラグ有効」に設定されているか否かを判定する（ステップ４０７）。「ＰＳＨフラグ有効」が設定されていれば、ステップ４０５において即時ＡＣＫ処理が選択され、「ＰＳＨフラグ有効」が設定されていなければ、ステップ４０８において遅延ＡＣＫ処理が選択される。
このステップ４０４とステップ４０７における分岐処理が、確認応答を即時確認応答と遅延確認応答の何れにするかを判定する判定処理の一例としての、遅延ＡＣＫ回避判断処理である。
【００５５】
その後、受信パケットは上位層へ引き継がれ（ステップ４０９）、処理はステップ４０１に戻って、ＬＰＲサーバは次のパケット到来を待つ。
以上により、ＬＰＲサーバの動作についての説明を終了する。
【００５６】
第２の実施形態では、ＡＣＫ情報保持手段５４に保持されているＡＣＫ情報の個数が予め定めたしきい値以下であるとき、即ち、ＬＰＲサーバが接続を確立しているＬＰＲクライアントの個数（ＬＰＲサーバとＬＰＲクライアントとの間における通信量）が少ないときには、ＡＣＫ情報として「ＰＳＨフラグ付き遅延ＡＣＫ有効」が設定されるため、ＴＣＰヘッダに「ＰＳＨフラグ有効」が設定されていなければ、ステップ４０８において遅延ＡＣＫ処理が選択される。また、ＡＣＫ情報の個数が予め定めたしきい値よりも大きいとき、即ち、ＬＰＲサーバが接続を確立しているＬＰＲクライアントの個数（ＬＰＲサーバとＬＰＲクライアントとの間における通信量）が多いときにも、ＡＣＫ情報として「遅延ＡＣＫ有効」が設定されるため、ステップ４０６において遅延ＡＣＫ処理が選択される。したがって、複数のＬＰＲ受信タスクを実行することにより負荷がかかってきたときであっても、ＬＰＲサーバは、個々の受信について即時ＡＣＫせず遅延ＡＣＫを行うことにより処理量を減らして、個々のＬＰＲ受信タスク自体の処理が遅延することを抑制する。
【００５７】
尚、ＬＰＲサーバは、図２に示したような汎用のコンピュータの構成により実現されるものに限らず、それ自体が、通信インタフェース１６により受信された画像データに基づき画像を形成する画像形成部を備えたプリンタ等の画像形成装置であってもよい。即ち、ＬＰＲサーバは、ＡＣＫ処理選択部６が行う遅延ＡＣＫ回避判断処理に従いＡＣＫを返信しながらＬＰＲクライアントから受信したパケットを介して画像データを取得し、取得された画像データに基づき画像を形成する画像形成装置であってもよい。
【００５８】
また、第１の実施形態に係るＴＥＬＮＥＴサーバ１０においても、第２の実施形態に係るＬＰＲサーバと同様に、ＡＣＫ情報問合せ手段５３が現在設定されているＡＣＫ情報の個数（即ち、現在確立されているＴＣＰ接続の個数）を問い合わせ、これにより把握されるＴＥＬＮＥＴサーバ１０とＴＥＬＮＥＴクライアントの間における現在の通信量に基づいて、ＡＣＫ情報設定手段５１がＡＣＫ情報を設定するようにしてもよい。
【００５９】
また、第１及び第２の実施形態にて説明した、遅延ＡＣＫ回避判断処理の機能は、ＴＥＬＮＥＴサーバ１０やＬＰＲサーバとは独立した汎用のコンピュータで実現してもよい。そのようなコンピュータのハードウェアは、図２に示したＴＥＬＮＥＴサーバ１０と同様の構成を備えていればよい。
【００６０】
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供するようにしてもよい。
【符号の説明】
【００６１】
１…アプリケーションレベル、２…ソケットレベル、３…ＴＣＰレベル、４…下位層、５…ＡＣＫ情報管理部、６…ＡＣＫ処理選択部、１０…ＴＥＬＮＥＴサーバ、５１…ＡＣＫ情報設定手段、５２…ＡＣＫ情報解除手段、５３…ＡＣＫ情報問合せ手段、５４…ＡＣＫ情報保持手段、５５…ＡＣＫ情報取得手段
【図１】
0005577978.tif 000002
【図２】
0005577978.tif 000003
【図３】
0005577978.tif 000004
【図４】
0005577978.tif 000005
【図５】
0005577978.tif 000006
【図６】
0005577978.tif 000007
【図７】
0005577978.tif 000008