(57)【要約】【課題】  従来、ＴＣＰの再送制御において、再送タイマ時間ＲＴＯの下限値はパケット往復時間ＲＴＴのゆらぎやその他の遅延を考慮して十分に大きな値とするようになされてきた。そのため、再送が必要な状況が発生しても、速やかに再送を行うことができなかった。【解決手段】  相手端末に遅延ＡＣＫ情報を通知し、相手端末では遅延ＡＣＫ情報をもとにＲＴＯ最小値を決定する。遅延ＡＣＫ情報はＴＣＰコネクション時にＴＣＰヘッダオプションで通知する、またはアプリケーションで通知する。または、遅延ＡＣＫ送信時にＡＣＫパケットに遅延ＡＣＫ情報を付与する。相手端末では得られた遅延ＡＣＫタイマ値よりも小さくならないようにＲＴＯ最小値を決定する。【選択図】  図３
2014183533.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
他の通信装置からパケットを受信する受信手段と、
前記受信手段がパケットを受信してから所定時間が経過すると、前記受信手段が受信したパケットに対する応答を前記他の通信装置に送信する送信手段と、
前記所定時間の情報を前記他の通信装置に通知する通知手段とを有し、
前記送信手段は、前記受信手段により所定数のパケットを受信した場合、前記所定時間が経過するより前に前記応答を前記他の通信装置に送信する
ことを特徴とする通信装置。
【請求項２】
前記送信手段は、前記受信手段が受信したパケットに対する応答としてＡＣＫパケットを送信する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記所定時間とは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）で規定された遅延ＡＣＫタイマ時間であることを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記所定時間の情報は、前記他の通信装置とコネクションを確立するための要求信号に含まれることを特徴とする請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
前記所定時間の情報は、アプリケーションデータに含まれることを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記所定時間の情報は、前記受信手段が受信したパケットに対する応答に含まれることを特徴とする請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
前記通知手段は、所定の条件に応じて前記所定時間を前記他の通信装置に通知することを特徴とする請求項１乃至６のいずれか１項に記載の通信装置。
【請求項８】
前記通知手段は、前記相手装置と通信するデータ種別に応じて前記所定時間を前記他の通信装置に通知することを特徴とする請求項１乃至７のいずれか１項に記載の通信装置。
【請求項９】
前記通知手段は、前記相手装置との通信に用いるプロトコル種別に応じて前記所定時間を前記他の通信装置に通知することを特徴とする請求項１乃至７のいずれか１項に記載の通信装置。
【請求項１０】
前記通知手段は、ユーザの指示に基づいて前記所定時間を前記他の通信装置に通知することを特徴とする請求項１乃至７のいずれか１項に記載の通信装置。
【請求項１１】
他の通信装置と通信する通信装置であって、
前記他の通信装置にパケットを送信する送信手段と、
前記送信手段により送信されたパケットを前記他の通信装置が受信してから当該パケットに対する応答を送信するまでの時間情報を取得する取得手段と、
前記取得手段により取得した前記時間情報に基づいて、前記送信手段がパケットを再送するまでの時間に関する判定処理を行う判定手段と、
を有することを特徴とする通信装置。
【請求項１２】
前記時間情報は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）で規定された遅延ＡＣＫタイマ時間であることを特徴とする請求項１１に記載の通信装置。
【請求項１３】
前記判定手段は、前記取得手段により取得した前記時間情報に基づいて、前記送信手段がパケットを再送するまでの時間の最小値として用いる値を判定することを特徴とする請求項１１または１２に記載の通信装置。
【請求項１４】
前記送信手段がパケットを送信してから当該パケットに対する応答を受信するまでの時間を測定する測定手段を更に有し、
前記判定手段は、前記取得手段により取得した前記時間情報と前記測定手段により測定された時間とに基づいて、前記送信手段がパケットを再送するまでの時間に関する判定処理を行う
ことを特徴とする請求項１１乃至１３のいずれか１項に記載の通信装置。
【請求項１５】
前記取得手段により取得した前記時間情報を表示部に表示させるための表示手段を更に有することを特徴とする請求項１１乃至１４のいずれか１項に記載の通信装置。
【請求項１６】
前記取得手段が前記時間情報を取得した場合、前記時間情報を取得したことを前記他の通信装置に通知する通知手段を更に有することを特徴とする請求項１１乃至１５のいずれか１項に記載の通信装置。
【請求項１７】
通信装置の制御方法であって、
他の通信装置からパケットを受信する受信工程と、
前記受信工程においてパケットを受信してから所定時間が経過すると、前記受信工程において受信したパケットに対する応答を前記他の通信装置に送信する送信工程と、
前記所定時間の情報を前記他の通信装置に通知する通知工程とを有し、
前記送信工程において、前記受信手段により所定数のパケットを受信した場合、前記所定時間が経過するより前に前記応答が前記他の通信装置に送信される
ことを特徴とする制御方法。
【請求項１８】
他の通信装置と通信する通信装置の制御方法であって、
前記他の通信装置にパケットを送信する送信工程と、
前記送信工程において送信されたパケットを前記他の通信装置が受信してから当該パケットに対する応答を送信するまでの時間情報を取得する取得工程と、
前記取得工程において取得された前記時間情報に基づいて、前記送信工程においてパケットを再送するまでの時間に関する判定処理を行う判定工程と、
を有することを特徴とする制御方法。
【請求項１９】
コンピュータを請求項１乃至１０のいずれか１項に記載の通信装置として動作させるためのプログラム。
【請求項２０】
コンピュータを請求項１１乃至１６のいずれか１項に記載の通信装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信したパケットに対して応答を行う通信装置に関する。
【背景技術】
【０００２】
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）には、データパケットの受信側が確認応答（ＡＣＫ）を返送することで、送信側が受信側にデータパケットが到達したことを確認できる仕組みがある。
【０００３】
ＴＣＰでは、所定数（例えば、３つ）のパケットを受信すると、所定数分のデータパケットに対して１つのＡＣＫを送信する遅延ＡＣＫが規定されている。遅延ＡＣＫでは、所定数のデータパケットに満たない数のデータパケットを受信し、その後にデータパケットを受信しない場合であっても、最後にデータパケットを受信してから第１の所定時間が経過すると、ＡＣＫを送信することも規定されている。この第１の所定時間のことを遅延ＡＣＫタイマ値と呼ぶ。
【０００４】
一方、ＴＣＰでは、データパケットを送信してから第２の所定時間が経過しても当該データパケットに対するＡＣＫを受信しなかった場合に、当該データパケットを再送するデータ再送が規定されている。この第２の所定時間を再送タイマ値（ＲＴＯ、Ｒｅｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅ  Ｏｕｔ）と呼ぶ。
【０００５】
遅延ＡＣＫタイマ値と比べて再送タイマ値が小さいと、データパケットの送信に成功しているにも拘わらず、データパケットの再送（スプリアス再送）が頻発する虞があるため、再送タイマ値は遅延ＡＣＫタイマ値と比べて十分大きい値が設定される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２１９４０８
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、遅延ＡＣＫタイマ値は、相手装置によって様々な値が設定されている可能性があり、その値が不明であったため、再送タイマ値を必要以上に大きく設定する必要があった。これは、通信速度が低下する原因の一因となっていた。
上記を鑑み、本発明は、パケットを受信してから当該パケットに対する応答を送信するまでの時間情報を通知できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の通信装置は、他の通信装置からパケットを受信する受信手段と、前記受信手段がパケットを受信してから所定時間が経過すると、前記受信手段が受信したパケットに対する応答を前記他の通信装置に送信する送信手段と、前記所定時間の情報を前記他の通信装置に通知する通知手段とを有し、前記送信手段は、前記受信手段により所定数のパケットを受信した場合、前記所定時間が経過するより前に前記応答を前記他の通信装置に送信する。
【発明の効果】
【０００９】
本発明によれば、パケットを受信してから当該パケットに対する応答を送信するまでの時間情報を通知することができる。
【図面の簡単な説明】
【００１０】
【図１】システム構成図。
【図２】通信装置１０１の構成図。
【図３】実施形態１の処理フロー
【図４】アプリレベルで遅延ＡＣＫ情報を交換する場合の処理ブロック
【図５】実施形態２の処理フロー
【図６】実施形態３の処理フロー
【発明を実施するための形態】
【００１１】
＜実施形態１＞
本実施形態では、各装置がＥｔｈｅｒｎｅｔ（イーサネット）（登録商標）上でＴＣＰに準拠した通信を行う場合の再送タイマ制御処理を説明する。ここで、ＴＣＰはＯＳＩ参照モデルのトランスポート層にあたるプロトコルであり、Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌの略である。
【００１２】
本実施形態では、遅延ＡＣＫ情報をＴＣＰコネクション確立時にＳＹＮフラグ付きのパケット（以下、ＳＹＮパケット）で相手装置に通知する方法について説明する。なお、ＳＹＮパケットとは、ＴＣＰコネクションの確立を要求する要求信号である。
【００１３】
図１に、本実施形態のシステム構成を示す。通信装置１０１と相手装置１０２とがＬＡＮ１０３上に存在する構成である。ここで、ＬＡＮ１０３は、Ｅｔｈｅｒｎｅｔ（登録商標）に準拠したＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋであり、以下、単にネットワークと称することもある。本実施形態では、通信装置１０１の一例としてデジタルカメラ、相手装置１０２の一例として画像保存用のＰＣであるものとして説明する。しかしながらこれに限らず、通信装置１０１と相手装置１０２は、デジタルカメラ、ＰＣ、プリンタ、ストレージ、携帯電話機（スマートフォンを含む）、ＰＤＡ、サーバ等のいかなる組み合わせであってもよい。
【００１４】
図２に、通信装置１０１の構成図を示す。なお、図２に示された１つの機能ブロックを複数の機能ブロックによって実現してもよいし、図２に示された複数の機能ブロックを１つの機能ブロックとして実現してもよい。また、相手装置１０２も通信装置１０１と同様の構成を有しているため、ここでは説明を省略する。
【００１５】
ＴＣＰ処理部２０１はＴＣＰのプロトコル処理を行う。ＩＰ処理部２０２はＩＰ（インターネットプロトコル）層のプロトコル処理を行う。ネットワークインタフェイス２０３はネットワーク上の端末へパケットを送信、およびネットワーク上の端末からパケットを受信する。本実施形態では、ＩＰ処理部２０２は、送信データをＥｔｈｅｒｎｅｔ（登録商標）パケット化してＥｔｈｅｒｎｅｔ（登録商標）へ送出する、または、Ｅｔｈｅｒｎｅｔ（登録商標）からＥｔｈｅｒｎｅｔ（登録商標）パケットを受信してパケットからデータを取り出す、という処理を行う。ここで、Ｅｔｈｅｒｎｅｔ（登録商標）パケットとは、Ｅｔｈｅｒｎｅｔ（登録商標）の規格に準拠したパケットのことである。
【００１６】
アプリケーション処理部２０４はＴＣＰ／ＩＰ通信を行うアプリケーションを実施するものであって、例えば、画像転送アプリケーションや印刷データ送信アプリケーションである。
【００１７】
メモリ２０５はアプリケーション処理部１０３が扱うデータを記憶する。例えば、画像データや印刷データを記憶する。更に、メモリ１０４は後述するフローチャートを実現するためのプログラムも記憶している。
【００１８】
制御部２０６は通信装置１０１全体を制御する。例えば、アプリケーション処理部２０４がメモリ２０５に用意した画像データをＴＣＰ処理部２０１およびＩＰ処理部２０２でＴＣＰ／ＩＰ処理し、ネットワークインタフェイス２０３からパケット送信する、という一連の動作を制御する。
【００１９】
ＴＣＰ処理部２０１は、次のような処理ブロックで構成される。
【００２０】
コネクション処理部２１１はＴＣＰコネクション確立および切断処理を行う。再送タイマ制御部２１２はＴＣＰ再送タイマの動作を制御する。具体的には、再送タイマ制御部２１２は、タイマ時間の設定、タイマの起動、停止を行う。再送タイマ時間であるＲＴＯ（Ｒｅｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅ  Ｏｕｔ）値およびＲＴＯ最小値も再送タイマ制御部２１２で記憶される。なお、ＲＴＯ値やＲＴＯ最小値の算出方法については後述する。
【００２１】
再送処理制御部２１３は再送タイマ制御部２１２において再送タイマがタイムアウトした場合にＴＣＰ再送処理を行う。ＲＴＴ測定処理部２１４は送信されたパケットのパケット往復時間であるＲＴＴを測定する。ＲＴＴとは、Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅの略であり、送信したデータパケットに対する確認応答（ＡＣＫ）の受信までの時間を測定することで得られる。
【００２２】
ＲＴＴ偏差測定処理部２１５は、ＲＴＴ測定処理部２１４が測定したＲＴＴの測定結果のばらつきを測定する。具体的には、ＲＴＴ偏差測定処理部２１５は平滑化されたＲＴＴ値であるＲＴＴ＿ｓｍｏｏｔｈを算出する。さらに、ＲＴＴ偏差測定処理部２１５はＲＴＴ＿ｓｍｏｏｔｈの偏差の統計値（例えば分散値や標準偏差値）であるＲＴＴ＿ｄｅｖｉａｔｉｏｎを算出する。
【００２３】
遅延ＡＣＫ情報作成部２１６は所定の書式に従って遅延ＡＣＫタイマ値を含む遅延ＡＣＫ情報を作成する。なお、遅延ＡＣＫ情報に、遅延ＡＣＫ機能が有効か無効かを示す遅延ＡＣＫ機能情報と、ＴＣＰデータパケットを何回受信するとＡＣＫパケットを１回送信するかを示す送信頻度情報を含めるようにしてもよい。
【００２４】
ここでは、ＴＣＰデータパケットを３つ受信する毎に、遅延ＡＣＫを送信するものとする。即ち、遅延ＡＣＫの送信頻度は３回に１回である。遅延ＡＣＫは３つ目のＴＣＰデータパケットの受信に応答して送信される。また、受信を開始してから、もしくは、遅延ＡＣＫを送信した後に受信したＴＣＰデータパケットが３つ未満であった場合には、最後にＴＣＰデータパケットを受信してから遅延ＡＣＫタイマ時間が経過すると、遅延ＡＣＫが送信される。遅延ＡＣＫタイマ時間とは、遅延ＡＣＫタイマ値として設定された時間である。
【００２５】
遅延ＡＣＫ情報送信処理部２１７は、遅延ＡＣＫ情報作成部２１６によって作成された遅延ＡＣＫ情報をＴＣＰヘッダオプションとしてＳＹＮパケットに付与する。遅延ＡＣＫ情報受信処理部２１８は、ＳＹＮパケット受信時において、当該ＳＹＮパケットのＴＣＰヘッダオプションに遅延ＡＣＫ情報が付与されていた場合、遅延ＡＣＫ情報を取得して記憶する。
【００２６】
ＲＴＯ最小値決定部２１９は遅延ＡＣＫ情報受信処理部２１８で記憶された遅延ＡＣＫ情報から、通信相手装置の遅延ＡＣＫタイマ値を取得する。更に、ＲＴＯ最小値決定部２１９はＲＴＴ偏差測定処理部２１５で得られたＲＴＴ＿ｓｍｏｏｔｈとＲＴＴ＿ｄｅｖｉａｔｉｏｎを取得する。さらに、それらを用いて再送タイムアウト時間ＲＴＯの最小値を決定する。
【００２７】
ここで、ＲＴＯ最小値は以下の式（１）を用いて計算する。
ＲＴＯ最小値  ＝  （ＲＴＴ＿ｓｍｏｏｔｈ  ＋  遅延ＡＣＫタイマ値）  ＋  ＲＴＴ＿ｄｅｖｉａｔｉｏｎ  ×  Ｋ  ＋  α  …  式（１）
ここで、Ｋは係数、αは定数である。なお、αを、「（ＲＴＴ＿ｓｍｏｏｔｈ  ＋  遅延ＡＣＫタイマ値）  ＋  ＲＴＴ＿ｄｅｖｉａｔｉｏｎ  ×  Ｋ」部分の大きさに応じて決定するようにしても良い。決定されたＲＴＯ最小値は再送タイマ制御部２１２に通知され、再送タイマ制御部２１２にて記憶される。
【００２８】
なお、ＲＴＯ最小値をより簡単に算出するために以下の式（２）を用いて計算しても良い。
ＲＴＯ最小値  ＝  遅延ＡＣＫタイマ値  ＋  β  …  式（２）
ここではβは定数であるが、遅延ＡＣＫタイマ値の大きさに応じて決定するようにしても良い。
【００２９】
送信処理部２２０はＴＣＰデータパケットの送信処理を行う。受信処理部２２１はＴＣＰデータパケットの受信処理を行う。具体的には、受信処理部２２１は、ＴＣＰデータパケットの受信およびそれに応じたＡＣＫの送信処理を行う。なお、ＴＣＰデータパケットとは、ＴＣＰに準拠したデータパケットのことである。
【００３０】
図３に、通信装置１０１と相手装置１０２とがＬＡＮ１１０に接続された状態で、通信装置１０１の通信機能が起動された場合に、メモリ２０５に記憶されたプログラムを制御部２０６が読み出すことで実現されるフローチャートを示す。
【００３１】
通信装置１０１では、デジタルカメラ機能によって撮影して生成された複数の画像データをメモリ２０５に記憶しているものとする。この複数の画像データを相手装置１０２へ転送する処理について以下に説明する。
【００３２】
通信装置１０１の通信機能が起動されると、制御部２０６はＲＴＯ最小値の初期化を行う。この初期化において、制御部２０６は再送タイマ制御部２１２で記憶されるＲＴＯ最小値を設定する（Ｓ３０１）。ここでは、ＲＴＯ最小値はデフォルト値として定められた１秒として設定する。
【００３３】
次に、アプリケーション処理部２０４により画像転送アプリケーションが実行されると、コネクション処理部２１１はアプリケーション処理部２０４からの要求に従い、相手装置１０２とＴＣＰコネクション確立処理を開始する（Ｓ３０２）。ここでは、ユーザの指示により画像転送アプリケーションが開始されるものとする。
【００３４】
次に、コネクション処理部２１１は、メモリ２０５が予め記憶している遅延ＡＣＫ情報をＴＣＰヘッダオプションに含むＳＹＮパケットを送信する（Ｓ３０３）。具体的には、まず、遅延ＡＣＫ情報作成部２１６が通信装置１０１に設定されている遅延ＡＣＫタイマ値に基づいてＴＣＰヘッダオプションの書式に準拠した遅延ＡＣＫ情報を作成する。そして、遅延ＡＣＫ情報送信処理部２１７がＳＹＮパケットに遅延ＡＣＫ情報を含むＴＣＰヘッダオプションを付与する。そして、コネクション処理部２１１がこのＳＹＮパケットを送信する。なお、実施形態において、遅延ＡＣＫ情報には、遅延ＡＣＫタイマ値、遅延ＡＣＫ機能の有無を示す情報、遅延ＡＣＫの送信頻度情報が含まれているものとする。これにより、通信装置１０１の遅延ＡＣＫ情報が相手装置１０２に通知される。
【００３５】
このＳＹＮパケットを受信した相手装置１０２は、同様に遅延ＡＣＫ情報をＴＣＰヘッダオプションに含むＳＹＮ＋ＡＣＫパケットを送信する。ここで、ＳＹＮ＋ＡＣＫパケットとは、ＴＣＰコネクションの確立要求と、通信装置１０１からのＳＹＮパケットの受信応答のための応答信号である。
【００３６】
通信装置１０１がＳＹＮ＋ＡＣＫパケットを受信すると、遅延ＡＣＫ情報受信処理部２１８は受信したパケットに含まれるＴＣＰヘッダオプションから遅延ＡＣＫ情報を取得して記憶する（Ｓ３０３）。
【００３７】
このようにして、ＳＹＮパケットを用いて通信装置１０１の遅延ＡＣＫ情報と、相手装置１０２の遅延ＡＣＫ情報とが、通信装置１０１と相手装置１０２との間で共有される。
【００３８】
ＳＹＮ＋ＡＣＫパケットを受信すると、コネクション処理部２１１は受信したＳＹＮ＋ＡＣＫパケットに対してＡＣＫパケットを送信することで、ＴＣＰコネクション確立処理が完了する（Ｓ３０４）。ＴＣＰコネクションが確立されると、送信処理部２２０がアプリケーション処理部２０４から要求されたデータの送信を行うと共に、ＲＴＴ測定処理部２１４がそのデータ送信に対するＲＴＴ測定を行う（Ｓ３０５）。
【００３９】
次に、アプリケーション処理部１０３はデータ送受信が完了したかどうかを判定する（Ｓ３０６）。ここでは、アプリケーション処理部１０３は、メモリ２０５に記憶された複数の画像データの送信が完了したかどうかを判定する。
【００４０】
データの送受信が完了したと判定された場合、コネクション処理部２１１は相手装置１０２とのＴＣＰコネクション切断処理を行い（Ｓ３０７）、図３に示す処理フローを終了する。
【００４１】
一方、データの送受信が完了していないと判断された場合は、ＲＴＴ偏差測定処理部２１５はＲＴＴ測定処理部２１４で測定されたＲＴＴ値のばらつきを計算する（Ｓ３０８）。具体的には、ＲＴＴ偏差測定処理部２１５は、これまでのＲＴＴ測定結果から平滑化されたＲＴＴ値であるＲＴＴ＿ｓｍｏｏｔｈを計算して保持する。更に、ＲＴＴ偏差測定処理部２１５はＲＴＴ＿ｓｍｏｏｔｈとの偏差の統計値（例えば分散値や標準偏差値）であるＲＴＴ＿ｄｅｖｉａｔｉｏｎを計算して保持する。
【００４２】
次に、ＲＴＯ最小値決定部２０９は、Ｓ３０１における初期化の後にＲＴＯ最小値が更新されたか否かを判定する（Ｓ３０９）。ここでは、ＲＴＯ最小値決定部２０９は、一度、更新された後の状態では、ＲＴＯ最小値は更新済みであると判定する。しかしこれに限らず、所定時間後や、所定データ量転送後、ＲＴＴ＿ｓｍｏｏｔｈが所定値よりも大きくなったり、逆に小さくなったりした場合に、再度、ＲＴＯ最小値を更新することができるようにしても良い。これにより、ＲＴＯ最小値を通信状況に追従して更新することができるため、直近の通信状況にあったＲＴＯ最小値を用いて通信を行うことができる。
【００４３】
更新されていない場合、ＲＴＯ最小値決定部２０９は、このタイミングにおいてＲＴＯ最小値を決定するかどうかを判定する。ここでは、ＲＴＯ最小値決定部２０９は、ＲＴＴ偏差測定処理部２１５で計算されるＲＴＴ＿ｄｅｖｉａｔｉｏｎが統計的に十分に信頼性のあるまでのサンプル数で計算されているかどうかを判定する。例えば、ここでは送信したパケットが１０個に達していれば、ＲＴＯ最小値決定を行うと判断する。ＲＴＯ最小値決定を行うと判定した場合は、ステップＳ３１１へ進み、まだＲＴＯ最小値を決定しないと判断した場合は、ステップＳ３０５へ戻る。
【００４４】
ＲＴＯ最小値を決定する場合、ＲＴＯ最小値決定部２０９は遅延ＡＣＫ情報受信処理部２１８で記憶された遅延ＡＣＫ情報から、相手装置１０２の遅延ＡＣＫタイマ値を取得する。更に、ＲＴＯ最小値決定部２０９は、ＲＴＴ偏差測定処理部２１５で得られたＲＴＴ＿ｓｍｏｏｔｈとＲＴＴ＿ｄｅｖｉａｔｉｏｎを取得する。
【００４５】
そして、ＲＴＯ最小値決定部２０９は上述の式（１）または（２）を用いてＲＴＯ最小値を決定する。ここでは計算の結果、ＲＴＯ最小値が２５０ミリ秒となったとする。このようにして決定されたＲＴＯ最小値をＲＴＯ最小値決定部２０９は再送タイマ制御部２１２に通知し、再送タイマ制御部２１２は当該ＲＴＯ最小値を記憶する。また、ＲＴＯ最小値は更新済みの状態となる。その後、ステップＳ３０５へ戻る。
【００４６】
また、ＲＴＯ最小値の決定において式（２）を用いるようにする場合、ＲＴＴ測定前にＲＴＯ最小値を決定することができるため、ステップＳ３０４の直後にＲＴＯ最小値を決定するようにしてもよい。
【００４７】
以上のようにして、相手装置１０２から遅延ＡＣＫ情報を取得してＲＴＯ最小値を決定することができる。
【００４８】
これにより、ＲＴＯ最小値を不必要に大きくすることなく、データ送信中に再送すべき状況が発生した場合に、速やかに再送を実施することが可能となり、再送が発生するような通信環境においてデータ通信性能が向上する。
【００４９】
更に、相手装置１０２から取得した遅延ＡＣＫタイマ値等の遅延ＡＣＫ情報を不図示の表示部に表示できるようにしてもよい。これにより、ユーザは相手装置の遅延ＡＣＫタイマ値が分かり、例えば、通信速度が低下している場合の原因解明に役立てることができる。
【００５０】
＜実施形態２＞
実施形態１において説明した、Ｅｔｈｅｒｎｅｔ（イーサネット）（登録商標）を使ってネットワークへＴＣＰ送信を行う場合の再送タイマ制御処理において、遅延ＡＣＫ情報をアプリケーションで通知する方法について説明する。
【００５１】
実施形態２におけるシステム構成は実施形態１と同様であり、図１に示されるものである。
【００５２】
図４に、実施形態２における通信装置１０１の機能ブロックを示す。なお、実施形態１と同様のブロックについては同じ符号を付し、実施形態１で示した図２と差異がある部分についてのみ説明する。
【００５３】
また、本実施形態においては、相手装置１０２も図４に示す機能ブロックで構成されているとする。
【００５４】
図２と図４の差異は、遅延ＡＣＫ情報作成部４０１と遅延ＡＣＫ情報送信処理部４０２と遅延ＡＣＫ情報受信処理部４０３がＴＣＰ処理部４００の外部にある点である。
【００５５】
遅延ＡＣＫ情報作成部４０１はアプリケーション処理部２０４に従い、所定の書式に従って遅延ＡＣＫタイマ値を含む遅延ＡＣＫ情報を作成する。また、遅延ＡＣＫ情報には遅延ＡＣＫ機能が有効か無効か分かる情報を持たせても良い。また、遅延ＡＣＫ情報にはＴＣＰデータパケットを何回受信するとＡＣＫパケットを１回送信するかを示す送信頻度情報を含めるようにしてもよい。
【００５６】
遅延ＡＣＫ情報送信処理部４０２はアプリケーション処理部２０４に従い、遅延ＡＣＫ情報をＴＣＰデータとして送信する。遅延ＡＣＫ情報受信処理部４０３はアプリケーション処理部２０４に従い、受信したＴＣＰデータから遅延ＡＣＫ情報を判別し、遅延ＡＣＫ情報を取得して記憶する。
【００５７】
ＴＣＰ処理部４００は、実施形態１に示したＴＣＰ処理部２０１に含まれる機能ブロックのうち、遅延ＡＣＫ情報作成部２１６、遅延ＡＣＫ情報送信処理部２１７、遅延ＡＣＫ情報送信処理部２１８を含まない構成である。
【００５８】
図５に、通信装置１０１と相手装置１０２とがＬＡＮ１１０に接続された状態で、通信装置１０１の通信機能が起動された場合に、メモリ２０５に記憶されたプログラムを制御部２０６が読み出すことで実現されるフローチャートを示す。なお、実施形態１で示した図３と同様の処理を行うステップについては同じ符号を付し、簡単に説明する。
【００５９】
まず、通信装置１０１の通信機能が起動されると、制御部２０６はＲＴＯ最小値の初期化を行う（Ｓ３０１）。次に、アプリケーション処理部２０４により画像転送アプリケーションが実行されると、コネクション処理部２１１はアプリケーション処理部２０４からの要求に従い、相手装置１０２とＴＣＰコネクション確立処理を開始する（Ｓ５０１）。ここでは、コネクション処理部２１１は、通信装置１０１の遅延ＡＣＫ情報を含まないＳＹＮパケットを送信する。そして、相手装置１０２は相手装置１０２自身の遅延ＡＣＫ情報を含まないＳＹＮ＋ＡＣＫパケットを送信する。コネクション処理部２１１は、ＳＹＮ＋ＡＣＫパケットを受信すると、ＡＣＫを送信してＴＣＰコネクションの確立を完了させる。
【００６０】
ＴＣＰコネクションが確立すると、アプリケーション処理部１０３は遅延ＡＣＫ情報作成部１１１を用いて、所定の書式に従って遅延ＡＣＫタイマ値を含む遅延ＡＣＫ情報をアプリケーションデータとして用意する（Ｓ５０２）。そして、アプリケーション処理部１０３は遅延ＡＣＫ情報送信処理部１１２を用いて、遅延ＡＣＫ情報をＴＣＰデータとして送信する。
【００６１】
相手装置１０２においては、受信データから遅延ＡＣＫ情報を取得し、また、相手装置１０２からもＴＣＰデータとして相手装置１０２の遅延ＡＣＫ情報を送信する。
【００６２】
ＴＣＰデータを受信すると、アプリケーション処理部１０３は遅延ＡＣＫ情報受信処理部１１３を用いて受信データが遅延ＡＣＫ情報であるかどうかを判別する。遅延ＡＣＫ情報であると判別した場合、遅延ＡＣＫ情報を取得し、記憶する。
【００６３】
このようにして、アプリケーションデータを用いて通信装置１０１の遅延ＡＣＫ情報と、相手装置１０２の遅延ＡＣＫ情報とが、通信装置１０１と相手装置１０２との間で共有される。
【００６４】
そして、実施形態１の図３で示したステップＳ３０５〜Ｓ３１１と同様にして、通信装置１０１は、共有した相手装置１０２の遅延ＡＣＫ情報に基づいて、ＲＴＯ最小値を計算し、更新する。
【００６５】
以上のようにして、相手装置１０２から遅延ＡＣＫ情報を取得してＲＴＯ最小値を決定することができる。
【００６６】
これにより、ＲＴＯ最小値を不必要に大きくすることなく、データ送信中に再送すべき状況が発生した場合に、速やかに再送を実施することが可能となり、再送が発生するような通信環境においてデータ通信性能が向上する。
【００６７】
＜実施形態３＞
実施形態１において説明した、Ｅｔｈｅｒｎｅｔ（イーサネット）（登録商標）を使ってネットワークへＴＣＰ送信を行う場合の再送タイマ制御処理において、遅延ＡＣＫ情報をＡＣＫパケットに付加して通知する方法について説明する。
【００６８】
本実施形態のシステム構成は、実施形態１と同じであり、図１に示されるものである。また、通信装置１０１は実施形態１と同様に図２に示す機能ブロックで構成される。また本実施形態においては、相手装置１０２も図１に示す機能ブロックで構成されているとする。
【００６９】
なお、本実施形態では、遅延ＡＣＫ情報送信処理部２１７は遅延ＡＣＫ情報を所定の書式に従ってＴＣＰのＡＣＫパケットに付与する。ここでは、ＴＣＰヘッダオプションをＡＣＫパケットに付与することで遅延ＡＣＫ情報を付加する。また、遅延ＡＣＫ情報受信処理部２１８はＡＣＫパケット受信時において、遅延ＡＣＫ情報が付与されていた場合、遅延ＡＣＫ情報を取得して記憶する。
【００７０】
図６に、通信装置１０１と相手装置１０２とがＬＡＮ１１０に接続された状態で、通信装置１０１の通信機能が起動された場合に、メモリ２０５に記憶されたプログラムを制御部２０６が読み出すことで実現されるフローチャートを示す。なお、実施形態１で示した図３や実施形態２で示した図５と同様の処理を行うステップについては同じ符号を付し、説明を省略する。
【００７１】
ステップＳ３０１、および、ステップＳ５０１を経て、ＴＣＰコネクションが確立すると、データ送信側であった場合、送信処理部２２０はアプリケーション処理部２０４から要求されたデータの送信を行い、そのデータ送信に対するＲＴＴ測定も行う。このとき、送信したデータに対するＡＣＫパケットを受信すると、遅延ＡＣＫ情報受信処理部２１８は遅延ＡＣＫ情報が付与されているかどうかを判別する。本実施形態においては、遅延ＡＣＫ情報はＴＣＰヘッダオプションとして付与されているので、ＴＣＰヘッダオプションを確認することで判別可能である。相手装置１０２の遅延ＡＣＫ情報が付与されていると判別された場合、遅延ＡＣＫ情報受信処理部２１８は、当該遅延ＡＣＫ情報を取得して記憶する（Ｓ６０１）。
【００７２】
また、データ受信する側であった場合、受信処理部２２１はアプリケーション処理部２０４から要求されたデータの受信を行い、そのデータ受信に対するＴＣＰのＡＣＫパケット送信を行う。このとき、遅延ＡＣＫ情報送信処理部２１７は当該ＡＣＫパケットのＴＣＰヘッダオプションとして遅延ＡＣＫ情報を付与する（Ｓ６０１）。なお、データパケット受信において初めてＡＣＫ送信であるときにのみ遅延ＡＣＫ情報を付与するようにしても良い。また、定期的に付与するようにしても良い。また、一度付与した後で、遅延ＡＣＫ情報が変更された場合に付与するようにしても良い。また、遅延ＡＣＫである場合に付与するようにしても良い。
【００７３】
また、遅延ＡＣＫの送信時に遅延ＡＣＫ情報を通知するようにする場合、遅延ＡＣＫ情報としては遅延ＡＣＫであることを示す情報を含むようにしても良い。こうすることで、遅延ＡＣＫ情報の通知を受けた側ではどのＡＣＫが遅延ＡＣＫによるものかを判断することができるようになる。それにより、遅延ＡＣＫに対応するデータのＲＴＴ測定値をＲＴＴ＿ｄｅｌａｙＡＣＫとして記憶し、以下の式（３）を用いてＲＴＯ最小値を計算することができるようになる。
ＲＴＯ最小値  ＝  ＲＴＴ＿ｄｅｌａｙＡＣＫ  −  ＲＴＴ＿ｓｍｏｏｔｈ  …  式（３）
【００７４】
また、遅延ＡＣＫの送信時に遅延ＡＣＫ情報を通知するようにする場合、遅延ＡＣＫ情報としてはＴＣＰデータパケットを何回受信するとＡＣＫパケットを１回送信する設定であるかの送信頻度情報を含むようにしても良い。こうすることで、遅延ＡＣＫ情報の通知を受けた側では相手の端末に遅延ＡＣＫが発生するようなデータ送信パターンでデータ送信することができるようになる。これにより、どのＡＣＫが遅延ＡＣＫによるものかを判断することができるようになり、遅延ＡＣＫに対応するデータのＲＴＴ測定値をＲＴＴ＿ｄｅｌａｙＡＣＫとして記憶し、上記の式（３）を用いてＲＴＯ最小値を計算することができるようになる。
【００７５】
以上のようにして、相手装置１０２から遅延ＡＣＫ情報を取得してＲＴＯ最小値を決定することができる。
【００７６】
これにより、ＲＴＯ最小値を不必要に大きくすることなく、データ送信中に再送すべき状況が発生した場合に、速やかに再送を実施することが可能となり、再送が発生するような通信環境においてデータ通信性能が向上する。
【００７７】
上述の実施形態１から３においては、通信装置１０１は遅延ＡＣＫタイマ値を相手装置１０２に通知した。しかしながら、通信装置１０１が遅延ＡＣＫタイマ値を相手装置１０２に通知するか否かを所定の条件に基づいて切替えるように構成してもよい。例えば、音声データや動画データ等、高速通信を行う場合には遅延ＡＣＫタイマ値を通知し、ドキュメントデータや静止画データ等、低速通信でもよい場合には遅延ＡＣＫタイマ値を通知しないようにする。これにより、高速通信を必要とするデータ種別を通信する場合には遅延ＡＣＫタイマ値を通知するので再送が発生した場合であってもデータ通信性能を向上させることができる。更に、高速通信を必要としないデータ種別を通信する場合には遅延ＡＣＫタイマ値を通知しないので、通信資源を節約することができる。
【００７８】
また、ＴＣＰ層よりも上位層で利用されるプロトコルに応じて通信装置１０１が遅延ＡＣＫタイマ値を相手装置１０２に通知するようにしてもよい。例えば、高速通信が好ましいＦＴＰを利用する場合には遅延ＡＣＫタイマ値を通知し、低速通信でも構わないＳＭＴＰを利用する場合には遅延ＡＣＫタイマ値を通知しないようにする。ここで、ＦＴＰとはＦｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌの略であり、ＳＭＴＰとはＳｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌの略である。これにより、高速通信を必要とする場合には遅延ＡＣＫタイマ値を通知するので再送が発生した場合であってもデータ通信性能を向上させることができる。更に、高速通信を必要としない場合には遅延ＡＣＫタイマ値を通知しないので、通信資源を節約することができる。
【００７９】
また、ユーザの設定に応じて通信装置１０１が遅延ＡＣＫタイマ値を相手装置１０２に通知するようにしてもよい。これにより、ユーザはデータ通信性能の向上を優先させるか、通信資源の節約を優先させるかを選択することができる。
【００８０】
また、実施形態１から３で示した複数の方法で遅延ＡＣＫ情報を通知するようにしてもよい。また、実施形態１から３において、相手装置１０２は遅延ＡＣＫ情報を受信した場合に、遅延ＡＣＫ情報を受信したことを示す情報を送信するようにしてもよい。
【００８１】
＜実施形態４＞
実施形態１から実施形態３において説明した、Ｅｔｈｅｒｎｅｔ（イーサネット）（登録商標）を使ってネットワークへＴＣＰ送信を行う場合の再送タイマ制御処理において、遅延ＡＣＫ情報に遅延ＡＣＫ機能が無効であることを示す情報が付加された場合の方法について説明する。
【００８２】
相手装置１０２より実施形態１から３で示される方法により通知された遅延ＡＣＫ情報を取得し、そこに遅延ＡＣＫ機能が無効であると判断できる情報が含まれていた場合、以下のようにしてＲＴＯ最小値を決定することができる。
【００８３】
それは、ＲＴＯ最小値について下限値を設けないように制御する方法である。つまり、ＲＴＯ値は常にＲＴＴ測定結果によって更新されるものであるが、ＲＴＯ最小値について下限がないため、ＲＴＯ値はＲＴＴ測定結果に応じて計算される値が小さくなる更新である場合に、それを制限しないようにする。
【００８４】
または、ＲＴＯ最小値の初期値を１秒としていた場合、ＲＴＯ最小値をより小さい値に変更する方法である。例えば、ＲＴＯ最小値を１００ミリ秒に変更する。
【００８５】
上記２つの方法が有効な理由は、そもそも相手装置１０２では遅延ＡＣＫタイマ動作がないため、遅延ＡＣＫタイマ動作に起因するスプリアス再送が発生せず、ＲＴＴのみを考慮した再送制御で良いからである。
【００８６】
以上のようにして、相手装置１０２から遅延ＡＣＫ情報を取得してＲＴＯ最小値を決定することができる。
【００８７】
これにより、ＲＴＯ最小値を不必要に大きくすることなく、データ送信中に再送すべき状況が発生した場合に、速やかに再送を実施することが可能となり、再送が発生するような通信環境においてデータ通信性能が向上する。
【符号の説明】
【００８８】
１  通信装置
２  相手装置
３  ＬＡＮ
【図１】
2014183533.tif 000003
【図２】
2014183533.tif 000004
【図３】
2014183533.tif 000005
【図４】
2014183533.tif 000006
【図５】
2014183533.tif 000007
【図６】
2014183533.tif 000008