(57)【要約】  指数バックオフアルゴリズムの抑制中にＦ−ＲＴＯアルゴリズムを単純に組み合わせた場合には、一度スプリアスタイムアウトが発生すると、その後スプリアスタイムアウトが連続発生してしまうという課題があった。上記課題を解決するために、本件発明は、データセグメントの送信およびその確認応答の受信を順次行い、データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信装置において、データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定し、スプリアスタイムアウトが発生したと判定した場合に、再送タイムアウト時間を増加させる。
2010064421.tif 000002
【特許請求の範囲】
【請求項１】
データセグメントの送信およびその確認応答の受信を順次行い、
データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信装置であって、
データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定するスプリアスタイムアウト判定手段と、
前記スプリアスタイムアウト判定手段によってスプリアスタイムアウトが発生したと判定された場合に、前記再送タイムアウト時間を増加させる再送タイムアウト時間増加手段と、
を備えたことを特徴とする通信装置。
【請求項２】
前記確認応答にはシーケンス番号がそれぞれ付与されており、
前記スプリアスタイムアウト判定手段は、前記データセグメントの再送直後に受信した第１の確認応答のシーケンス番号が前回受信したものよりも進んでいる場合であって、かつ、前記第１の確認応答の直後に受信した第２の確認応答のシーケンス番号が前回受信したものよりも進んでいる場合には、スプリアスタイムアウトが発生したと判定することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記再送タイムアウト時間増加手段は、前記バックオフアルゴリズムの適用が抑止されている場合に、前記データセグメントの再送直後に受信した第１の確認応答に応じて送信される少なくとも１つの新規のデータセグメントを送信する際の前記再送タイムアウト時間を増加させることを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記再送タイムアウト時間増加手段は、前記再送タイムアウト時間を２倍とすることを特徴とする請求項１から３のいずれか一に記載の通信装置。
【請求項５】
前記スプリアスタイムアウト判定手段は、Ｆ−ＲＴＯ（Forward RTO-Recovery）アルゴリズムにより前記判定を行うことを特徴とする請求項１から４のいずれか一に記載の通信装置。
【請求項６】
データセグメントの送信およびその確認応答の受信を順次行い、
データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信方法であって、
データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定するスプリアスタイムアウト判定ステップと、
前記スプリアスタイムアウト判定ステップによってスプリアスタイムアウトが発生したと判定された場合に、前記再送タイムアウト時間を増加させる再送タイムアウト時間増加ステップと、
を含むことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してデータを送信する場合に再送タイムアウトが発生した際の再送制御方法に関する。
【背景技術】
【０００２】
データの欠落が発生しうる通信網においてデータの送受信を行う場合、送信装置から受信装置へすべてのデータを送信するために、通信網においてデータが欠落した可能性を検出し、送信装置より欠落したデータの再送信を行うことがある。
インターネット等のＩＰ（Internet Protocol）ベースのネットワークにおいて、データを欠落無く送受信する際に一般的に用いられるＴＣＰ（Transmission Control Protocol）では、送信装置は送信データの部分データを順に切り出し、切り出した部分データに
シーケンス番号を含むヘッダを付与した送信単位ごとのデータ（以下、「セグメント」と呼ぶ）を生成し、生成したセグメントをシーケンス番号の小さい順に送信する。この際、送信装置はセグメントの送信時刻に関する情報を記録しておき、送信したセグメントに対する受信装置からのＡＣＫ（ACKnowledgement）を一定時間内に受信できない場合にセグメントの再送を行う再送制御の機能を備えている。【０００３】
この一定時間については再送タイムアウト時間としてあらかじめ送信装置にて保持し、送信装置と受信装置との間のＲＴＴ（Round Trip Time）の測定結果に基づき更新する（非特許文献１）。また、再送が行われると再送タイムアウト時間に２倍の値を設定し、再送によるネットワークの輻輳を回避する指数バックオフアルゴリズムが含まれている（非特許文献２）。【０００４】
また、有線データリンクとは異なり、無線データリンクでのスループットは大きく変動する。そのため、データリンクにおいてはＲＬＣ（Radio Link Control）プロトコルのように、データフレームの再送を規定した通信プロトコルが存在する。ＲＬＣのような、データフレームの再送を規定したデータリンクをＴＣＰの下位レイヤに用いた場合、データリンクにてデータフレームが欠落して再送が行われている状況は、ＴＣＰからはＲＴＴの増大としてとらえられる。データリンクの再送を有限時間継続するならば、その再送の継続時間中にデータフレームの到達が確認できない場合、データフレームの欠落、つまりセグメントの欠落となるため、ＴＣＰにおけるＲＴＴもおのずとデータリンクにおける再送の継続時間により上限が与えられる。【０００５】
このＴＣＰにおけるＲＴＴの上限の存在に着目し、再送発生前の再送タイムアウト時間をＲＴＴの上限を考慮した値に設定することでデータリンクにて再送継続中のＴＣＰ再送を抑制すること、及びｎ回目までのセグメント再送時には指数バックオフを行わずに再送タイムアウト時間を決定し、ｎ＋１回目以降から指数バックオフアルゴリズムを適用することで再送による輻輳を回避することの両方のメリットを享受する手法が提案されている（特許文献１）。【０００６】
ところが、ＲＴＴが時刻により変動するネットワーク環境においては、ＴＣＰの再送制御における再送タイムアウト時間が実際のＲＴＴよりも小さくなることがある。再送タイムアウト時間がＲＴＴより小さくなると、送信装置と受信装置との間でセグメントが欠落していないにもかかわらずセグメントの再送が発生することがある。このようなセグメント再送信が発生する状況はスプリアスタイムアウトと呼ばれ、通信のスループット低下の要因となりうる。【０００７】
このスプリアスタイムアウトを検出するための手法の一つとして、Ｆ−ＲＴＯ（Forward RTO-Recovery）がある。Ｆ−ＲＴＯでは、送信装置において、再送タイマが満了（以下、「タイムアウト」と呼ぶ）した場合に新たな未送信セグメントをシーケンス番号が小さい順に２つ送信し、これらのセグメント送信後において最初に受信装置から受信したＡＣＫの内容により、タイムアウトがセグメントの欠落によるものであるか、スプリアスタイムアウトによるものであるかを判定する。具体的には、受信したＡＣＫにより受信確認されたセグメントのシーケンス番号が、前回受信したＡＣＫにより受信確認されたセグメントのシーケンス番号よりも進んでいる場合にはスプリアスタイムアウトによるものであると判定し、そうでない場合はセグメントの欠落によるものであると判定する。スプリアスタイムアウトによるものであると判定された場合は、そのまま後続のセグメントの送信を継続し、セグメント欠落によるものであると判定された場合は欠落したセグメントを再送し受信装置が受信してから後続のセグメントの送信を行う（非特許文献３）。【０００８】
また、データフレームの再送を規定したデータリンクをＴＣＰの下位レイヤに用いた場合、受信装置における再送フレームを蓄積するバッファサイズが十分に大きければデータリンクにおけるフレームの欠落は発生しないため、再送タイムアウト時間をＲＴＴの上限より小さくしたとしても、スプリアスタイムアウトが発生する可能性が増加するのみで、再送回復契機が早まる効果はない。【０００９】
しかし、実際には再送フレームを蓄積するバッファサイズは有限であり、バッファサイズを超えるフレームをデータリンクに入力すると、データの破棄を行うことになる。つまりこれは、再送タイムアウト時間をＴＣＰにおけるＲＴＴの上限よりも小さくすることで、スプリアスタイムアウトが増加するデメリットはあるものの、再送回復契機が早まるメリットが得られることを意味する。【００１０】
ここで、特許文献１に記載の従来技術にかかる送信装置に対して非特許文献３に記載の従来技術を単純に組み合わせることにより、スプリアスタイムアウト発生によるデメリットを軽減しつつ、再送回復契機を早めることができることは容易に想像できる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００５−２３６９６１号公報
【非特許文献】
【００１２】
【非特許文献１】J. Postel, "Transmission Control Protocol − DARPA Internet Program Protocol Specification", RFC793, September 1981.
【非特許文献２】R. Braden, "Requirements for Internet Hosts − Communication Layers", RFC1122, October 1989.
【非特許文献３】P. Sarolahti, M. Kojo, and K. Raatikainen, "F-RTO: An Enhanced Recovery Algorithm for TCP Retransmission Timeouts", ACM SIGCOMM Computer Communications Review, April 2003, Volume 33, Number 2, p.51-63.
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかし、特許文献１に記載の送信装置に対して非特許文献３に記載のＦ−ＲＴＯアルゴリズムを単純に組み合わせる場合、以下のような問題点があった。
図９は、従来技術における問題点を説明する図である。なお、図９においては、遅延ＡＣＫ方式が採用されていることを前提とする。
まず、送信側端末から受信側端末にＳｅｇｍｅｎｔ１、Ｓｅｇｍｅｎｔ２を送信し（Ｓ９０１、Ｓ９０１’）、これに対する受信側端末からのＡＣＫ２（Ｓ９０２）が、Ｓｅｇｍｅｎｔ１（Ｓ９０１）を送信してから再送タイムアウト時間である時間ｔRTO経過後に受信されたとする（スプリアスタイムアウトの発生）。【００１４】
この場合、送信側端末からはタイムアウトの発生により、Ｓｅｇｍｅｎｔ１が再送されるが（Ｓ９０３）、再送タイムアウト時間に対してバックオフアルゴリズムの適用が抑止されている場合、この時の再送タイムアウト時間はｔRTOとなる。さらに、Ｆ−ＲＴＯアルゴリズムにより、ＡＣＫ２（Ｓ９０２）の受信後、２つの未送信セグメントであるＳｅｇｍｅｎｔ５とＳｅｇｍｅｎｔ６が送信され（Ｓ９０４、Ｓ９０５）、これらのセグメントの送信後、最初に受信するＡＣＫ（Ｓ９０６）のシーケンス番号が進んでいれば最初のＳｅｇｍｅｎｔ１（Ｓ９０１）のタイムアウトはスプリアスタイムアウトであると判断し、シーケンス番号が進んでいなければセグメントの欠落等によるタイムアウトであると判断する。図９のように、受信したＡＣＫがＡＣＫ４（Ｓ９０６）である場合にはシーケンス番号は進んでいるので、Ｓｅｇｍｅｎｔ１（Ｓ９０１）のタイムアウトはスプリアスタイムアウトであったと判断する。【００１５】
しかし、再送タイムアウト時間に対してバックオフアルゴリズムの適用が抑止されている場合には、Ｓｅｇｍｅｎｔ５の送信（Ｓ９０４）についても再送タイムアウト時間として時間ｔRTOが設定されるため、Ｓｅｇｍｅｎｔ５（及びＳｅｇｍｎｅｔ６）に対するＡＣＫ６（Ｓ９０７）もスプリアスタイムアウトとなる可能性が高く、スプリアスタイムアウトとなった場合には、Ｓｅｇｍｅｎｔ５の再送が発生し（Ｓ９０８）、さらに未送信セグメントであるＳｅｇｍｅｎｔ７とＳｅｇｍｅｎｔ８が送信されることとなる（Ｓ９０９、Ｓ９１０）。【００１６】
ここで、Ｓｅｇｍｅｎｔ５の再送（Ｓ９０８）における再送タイムアウト時間は、Ｓｅｇｍｅｎｔ４の送信からＡＣＫ４（Ｓ９０６）が返ってくるまでのＲＴＴを測定して更新されるが、再送タイムアウト時間ｔRTOがＲＴＴよりも小さい場合であって、かつ、例えば時間ｔRTOが再送タイムアウト時間の最小値である場合には、Ｓｅｇｍｅｎｔ５（Ｓ９０８）の再送タイムアウト時間ｔ’RTOは、ｔRTO＜ｔ’RTO＜ＲＴＴとなるため、Ｓｅｇｍｅｎｔ５（Ｓ９０８）もスプリアスタイムアウトとなる可能性が高い。以後、同様にスプリアスタイムアウトが連続して発生する。【００１７】
すなわち、特許文献１に記載の送信装置に対してＦ−ＲＴＯアルゴリズムを単純に組み合わせた場合、一度スプリアスタイムアウトが発生すると、その後スプリアスタイムアウトが連続発生するという問題点がある。つまり、ＲＴＴよりも再送タイムアウト時間が小さい状況でスプリアスタイムアウトが発生すると、送信装置は新たな未送信セグメントを２つ送信するが、ここで再送タイムアウト時間をバックオフせずに小さい値を設定すると、最初にスプリアスタイムアウトとなったセグメントに対応するＡＣＫを受信、再送回復した後でこの新たな未送信セグメントについてスプリアスタイムアウトが発生、さらに新たな未送信セグメントを２つ送信する、という動作を繰り返す。また、この問題はスプリアスタイムアウトの検出にＦ−ＲＴＯアルゴリズムを採用する場合のみならず、他のアルゴリズムを用いる場合であっても、タイムアウトとなったセグメント再送後の最初のＡＣＫの受信に応じて１以上の未送信セグメントを送信するようなアルゴリズムであれば同様の問題が生じうる。
そこで本発明は、上記問題点を解決し、スプリアスタイムアウトによるスループット低下を抑制しつつ、再送発生時の再送回復契機が早い通信装置、通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、本発明は、データセグメントの送信およびその確認応答の受信を順次行い、データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信装置であって、データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定するスプリアスタイムアウト判定手段と、前記スプリアスタイムアウト判定手段によってスプリアスタイムアウトが発生したと判定された場合に、前記再送タイムアウト時間を増加させる再送タイムアウト時間増加手段と、を備えたことを特徴とする通信装置、を提案する。【００１９】
この構成によれば、データセグメントの再送時にバックオフアルゴリズムの適用が抑止されている場合であっても、スプリアスタイムアウトが発生した場合には、再送タイムアウト時間を増加させることができる。これにより、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。【００２０】
また、前記確認応答にはシーケンス番号がそれぞれ付与されており、前記スプリアスタイムアウト判定手段は、前記データセグメントの再送直後に受信した第１の確認応答のシーケンス番号が前回受信したものよりも進んでいる場合であって、かつ、前記第１の確認応答の直後に受信した第２の確認応答のシーケンス番号が前回受信したものよりも進んでいる場合には、スプリアスタイムアウトが発生したと判定するようになっていてもよい。【００２１】
この構成によれば、前記データセグメントの再送直後における確認応答に基づいて、発生したタイムアウトがスプリアスタイムアウトであったか否かを判定し、再送タイムアウト時間を増加させることができる。これにより、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。【００２２】
また、前記再送タイムアウト時間増加手段は、前記バックオフアルゴリズムの適用が抑止されている場合に、前記データセグメントの再送直後に受信した第１の確認応答に応じて送信される少なくとも１つの新規のデータセグメントを送信する際の前記再送タイムアウト時間を増加させるようになっていてもよい。
この構成によれば、第１の確認応答の受信後に送信される少なくとも１つの新規のデータセグメントについて、再送タイムアウト時間を増加することができる。これにより、Ｆ−ＲＴＯアルゴリズム等により第１の確認応答に応じて送信される新規のデータセグメントがスプリアスタイムアウトとなることを回避し、スプリアスタイムアウトが連続発生するという事態を回避することが可能となる。【００２３】
また、前記再送タイムアウト時間増加手段は、前記再送タイムアウト時間を２倍とするようになっていてもよい。
この構成によれば、データセグメント再送時の再送タイムアウト時間を２倍とすることができるため、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避できる可能性がより高くなる。【００２４】
また、前記スプリアスタイムアウト判定手段は、Ｆ−ＲＴＯアルゴリズムにより前記判定を行うようになっていてもよい。
この構成によればデータセグメントの再送時にバックオフアルゴリズムが抑止され、かつＦ−ＲＴＯを用いてスプリアスタイムアウトを検出した場合には、データセグメント再送時の再送タイムアウト時間を増加させることができる。これにより、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。【００２５】
また、本発明は、データセグメントの送信およびその確認応答の受信を順次行い、データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信方法であって、データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定するスプリアスタイムアウト判定ステップ（例えば図８中のステップＳ８０９に対応）と、前記スプリアスタイムアウト判定ステップによってスプリアスタイムアウトが発生したと判定された場合に、前記再送タイムアウト時間を増加させる再送タイムアウト時間増加ステップ（例えば図８中のステップＳ８０８に対応）と、を含むことを特徴とする通信方法、を提案する。【００２６】
この構成によれば、データセグメントの再送時にバックオフアルゴリズムの適用が抑止されている場合であっても、スプリアスタイムアウトが発生した場合には、再送タイムアウト時間を増加させることができる。これにより、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。
【発明の効果】
【００２７】
以上説明したように、本発明によれば、データセグメントの再送時にバックオフアルゴリズムが抑止されている場合にスプリアスタイムアウトが発生した場合には、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続発生するという事態を回避することが可能となる。
【図面の簡単な説明】
【００２８】
【図１】本実施形態に係る通信装置における動作を示す図である。
【図２】本実施形態に係る通信システムの構成例を示す図である。
【図３】本実施形態に係る通信システムにおけるプロトコルスタックを示す図である。
【図４】セグメントの欠落による再送の具体例を示す図である。
【図５】本実施形態に係るサーバ装置の構成例を示すブロック図である。
【図６】本実施形態に係る通信端末の構成例を示すブロック図である。
【図７】本実施形態に係るサーバ装置における処理の流れを示すフローチャートである。
【図８】タイムアウト再送処理の流れを示すフローチャートである。
【図９】従来技術における問題点を説明する図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施の形態について図面を参照しながら説明する。
（動作概要）
まず、本実施形態に係る通信装置における動作の概要について図１を参照して説明する。なお、図１においては、遅延ＡＣＫ方式が採用されていることを前提とする。
最初に、送信側端末（本実施形態に係る通信装置に対応する）から受信側端末にＳｅｇｍｅｎｔ１、Ｓｅｇｍｅｎｔ２を送信し（Ｓ１０１、Ｓ１０１’）、これに対する受信側端末からのＡＣＫ２（Ｓ１０２）が、Ｓｅｇｍｅｎｔ１（Ｓ１０１）を送信してから再送タイムアウト時間である時間ｔRTO経過後に受信されたとすると（スプリアスタイムアウトの発生）、送信側端末からは再送タイムアウト時間についてバックオフアルゴリズムの適用を抑止してＳｅｇｍｅｎｔ１が再送される（Ｓ１０３）。さらに、Ｆ−ＲＴＯアルゴリズムにより、ＡＣＫ２（Ｓ１０２）が受信された後、新たな未送信セグメントであるＳｅｇｍｅｎｔ５とＳｅｇｍｅｎｔ６が送信されるが（Ｓ１０４、Ｓ１０５）、この際の再送タイムアウト時間を例えば２倍にする等して増加させることで、Ｓｅｇｍｅｎｔ５（及びＳｅｇｍｅｎｔ６）に対するＡＣＫ６（Ｓ１０６）がスプリアスタイムアウトとなることを回避することができる。
【００３０】
（通信装置の構成）
次に、本実施形態に係る通信装置であるサーバ装置を含む通信システムの構成例について図２を参照して説明する。図２に示す通信システムは、サーバ装置１０と、無線ネットワーク１と、無線制御装置２０と、通信端末３０とから構成される。また、図３は、本実施形態に係る通信システムにおけるプロトコルスタックを示す図である。Ｌ１、Ｌ２は、それぞれＯＳＩ（Open Systems Interconnection）参照モデルにおける物理層、データリンク層に該当し、ＩＰはネットワーク層、ＴＣＰはトランスポート層に該当する。すなわち、サーバ装置１０と通信端末３０とは、ＯＳＩ参照モデルのトランスポート層に位置するＴＣＰに従って通信を行う。ＴＣＰでは、データ送信毎にデータが確実に受信されたことを示すＡＣＫを待つ通信、すなわち確認型通信が行われる。
【００３１】
図２に戻り、無線ネットワーク１は、具体的には、例えば無線ＬＡＮが接続されたＷＡＮやＬＡＮ、携帯電話システムの交換ネットワークとこれに接続するＷＡＮやＬＡＮ、インターネットである。
サーバ装置１０は、無線ネットワーク１および無線制御装置２０を介して通信端末３０にデータを伝達する。また、サーバ装置１０は、送信部１０１と、タイムアウト判断部１０２と、再送部１０３と、スプリアスタイムアウト判定部１０４と、再送タイムアウト時間増加部１０５と、を有する。このサーバ装置１０は、例えばサーバ、ワークステーションを用いて実現される。
【００３２】
送信部１０１は、送信データを複数に分割して生成されるセグメントを、無線ネットワーク１を介して通信端末３０へ送信する。セグメントにはシーケンス番号を含むヘッダを付し、シーケンス番号の小さい順に通信端末３０へ送信する。
タイムアウト判断部１０２は、送信部１０１からセグメントが送信されると、その送信時刻を保持し、このセグメントに対するＡＣＫが送信時刻から一定時間内、すなわち再送タイムアウト時間内に受信されなかった場合にはタイムアウトが発生したと判断する。なお、再送タイムアウト時間の値がＲＴＴよりも小さい値に設定された場合にはスプリアスタイムアウトが発生しやすくなるため、この場合特に、本発明に係る通信装置の再送制御が有効となる。
【００３３】
再送部１０３は、タイムアウト判断部１０２においてタイムアウトが発生したと判断された場合に、ｎ回目（ｎは正の整数）の再送までは再送タイムアウト時間に対してバックオフアルゴリズムを適用せず、ｎ回目を超える再送においては再送タイムアウト時間に対してバックオフアルゴリズムを適用して、タイムアウトとなったセグメントを送信部１０１に再送させる。バックオフアルゴリズムは、セグメント再送時の再送タイムアウト時間を増加させるアルゴリズムであり、代表的なものに再送タイムアウト時間を指数関数的に増加させる指数バックオフアルゴリズムがある。
【００３４】
スプリアスタイムアウト判定部１０４は、セグメント再送直後に受信した確認応答に基づいて、タイムアウト判断部１０２において発生したタイムアウトがスプリアスタイムアウトであるか否かを判定する。「確認応答」とは、サーバ装置１０から送信されたセグメントを通信端末３０において受信できたことを表す情報であり、具体的にはＴＣＰ／ＩＰにおけるＡＣＫ等が該当する。
【００３５】
（スプリアスタイムアウト判定部）
スプリアスタイムアウト判定部１０４は、再送部１０３により再送されたセグメントの再送直後に受信した第１の確認応答のシーケンス番号が前回受信したものより進んでいる場合であって、かつ、前記第１の確認応答の直後に受信した第２の確認応答のシーケンス番号が前回受信したものより進んでいる場合には、スプリアスタイムアウトが発生したと判定する。
【００３６】
例えば、図１の例において、送信部１０１から送信したＳｅｇｍｅｎｔ１（Ｓ１０１）についてスプリアスタイムアウトが発生した場合、タイムアウトの発生後、再送部１０３によって送信部１０１からタイムアウトしたＳｅｇｍｅｎｔ１が再送され（Ｓ１０３）、その後、最初のセグメントについての第１の確認応答であるＡＣＫ２を受信することになる（Ｓ１０２）。この場合、受信した確認応答ＡＣＫ１のシーケンス番号は前回受信したものより進んでいる。もし、受信した確認応答のシーケンス番号が進んでいない場合には、それは最初のセグメントについての確認応答ではなく、それ以前に送信されたセグメントの重複ＡＣＫ等である。
【００３７】
しかしながら、ここでの確認応答のシーケンス番号が進んでいたとしても、このことのみによってただちに、発生したタイムアウトがスプリアスタイムアウトであったとは言えない。なぜならば、図４に示すように、Ｓｅｇｍｅｎｔ２、Ｓｅｇｍｅｎｔ３が何らかの理由で欠落した場合であっても（Ｓ４０１、Ｓ４０２）、Ｓｅｇｍｅｎｔ１の再送（Ｓ４０３）直後に受信する確認応答であるＡＣＫ１（Ｓ４０４）のシーケンス番号は進んでしまうからである。
【００３８】
そこで、スプリアスタイムアウト判定部１０４は、さらに、この第１の確認応答の直後に受信する第２の確認応答のシーケンス番号が進んでいるか否かをチェックする。ここで、第２の確認応答とは、図１におけるＡＣＫ４や図４における重複ＡＣＫ１（Ｓ４０５）が該当する。図１に示すように、最初のセグメントのタイムアウトがスプリアスタイムアウトであった場合には、この第２の確認応答はＡＣＫ４でありシーケンス番号は進んでいることになる。一方、図４に示すように、セグメントが欠落したことによりタイムアウトとなった場合には、この第２の確認応答は重複ＡＣＫとなるので（Ｓ４０５）、シーケンス番号は進んでいないことになる。
以上より、スプリアスタイムアウト判定部１０４は、タイムアウトとなったセグメントの再送直後に受信した第１の確認応答のシーケンス番号が前回受信したものより進んでいる場合であって、かつ、この第１の確認応答の直後に受信した第２の確認応答のシーケンス番号が進んでいる場合に、タイムアウトがスプリアスタイムアウトであったと判定する。
【００３９】
（再送タイムアウト時間増加部）
図２に戻り、再送タイムアウト時間増加部１０５は、スプリアスタイムアウト判定部１０４によってスプリアスタイムアウトが発生したと判定された場合に、再送タイムアウト時間を増加させる。どのような割合にて増加させるかは、例えば指数バックオフアルゴリズムのように２倍としてもよいし、他の割合によってもよい。
【００４０】
また、再送タイムアウト時間増加部１０５は、より具体的には、再送タイムアウト時間について前記バックオフアルゴリズムの適用が抑止されている場合に、再送部１０３によるセグメントの再送直後に受信した第１の確認応答に応じて送信される少なくとも１つの新規のデータセグメントを送信する際の再送タイムアウト時間を増加させる。ここで、バックオフアルゴリズムの適用が抑止されている場合に限るのは、図９において説明したように、本発明が解決すべき課題は、最初の第１の確認応答が再送タイムアウト時間経過後に受信された場合、その後に送信される新たな未送信セグメントが同じ再送タイムアウト時間で送信されることにより再度タイムアウトとなることを回避することである。よって、未送信セグメントの送信時にバックオフアルゴリズムが適用されているならば、さらに再送タイムアウト時間を増加させる必要はなく、バックオフアルゴリズムが適用されない場合にのみ再送タイムアウト時間を増加させればよいからである。また、再送部１０３によるセグメントの再送直後に受信した第１の確認応答に応じて送信される少なくとも１つの新規のデータセグメントとは、図１の例であれば、Ｓｅｇｍｅｎｔ５（Ｓ１０４）やＳｅｇｍｅｎｔ６（Ｓ１０５）が該当する。なお、図１においては新規のデータセグメントを２つ送信しているが（Ｓ１０４、Ｓ１０５）、１つのみのデータセグメントを送信する場合であっても、本発明は同様の効果を奏する。
なお、図２においてはサーバ装置１０と通信端末３０とが通信を行う場合を示しているが、サーバ装置１０に代えてＴＣＰ通信により通信端末３０にデータ送信を行う通信機器であってもよく、例えば携帯電話端末等であってもよい。
【００４１】
（サーバ装置の具体的構成）
ここで、本実施形態に係るサーバ装置１０のより具体的な構成例について説明する。図５は、サーバ装置１０の構成例を示すブロック図である。図５を参照すると、サーバ装置１０は、ＣＰＵ（Central Processing Unit）１１、不揮発性記憶装置１２、ＲＡＭ（Random Access Memory）１３、ネットワークインタフェース１４、を備えている。
【００４２】
サーバ装置１０は、一般的なコンピュータと同様にＣＰＵ１１が不揮発性記憶装置１２に記憶されているプログラムを、ＲＡＭ１３をワークエリアとして実行することで、各種の処理を行う。不揮発性記憶装置１２は電源を供給しなくても記憶を保持する記憶装置であり、例えばＲＯＭ（Read Only Memory）、フラッシュメモリ、強誘電体メモリ、磁気抵抗メモリ、磁気ディスク、光ディスク、磁気テープ等である。不揮発性記憶装置１２には、プログラムの実行処理を行わせるための制御プログラム（図示しない）と、ＴＣＰに従って通信処理を行わせるための通信プログラム１２１が記憶されている。また、通信プログラム１２１には、上述した送信部１０１、タイムアウト判断部１０２、再送部１０３、スプリアスタイムアウト判定部１０４、再送タイムアウト時間増加部１０５に対応するモジュールが含まれており、必要に応じて各モジュールはＲＡＭ１３に展開されＣＰＵ１１により実行される。また、ネットワークインタフェース１４は、無線ネットワーク１とデータの送受信を行うための有線又は無線の通信インタフェースである。
【００４３】
（無線制御装置）
図２に戻り、無線制御装置２０は、通信端末３０と無線リンクを介して接続し、通信端末３０と無線ネットワーク１との間の無線インタフェースとして機能する。無線制御装置２０は、具体的には、例えば、無線ＬＡＮのＡＰ（Access Point）、携帯電話システムのＲＡＮ（Radio Access Network）である。
（通信端末）
通信端末３０は、サーバ装置１０から送信されるセグメントを受信する。通信端末３０は、具体的には、例えば携帯電話端末、無線通信機能を備えたＰＣ（パーソナルコンピュータ）である。
【００４４】
（通信端末の具体的構成）
次に、本実施形態に係る通信端末３０のより具体的な構成例について説明する。図６は、通信端末３０の構成例を示すブロック図である。図６を参照すると、通信端末３０は、無線インタフェース３１、ＩＰ処理部３２、ＴＣＰ処理部３３、アプリケーション処理部３４、を備えている。
無線インタフェース３１は、無線ネットワーク１とのインタフェースとして機能する。無線インタフェース３１は、具体的には、アンテナ、高周波処理部、およびベースバンド処理部（図示しない）等を備える。
【００４５】
ＩＰ処理部３２は、無線ネットワーク１から割り当てられたＩＰアドレス、又は通信端末３０に対してユーザが設定した一意のアドレスによって、無線ネットワーク１において識別される。
ＴＣＰ処理部３３は、再送制御や輻輳制御を実行する。これによって、より信頼性の高い通信を可能とする。
アプリケーション処理部３４は、ＷｅｂブラウザやＦＴＰ（File Transfer Protocol）クライアント、メールクライアント等、ユーザが利用するアプリケーションを実行する機能を有する。
【００４６】
（サーバ装置の処理の流れ）
図７は、本実施形態に係るサーバ装置１０の処理の流れを示すフローチャートである。
最初に、サーバ装置１０の送信部１０１から通信端末３０に対してデータセグメントを送信する（ステップＳ７０１）。
次に、タイムアウト判断部１０２において、ステップＳ７０１にて送信したデータセグメントについてタイムアウトが発生したか判断する（ステップＳ７０２）。タイムアウトが発生した場合、すなわち再送タイムアウト時間内に通信端末３０からのＡＣＫを受信しなかった場合には、タイムアウト再送処理（Ｓ７０３）に移行する。タイムアウトが発生しなかった場合、すなわち再送タイムアウト時間内に通信端末３０からのＡＣＫを受信した場合には、処理を終了する。
次に、ステップＳ７０３においてタイムアウト再送処理を実行する。なお、タイムアウト再送処理については後述する。
【００４７】
（タイムアウト再送処理）
次に、図８を用いて、タイムアウト再送処理の具体例について説明する。図８は、タイムアウト再送処理の流れを示すフローチャートである。このタイムアウト再送処理は、図７のステップＳ７０３にて実行される処理である。
最初に、再送部１０３によって、送信部１０１からタイムアウトしたセグメントを再送する（ステップＳ８０１）。
次に、ステップＳ８０１における再送がｎ回目以下の再送であるか判断する（ステップＳ８０２）。ｎ回目以下の再送である場合は、再送タイムアウト時間についてバックオフ処理を実行しないため、そのままステップＳ８０４に移行する。ｎ回目以下の再送ではない場合（すなわちｎ＋１回目以上の再送である場合）は、再送タイムアウト時間についてバックオフ処理を実行するために再送タイムアウト時間を増加して（ステップＳ８０３）、ステップＳ８０４に移行する。なお、上記ステップＳ８０２及びステップＳ８０３は再送タイムアウト時間増加部１０５において実行される。
【００４８】
次に、ＡＣＫ（第１の確認応答）を受信したか否かの判断を行うが（ステップＳ８０４）、ＡＣＫを受信するまでは本ステップを繰り返し、ＡＣＫを受信した場合にはステップＳ８０５に移行する。
次に、ステップＳ８０４にて受信したＡＣＫのシーケンス番号が前回受信したＡＣＫのシーケンス番号よりも進んでいるかを判断する（ステップＳ８０５）。ＡＣＫのシーケンス番号が進んでいる場合には、ステップＳ８０６に移行する。ＡＣＫのシーケンス番号のシーケンス番号が進んでいない場合にはタイムアウト再送処理を終了する。
【００４９】
ステップＳ８０６においては、再送タイムアウト時間を一時的に保存する。これは、後述するステップＳ８０９においてタイムアウトがスプリアスタイムアウトではないと判断された場合に、後述のステップＳ８０８にて増加させる再送タイムアウト時間を元に戻すためである。
ステップＳ８０７においては、送信部１０１にて実行されたセグメントの再送がｎ回目以下の再送であるか（バックオフ処理が実行されたか）を判断する。ｎ回目以下の再送である場合には、バックオフ処理が実行されていないため再送タイムアウト時間を増加させて（ステップＳ８０８）、ステップＳ８０９に移行する。ｎ回目以下の再送ではない場合には、すでにステップＳ８０２にてバックオフ処理が実行されているので、何も実行せずにステップＳ８０９に移行する。なお、上記ステップＳ８０７及びステップＳ８０８は再送タイムアウト時間増加部１０５において実行される。
【００５０】
次に、タイムアウトがスプリアスタイムアウトであったか判断する（Ｓ８０９）。スプリアスタイムアウトでなかった場合には、ステップＳ８０６にて一時的に保存しておいた再送タイムアウト時間を用いて、ステップＳ８０８にて増加させた再送タイムアウト時間を元の時間に復旧させる（ステップＳ８１０）。スプリアスタイムアウトであった場合には、タイムアウト再送処理を終了する。なお、ステップＳ８０９の処理はスプリアスタイムアウト判定部１０４によって実行されるが、スプリアスタイムアウト判定部１０４は、ステップＳ８０５おいてＡＣＫのシーケンス番号が前回受信したものよりも進んだこと、及び、このＡＣＫの次に受信されるＡＣＫ（第２の確認応答）のシーケンス番号が前回受信したものよりも進んだことをもって、発生した再送タイムアウトがスプリアスタイムアウトであることを判定することができる。
【００５１】
（通信方法）
上述した通信システムにおいては、以下のような通信方法が実現されている。すなわち、データセグメントの送信およびその確認応答の受信を順次行い、データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信方法であって、データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定するスプリアスタイムアウト判定ステップ（例えば図８中のステップＳ８０９に対応）と、前記スプリアスタイムアウト判定ステップによってスプリアスタイムアウトが発生したと判定された場合に、前記再送タイムアウト時間を増加させる再送タイムアウト時間増加ステップと（例えば図８中のステップＳ８０８に対応）、を含むことを特徴とする通信方法が実現されている。
【００５２】
この通信方法によれば、データセグメントの再送時にバックオフアルゴリズムの適用が抑止されている場合であっても、スプリアスタイムアウトが発生した場合には、再送タイムアウト時間を増加させることができる。これにより、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。
【００５３】
（まとめ）
以上説明したように、本発明によれば、データセグメントの再送時にバックオフアルゴリズムが抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。また、特に、再送タイムアウト時間がＲＴＴよりも小さい値に設定されている場合にはスプリアスタイムアウトが発生しやすいため、本発明はより有効である。
【００５４】
また、上記の説明においては、スプリアスタイムアウトの検出にＦ−ＲＴＯアルゴリズムを用いる場合を主に想定しているが、他のアルゴリズムを用いる場合であっても、データセグメントの再送直後に受信した第１の確認応答に応じて新たなセグメントが送信されるようなアルゴリズムであれば、同様にスプリアスタイムアウトの連続発生という課題が生じうるため、そのような場合にも本発明は同様の効果を奏する。すなわち、本発明はＦ−ＲＴＯが採用される場合に限定されるものではない。
【符号の説明】
【００５５】
１  無線ネットワーク
１０  サーバ装置
１０１  送信部
１０２  タイムアウト判断部
１０３  再送部
１０４  スプリアスタイムアウト判定部
１０５  再送タイムアウト時間増加部
１１  ＣＰＵ
１２  不揮発性記憶装置
１２１  通信プログラム
１３  ＲＡＭ
１４  ネットワークインタフェース
２０  無線制御装置
３０  通信端末
３１  無線インタフェース
３２  ＩＰ処理部
３３  ＴＣＰ処理部
３４  アプリケーション処理部
【図１】
2010064421.tif 000003
【図２】
2010064421.tif 000004
【図３】
2010064421.tif 000005
【図４】
2010064421.tif 000006
【図５】
2010064421.tif 000007
【図６】
2010064421.tif 000008
【図７】
2010064421.tif 000009
【図８】
2010064421.tif 000010
【図９】
2010064421.tif 000011
【国際調査報告】
2010064421.tif 000012
2010064421.tif 000013
2010064421.tif 000014
2010064421.tif 000015