(57)【要約】【課題】ＴＣＰを用いてサーバ装置と無線通信可能であり送信量に比べ受信量が非対称的に大きいクライアント装置を制御する通信制御装置であって、データパケット消失によるデータの再送処理を改善し、クライアント装置におけるレスポンスを良くすることが可能な通信制御装置および通信制御プログラムを提供すること。【解決手段】サーバ装置へ送信する通信データを再送するまでの再送タイムを算出し、サーバ装置との間を通信データが往復する通信データ往復時間を測定し、算出された再送タイムと測定された通信データ往復時間とを比較し、比較した結果、通信データ往復時間が再送タイムより大きな値になった場合、再送タイムより大きな値になった通信データ往復時間を再送タイムの算出処理から除外する。【選択図】図６
2008172480.tif 000002
【特許請求の範囲】
【請求項１】
トランスポートプロトコルを用いて第１の通信装置と無線通信可能であり送信量に比べ受信量が非対称的に大きい第２の通信装置を制御する通信制御装置であって、
前記第１の通信装置へ送信する通信データを再送するまでの再送タイムを算出する再送タイム算出手段と、
前記第１の通信装置との間を前記通信データが往復する通信データ往復時間を測定する通信データ往復時間測定手段と、
前記再送タイム算出手段によって算出された再送タイムと前記通信データ往復時間測定手段によって測定された通信データ往復時間とを比較する比較手段と、
前記比較手段によって前記再送タイムと前記通信データ往復時間とを比較した結果、前記通信データ往復時間が前記再送タイムより大きな値になった場合、前記再送タイムより大きな値になった前記通信データ往復時間を前記再送タイム算出手段による再送タイムの算出処理から除外する除外手段と、
を備えることを特徴とする通信制御装置。
【請求項２】
さらに、
タイムアウトによる前記通信データの再送を検出する再送検出手段と、
前記再送検出手段によって前記通信データの再送が検出された場合、任意の回数だけ再送タイマの指数バックオフを遅らせるバックオフ制御手段と、
を備えることを特徴とする請求項１に記載の通信制御装置。
【請求項３】
前記バックオフ制御手段は、再送タイムを２のべき乗で増加させる指数バックオフ演算により増加させる場合に、設定した回数だけ指数バックオフの演算をスキップさせ再送タイムの増加を遅らせることを特徴とする請求項２に記載の通信制御装置。
【請求項４】
さらに、
前記第１の通信装置へ送信する通信データのサイズが前記トランスポートプロトコルの１パケットに格納可能か否かを判断する判断手段と、
前記判断手段によって判断された判断結果に基づいて、前記除外手段による前記通信データ往復時間を除外する処理および前記バックオフ制御手段による前記指数バックオフを遅らせる処理をオンまたはオフするオンオフ手段と、
を備えることを特徴とする請求項１乃至３の何れか１項に記載の通信制御装置。
【請求項５】
前記トランスポートプロトコルは、ＴＣＰ（Transmission Control Protocol）であることを特徴とする請求項１乃至４の何れか１項に記載の通信制御装置。
【請求項６】
トランスポートプロトコルを用いて第１の通信装置と無線通信可能であり送信量に比べ受信量が非対称的に大きい第２の通信装置を制御する通信制御装置のコンピュータを、
前記第１の通信装置へ送信する通信データを再送するまでの再送タイムを算出する再送タイム算出手段、
前記第１の通信装置との間を前記通信データが往復する通信データ往復時間を測定する通信データ往復時間測定手段、
前記再送タイム算出手段によって算出された再送タイムと前記通信データ往復時間測定手段によって測定された通信データ往復時間とを比較する比較手段、
前記比較手段によって前記再送タイムと前記通信データ往復時間とを比較した結果、前記通信データ往復時間が前記再送タイムより大きな値になった場合、前記再送タイムより大きな値になった前記通信データ往復時間を前記再送タイム算出手段による再送タイムの算出処理から除外する除外手段、
として機能させるための通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置とサーバ装置との間の通信を制御する通信制御装置、前記通信制御装置において実行される通信制御プログラムに関し、特に、無線通信を行なうクライアント装置からサーバ装置への通信に比べ、サーバ装置からクライアント装置への通信が頻繁に発生するシステムにおける通信制御装置および通信制御プログラムに関する。
【背景技術】
【０００２】
従来、インターネット等の通信網に接続する際に広く用いられているＴＣＰ（Transmission Control Protocol）は、通信の信頼性を向上させるための仕組みとして、伝送路上のエラー等何らかの要因でデータパケットが受信側に到達しなかった場合には、再送タイマを使用した再送制御を行っている。すなわち、データ送信側では、パケットを送信した際に再送タイマを開始させ、タイムアウトするまでに受信側からの確認応答（ＡＣＫ：Acknowledgement）が返らない場合には、パケット消失が発生したとみなされ、同じパケットを再送している。
【０００３】
図１は、再送タイマを用いたデータ送信パターンの例を示す図である。
図１において、クライアント装置１１は、サーバ装置１２に対して送信したデータＮが何らかの事情で消失した場合に、サーバ装置１２からのＡＣＫを受信できないので、データＮの送信後に開始した再送タイマの終了までの時間（タイムアウト時間）後に、再度データＮを送信する。
【０００４】
このタイムアウト時間は再送タイムアウト時間（ＲＴＯ：Retransmission Timeout）と呼ばれ、データ送信側においてデータパケットを送信してからＡＣＫを受信するまでの往復時間（ＲＴＴ：Round Trip Time）の測定値（ＭＲＴＴ：Measured RTT）を用いて算出される。
【０００５】
上述のようなＴＣＰを制御するＴＣＰ制御部は、その初期状態において、最初にＭＲＴＴが得られたとき、これを用いて平滑化ＲＴＴ（ＳＲＴＴ：Smoothed RTT）および平均偏差（ＲＴＴＶＡＲ：RTT Variation）を算出し、さらにこのＳＲＴＴとＲＴＴＶＡＲに基づいてＲＴＯを決定している（例えば、非特許文献１参照。）。
【０００６】
具体的には、非特許文献１に記載されている通り、システムがＲＴＴの測定に使用するクロックの粒度（分解能）をＧとして、以下の式１で算出される。
（式１）
ＳＲＴＴ＝ＭＲＴＴ
ＲＴＴＶＡＲ＝ＭＲＴＴ／２
ＲＴＯ＝ＳＲＴＴ＋ｍａｘ（Ｇ，Ｋ×ＲＴＴＶＡＲ）
ここで、Ｋ＝４
（式の「＝」は、右辺の値を左辺の変数に代入することを意味する）
【０００７】
そして、２回目以降のＭＲＴＴが得られたときには、ＳＲＴＴ、ＲＴＴＶＡＲ、およびＲＴＯは以下の式２で算出される。
（式２）
ＲＴＴＶＡＲ＝（１−β）×ＲＴＴＶＡＲ＋β×｜ＳＲＴＴ−ＭＲＴＴ｜
ＳＲＴＴ＝（１−α）×ＳＲＴＴ＋α×ＭＲＴＴ
ここで、α＝１／８、β＝１／４
ＲＴＯ＝ＳＲＴＴ＋ｍａｘ（Ｇ，Ｋ×ＲＴＴＶＡＲ）
（式の「＝」は、右辺の値を左辺の変数に代入することを意味する）
【０００８】
上記の式１から明らかなように、元々伝送遅延が大きく、かつ、遅延量が変動することの多い無線通信網を利用したシステムでは、ＲＴＯの値は大きめになる傾向がある。本願発明者が実測した結果によれば、近年の携帯電話のパケット通信網を利用したシステムでは、ネットワーク状況により違いはあろうが、ＲＴＯの値は０．５秒前後〜数秒程度であった。
【０００９】
従来のＴＣＰは、上述したとおり、無線通信網を利用したシステムではＲＴＯの値が大きめに算出される。このことは、データパケットの消失が発生した際に再送するまでの待ち時間が長くなることに相当する。
【００１０】
このような問題を回避するための技術として、重複するＡＣＫを受信することによりパケットの消失を検出し、タイムアウトまで待たずに再送を行なうアルゴリズムが提案されている（例えば、非特許文献２参照。）。
【００１１】
例えば、非特許文献２に記載の“Fast Retransmit”アルゴリズムは、近年のＴＣＰに多く実装されているものである。
図２は、“Fast Retransmit”アルゴリズムにおけるデータ送信パターンの例を示す図である。
【００１２】
この“Fast Retransmit”アルゴリズムは、複数のデータパケットを連続して送信するような状況下で、あるデータパケットが消失した場合に、送信側はそれ以降にも連続して送信するデータパケットの到達がきっかけとなって得られる重複ＡＣＫを複数回連続して受信することでパケットの消失を検出し、タイムアウトまで待たずにパケットを再送するというものである。
【００１３】
例えば、図２に示した例では、データ通信装置２１からデータ通信装置２２に対して、順にデータＮ、データＮ＋１、データＮ＋２、データＮ＋３、データＮ＋４、・・・が送信される。そして、最初のデータＮを受信したデータ通信装置２２が次のデータＮ＋１を受信すべき旨の“ＡＣＫ  Ｎ＋１”をデータ通信装置２１に返す。
【００１４】
ところが、何らかの事情でデータＮ＋１が消失してしまうと、その次のデータＮ＋２を受信したデータ通信装置２２は、データＮ＋１を受信していないので再度“ＡＣＫ  Ｎ＋１”をデータ通信装置２１に返す。さらにデータ通信装置２２は、その次のデータＮ＋３を受信してもデータＮ＋１を受信していないのでまた“ＡＣＫ  Ｎ＋１”をデータ通信装置２１に返す。この繰り返し、すなわちデータ通信装置２１による“ＡＣＫ  Ｎ＋１”の受信が例えば３回行なわれると、データ通信装置２１は、データＮ＋１が消失していることを検出する。
【００１５】
また、ＴＣＰに従った通信を行なうサーバ装置のＴＣＰ制御部において、スプリアス再送（無駄な再送）を検知し、検知されたスプリアス再送の回数およびデータ量、これらと測定された確認応答待ち時間ＲＴＴとに基づいて、スプリアス再送の発生を低減させるような再送タイマ値の算出（最適化）を行なう技術が開示されている（例えば、特許文献１参照。）。
【非特許文献１】V.Paxson, M.Allman “Computing TCP’s Retransmission Timer” RFC2988, November 2000, http://www.ietf.org/rfc/rfc2988.txt
【非特許文献２】M. Allman, V. Paxson, W. Stevens “TCP Congestion Control” RFC2581, April 1999, http://www.ietf.org/rfc/rfc2581.txt
【特許文献１】特開２００５−５９０６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
ここで、無線通信網を利用する一般的な通信形態である、クライアント−サーバ型通信システムについて考える。
図３は、無線通信網を利用するクライアント−サーバ型通信システムの構成例を示す図であり、図４は、クライアント−サーバ型通信システムにおけるデータのやり取りの例を示す図である。
【００１７】
図３に示すように、例えば携帯端末等のクライアント装置３１は、基地局３３およびインターネット３４を介してサーバ装置３２と無線通信を行なっている。このようなクライアント−サーバ型通信システムの通信形態においては、図４に示すように、クライアント装置３１からサーバ装置３２への方向のデータの量は少なく、サーバ装置３２からクライアント装置３１への方向のデータ量は多いという傾向がある。
【００１８】
例えば、インターネット上のＷｅｂサーバ装置の情報を携帯電話等の移動端末で閲覧する場合を考えると、移動端末はユーザの操作に応じてテキストデータや画像データ等の取得要求（コマンド）を送信するのに対し、Ｗｅｂサーバ装置は要求のあった画像等のデータ（レスポンス）を移動端末に向けて送信する。つまり、このような通信形態においては、コマンドのデータサイズはレスポンスのデータサイズに比べて非常に小さい。
【００１９】
このようなクライアント−サーバ型通信システムでは、図１に示すように、クライアント装置１１からの送信方向においては送信するデータが少ないため、“Fast Retransmit”アルゴリズムのような重複ＡＣＫの連続受信によりパケットの消失を検出するアルゴリズムの効果が期待できない。このため、パケットの再送は再送タイマのタイムアウトがきっかけとなって行われることとなる。さらには、上述したとおり、無線通信網を利用したシステムではＲＴＯの値は大きめとなり、すなわち再送までの待ち時間は長くなる。このことは、クライアント装置１１を操作するユーザにとっては、操作レスポンスが非常に悪いと感じられる原因となるという問題点があった。
【００２０】
そこで、本発明は、上記問題点に鑑みてなされたものであり、トランスポートプロトコルを用いてサーバ装置と無線通信可能であり送信量に比べ受信量が非対称的に大きいクライアント装置を制御する通信制御装置であって、データパケット消失によるデータの再送処理を改善し、クライアント装置におけるレスポンスを良くすることが可能な通信制御装置、および前記通信制御装置において実行される通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明の通信制御装置は、トランスポートプロトコルを用いて第１の通信装置と無線通信可能であり送信量に比べ受信量が非対称的に大きい第２の通信装置を制御する通信制御装置であって、前記第１の通信装置へ送信する通信データを再送するまでの再送タイムを算出する再送タイム算出手段と、前記第１の通信装置との間を前記通信データが往復する通信データ往復時間を測定する通信データ往復時間測定手段と、前記再送タイム算出手段によって算出された再送タイムと前記通信データ往復時間測定手段によって測定された通信データ往復時間とを比較する比較手段と、前記比較手段によって前記再送タイムと前記通信データ往復時間とを比較した結果、前記通信データ往復時間が前記再送タイムより大きな値になった場合、前記再送タイムより大きな値になった前記通信データ往復時間を前記再送タイム算出手段による再送タイムの算出処理から除外する除外手段とを備えることを特徴とする。
【００２２】
また、本発明の通信制御装置は、さらに、タイムアウトによる前記通信データの再送を検出する再送検出手段と、前記再送検出手段によって前記通信データの再送が検出された場合、任意の回数だけ再送タイマの指数バックオフを遅らせるバックオフ制御手段とを備えることが望ましい。
【００２３】
また、本発明の通信制御装置は、前記バックオフ制御手段が、再送タイムを２のべき乗で増加させる指数バックオフ演算により増加させる場合に、設定した回数だけ指数バックオフの演算をスキップさせ再送タイムの増加を遅らせることが望ましい。
【００２４】
また、本発明の通信制御装置は、さらに、前記第１の通信装置へ送信する通信データのサイズが前記トランスポートプロトコルの１パケットに格納可能か否かを判断する判断手段と、前記判断手段によって判断された判断結果に基づいて、前記除外手段による前記通信データ往復時間を除外する処理および前記バックオフ制御手段による前記指数バックオフを遅らせる処理をオンまたはオフするオンオフ手段とを備えることが望ましい。
【００２５】
また、本発明の通信制御装置は、前記トランスポートプロトコルが、ＴＣＰ（Transmission Control Protocol）であることが望ましい。
また、本発明の一態様によれば、本発明の通信制御プログラムは、トランスポートプロトコルを用いて第１の通信装置と無線通信可能であり送信量に比べ受信量が非対称的に大きい第２の通信装置を制御する通信制御装置のコンピュータを、前記第１の通信装置へ送信する通信データを再送するまでの再送タイムを算出する再送タイム算出手段、前記第１の通信装置との間を前記通信データが往復する通信データ往復時間を測定する通信データ往復時間測定手段、前記再送タイム算出手段によって算出された再送タイムと前記通信データ往復時間測定手段によって測定された通信データ往復時間とを比較する比較手段、前記比較手段によって前記再送タイムと前記通信データ往復時間とを比較した結果、前記通信データ往復時間が前記再送タイムより大きな値になった場合、前記再送タイムより大きな値になった前記通信データ往復時間を前記再送タイム算出手段による再送タイムの算出処理から除外する除外手段として機能させるための通信制御プログラムである。
【発明の効果】
【００２６】
本発明によれば、データパケットの消失エラー発生時に、速やかにデータの再送処理を行なうことができ、クライアント装置におけるレスポンスを良くすることができる。
【発明を実施するための最良の形態】
【００２７】
本発明は、図３を用いて説明したような無線通信網を利用するクライアント−サーバ型通信システムであって、かつ、図４を用いて説明したように、クライアント装置３１からサーバ装置３２への方向のデータの量は少なく、サーバ装置３２からクライアント装置３１への方向のデータ量は多いシステムにおいて適用可能である。
【００２８】
すなわち、図３に示すように、携帯端末等のクライアント装置３１は、基地局３３を介してインターネット３４に接続されたサーバ装置３２と通信を行なう。クライアント装置３１と基地局３３との間は無線による通信が行われ、データの消失の発生確率や伝送遅延が時々刻々と変化する。
【００２９】
通常、クライアント装置３１と基地局３３との間では、フレーム単位の再送を行なうことでエラー補償が行われる。このため、フレームの再送が発生した際には、その分だけ伝送遅延も増加する。また、同一の基地局３３に複数のクライアント装置３１が同時に接続されている場合には、基地局３３によってデータ送信のスケジュール制御が行われ、クライアント装置３１は基地局３３の制御に応じてデータの送信が待たされることもある。さらには、前述のフレーム単位の再送は、再送回数や再送に要した所要時間に上限を設けており、データの消失を１００％補償するものではない。
【００３０】
これらの要因により、クライアント装置３１とサーバ装置３２との間の通信において伝送遅延時間の変動やデータパケットの消失がたびたび発生する。
図５は、クライアント装置３１のハードウェア構成の概略を示す図である。
【００３１】
図５において、クライアント装置３１は、ＣＰＵ（中央処理装置：Central Processing Unit）３１２、各種のデータや信号等を入力するための入力装置３１３、画像やその他の情報を表示するための表示装置３１４、クライアント装置３１において実行する処理を実行するプログラムの他、クライアント装置３１の各機能を制御し実行するための制御プログラムが収納されたＲＯＭ（Read Only Memory）３１５やＲＡＭ（Random Access Memory）３１６、画像やその他の情報を記憶するための外部記憶装置３１７、無線ＬＡＮ（Local Area Network）、携帯電話網等のネットワークに接続するための通信Ｉ／Ｆ（インターフェス：Interface）３１８、入力装置３１３によって入力された入力イベントを一時的に記憶する補助記憶装置３１９がバス３１１に接続されて構成され、ＣＰＵ３１２がこれらの各部を制御している。
【００３２】
図６は、クライアント装置３１に実装されるＴＣＰ制御部を示す機能ブロック図である。
図６において、ＴＣＰ制御部６０は、本発明に関係するデータ送信パターン判定部６１、Ｄｅｌａｙ  Ｓｐｉｋｅ判定部６２、ＲＴＯ算出部６３、再送制御部６４、および本発明には直接関係しない不図示のその他の機能を備え、プロトコルスタックとして実現される。
【００３３】
次に、図７乃至図１０を用いて、ＴＣＰ制御部６０の各部が実行する処理の流れを説明する。
図７は、データ送信パターン判定部６１が実行する処理の流れを示すフローチャートである。
【００３４】
まず、データ送信パターン判定部６１は、ステップＳ７１において、上位層から渡される送信データ（ＳＤ：Sending Data）を取得し、ステップＳ７２において、送信データＳＤのサイズがＴＣＰの１パケットに格納できる最大サイズ（ＭＳＳ：Maximum Segment Size）より大きいか否かを判断する。
【００３５】
そして、送信データＳＤのサイズがＭＳＳより大きくない（ＭＳＳサイズ以下である）と判断された場合（ステップＳ７２：Ｎ）は、ステップＳ７３において、ＥＮフラグ（Enableフラグ）をセットし、他方、送信データＳＤのサイズがＭＳＳより大きいと判断された場合（ステップＳ７２：Ｙ）は、ステップＳ７４において、ＥＮフラグをクリアする。このＥＮフラグは、後述するようにＤｅｌａｙ  Ｓｐｉｋｅ判定部６２および再送制御部６４により参照される。
【００３６】
このようにすることにより、図３および図４に示した一般的なクライアント−サーバ型通信システムにおける、クライアント装置３１のコマンド送信のような小さなデータの送信をする時にのみＥＮフラグがセットされ、Ｄｅｌａｙ  Ｓｐｉｋｅ判定部６２および再送制御部６４の機能を有効にする。
【００３７】
図８は、Ｄｅｌａｙ  Ｓｐｉｋｅ判定部６２が実行する処理の流れを示すフローチャートである。
図８に示したフローチャートは、ステップＳ８１乃至ステップＳ８９の各ステップで構成されているが、Ｄｅｌａｙ  Ｓｐｉｋｅ判定部６２が実行する処理は、ステップＳ８４およびステップＳ８８を省略することも可能である。
【００３８】
最初に、ステップＳ８４およびステップＳ８８を省略する場合について説明する。
まず、Ｄｅｌａｙ  Ｓｐｉｋｅ判定部６２は、ステップＳ８１において、ＲＴＴ測定（データパケットを送信してからＡＣＫを受信するまでの往復時間の測定）を実行し、その測定値ＭＲＴＴを取得する。
【００３９】
そして、ステップＳ８２において、過去に算出したＲＴＯ（再送タイムアウト時間）があるか否かを判断し、初期状態において算出したＲＴＯを持たない場合（ステップＳ８２：Ｎ）は、ステップＳ８９に進み、何もせずにステップＳ８１で取得したＭＲＴＴをＲＴＯ算出部６３に渡す。
【００４０】
他方、ＲＴＯがあると判断された場合（ステップＳ８２：Ｙ）は、ステップＳ８３において、前述のＥＮフラグがセットされているか否かを判断し、ＥＮフラグがセットされていないと判断された場合（ステップＳ８３：Ｎ）は、ステップＳ８９に進み、何もせずにステップＳ８１で取得したＭＲＴＴをＲＴＯ算出部６３に渡す。
【００４１】
他方、ＥＮフラグがセットされていると判断された場合、すなわち初期状態ではなく、かつ、ＥＮフラグがセットされている場合（ステップＳ８３：Ｙ）には、ステップＳ８５において、ステップＳ８１で取得したＭＲＴＴがその時点におけるＲＴＯより大きいか否かを判断する。
【００４２】
ＭＲＴＴがその時点におけるＲＴＯより大きいと判断された場合（ステップＳ８５：Ｙ）は、そのＭＲＴＴをＲＴＯ算出部６３に渡さずに、ステップＳ８６において、Skipフラグをセットして、ステップＳ８７において、ＭＲＴＴを廃棄する。これは、ＭＲＴＴがＲＴＯを超える場合にはそのＭＲＴＴは上述したリンクレベルのフレーム再送や基地局３３によるスケジュール制御によって突発的に大きな値になった（Ｄｅｌａｙ  Ｓｐｉｋｅ）ものとみなし、後段のＲＴＯ算出には適用されないようにするものである。こうすることにより、Ｄｅｌａｙ  ＳｐｉｋｅとみなされるＭＲＴＴがＲＴＯ算出処理から除外されることとなり、ＲＴＯの算出値が必要以上に大きな値となってしまうことを回避できる。
【００４３】
他方、ＭＲＴＴがその時点におけるＲＴＯより大きくないと判断された場合（ステップＳ８５：Ｎ）は、ステップＳ８９に進み、ステップＳ８１で取得したＭＲＴＴをＲＴＯ算出部６３に渡す。
【００４４】
次に、ステップＳ８４およびステップＳ８８を省略しない場合について説明する。
ステップＳ８３でＥＮフラグがセットされていると判断された場合、すなわち初期状態ではなく、かつ、ＥＮフラグがセットされている場合（ステップＳ８３：Ｙ）は、ステップＳ８４において、Skipフラグがセットされているか否かを判断し、Skipフラグがセットされていると判断された場合（ステップＳ８４：Ｙ）は、ステップＳ８８において、Skipフラグがセットをクリアする。
【００４５】
このように、Skipフラグを設けることによって、ＭＲＴＴがＲＴＯを超える状態が連続しても、ＭＲＴＴの廃棄が連続しないようにしている。これにより、例えばクライアント装置３１が別の基地局３３のエリアに移動するなどして、ＲＴＴが急激に変化しその後もその状態が継続するような場合において、ＭＲＴＴがＲＴＯ算出部６３に渡されるようになり、ＲＴＯ算出部６３において適正なＲＴＯを算出することが可能となる。
【００４６】
図９は、ＲＴＯ算出部６３が実行する処理の流れを示すフローチャートである。
まずＲＴＯ算出部６３は、ステップＳ９１において、Ｄｅｌａｙ  Ｓｐｉｋｅ判定部６２より渡されるＭＲＴＴを取得し、ステップＳ９２において、初期状態で過去に算出したＲＴＯがあるか否かを判断する。
【００４７】
ＲＴＯがないと判断された場合（ステップＳ９２：Ｎ）は、ステップＳ９３において、上述の式１を用いてＲＴＯの値を算出し、他方、ＲＴＯがあると判断された場合（ステップＳ９２：Ｙ）は、ステップＳ９４において、上述の式２を用いてＲＴＯの値を算出する。
【００４８】
そして、ステップＳ９５において、ＳＲＴＴ、ＲＴＴＶＡＲ、およびＲＴＯの値を更新する。
図１０は、再送制御部６４が実行する処理の流れを示すフローチャートである。
【００４９】
まず、再送制御部６４は、ステップＳ１０１において、データの送信を行ない、ステップＳ１０２において、バックオフカウンター（ＢＯＣ：Back-Off Counter）をクリアし、ステップＳ１０３において、タイムアウト値にＲＴＯをセットする。
【００５０】
そして、ステップＳ１０４において、ステップＳ１０１のデータ送信に伴いタイマの駆動を開始し、ステップＳ１０５において、ＡＣＫを受信したか否かを判断する。
ＡＣＫを受信したと判断した場合（ステップＳ１０５：Ｙ）は、ステップＳ１０６において、タイマを終了し、ＡＣＫを受信していないと判断した場合（ステップＳ１０５：Ｎ）は、ステップＳ１０７において、タイムアウトしたか否かを判断する。タイムアウトしていないと判断された場合（ステップＳ１０７：Ｎ）、すなわちＲＴＯ経過（タイムアウト）までにＡＣＫが受信できなかった場合には、同じデータを再送して再びタイマを開始し、ＡＣＫの受信を待つ。
【００５１】
ここで、ＴＣＰ制御部６０は、指数バックオフと呼ばれる機能を有しており、タイムアウトが発生した場合、次のタイマの開始時にはタイムアウト時間を２倍にする。つまり、再送制御部６４は、このバックオフのタイミングをγ回だけ遅らせる機能を有する。例えばγ＝１の場合、１度目のタイムアウト時にはタイマのバックオフは行なわずにデータの再送を行ない、再び（２度目に）タイムアウトが発生した場合に、タイマのバックオフを行ってデータの再送を行なう。同様にして３度目以降もタイムアウトが発生した場合にはバックオフを行なう。ここで、γは調整パラメータであり、通信網の特性に合わせて調整する。このようにすることにより、通信データの消失が頻繁に発生するような場合に、タイムアウト時間が極端に長くなってしまう問題を回避できる。なお、上記のバックオフをγ回遅らせる処理はＥＮフラグがセットされている場合にのみ行なう。
【００５２】
すなわち、タイムアウトしたと判断された場合（ステップＳ１０７：Ｙ）は、ステップＳ１０８において、データの再送信を行ない、ステップＳ１０９において、ＢＯＣをインクリメントする。そして、ステップＳ１１０において、ＢＯＣがγより大きいか否かを判断し、大きいと判断された場合（ステップＳ１１０：Ｙ）は、ステップＳ１１１において、タイムアウト値にＲＴＯ×２＾（ＢＯＣ−γ）をセットし、他方、大きくないと判断された場合（ステップＳ１１０：Ｎ）は、ステップＳ１１２において、タイムアウト値にＲＴＯをセットする。
【００５３】
以上説明したように、本発明によるＴＣＰ制御部６０は、Ｄｅｌａｙ  ＳｐｉｋｅとみなされるＭＲＴＴをＲＴＯの算出処理から除外し、ＲＴＯの値が大きくなりすぎないようにすることで、無線通信網を利用したクライアント−サーバ型通信システムにおいても、データパケット等の通信データの消失時に速やかなデータ再送が行われるようになる。
【００５４】
また、タイムアウトによる再送発生時にタイムアウト値を２倍にするバックオフを遅らせるようにし、データパケット等の消失頻発時に、タイムアウト時間が極端に長くなってしまう問題を回避している。
【００５５】
さらに、データの送信パターンの監視を行ない、一度に送信するデータのサイズが小さい場合にのみ上記の機能が有効になるようにしている。これにより、例えばユーザがクライアント装置３１に対して何らかの操作を行なうことでコマンドをサーバ装置３２に向けて送信する場合には、通常はコマンドのデータサイズは小さいので、レスポンスを優先した通信が行なうことができる。また、例えばデータファイルをサーバ装置３２へ転送する（アップロード）ような場合には、上記の機能は無効となり、スループットおよび通信網利用効率を優先する従来のＴＣＰ制御に従う通信が行われる。
【００５６】
一方で、ＲＴＯの値を大きくなり過ぎないようにすること、および再送タイマの指数バックオフを任意の回数遅らせるということは、本来は必要でないかもしれない再送が行われる確率が高くなり、通信網に負担をかけることになりかねないとも考えられる。しかしながら、上述したとおり、サイズの小さなデータが送信されるときのみ機能が有効になるようにしたので、通信網に大きな負担をかけることはない。
【００５７】
以上説明したように本発明は、突発的に大きな値となったＲＴＴ測定値をＲＴＯの算出処理から除外するようにしたことにより、ＲＴＯが大きくなりすぎる問題を回避でき、パケットの消失エラー発生時に速やかにデータの再送処理を行なうことができる。
【００５８】
また、再送タイマの指数バックオフを任意の回数遅らせるようにしたので、パケットの消失が連続して発生した場合に、再送までの待ち時間が極端に長くなる問題を回避できる。
【００５９】
さらに、上位レイヤからの１回当たりの要求における送信データのサイズを監視し、そのサイズがＴＣＰの１パケットに格納可能な場合にのみ上記の機能が有効になるようにしたので、再送までの待ち時間を短くすることによる通信網に対する負担増加分を小さく抑えることができる。
【００６０】
さらに、本発明は、一度に送信するデータが少なく、重複ＡＣＫの連続受信によりパケットの消失を検出するアルゴリズムが効果をなさない状況下での速やかな再送を実現するためのものであるため、クライアント−サーバ型通信システムにおけるクライアント装置３１の送信側のみの実装で良く、サーバ装置３２には何ら変更の必要がない。
【００６１】
上述の実施の形態のデータ送信パターン判定部６１は、一度に送信しようとするデータサイズを監視し、１つのＴＣＰパケットに格納可能なサイズの時のみ後段の機能を有効にするようにしたが、これを、上位レイヤが明示的に制御するようにしても良い。具体的には、ＴＣＰ制御部６０とその上位レイヤであるアプリケーションプログラムとの間のＡＰＩ（Application Program Interface）に対して、上記制御用の関数を追加し、この関数をアプリケーションプログラムが呼び出すことで制御できるようにする。
【００６２】
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた本発明の実施の形態は、クライアント装置３１の一機能としてハードウェアまたはＤＳＰ（Digital Signal Processor）ボードやＣＰＵボードでのファームウェアもしくはソフトウェアにより実現することができる。
【００６３】
また、本発明が適用されるクライアント装置３１は、その機能が実行されるのであれば、上述の実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、ＬＡＮ、ＷＡＮ等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。
【００６４】
また、バスに接続されたＣＰＵ、ＲＯＭやＲＡＭのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた実施の形態のシステムを実現するソフトェアのプログラムを記録したＲＯＭやＲＡＭのメモリ、外部記録装置、可搬記録媒体を、クライアント装置３１に供給し、そのクライアント装置３１のコンピュータがプログラムを読み出し実行することによっても、達成されることは言うまでもない。
【００６５】
この場合、可搬記録媒体等から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した可搬記録媒体等は本発明を構成することになる。
【００６６】
プログラムを供給するための可搬記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリーカード、ＲＯＭカード、電子メールやパソコン通信等のネットワーク接続装置（言い換えれば、通信回線）を介して記録した種々の記録媒体などを用いることができる。
【００６７】
また、コンピュータ（情報処理装置）がメモリ上に読み出したプログラムを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現される。
【００６８】
さらに、可搬型記録媒体から読み出されたプログラムやプログラム（データ）提供者から提供されたプログラム（データ）が、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現され得る。
【００６９】
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
【図面の簡単な説明】
【００７０】
【図１】再送タイマを用いたデータ送信パターンの例を示す図である。
【図２】“Fast Retransmit”アルゴリズムにおけるデータ送信パターンの例を示す図である。
【図３】無線通信網を利用するクライアント−サーバ型通信システムの構成例を示す図である。
【図４】クライアント−サーバ型通信システムにおけるデータのやり取りの例を示す図である。
【図５】クライアント装置３１のハードウェア構成の概略を示す図である。
【図６】クライアント装置３１に実装されるＴＣＰ制御部を示す機能ブロック図である。
【図７】データ送信パターン判定部６１が実行する処理の流れを示すフローチャートである。
【図８】Ｄｅｌａｙ  Ｓｐｉｋｅ判定部６２が実行する処理の流れを示すフローチャートである。
【図９】ＲＴＯ算出部６３が実行する処理の流れを示すフローチャートである。
【図１０】再送制御部６４が実行する処理の流れを示すフローチャートである。
【符号の説明】
【００７１】
１１      クライアント装置
１２      サーバ装置
２１      データ通信装置
２２      データ通信装置
３１      クライアント装置
３２      サーバ装置
３３      基地局
３４      インターネット
６０      ＴＣＰ制御部
６１      データ送信パターン判定部
６２      Ｄｅｌａｙ  Ｓｐｉｋｅ判定部
６３      ＲＴＯ算出部
６４      再送制御部
３１１    バス
３１２    ＣＰＵ
３１３    入力装置
３１４    表示装置
３１５    ＲＯＭ
３１６    ＲＡＭ
３１７    外部記憶装置
３１８    通信Ｉ／Ｆ
３１９    補助記憶装置
３２１    バス
３２２    ＣＰＵ
３２３    入力装置
３２４    表示装置
３２５    ＲＯＭ
３２６    ＲＡＭ
３２７    外部記憶装置
３２８    通信Ｉ／Ｆ
３２９    補助記憶装置
【図１】
2008172480.tif 000003
【図２】
2008172480.tif 000004
【図４】
2008172480.tif 000005
【図５】
2008172480.tif 000006
【図６】
2008172480.tif 000007
【図７】
2008172480.tif 000008
【図８】
2008172480.tif 000009
【図９】
2008172480.tif 000010
【図１０】
2008172480.tif 000011
【図３】
2008172480.tif 000012