(57)【要約】【課題】  通信の信頼性を損なうことなく、ＴＣＰ接続に係るメモリ資源を有効に利用できるようにする。【解決手段】  通信装置は、ＴＣＰ接続の相手装置との間の通信経路が単一経路であるかを判定する。そして、通信経路が単一経路でないと判定された場合、第１の時間、ＴＩＭＥ＿ＷＡＩＴ状態を維持するように制御し、一方、通信経路が単一経路であると判定された場合、第１の時間よりも短い第２の時間、ＴＩＭＥ＿ＷＡＩＴ状態を維持するように制御する。【選択図】  図１
2019197982.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）接続の相手装置との間の通信経路が単一経路であるかを判定する判定手段と、
前記判定手段により前記通信経路が単一経路でないと判定された場合、前記相手装置とのＴＣＰ接続を切断する際に、第１の時間、ＴＩＭＥ＿ＷＡＩＴ状態を維持するように制御し、
前記判定手段により前記通信経路が単一経路であると判定された場合、前記相手装置とのＴＣＰ接続を切断する際に、前記第１の時間よりも短い第２の時間、ＴＩＭＥ＿ＷＡＩＴ状態を維持するように制御する制御手段と、
を有することを特徴とする通信装置。
【請求項２】
ＴＴＬ（Ｔｉｍｅ  ｔｏ  Ｌｉｖｅ）の値を１に設定したＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットを前記相手装置に送信する第１の送信手段を更に有し、
前記第１の送信手段が送信した前記ＩＰパケットが前記相手装置まで到達した場合、前記判定手段は、前記通信経路が単一経路であると判定することを特徴とする請求項１に記載の通信装置。
【請求項３】
ホップリミットの値を１に設定したＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットを前記相手装置に送信する第２の送信手段を更に有し、
前記第２の送信手段が送信した前記ＩＰパケットが前記相手装置まで到達した場合、前記判定手段は、前記通信経路が単一経路であると判定することを特徴とする請求項１に記載の通信装置。
【請求項４】
前記相手装置とのＴＣＰ接続を利用して送信されるＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットのホップ数として、アプリケーションから１が指定されている場合、前記判定手段は、前記通信経路が単一経路であると判定することを特徴とする請求項１に記載の通信装置。
【請求項５】
前記相手装置とＷｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した無線接続を確立している場合、前記判定手段は、前記通信経路が単一経路であると判定することを特徴とする請求項１に記載の通信装置。
【請求項６】
前記通信装置がＩＥＥＥ８０２．１１シリーズに準拠した無線ネットワークを構築する装置である場合、前記判定手段は、前記通信経路が単一経路であると判定することを特徴とする請求項１に記載の通信装置。
【請求項７】
前記相手装置とのＴＣＰ接続に利用している前記通信装置のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスと前記相手装置のＩＰアドレスとが、いずれもリンクローカルアドレスである場合、前記判定手段は、前記通信経路が単一経路であると判定することを特徴とする請求項１に記載の通信装置。
【請求項８】
前記通信装置は、複数のＴＣＰ接続を確立する装置であることを特徴とする請求項１から７のいずれか１項に記載の通信装置。
【請求項９】
前記通信装置が確立している前記複数のＴＣＰ接続の各々について、ＴＩＭＥ＿ＷＡＩＴ状態を維持する時間を記憶する記憶手段を更に有することを特徴とする請求項８に記載の通信装置。
【請求項１０】
前記第１の時間は、前記ＴＣＰ接続における再送タイムアウト時間よりも長い時間であることを特徴とする請求項１から９のいずれか１項に記載の通信装置。
【請求項１１】
通信装置の制御方法であって、
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）接続の相手装置との間の通信経路が単一経路であるかを判定する判定工程と、
前記通信経路が単一経路でないと判定された場合、前記相手装置とのＴＣＰ接続を切断する際に、第１の時間、ＴＩＭＥ＿ＷＡＩＴ状態を維持するように制御し、
前記通信経路が単一経路であると判定された場合、前記相手装置とのＴＣＰ接続を切断する際に、前記第１の時間よりも短い第２の時間、ＴＩＭＥ＿ＷＡＩＴ状態を維持するように制御する制御工程と、
を有することを特徴とする制御方法。
【請求項１２】
コンピュータを請求項１から１０のいずれか１項に記載の通信装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）通信を行う通信装置に関する。
【背景技術】
【０００２】
通信装置がＴＣＰ通信を行う場合、通信装置と相手装置の各々のＩＰアドレスやポート番号などの通信パラメータが利用される。ここで、ＴＣＰでは、ＴＣＰ接続を切断する際に、所定の時間、切断待ち状態であるＴＩＭＥ＿ＷＡＩＴ状態となることが規定されている。ＴＩＭＥ＿ＷＡＩＴ状態の通信装置は、ネットワーク内の伝送遅延により受信までに時間のかかってしまったパケットの受信処理を行う。ＴＩＭＥ＿ＷＡＩＴ状態である場合には、当該ＴＣＰ接続に係るパケットの受信を待ち受けるため、通信装置は、通信パラメータをメモリから削除することができない。
【０００３】
特許文献１には、ＴＩＭＥ＿ＷＡＩＴ状態を維持する時間（以下、ＴＩＭＥ＿ＷＡＩＴ時間と称する）を十分に長い固定長とすることで、ＴＣＰ切断後に、切断されたＴＣＰ接続に係るパケットを受信してしまうことを防ぐことが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−３４９８５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通信装置は、相手装置においてパケットが送信されてから通信装置が受信するまでに多くの時間がかかることは想定しにくいネットワークを介して通信する場合がある。例えば、同一無線ＬＡＮ上における通信など、パケットの通信経路が単一経路である場合には、パケットがルーティングされないため、相手装置においてパケットが送信されてから通信装置が受信するまでに多くの時間がかかることは想定しにくい。
【０００６】
このような通信経路を介して通信しているにも拘らず、ＴＩＭＥ＿ＷＡＩＴ時間が長く設定されていると、切断待ちのＴＣＰ接続のための通信パラメータによりメモリ資源を必要以上に圧迫してしまう場合があった。また、その結果、ＴＣＰ接続のためのメモリ資源が枯渇し、新たなＴＣＰ接続が長時間、確立できない場合があった。
【０００７】
上記課題を鑑み本発明は、通信の信頼性を損なうことなく、ＴＣＰ接続に係るメモリ資源を有効に利用できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を鑑み、本発明の通信装置は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）接続の相手装置との間の通信経路が単一経路であるかを判定する判定手段と、前記判定手段により前記通信経路が単一経路でないと判定された場合、前記相手装置とのＴＣＰ接続を切断する際に、第１の時間、ＴＩＭＥ＿ＷＡＩＴ状態を維持するように制御し、前記判定手段により前記通信経路が単一経路であると判定された場合、前記相手装置とのＴＣＰ接続を切断する際に、前記第１の時間よりも短い第２の時間、ＴＩＭＥ＿ＷＡＩＴ状態を維持するように制御する制御手段と、を有する。
【発明の効果】
【０００９】
本発明によれば、相手装置までの通信経路が単一経路である場合、複数経路ある場合と比べてＴＩＭＥ＿ＷＡＩＴ時間を短くするので、通信の信頼性を損なうことなく、ＴＣＰ接続に係るメモリ資源を有効に利用することができる。
【図面の簡単な説明】
【００１０】
【図１】プリンタ１が実現するフローチャート
【図２】プリンタ１のハードウェア構成図
【図３】ネットワーク構成図
【図４】ネットワーク構成図
【図５】ネットワーク構成図
【図６】ネットワーク構成図
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面を参照しながら説明する。本実施形態では、通信装置としてのプリンタ１が、相手装置であるスマートフォン（以下、スマホ）２とＴＣＰに準拠した通信（以下、ＴＣＰ通信）を行う。ここで、ＴＣＰとはＴｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌの略である。
【００１２】
図２に、プリンタ１のハードウェア構成を示す。
【００１３】
記憶部２０１は、ＲＯＭやＲＡＭなどの１以上のメモリ等により構成され、後述する各種動作を行うためのコンピュータプログラムや、無線通信のための通信パラメータなどの各種情報を記憶する。ＲＯＭはＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの、ＲＡＭはＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの夫々略である。なお、記憶部２０１として、ＲＯＭ、ＲＡＭ等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＤＶＤなどの記憶媒体を用いてもよい。
【００１４】
制御部２０２はＣＰＵ、または、ＭＰＵにより構成され、記憶部２０１に記憶されたプログラムを実行することによりプリンタ１全体を制御する。なお、制御部２０２が実行しているＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）との協働によりプリンタ１全体を制御するようにしてもよい。
【００１５】
制御部２０２は、ＣＰＵやＭＰＵなどの１以上のプロセッサにより構成され、記憶部２０１に記憶されたコンピュータプログラムを実行することによりプリンタ１全体を制御する。ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの、ＭＰＵはＭｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略であり、コンピュータとして機能する。なお、制御部２０２は、記憶部２０１に記憶されたプログラムとＯＳとの協働によりプリンタ１全体を制御するようにしてもよい。また、制御部２０２がマルチコアなどの複数のプロセッサを備え、複数のプロセッサによりプリンタ１全体を制御するようにしてもよい。
【００１６】
印刷部２０３は、紙への印刷処理を行う。印刷部２０３が処理するプリントデータは、記憶部２０１に記憶されているデータであってもよいし、後述する通信部２０６を介して他の通信装置と通信したデータであってもよい。
【００１７】
入力部２０４は、ユーザからの各種操作の受付を行う。出力部２０５は、ユーザに対して各種出力を行う。ここで、出力とは、画面上への表示や、スピーカーによる音声出力、振動出力等の少なくとも１つを含む。なお、タッチパネルのように入力部２０４と出力部２０５の両方を１つのモジュールとして実現するようにしてもよい。
【００１８】
通信部２０６は、ＴＣＰ／ＩＰ通信の制御を行う。ここで、ＩＰはＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌの略である。通信部２０６はアンテナ２０７を介して無線ＬＡＮへの無線接続が可能であり、また、有線ＬＡＮへの有線接続も可能である。ここで、無線ＬＡＮとしてＩＥＥＥ８０２．１１シリーズ規格に準拠した無線ネットワークを例に説明するが、無線ネットワークはこれに限られない。例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）やＺｉｇｂｅｅの規格に準拠した無線ネットワークでもよい。また、有線ＬＡＮとしてＥｔｈｅｒｎｅｔに準拠した有線ネットワークを例に説明するが、有線ネットワークはこれに限られない。
【００１９】
また、通信部２０６は無線ＬＡＮへの接続処理として、ＩＥＥＥ８０２．１１シリーズ規格に準拠したインフラストラクチャモードのＡＰもしくはＳＴＡとしての接続処理と、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理とを行うことができる。なお、ＡＰはＡｃｃｅｓｓｐｏｉｎｔの略であり、ＡＰとしての接続処理とは、ＩＥＥＥ８０２．１１シリーズ規格に準拠した無線ネットワークを構築し、ＳＴＡからの接続要求に応答して接続する処理である。また、ＳＴＡはＳｔａｔｉｏｎの略であり、ＳＴＡとしての接続処理とは、ＡＰの構築した無線ネットワークに接続する処理である。
【００２０】
また、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理とは、Ｐ２Ｐ（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ）デバイスとの間でＧｒｏｕｐ  Ｏｗｎｅｒ  Ｎｅｇｏｔｉａｔｉｏｎを行って、相手装置と接続する処理である。なお、Ｇｒｏｕｐ  Ｏｗｎｅｒ  Ｎｅｇｏｔｉａｔｉｏｎでは、自装置と相手装置のいずれがＡＰのように動作するＧｒｏｕｐ  Ｏｗｎｅｒとなるかが決定される。
【００２１】
通信部２０６は、更に、ＴＣＰ／ＩＰ通信等を行うための通信パラメータを管理する。なお、通信パラメータは記憶部２０１に記憶される。ここで、当該通信パラメータには、例えば、プリンタ１およびＴＣＰ／ＩＰ通信の相手装置のＩＰアドレスや、ポート番号が含まれる。また、通信パラメータには、ＴＣＰ接続における相手装置までの通信経路が単一経路であるか否かの情報が含まれる。
【００２２】
更に、通信パラメータには、ＴＩＭＥ＿ＷＡＩＴ時間（ＴＩＭＥ＿ＷＡＩＴ状態を維持する時間）が含まれる。ここで、ＴＩＭＥ＿ＷＡＩＴ状態とは、ＴＣＰ接続（ＴＣＰコネクションとも称する）の切断要求を受信した後、ＴＣＰ接続が切断状態（ＣＬＯＳＥＤ）となるまでの待ち状態である。より具体的には、ＴＣＰ接続を切断するための切断要求をプリンタ１が送信し、相手装置から当該切断要求に対する確認応答を受信し、かつ、相手装置からもＴＣＰ接続を切断するための切断要求を受信し、当該切断要求に対する確認応答を送信した状態である。なお、切断要求とはＴＣＰにおけるＦＩＮであり、確認応答とはＴＣＰにおけるＡＣＫである。
【００２３】
ＴＩＭＥ＿ＷＡＩＴ状態にあっては、当該ＴＣＰ接続のパケットであって、ネットワーク内の伝送遅延により受信までに時間のかかるパケットを受信することができる。このようなＴＩＭＥ＿ＷＡＩＴ状態を設けることによって、相手装置から切断要求が再送された場合であっても、これを受信し、確認応答を再度送信することによって、切断処理の信頼性を確保することができる。なお、このような再送は、プリンタ１が送信した確認応答を相手装置が受信できなかった場合などにおいて発生する。
【００２４】
また、プリンタ１が新たなＴＣＰ接続を確立した場合に、当該新たに確立したＴＣＰ接続宛てに、既に切断済みのパケットが誤って届いてしまい、エラーが発生したり、誤切断が発生したりしてしまう可能性を低減させ、通信の信頼性を確保することができる。
【００２５】
次に、本実施形態に係るプリンタ１が実現する処理フローについて図１を用いて説明する。図１に示すフローチャートは、プリンタ１がＬＡＮ（有線ＬＡＮもしくは無線ＬＡＮ）に接続する際に開始される。なお、図１に示すフローチャートは、プリンタ１の記憶部２０１に記憶されたプログラムを制御部２０２が読み出して実行することで実現される。なお、図１のフローチャートに示すステップの一部または全部を例えばＡＳＩＣ等のハードウェアで実現する構成としても良い。
【００２６】
まず制御部２０２は、入力部２０４を介してユーザから指定された、もしくは、予め記憶部２０１に記憶されている接続設定に従って、ＬＡＮへの接続処理を実行する（Ｓ１０１）。ここでは、接続処理として、有線ＬＡＮへの接続処理、インフラストラクチャモードのＳＴＡとしての接続処理、インフラストラクチャモードのＡＰとしての接続処理、および、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理のいずれかが実行される。また、接続設定とは、これらのいずれの処理を実行するかを示す設定情報である。
【００２７】
次に、制御部２０２は、接続処理として、上述のいずれの処理を実行したかを示す接続情報を記憶部２０１に格納する（Ｓ１０２）。そして、制御部２０２は、プリンタ１の機能実現に必要な様々なアプリケーションを起動する（Ｓ１０３）。なお、Ｓ１０１および１０２の処理に先立って、Ｓ１０３を実行するようにしてもよい。
【００２８】
この後、プリンタ１はＴＣＰのサーバとして動作し、通信部２０６はクライアント（ＴＣＰ接続の相手装置）からのＴＣＰコネクションの接続要求（ＴＣＰにおけるＳＹＮ）を待ち受ける（Ｓ１０４）。そして、相手装置からのＴＣＰコネクションの接続要求を受信すると（Ｓ１０４のＹｅｓ）、通信部２０６は当該接続要求に係る３Ｗａｙ−Ｈａｎｄｓｈａｋｅを実行し、相手装置との間でＴＣＰ接続を確立する（Ｓ１０５）。
【００２９】
ＴＣＰ接続が確立されると、制御部２０２は、確立されたＴＣＰ接続を利用するアプリケーションがＩＰパケットのホップ数を１に指定しているかを確認する（Ｓ１０６）。
【００３０】
ここでホップとは、プリンタ１から送信されたＩＰパケットがネットワーク上のルータを超えるたびに１つ増加するメトリクス（指標）である。プリンタ１から相手装置までのネットワーク経路上にルータが存在しない場合は、ホップ数は１となり、ルータが１つ存在する場合のホップ数は２となる。なお、ルーティングを行わないＨＵＢを超える場合にはホップ数は増加しない。
【００３１】
即ち、アプリケーションがＩＰパケットのホップ数が１に指定する場合とは、ルータを介さずにプリンタ１と接続された相手装置とのみ通信を許可する場合である。ＩＰパケットのホップ数が１に指定するか否かはユーザが設定できるようにしてもよいし、アプリケーション毎に決められたものであってもよい。
【００３２】
ホップ数が１に指定されている場合（Ｓ１０６のＹｅｓ）、制御部２０２は相手装置までの通信経路が単一経路であるものと判定し、ＴＩＭＥ＿ＷＡＩＴ時間を第２の時間（Ｔ２）に設定する（Ｓ１１２）。ここで第１の時間として、再送タイムアウト時間（送信したパケットに対するＡＣＫを受信できなかった場合に当該パケットを再送するまでの時間）よりも長い時間を用いる。例えば、ＴＣＰ規格の再送タイムアウト時間の初期値が３秒であることから、当該単一経路における伝送時間などの遅延を考慮して１秒追加した４秒が第１の時間として設定される。
【００３３】
なお、上述の再送タイムアウト時間として、プリンタ１の再送タイムアウト時間を用いてもよいし、相手装置の再送タイムアウト時間を取得できる場合には相手装置の再送タイムアウト時間を用いてもよい。ＴＩＭＥ＿ＷＡＩＴ時間を設定すると、ステップＳ１１３に進む。
【００３４】
一方、ホップ数が１に指定されていなかった場合（Ｓ１０６のＮｏ）、制御部２０２は、Ｓ１０２において記憶部２０１に格納された接続情報を参照する。そして、制御部２０２は、プリンタ１が相手装置とＷｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理により接続されているかを確認する（Ｓ１０７）。相手装置とＷｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理により接続されている場合（Ｓ１０７のＹｅｓ）、プリンタ１と相手装置とが同一無線ＬＡＮ内に存在すると考えられる。従って、制御部２０２は相手装置までの通信経路が単一経路であるものと判定し、ＴＩＭＥ＿ＷＡＩＴ時間を第２の時間（Ｔ２）に設定する（Ｓ１１２）。ここで、第２の時間とは、相手装置までの通信経路が複数経路である場合にＴＩＭＥ＿ＷＡＩＴ時間として設定される第１の時間（Ｔ１）よりも短いものとする。なお、第１の時間（Ｔ１）については後述する。
【００３５】
また、Ｓ１０７の処理に代えて、もしくは、加えて、インフラストラクチャモードのＡＰとしての接続処理により相手装置と接続されているかを確認してもよい。ＡＰとしての接続処理により相手装置と接続されている場合は、同様の理由によりＳ１１２に進む。
【００３６】
一方、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理により接続されていない場合（Ｓ１０７のＮｏ）、制御部２０２は、プリンタ１と相手装置のＩＰアドレスの何れもがローカルＩＰアドレスであるかを確認する（Ｓ１０８）。なお、ローカルＩＰアドレスとは、ローカルネットワークでのみ使用されるＩＰアドレスのことである。
【００３７】
制御部２０２は、具体的に、以下のようにしてローカルＩＰアドレスであるかを確認する。即ち、ＩＰｖ６においてはＩＰアドレスの種類がリンクローカルアドレスである場合、ローカルＩＰアドレスと判定する。また、ＩＰｖ４においてはＩＰアドレスとネットマスクからサブネット内でのみ使用するＩＰアドレスかどうかで判定する。なお、ローカルＩＰアドレスの判定方法は、特にこれらに限られない。
【００３８】
プリンタ１と相手装置のＩＰアドレスの何れもがローカルＩＰアドレスである場合（Ｓ１０８のＹｅｓ）、制御部２０２は相手装置までの通信経路が単一経路であるものと判定し、ＴＩＭＥ＿ＷＡＩＴ時間を第２の時間（Ｔ２）に設定する（Ｓ１１２）。
【００３９】
一方、プリンタ１と相手装置のＩＰアドレスの何れかがローカルＩＰアドレスではない場合（Ｓ１０８のＮｏ）、制御部２０２は通信部２０６を用いて相手装置までのＩＰパケットのホップ数を計測する（Ｓ１０９）。なお、計測結果は、制御部２０２により記憶部２０１に格納される。
【００４０】
通信部２０６は、具体的に、以下のようにしてホップ数を計測する。即ち、ＩＰｖ４においては、通信部２０６はＩＰパケットヘッダのＴＴＬ値を１に設定したＩＰパケットを相手装置に送信する。ここで、ＴＴＬはＴｉｍｅ  ｔｏ  Ｌｉｖｅの略である。そして、制御部２０２は、相手装置から当該ＩＰパケットの確認応答を待ち受ける。相手装置は、ＩＰパケットを受信すると、確認応答を送信する。そして、制御部２０２が通信部２０６を介して所定時間内に確認応答を受信した場合には、制御部２０２は、相手装置までのＩＰパケットのホップ数が１であるものと判定する。一方、所定時間内に確認応答を受信しなかった場合には、制御部２０２は相手装置までのＩＰパケットのホップ数が２以上であるものと判定する。
【００４１】
また、ＩＰｖ６においては、通信部２０６はＩＰパケットヘッダのホップリミット値を１に設定したＩＰパケットを相手装置に送信する。そして、上述の場合と同様に、制御部２０２は、所定時間内に確認応答を受信した場合にはホップ数が１であるものと判定し、受信しなかった場合にはホップ数が２以上であるものと判定する。
【００４２】
なお、上述の計測を複数回実行し、１回以上、ホップ数が２以上であると判定された場合には、ホップ数が２以上であるものと判定し、１回もホップ数が２以上であると判定されなかった場合にホップ数が１であるものと判定してもよい。これにより、複数経路であるにも拘らず、誤ってホップ数が１と判定されてしまう可能性を低減することができる。
【００４３】
ステップＳ１０９における計測においてホップ数が１であることが確認された場合（Ｓ１１０のＹｅｓ）、制御部２０２は相手装置までの通信経路が単一経路であるものと判定し、ＴＩＭＥ＿ＷＡＩＴ時間を第２の時間（Ｔ２）に設定する（Ｓ１１２）。
【００４４】
一方、ステップＳ１０９における計測においてホップ数が２以上であることが確認された場合（Ｓ１１０のＮｏ）、制御部２０２は相手装置までの通信経路が複数経路であるものと判定する。そして、制御部２０２は、ＴＩＭＥ＿ＷＡＩＴ時間を第２の時間よりも長い第１の時間（Ｔ１）に設定する（Ｓ１１１）。
【００４５】
ここでは、第１の時間として、２ＭＳＬ時間に設定する。ＭＳＬとはＭａｘｉｍｕｍ  Ｓｅｇｍｅｎｔ  Ｌｉｆｅｔｉｍｅの略であり、パケットがネットワークにおいて破棄されるまでの最大時間である。また、２ＭＳＬ時間とは、ＭＳＬの２倍の時間を意味する。第１の時間、即ち、２ＭＳＬ時間とは例えば２４０秒である。
【００４６】
上述のようにして、相手装置までの通信経路が単一経路であるか否かに応じたＴＩＭＥ＿ＷＡＩＴ時間を設定すると、制御部２０２は、アプリケーションによるプリントデータの受信を行う（Ｓ１１３）。そして、印刷部２０３は、受信したプリントデータに基づく印刷処理を実行する。
【００４７】
なお、ＴＩＭＥ＿ＷＡＩＴ時間を設定する前に、制御部２０２は、アプリケーションによるプリントデータの受信を開始するようにしても良い。即ち、ステップＳ１０６からＳ１１２までの処理は、ＴＣＰ接続がＴＩＭＥ＿ＷＡＩＴ状態となる前に実行できれば良い。
【００４８】
その後、制御部２０２はＴＣＰ接続の切断処理を行う（Ｓ１１４）。当該切断処理は、ユーザの指示に基づいて開始されてもよいし、プリンタ１の電源をＯＦＦにする、もしくはスリープ状態に移行する場合に開始されてもよい。また、印刷処理が終了したことに応じて、切断処理が行われるようにしてもよい。
【００４９】
ＴＣＰ接続の切断処理では、制御部２０２は通信部２０６を介して、ＴＣＰ接続を切断するための切断要求（ＦＩＮ）を相手装置に送信する。そして、通信部２０６は、相手装置から当該切断要求に対する確認応答（ＡＣＫ）を待ち受けると共に、相手装置からの切断要求（ＦＩＮ）を待ち受ける。そして、相手装置からの確認応答（ＡＣＫ）および切断要求（ＦＩＮ）を受信すると、制御部２０２は、ＴＣＰ接続の状態をＴＩＭＥ＿ＷＡＩＴ状態へと遷移させる。
【００５０】
そして、ＴＩＭＥ＿ＷＡＩＴ状態へと遷移してから、ステップＳ１１１もしくはＳ１１２において設定されたＴＩＭＥ＿ＷＡＩＴ時間が経過するのを待つ（Ｓ１１５）。この間、ＴＩＭＥ＿ＷＡＩＴ状態が維持される。設定されたＴＩＭＥ＿ＷＡＩＴ時間が経過すると（Ｓ１１５のＹｅｓ）、制御部２０２は、ＴＣＰ接続の状態をＣＬＯＳＥＤ状態に遷移させ、当該ＴＣＰ接続に係る通信パラメータを記憶部２０１から削除する。なお、当該削除には、記憶部２０１において通信パラメータを記憶していた部分が、再利用可能とする様々な方法が含まれる。
【００５１】
その後、制御部２０２はアプリケーションを終了させる（Ｓ１１６）。なお、アプリケーションを終了させることなく、再びステップＳ１０４に戻って別のプリントデータを受信するためにＴＣＰ接続を確立する処理を行ってもよい。
【００５２】
アプリケーションが終了すると、制御部２０２はネットワーク機能を停止させる（Ｓ１１７）。このとき、通信部２０６は、接続していたＬＡＮからの切断処理を実行する。また、制御部２０２は、ステップＳ１０２で記憶部２０１に格納した接続情報を削除する。そして、図１に示すフローを終了する。
【００５３】
次に、図１のフローを実現するプリンタ１がＴＩＭＥ＿ＷＡＩＴ時間を設定する処理について、ネットワーク構成を具体的に示しながら説明する。ここでは、スマートフォン２（以下、スマホ２）からプリンタ１へＴＣＰ通信によってプリントデータを送信し、プリント後、プリンタ１からＴＣＰコネクションの切断を開始する。また、ネットワーク構成図において、実線は有線ＬＡＮを表し、破線は無線ＬＡＮを表す。
【００５４】
図３では、プリンタ１とスマホ２との間のネットワーク上にルータ３、ルータ４、ルータ５、および、ルータ６が存在するネットワーク構成となっている。この場合、プリンタ１とスマホ２とのパケットのネットワーク経路はルータ４とルータ５を経由するルートと、経由しないルートの少なくとも２経路があり得る。ここでは、いずれのルートもルータを介するため、ローカルＩＰアドレスを用いた場合には通信することができない。従って、プリンタ１およびスマホ２は、ローカルＩＰアドレスではないＩＰアドレスを使って通信するものとする。
【００５５】
プリンタ１は図１の処理フローに従うと次のように動作する。まず、プリンタ１は有線ＬＡＮに接続し、スマホ２とＴＣＰ接続を確立する。そして、ステップＳ１０６では、ホップ数の指定が１ではないことが確認される（Ｓ１０６のＮｏ）。これは、もし、アプリケーションがＩＰパケットのホップ数を１に指定していた場合には、ＴＣＰ接続を確立するためのパケットが相手装置（スマホ２）まで到達せず、ＴＣＰ接続が確立できないためである。
【００５６】
続くステップＳ１０７では、プリンタ１は有線ＬＡＮ接続を行っており、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理を行っていないことが確認される（Ｓ１０７のＮｏ）。そして、ステップＳ１０８では、プリンタ１およびスマホ２の少なくとも一方がローカルＩＰアドレスではないことが確認される（Ｓ１０８のＮｏ）。
【００５７】
また、ステップＳ１０９では、ホップ数の計測結果は２以上となることが確認される（Ｓ１１０のＮｏ）。その結果、相手装置までの経路が単一経路でないと判定され、ステップＳ１１１においてＴＩＭＥ＿ＷＡＩＴ時間として、第１の時間（２ＭＳＬ時間）が設定される。
【００５８】
このように、相手装置までの経路が単一経路でないと判定された場合には、通信の信頼性を確保するために２ＭＳＬ時間という十分に長いＴＩＭＥ＿ＷＡＩＴ時間が設定される。
【００５９】
次に図４に示すネットワーク構成の場合について説明する。図４では、プリンタ１とスマホ２との間のネットワーク上にルータ３、ルータ４、ルータ５、およびＨＵＢ７が存在するネットワーク構成となっている。この場合、プリンタ１とスマホ２とのパケットのネットワーク経路はルータ４とルータ５を経由するルートと、経由しないルートの少なくとも２経路があり得る。この例においても、いずれのルートもルータを介するため、ローカルＩＰアドレスを用いた場合には通信することができない。従って、プリンタ１およびスマホ２は、ローカルＩＰアドレスではないＩＰアドレスを使って通信するものとする。
【００６０】
プリンタ１は図１の処理フローに従うと次のように動作する。まず、プリンタ１は有線ＬＡＮに接続し、スマホ２とＴＣＰ接続を確立する。そして、ステップＳ１０６では、ホップ数の指定が１ではないことが確認される（Ｓ１０６のＮｏ）。これは、もし、アプリケーションがＩＰパケットのホップ数を１に指定していた場合には、ＴＣＰ接続を確立するためのパケットが相手装置（スマホ２）まで到達せず、ＴＣＰ接続が確立できないためである。
【００６１】
続くステップＳ１０７では、プリンタ１は有線ＬＡＮ接続を行っており、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理を行っていないことが確認される（Ｓ１０７のＮｏ）。そして、ステップＳ１０８では、プリンタ１およびスマホ２の少なくとも一方がローカルＩＰアドレスではないことが確認される（Ｓ１０８のＮｏ）。
【００６２】
また、ステップＳ１０９では、ホップ数の計測結果は２以上となることが確認される（Ｓ１１０のＮｏ）。その結果、相手装置までの経路が単一経路でないと判定され、ステップＳ１１１においてＴＩＭＥ＿ＷＡＩＴ時間として、第１の時間（２ＭＳＬ時間）が設定される。
【００６３】
このように、相手装置までの経路が単一経路でないと判定された場合には、通信の信頼性を確保するために２ＭＳＬ時間という十分に長いＴＩＭＥ＿ＷＡＩＴ時間が設定される。
【００６４】
次に図５に示すネットワーク構成の場合について説明する。図５では、プリンタ１とスマホ２との間のネットワーク上にＨＵＢ７が存在するネットワーク構成となっている。この場合、プリンタ１とスマホ２とのパケットのネットワーク経路はＨＵＢ７を経由するルートだけの単一経路である。
【００６５】
プリンタ１は図１の処理フローに従うと次のように動作する。まず、プリンタ１は有線ＬＡＮに接続し、スマホ２とＴＣＰ接続を確立する。そして、この場合、ステップＳ１０６において、ホップ数の指定が１であると確認されることがあり得る（Ｓ１０６のＹｅｓ）。ホップ数の指定が１であると確認された場合、ステップＳ１１２に進む。
【００６６】
一方、ホップ数の指定が１でない場合（Ｓ１０６のＮｏ）、ステップＳ１０７に進むが、ステップＳ１０７では、プリンタ１は有線ＬＡＮ接続を行っており、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理を行っていないことが確認される（Ｓ１０７のＮｏ）。
【００６７】
続く、ステップＳ１０８においては、プリンタ１とスマホ２とが共にローカルＩＰアドレスを利用していることがあり得、この場合（Ｓ１０８のＹｅｓ）、ステップＳ１１２に進む。一方、いずれか一方、もしくは両方の装置がローカルＩＰアドレスを利用していない場合にはステップＳ１０９に進むが、ホップ数計測結果は１となるため、ステップＳ１１０の判定において必ずＹｅｓとなり、ステップＳ１１２に進む。
【００６８】
これらの結果、図５に示すネットワーク構成の場合には必ずステップＳ１１２に進み、ＴＩＭＥ＿ＷＡＩＴ時間として、第１の時間よりも短い第２の時間が設定される。即ち単一経路においては、相手装置においてパケットが送信されてからプリンタ１が受信するまでに多くの時間がかかることは想定しにくく、ＴＩＭＥ＿ＷＡＩＴ時間を短くしても通信の信頼性を確保することができる。更に、早期に当該ＴＣＰ接続に係る通信パラメータを記憶部２０１から削除できるので、記憶部２０１を有効に活用することができる。これは、並行して確立可能なＴＣＰ接続の数が限られているような装置においては特に有効である。
【００６９】
次に図６に示すネットワーク構成の場合について説明する。図６では、プリンタ１はＷｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理により、スマホ２と接続されている。従って、プリンタ１とスマホ２の間のネットワーク上にルータが存在しないネットワーク構成となっている。この場合、プリンタ１とスマホ２とのパケットのネットワーク経路は単一経路である。
【００７０】
プリンタ１は図１の処理フローに従うと次のように動作する。まず、プリンタ１はＷｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理によりスマホ２と接続し、ＴＣＰ接続を確立する。
【００７１】
この場合、ステップＳ１０６において、ホップ数の指定が１であると確認されることがあり得る（Ｓ１０６のＹｅｓ）。ホップ数の指定が１であると確認された場合、ステップＳ１１２に進む。
【００７２】
一方、ホップ数の指定が１でない場合（Ｓ１０６のＮｏ）、ステップＳ１０７に進む。そしてステップＳ１０７においてＷｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に準拠した接続処理によりスマホ２と接続していることが確認され（Ｓ１０７のＹｅｓ）、ステップＳ１１２に進む。
【００７３】
これらの結果、図５に示すネットワーク構成の場合には必ずステップＳ１１２に進み、ＴＩＭＥ＿ＷＡＩＴ時間として、第１の時間よりも短い第２の時間が設定される。従って、図５の場合と同様に、通信の信頼性を確保したまま、ＴＩＭＥ＿ＷＡＩＴ時間を短くしているので、早期に当該ＴＣＰ接続に係る通信パラメータを記憶部２０１から削除でき、記憶部２０１（即ちメモリ資源）を有効に活用することができる。
【００７４】
上述の実施形態における、ステップＳ１０６、Ｓ１０７、Ｓ１０８、Ｓ１１０の順番を適宜入れ替えても、同様の効果を得ることができる。なお、ステップＳ１０９はＳ１１０の前に実施されていればよい。
【００７５】
また、ステップＳ１０６、Ｓ１０７、Ｓ１０８、Ｓ１１０の一部のみを実行するようにしてもよい。この場合、実行するステップについては、ユーザ設定や、アプリケーションの指定、通信履歴等に基づいて、適宜選択できるようにしてもよい。また、一部のステップのみ実行可能な装置であってもよい。
【００７６】
また、プリンタ１が複数のＴＣＰ接続を並行して確立できる場合、プリンタ１は複数のＴＣＰ接続の各々についてステップＳ１０６〜１１０の処理を行い、複数のＴＣＰ接続の各々についてＴＩＭＥ＿ＷＡＩＴ時間を設定するようにしてもよい。これにより、ＴＣＰ接続ごとに通信経路が異なる場合であっても、適切にＴＩＭＥ＿ＷＡＩＴ時間を設定することができる。
【００７７】
また、一度、単一経路であると判定されステップＳ１１２に進んだＴＣＰ接続については、単一経路であることを記憶部２０１に格納するようにしてもよい。この場合、ＴＣＰ接続を識別できる情報、例えばプリンタ１のＩＰアドレス、ポート番号、および、相手装置のＩＰアドレス、ポート番号と合わせて、単一経路であることを記録する。そして、同じ通信相手と再度、ＴＣＰ接続をした場合に、まず、この記録を参照する。ここで過去に単一経路と判定されたＴＣＰ接続については、ステップＳ１０６〜１１０の処理を行うことなく、ステップＳ１１２（単一経路である場合のＴＩＭＥ＿ＷＡＩＴ時間設定）に進む。このようにして、処理負荷を軽減しつつ、同様の効果を得ることができる。
【００７８】
また、当該記録には有効期限を設定し、有効期限経過後は削除するようにしてもよい。これにより、プリンタ１と相手装置との間のネットワーク構成が、時間経過により変わってしまった場合であっても、適切にＴＩＭＥ＿ＷＡＩＴ時間を設定することができる。
【００７９】
以上のようにして、通信装置と相手装置との間のネットワークが単一経路である場合に、通信の信頼性を損なうことなく、ＴＩＭＥ＿ＷＡＩＴ時間を短くすることができる。
【００８０】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８１】
１  プリンタ
２  スマートフォン
３  ルータ
４  ルータ
５  ルータ
６  ルータ
７  ＨＵＢ
【図１】
2019197982.tif 000003
【図２】
2019197982.tif 000004
【図３】
2019197982.tif 000005
【図４】
2019197982.tif 000006
【図５】
2019197982.tif 000007
【図６】
2019197982.tif 000008