(57)【特許請求の範囲】
【請求項１】
ネットワークを介して、通信相手端末にデータを送信する通信端末であって、
前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定し、前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する調整部と、
前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定するデータ送信部と、
を備え、
前記調整部は、前記通信相手端末からの、前記データに対応する確認応答に記載された、前記推奨広告ウィンドウサイズを観察し、前記通信相手端末から前記推奨広告ウィンドウサイズがゼロと広告された場合、前記推奨広告ウィンドウサイズがゼロになるまでに、当該通信相手端末が受信したデータ量を、送信可能なデータ量として決定する、
通信端末。
【請求項２】
ネットワークを介して、通信相手端末にデータを送信する通信端末であって、
前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定し、前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する調整部と、
前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定するデータ送信部と、
を備え、
前記調整部は、送信データの確認応答として、前記通信相手端末から、通信コネクションのリセットを示すパケットを含む確認応答を受信した場合、当該確認応答に対応する前記送信データのデータサイズを、一度に送信不可能なデータサイズとして決定する、
通信端末。
【請求項３】
前記調整部は、基準遅延時間に対する通信遅延時間の比を算出し、前記比を前記補正係数として決定する、請求項１又は２に記載の通信端末。
【請求項４】
前記調整部は、第１の前記推奨広告ウィンドウサイズと、第１の前記推奨広告ウィンドウサイズを受信後における第２の前記推奨広告ウィンドウサイズとの差分に基づいて、前記補正係数を増減する、請求項１乃至３のいずれか一に記載の通信端末。
【請求項５】
前記調整部は、パケットロスの有無に基づいて、前記補正係数を増減する、請求項１乃至３のいずれか一に記載の通信端末。
【請求項６】
前記データ送信部は、単位時間当たりに送信可能なデータ量が、所定の閾値より少ない場合、前記補正広告ウィンドウサイズに基づいて決定した前記送信可能データ量のデータを前記通信相手端末に送信する、請求項１乃至５のいずれか一に記載の通信端末。
【請求項７】
ネットワークを介して、通信相手端末にデータを送信する通信端末が、
前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定する工程と、
前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する工程と、
前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定する工程と、
前記通信相手端末からの、前記データに対応する確認応答に記載された、前記推奨広告ウィンドウサイズを観察し、前記通信相手端末から前記推奨広告ウィンドウサイズがゼロと広告された場合、前記推奨広告ウィンドウサイズがゼロになるまでに、当該通信相手端末が受信したデータ量を、送信可能なデータ量として決定する工程と、
を含む通信方法。
【請求項８】
ネットワークを介して、通信相手端末にデータを送信する通信端末が、
前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定する工程と、
前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する工程と、
前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定する工程と、
送信データの確認応答として、前記通信相手端末から、通信コネクションのリセットを示すパケットを含む確認応答を受信した場合、当該確認応答に対応する前記送信データのデータサイズを、一度に送信不可能なデータサイズとして決定する工程と、
を含む通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信端末、通信方法及びプログラムに関する。
【背景技術】
【０００２】
ＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）通信方式は、インターネットで用いられる代表的な通信プロトコルである。ＴＣＰ／ＩＰ通信方式では、効率良く信頼性の高い通信を実現するために、受信側の通信端末（以下、「受信端末」と呼ぶ）は、送信側の通信端末（以下、「送信端末」と呼ぶ）に対して、データ受信前に、受信可能なデータ番号（以下、データ量とも呼ぶ）を広告する。送信端末は、受信端末において受信可能なデータ番号の範囲内で、受信端末に向けてデータを送信する。以下、受信端末が広告する、受信端末において受信可能なデータ番号を、広告ウィンドウサイズ（ＲＷＩＮ（Receiver’s Advertised Window））と呼ぶ。
【０００３】
ここで、適切なサイズに広告ウィンドウサイズを設定し、通信効率を向上させることが好ましい。そこで、受信端末は、当該受信端末において受信可能なデータ量であると共に、通信効率が向上するように、広告ウィンドウサイズを決定する技術が提案されている。特許文献１−３においては、受信端末が、データの受信結果、伝送効率に応じて、広告ウィンドウサイズを制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】再公表特許第２００８−０３２７５０号公報
【特許文献２】再公表特許第２００７−０４３３７３号公報
【特許文献３】特開２０１４−０７２６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
なお、上述先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
【０００６】
上述の通り、適切なサイズに広告ウィンドウサイズを設定し、通信効率を向上させることが好ましい。しかし、受信端末において設定される広告ウィンドウサイズが、実際に受信端末において受信可能なデータ量より小さい場合がある。その場合、送信端末は、実際に受信端末において受信可能なデータ量より小さいデータ量を、受信端末に送信することとなり、通信効率の低下に繋がる。
【０００７】
また、ＴＣＰ／ＩＰ通信方式においては、送信端末と受信端末との間の通信遅延が大きいほど、送信端末が、データ送信後に、広告ウィンドウサイズを受信するまでの時間が長くなる。また、受信端末がデータを受信し、次のデータを受信可能な状態であっても、送信端末は、広告ウィンドウサイズに影響され、送信データ量を制限される場合がある。
【０００８】
受信端末が、特許文献１−３に記載されるように、データの受信結果、伝送効率に応じて、広告ウィンドウサイズを制御する機能を備えていない場合、送信端末は、通信遅延による通信効率の低下を防止できない。
【０００９】
そこで、本発明は、通信効率の低下を抑制することに貢献する通信端末、通信方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の視点によれば、ネットワークを介して、通信相手端末にデータを送信する通信端末であって、前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定し、前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する調整部と、前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定するデータ送信部と、
を備える通信端末が提供される。
前記第１の視点の第１変形として、ネットワークを介して、通信相手端末にデータを送信する通信端末であって、前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定し、前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する調整部と、前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定するデータ送信部と、を備え、前記調整部は、前記通信相手端末からの、前記データに対応する確認応答に記載された、前記推奨広告ウィンドウサイズを観察し、前記通信相手端末から前記推奨広告ウィンドウサイズがゼロと広告された場合、前記推奨広告ウィンドウサイズがゼロになるまでに、当該通信相手端末が受信したデータ量を、送信可能なデータ量として決定する、通信端末が提供される。
前記第１の視点の第２変形として、ネットワークを介して、通信相手端末にデータを送信する通信端末であって、前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定し、前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する調整部と、前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定するデータ送信部と、を備え、前記調整部は、送信データの確認応答として、前記通信相手端末から、通信コネクションのリセットを示すパケットを含む確認応答を受信した場合、当該確認応答に対応する前記送信データのデータサイズを、一度に送信不可能なデータサイズとして決定する、通信端末が提供される。
【００１１】
本発明の第２の視点によれば、ネットワークを介して、通信相手端末にデータを送信する通信端末が、前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定する工程と、前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する工程と、前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定する工程と、を含む通信方法が提供される。
なお、本方法は、ネットワークを介して、通信相手端末にデータを送信する通信端末という、特定の機械に結び付けられている。
前記第２の視点の第１変形として、ネットワークを介して、通信相手端末にデータを送信する通信端末が、前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定する工程と、前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する工程と、前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定する工程と、前記通信相手端末からの、前記データに対応する確認応答に記載された、前記推奨広告ウィンドウサイズを観察し、前記通信相手端末から前記推奨広告ウィンドウサイズがゼロと広告された場合、前記推奨広告ウィンドウサイズがゼロになるまでに、当該通信相手端末が受信したデータ量を、送信可能なデータ量として決定する工程と、を含む通信方法が提供される。
前記第２の視点の第１変形として、ネットワークを介して、通信相手端末にデータを送信する通信端末が、前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定する工程と、前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する工程と、前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定する工程と、送信データの確認応答として、前記通信相手端末から、通信コネクションのリセットを示すパケットを含む確認応答を受信した場合、当該確認応答に対応する前記送信データのデータサイズを、一度に送信不可能なデータサイズとして決定する工程と、を含む通信方法が提供される。
【００１２】
本発明の第３の視点によれば、前記通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定する処理と、前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する処理と、前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定する処理と、をネットワークを介して、通信相手端末にデータを送信する通信端末を制御するコンピュータに実行させるプログラムが提供される。
なお、本プログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１３】
本発明の各視点によれば、通信効率の低下を抑制することに貢献する通信端末、通信方法及びプログラムが提供される。
【図面の簡単な説明】
【００１４】
【図１】一実施形態の概要を説明するための図である。
【図２】通信システム１の全体構成の一例を示す図である。
【図３】送信端末２００の内部構成の一例を示すブロック図である。
【図４】受信端末３００の内部構成の一例を示すブロック図である。
【図５】第１の実施形態に係る送信端末２００の動作の一例を示すフローチャートである。
【図６】第１の実施形態に係る通信システム１の比較形態における、データの送受信の一例である。
【図７】第１の実施形態に係る通信システム１における、データの送受信の一例である。
【図８】第２の実施形態に係る送信端末２００の動作の一例を示すフローチャートである。
【図９】第４の実施形態に係る送信端末２００の動作の一例を示すフローチャートである。
【図１０】第４の実施形態に係る送信端末２００の動作の一例を示すフローチャートである。
【図１１】第５の実施形態に係る送信端末２００の動作の一例を示すフローチャートである。
【図１２】第５の実施形態に係る送信端末２００の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００１６】
上述の通り、通信効率の低下を抑制することに貢献する通信端末が望まれる。
【００１７】
そこで、一例として図１に示す通信端末（送信端末に相当）１０００を提供する。通信端末１０００は、ネットワークを介して、通信相手端末（受信端末に相当）２０００にデータを送信する。通信端末１０００は、調整部１００１と、データ送信部１００２と、を備える。
【００１８】
調整部１００１は、通信相手端末から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、当該通信相手端末との通信状況に基づいて補正係数を決定する。そして、調整部１００１は、補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する。そして、データ送信部１００２は、補正広告ウィンドウサイズに基づいて、送信可能データ量を決定する。
【００１９】
つまり、通信相手端末２０００がデータの受信結果、伝送効率に応じて、広告ウィンドウサイズを制御する機能を備えていない場合であっても、通信端末１０００は、通信相手端末との通信効率に応じて、送信するデータ量を調整できる。従って、通信端末１０００は、通信効率の低下を抑制することに貢献する。
【００２０】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００２１】
図２は、本実施形態に係る通信システム１の全体構成の一例を示す図である。図２を参照すると、データを送信する通信端末（以下、「送信端末」と呼ぶ）２００と、データ受信する通信端末（以下、「受信端末」と呼ぶ）３００と、ネットワーク１０１と、ＴＣＰ（Transmission Control Protocol）コネクション１０２と、が示されている。
【００２２】
送信端末２００、受信端末３００は、ＴＣＰコネクション１０２を利用して通信を行う情報処理装置である。図２を参照すると、送信端末２００と受信端末３００は、ネットワーク１０１を介して、ＴＣＰコネクション１０２を利用してデータを転送する。以下の説明では、送信端末２００を送信側の通信端末、受信端末３００を受信側の通信端末として説明するが、送信端末２００、受信端末３００が、データを送受信できる構成であっても良い。なお、図２においては、送信端末２００、受信端末３００を夫々、１つ示すが、説明の便宜上、１つの送信端末２００、受信端末３００を示しているに過ぎない。通信システム１は、２以上の送信端末２００、２以上の受信端末３００を含んで構成されても良いことは勿論である。
【００２３】
まず、送信端末２００の内部構成について詳細に説明する。
【００２４】
図３は、送信端末２００の内部構成の一例を示すブロック図である。送信端末２００は、送信端末２００に搭載されたＣＰＵ（Central Processing Unit）にて実行されるアプリケーションプログラム（以下、「アプリケーション」と呼ぶ）２１０と、データ記憶部２２０と、ＴＣＰ送信部２３０と、ＩＰ（Internet Protocol）処理部２４０と、入出力処理部２５０と、を含んで構成される。図３は、簡単のため、本実施形態に係る送信端末２００に関係するモジュールを主に記載する。
【００２５】
データ記憶部２２０は、送信するデータを格納する。アプリケーション２１０は、データをデータ記憶部２２０から取り出し、ＴＣＰ送信部２３０に渡す。
【００２６】
ＴＣＰ送信部２３０は、アプリケーション２１０からデータを受け取り、受け取ったデータをセグメント化し、受信端末３００に送信するデータ量、送信速度を制御する。そして、ＴＣＰ送信部２３０は、セグメント化したデータをＩＰ処理部２４０に渡す。
【００２７】
ＴＣＰ送信部２３０は、セグメント記憶部２３１と、輻輳ウィンドウ決定部２３２と、調整部２３３と、データ送信部２３４と、遅延計測部２３５と、を含んで構成される。
【００２８】
セグメント記憶部２３１は、セグメント化したデータを記憶する。
【００２９】
輻輳ウィンドウ決定部２３２は、輻輳ウィンドウサイズＣＷＮＤ（送信端末２００が送信可能なデータ量）を決定する。
【００３０】
調整部２３３は、通信相手端末（受信端末３００）から、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを受信した場合、通信相手端末との通信状況に基づいて補正係数を決定する。そして、調整部２３３は、補正係数に基づいて、受信した推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する。
【００３１】
具体的には、調整部２３３は、受信端末３００からの確認応答ＡＣＫ（Acknowledgement）に記載された、広告ウィンドウサイズ（上記の「推奨広告ウィンドウサイズ」に相当）ＲＷＩＮを観察し、受信端末３００において実際に受信可能なデータ量を推定する。より具体的には、調整部２３３は、推奨広告ウィンドウサイズＲＷＩＮ、及び通信遅延に基づいて、受信端末３００が実際に受信可能なデータ量を、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗとして推定する。補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗの詳細は後述する。
【００３２】
遅延計測部２３５は、送信したデータに対して、受信端末３００からの確認応答ＡＣＫを受信するまでの時間を計測する。
【００３３】
データ送信部２３４は、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗに基づいて、送信可能データ量を決定する。そして、データ送信部２３４は、ＩＰ処理部２４０にセグメントを渡す。
【００３４】
具体的には、データ送信部２３４は、輻輳ウィンドウサイズＣＷＮＤと、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗとのうち、小さい方を、送信可能なデータ量（以下、「送信可能データ量」と呼ぶ）ＳＷＩＮとして決定する。つまり、データ送信部２３４は、以下の式１に基づいて、送信可能データ量ＳＷＩＮを算出する。
【数１】
0006554807.tif 000002
【００３５】
データ送信部２３４は、決定した送信可能データ量ＳＷＩＮに相当するセグメントを、セグメント記憶部２３１から取り出し、ＩＰ処理部２４０に渡す。
【００３６】
なお、本書では、簡単のため、輻輳ウィンドウサイズＣＷＮＤが十分に大きいとする。そのため、以下の説明では、データ送信部２３４は、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを、送信可能データ量ＳＷＩＮとして決定するとする。
【００３７】
ＩＰ処理部２４０は、ＴＣＰ送信部２３０から受け取ったデータをパケット化し、入出力処理部２５０に渡す。
【００３８】
入出力処理部２５０は、ＩＰ処理部２４０から受け取ったパケットをフレーム化し、ネットワーク（図２に示すネットワーク１０１）に出力する。
【００３９】
ここで、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗの推定に関して詳細に説明する。
【００４０】
調整部２３３は、受信端末３００からの確認応答ＡＣＫに記載された、推奨広告ウィンドウサイズＲＷＩＮに対して、補正係数α（α≧１）を掛けた値を、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗとして推定する（式２）。例えば、調整部２３３は、予め設定された１以上の値を、補正係数αとしても良い。
【数２】
0006554807.tif 000003
【００４１】
調整部２３３は、基準遅延時間に対する通信遅延時間の比を算出し、算出した比を、補正係数αとして決定しても良い。具体的には、調整部２３３は、送信端末２００と受信端末３００との間における、通信遅延時間ＲＴＴ（Round Trip Time）に応じて、補正係数αを決定しても良い。例えば、以下の式３に基づいて、補正係数αを算出しても良い。
【００４２】
式３において、ｓＲＴＴとは、送信端末２００のＴＣＰが、タイムスタンプ等を利用して計測するＲＴＴ（例えば、１ｍｓ）を意味する。以下の説明では、ｓＲＴＴを円滑化ＲＴＴとも呼ぶ。また、式３において、ｂＲＴＴとは、基準となる、近距離通信のＲＴＴ（以下、「基準ＲＴＴ」、又は「基準遅延時間」と呼ぶ）を意味する。なお、通信遅延時間が基準ＲＴＴである環境においては、基準ＲＴＴ毎に、送信端末２００が推奨広告ウィンドウサイズのデータを受信端末３００に送信しても、受信端末３００は、広告ウィンドウサイズを削減することなく、送信されたデータを受信できるものとする。
【数３】
0006554807.tif 000004
【００４３】
なお、送信端末２００は、補正係数αの更新頻度を制限しても良い。例えば、送信端末２００は、補正係数αの更新頻度を、通信遅延時間ｓＲＴＴ毎に１回としても良い。
【００４４】
次に、受信端末３００の内部構成について詳細に説明する。
【００４５】
図４は、受信端末３００の内部構成の一例を示すブロック図である。受信端末３００は、受信端末３００に搭載されたＣＰＵにて実行されるアプリケーション３１０と、データ記憶部３２０と、ＴＣＰ受信部３３０と、ＩＰ処理部３４０と、入出力処理部３５０とを含んで構成される。図４は、簡単のため、本実施形態に係る送信端末２００に関係するモジュールを主に記載する。
【００４６】
入出力処理部３５０は、ネットワーク（図２に示すネットワーク１０１）からフレームを受け取り、受け取ったフレームをＩＰ処理部３４０に渡す。
【００４７】
ＩＰ処理部３４０は、入出力処理部３５０から受け取ったフレームをパケット化し、ＴＣＰ受信部３３０に渡す。
【００４８】
ＴＣＰ受信部３３０は、セグメント記憶部３３１と、ＡＣＫ送信部３３２と、データ受信部３３３と、を含んで構成される。
【００４９】
ＴＣＰ受信部３３０は、ＩＰ処理部３４０から受け取ったパケットをデータ化し、アプリケーション３１０に渡す。
【００５０】
データ受信部３３３は、セグメントを受信する。セグメント記憶部３３１は、データ受信部３３３が受信したセグメントを記憶する。
【００５１】
ＡＣＫ送信部３３２は、受信したデータに対する確認応答ＡＣＫを作成し、送信端末２００に送信する。ここで、ＡＣＫ送信部３３２は、受信可能なデータ量を、広告ウィンドウサイズ（上述の推奨広告ウィンドウサイズＲＷＩＮに相当）として記載した確認応答ＡＣＫを作成する。なお、セグメント記憶部３３１の空き容量が所定の設定値を越える場合、ＡＣＫ送信部３３２は、当該設定値を、広告ウィンドウサイズとして採用する。また、セグメント記憶部３３１の空き容量が所定の設定値以下である場合、ＡＣＫ送信部３３２は、セグメント記憶部３３１の空き容量を、広告ウィンドウサイズとして採用する。
【００５２】
アプリケーション３１０は、ＴＣＰ受信部３３０から受け取ったデータを、データ記憶部３２０に格納する。データ記憶部３２０は、受信したデータを記憶する。
【００５３】
なお、図３、図４に示した各通信端末の各モジュール（各機能ブロック）は、これらの通信端末を構成するコンピュータに、そのハードウェアを用いて、上述した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００５４】
次に、本実施形態に係る送信端末２００の動作について説明する。
【００５５】
図５は、本実施形態に係る送信端末２００の動作の一例を示すフローチャートである。
【００５６】
まず、ステップＳ１０１において、送信端末２００は、受信端末３００へのデータ送信処理を開始する。具体的には、送信端末２００は、送信端末２００と受信端末３００との間で、ＴＣＰコネクションが開設された後、アプリケーション２１０からＴＣＰ送信部２３０にデータが渡されることで、受信端末３００へのデータ送信処理が開始される。
【００５７】
ステップＳ１０２において、送信するデータがあるか否かを、ＴＣＰ送信部２３０は判断する。送信するデータがある場合（ステップＳ１０２のＹｅｓ分岐）には、ステップＳ１０４に遷移する。一方、送信するデータが無く、アプリケーション２１０からＴＣＰコネクションの終了指示があった場合（ステップＳ１０２のＮｏ分岐）には、ステップＳ１０３に遷移し、受信端末３００へのデータ送信処理を終了する（ステップＳ１０３）。
【００５８】
ステップＳ１０４において、ＴＣＰ送信部２３０は送信パケットを作成する。具体的には、ＴＣＰ送信部２３０は、アプリケーション２１０から受け取ったデータをセグメント化し、送信パケットを作成する。
【００５９】
ステップＳ１０５において、送信データが、送信可能なデータ量の範囲内であるか否かを、データ送信部２３４は判断する。送信データが、送信可能なデータ量の範囲内である場合（ステップＳ１０５のＹｅｓ分岐）には、ステップＳ１０６に遷移する。一方、送信データが、送信可能なデータ量の範囲内ではない場合（ステップＳ１０５のＮｏ分岐）には、ステップＳ１０４に戻り、処理を継続する。例えば、ＴＣＰ送信部２３０は、送信パケットを再作成しても良い。または、送信データが、送信可能なデータ量の範囲内ではない場合、受信端末３００へのデータ送信処理を終了しても良い。
【００６０】
初回のデータ送信時には、輻輳ウィンドウ決定部２３２が決定した輻輳ウィンドウサイズＣＷＮＤに基づいて、送信データが、送信可能なデータ量の範囲内であるか否かを、データ送信部２３４は判断する。より具体的には、送信データのデータ量が、輻輳ウィンドウサイズＣＷＮＤ以下である場合（ステップＳ１０５のＹｅｓ分岐）には、データ送信部２３４は、送信データが送信可能なデータ量の範囲内であると判断する。一方、送信データのデータ量が、輻輳ウィンドウサイズＣＷＮＤを越える場合（ステップＳ１０５のＮｏ分岐）には、データ送信部２３４は、送信データが送信可能なデータ量の範囲内ではないと判断する。
【００６１】
また、受信端末３００から確認応答ＡＣＫを、１回以上受信済である場合、輻輳ウィンドウサイズＣＷＮＤ、及び補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗに基づいて、送信データが、送信可能なデータ量の範囲内であるか否かを、データ送信部２３４は判断する。上述の通り、データ送信部２３４は、輻輳ウィンドウサイズＣＷＮＤと、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗとのうち、小さい方を、送信可能データ量ＳＷＩＮとして決定する。
【００６２】
上述の通り、本書では、輻輳ウィンドウサイズＣＷＮＤが十分に大きいとする。その場合、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗに基づいて、送信データが、送信可能なデータ量の範囲内であるか否かを、データ送信部２３４は判断する。具体的には、送信データのデータ量が、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ以下である場合（ステップＳ１０５のＹｅｓ分岐）には、送信データが送信可能なデータ量の範囲内である、とデータ送信部２３４は判断する。一方、送信データのデータ量が、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを越える場合（ステップＳ１０５のＮｏ分岐）には、送信データが送信可能なデータ量の範囲内ではない、とデータ送信部２３４は判断する。
【００６３】
ステップＳ１０６において、送信端末２００は、送信パケットを送信する。そして、遅延計測部２３５は、所定の時間経過後に起動するように、再送タイマを設定する（ステップＳ１０７）。例えば、遅延計測部２３５は、円滑化ＲＴＴ（ｓＲＴＴ）後に起動するように、再送タイマを設定する。
【００６４】
ステップＳ１０８において、再送タイマを設定後、所定の時間が経過したか否かを、遅延計測部２３５は判断する。再送タイマを設定後、所定の時間が経過した場合（ステップＳ１０８のＹｅｓ分岐）には、ステップＳ１０６に戻り、データ送信部２３４は送信パケットを再送する。一方、再送タイマを設定後、所定の時間が経過していない場合（ステップＳ１０８のＮｏ分岐）には、ステップＳ１０９に遷移する。
【００６５】
ステップＳ１０９において、受信端末３００から、確認応答ＡＣＫを受信したか否かを、ＴＣＰ送信部２３０は判断する。確認応答ＡＣＫを受信した場合（ステップＳ１０９のＹｅｓ分岐）には、ステップＳ１１０に遷移する。一方、確認応答ＡＣＫを受信していない場合（ステップＳ１０９のＮｏ分岐）には、ステップＳ１０８に戻り、処理を継続する。
【００６６】
ステップＳ１１０において、調整部２３３は、上述の式２の通り、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを推定する。
【００６７】
ステップＳ１１１において、上述の式１の通り、第１の送信可能データ量を算出する。そして、ステップＳ１０２に戻り、処理を継続する。
【００６８】
次に、本実施形態に係る通信システム１のデータの送受信の一例について説明する。なお、以下の説明では、輻輳ウィンドウサイズは、十分に大きいとする。
【００６９】
まず、図６を参照しながら、本実施形態に係る通信システム１の比較形態における、データの送受信の一例について説明する。具体的には、図６は、受信端末３０１から送信されたＡＣＫに記載された推奨広告ウィンドウサイズに基づいて、送信端末２０１が送信可能データ量を算出し、データを送信する形態の一例を示す。
【００７０】
まず、図６の場合、送信端末２０１がＤａｔａ１を受信端末３０１に送信する。受信端末３０１は、Ｄａｔａ１を受信すると、推奨広告ウィンドウサイズＲＷＩＮ＝３が記載された確認応答ＡＣＫ＝２を送信端末２０１に返信する。
【００７１】
送信端末２０１は、受信した推奨広告ウィンドウサイズＲＷＩＮ＝３に基づいて、Ｄａｔａ３までを受信端末３０１に送信する。具体的には、送信端末２０１は、Ｄａｔａ２、及びＤａｔａ３を受信端末３０１に送信する。
【００７２】
受信端末３０１は、Ｄａｔａ２を受信すると、推奨広告ウィンドウサイズＲＷＩＮ＝４が記載された確認応答ＡＣＫ＝３を送信端末２０１に返信する。送信端末２０１は、受信した推奨広告ウィンドウサイズＲＷＩＮ＝４に基づいて、Ｄａｔａ４までを受信端末３０１に送信する。ここで、送信端末２０１は、Ｄａｔａ１〜Ｄａｔａ３を送信済みであるため、Ｄａｔａ４を送信する。
【００７３】
さらに、受信端末３０１はＤａｔａ３を受信すると、推奨広告ウィンドウサイズＲＷＩＮ＝５が記載された確認応答ＡＣＫ＝４を送信端末２０１に返信する。送信端末２０１は、受信した推奨広告ウィンドウサイズＲＷＩＮ＝５に基づいて、Ｄａｔａ５までを受信端末３０１に送信する。ここで、送信端末２０１は、Ｄａｔａ１〜Ｄａｔａ４を送信済みであるため、Ｄａｔａ５を送信する。
【００７４】
そして、受信端末３０１は、Ｄａｔａ４、Ｄａｔａ５を受信すると、確認応答ＡＣＫ＝５、ＡＣＫ＝６を送信端末２０１に返信する。
【００７５】
ここで、図６を参照すると、受信端末３０１において、Ｄａｔａ３とＤａｔａ４との受信間隔は、Ｄａｔａ２とＤａｔａ３との受信間隔に比べて長い。つまり、受信端末３０１は、Ｄａｔａ３を受信してからＤａｔａ４を受信するまでの間は、データを受信することが可能にも関わらず、データを受信せず、待機状態となっている。そして、図６に示すように、受信端末３０１から送信された確認応答ＡＣＫに記載された、推奨広告ウィンドウサイズに基づいて、送信端末２０１が送信可能データ量を算出し、データを送信する場合、通信遅延が大きいほど、待機状態（受信端末３０１がデータを受信しない状態）が長くなる。つまり、図６に示すように、受信端末３０１から送信された確認応答ＡＣＫに記載された、推奨広告ウィンドウサイズに基づいて、送信端末２０１が送信可能データ量を算出する場合、通信遅延が大きいほど、通信効率の低下に繋がる。
【００７６】
次に、図７を参照しながら、本実施形態に係る通信システム１における、データの送受信の一例について説明する。
【００７７】
まず、図６と同様に、送信端末２００がＤａｔａ１を受信端末３００に送信する。受信端末３００は、Ｄａｔａ１を受信すると、推奨広告ウィンドウサイズＲＷＩＮ＝３が記載された確認応答ＡＣＫ＝２を送信端末２００に返信する。
【００７８】
送信端末２００は、確認応答ＡＣＫ＝２を受信すると、推奨広告ウィンドウサイズＲＷＩＮ＝３に基づいて、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを算出する。具体的には、送信端末２００は、確認応答ＡＣＫ＝２を受信すると、円滑化ＲＴＴを計測する。ここでは、送信端末２００は、円滑化ＲＴＴ（ｓＲＴＴ）を、１．５ｍｓと計測したとする。そして、基準ＲＴＴ（ｂＲＴＴ）が１．０ｍｓであるとする。
【００７９】
その場合、送信端末２００は、上述の式３に基づいて、補正係数α＝１．５／１．０＝１．５と算出する。そして、送信端末２００は、上述の式２に基づいて、ＲＷＩＮ＿ｎｅｗ＝２＋（３−２）×１．５＝３．５と推定する。
【００８０】
そして、送信端末２００は、上述の式１に基づいて、送信データ量ＳＷＩＮを算出する。ここで、上述の通り、輻輳ウィンドウサイズＣＷＮＤが十分に大きい値であるとすると、式１に基づいて、送信データ量ＳＷＩＮ＝補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗとなる。
【００８１】
そこで、送信端末２００は、送信データ量ＳＷＩＮがＲＷＩＮ＿ｎｅｗ＝３．５を満たすように、Ｄａｔａ４までを送信する。具体的には、送信端末２００は、Ｄａｔａ２、Ｄａｔａ３、Ｄａｔａ４を受信端末３００に送信する。
【００８２】
受信端末３００は、Ｄａｔａ２を受信すると、推奨広告ウィンドウサイズＲＷＩＮ＝４が記載された確認応答ＡＣＫ＝３を送信端末２００に返信する。また、受信端末３００は、Ｄａｔａ３を受信すると、推奨広告ウィンドウサイズＲＷＩＮ＝５が記載された確認応答ＡＣＫ＝４を送信端末２００に返信する。同様に、受信端末３００は、Ｄａｔａ４を受信すると、推奨広告ウィンドウサイズＲＷＩＮ＝６が記載された確認応答ＡＣＫ＝５を送信端末２００に返信する。
【００８３】
送信端末２００は、推奨広告ウィンドウサイズＲＷＩＮ＝４が記載された確認応答ＡＣＫ＝３を受信すると、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを推定する。具体的には、送信端末２００は、上述の式２に基づいて、ＲＷＩＮ＿ｎｅｗ＝３＋（４−３）×１．５＝４．５と推定する。
【００８４】
そこで、送信端末２００は、送信データ量ＳＷＩＮがＲＷＩＮ＿ｎｅｗ＝４．５を満たすように、Ｄａｔａ５までを送信する。具体的には、送信端末２００は、Ｄａｔａ４までを送信済みであるため、Ｄａｔａ５を受信端末３００に送信する。
【００８５】
ここで、上述の通り、図６に示す比較形態においては、送信端末２０１は、Ｄａｔａ１に対する確認応答ＡＣＫ＝２に基づいて、Ｄａｔａ２、Ｄａｔａ３を送信する。そして、図６に示す比較形態においては、送信端末２０１は、Ｄａｔａ２に対する確認応答ＡＣＫ＝３に基づいて、Ｄａｔａ４を送信する。その結果、図６に示す比較形態においては、受信端末３０１は、Ｄａｔａ２を受信してから、Ｄａｔａ２の確認応答に対応するＤａｔａ４を受信するまでに、１つのデータ（Ｄａｔａ３）を受信する。
【００８６】
一方、図７に示す本実施形態に係る通信システム１においては、送信端末２００は、Ｄａｔａ１に対する確認応答ＡＣＫ＝２に基づいて、Ｄａｔａ２、Ｄａｔａ３、Ｄａｔａ４を送信する。そして、図７に示す本実施形態に係る通信システム１においては、送信端末２００は、Ｄａｔａ２に対する確認応答ＡＣＫ＝３に基づいて、Ｄａｔａ５を送信する。その結果、図７に示す本実施形態に係る通信システム１においては、受信端末３００は、Ｄａｔａ２を受信してから、Ｄａｔａ２の確認応答に対応するＤａｔａ５を受信するまでに、２つのデータ（Ｄａｔａ３、Ｄａｔａ４）を受信する。
【００８７】
ここで、図６に示す比較形態と、図７に示す本実施形態とにおいて、通信遅延時間が同一であるとする。その場合、図７に示す本実施形態の受信端末３００におけるデータの受信間隔は、図６に示す比較形態の受信端末３０１におけるデータの受信間隔より、短くなる。その結果、図７に示す本実施形態に係る通信システム１の受信端末３００は、図６に示す比較形態の受信端末３０１より、効率的にデータを受信できる。
【００８８】
以上の通り、本実施形態に係る送信端末２００は、受信端末３００から広告される推奨広告ウィンドウサイズより大きなデータ量のデータを、受信端末３００に送信する。そして、本実施形態に係る送信端末２００は、推奨広告ウィンドウサイズと、通信遅延時間とに基づいて、送信データ量を決定する。そのため、本実施形態に係る通信システム１においては、通信遅延が大きい遠距離通信であっても、受信端末３００から広告される広告ウィンドウサイズにより、通信速度が抑制されることを防ぐことができる。つまり、本実施形態に係る通信システム１は、通信遅延による通信効率の低下を抑制することに貢献する。
【００８９】
また、本実施形態に係る送信端末２００は、通信遅延を考慮し、受信端末３００において基準ＲＴＴ毎に受信されるデータ量が、通信遅延によらず等しくなるように計算する。そのため、本実施形態に係る通信システム１は、受信端末３００の処理性能を考慮して、送信端末２００がデータを送信することで、通信成功確率を向上させることに貢献する。
【００９０】
［第２の実施形態］
次に、第２の実施形態について説明する。
【００９１】
本実施形態は、受信端末から送信される推奨広告ウィンドウサイズに応じて、補正係数αを調整する形態である。なお、本実施形態における説明では、上記の実施形態と重複する部分の説明は省略する。さらに、本実施形態における説明では、上記の実施形態と同一の構成要素には、同一の符号を付し、その説明を省略する。また、本実施形態における説明では、上記の実施形態と同一の作用効果についても、その説明を省略する。
【００９２】
本実施形態に係る送信端末２００、受信端末３００の内部構成は、図３、図４に示す通りである。以下の説明では、第１の実施形態に係る送信端末２００との相違点について、詳細に説明する。
【００９３】
本実施形態に係る調整部２３３は、第１の推奨広告ウィンドウサイズＲＷＩＮと、第１の推奨広告ウィンドウサイズを受信後における第２の推奨広告ウィンドウサイズＲＷＩＮとに基づいて、補正係数αを増減する。
【００９４】
なお、以下の説明では、上記の第１の推奨広告ウィンドウサイズＲＷＩＮを、ＲＷＩＮ（ｔ−１）と記す。また、上記の第２の推奨広告ウィンドウサイズＲＷＩＮを、ＲＷＩＮ（ｔ）と記す。また、以下の説明では、第１の推奨広告ウィンドウサイズＲＷＩＮ（ｔ−１）が記載された確認応答ＡＣＫを、ＡＣＫ（ｔ−１）と記す、また、以下の説明では、第２の推奨広告ウィンドウサイズＲＷＩＮ（ｔ）が記載された確認応答ＡＣＫを、ＡＣＫ（ｔ）と記す。また、以下の説明では、推奨広告ウィンドウサイズＲＷＩＮ（ｔ）を用いて推定された、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを、ＲＷＩＮ＿ｎｅｗ（ｔ）と記す。また、以下の説明では、推奨広告ウィンドウサイズＲＷＩＮ（ｔ−１）を用いて推定された、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを、ＲＷＩＮ＿ｎｅｗ（ｔ−１）と記す。
【００９５】
図８は、本実施形態に係る送信端末２００の動作の一例を示すフローチャートである。
【００９６】
図８に示すステップＳ２０１〜ステップＳ２０９は、図５に示すステップＳ１０１〜ステップＳ１０９と同一であるため、詳細な説明を省略する。
【００９７】
ここで、受信端末が３００から確認応答ＡＣＫを受信した（ステップＳ２０９のＹｅｓ分岐）とする。ステップＳ２１０において、推奨広告ウィンドウサイズＲＷＩＮが減少したか否かを、調整部２３３は判断する。具体的には、調整部２３３は、推奨広告ウィンドウサイズＲＷＩＮ（ｔ）と、前回受信した推奨広告ウィンドウサイズＲＷＩＮ（ｔ−１）と、を比較する。
【００９８】
推奨広告ウィンドウサイズが減少した場合（ステップＳ２１０のＹｅｓ分岐）には、補正係数αを減少させる（ステップＳ２１１）。そして、ステップＳ２１３に遷移する。
【００９９】
具体的には、ＲＷＩＮ（ｔ）−ＲＷＩＮ（ｔ−１）＜０の場合（ステップＳ２１０のＹｅｓ分岐）には、受信端末３００から広告される推奨広告ウィンドウサイズＲＷＩＮが減少した、と調整部２３３は判断する。これは、受信端末３００が、前回のデータを受信した時より、受信できるデータ量が減少したことを意味する。そのため、この場合、調整部２３３は、前回のデータ送信時の補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ−１）より、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ）が減少するように、補正係数αを減少させる。
【０１００】
例えば、推奨広告ウィンドウサイズが減少した場合（ステップＳ２１０のＹｅｓ分岐）には、調整部２３３は、以下の式４に基づいて、補正係数αを算出する。
【数４】
0006554807.tif 000005
【０１０１】
上記の式４において、Δは所定の定数（例えば、Δ＝０．１）であっても良い。または、調整部２３３は、所定の関数を用いて、Δを算出しても良い。例えば、調整部２３３は、通信開始からの時間が経過するほど、Δが減少するように、Δを算出しても良い。
【０１０２】
一方、推奨広告ウィンドウサイズが増加した場合（ステップＳ２１０のＮｏ分岐）には、補正係数αを増加させる（ステップＳ２１２）。そして、ステップＳ２１３に遷移する。
【０１０３】
具体的には、ＲＷＩＮ（ｔ）−ＲＷＩＮ（ｔ−１）＞０の場合（ステップＳ２１０のＮｏ分岐）には、受信端末３００から広告される推奨広告ウィンドウサイズＲＷＩＮが増加した、と調整部２３３は判断する。これは、受信端末３００が、前回のデータを受信した時より、多くのデータ量を受信できることを意味する。そのため、この場合、調整部２３３は、前回のデータ送信時の補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ−１）より、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ）が増大するように、補正係数αを増加させる。
【０１０４】
例えば、推奨広告ウィンドウサイズが増加した場合（ステップＳ２１０のＮｏ分岐）には、調整部２３３は、以下の式５に基づいて、補正係数αを算出する。上述の式４と同様に、Δは所定の定数（例えば、Δ＝０．１）であっても良い。また、上述の式４と同様に、調整部２３３は、所定の関数を用いて、Δを算出しても良い。
【数５】
0006554807.tif 000006
【０１０５】
なお、図８には図示しないが、推奨広告ウィンドウサイズが変化しない場合（即ち、ＲＷＩＮ（ｔ−１）＝ＲＷＩＮ（ｔ））には、調整部２３３は、上述の式３に基づいて算出された補正係数αを採用する。
【０１０６】
ステップＳ２１３において、上述の式２に基づいて、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ）を推定する。
【０１０７】
ステップＳ２１４において、上述の式１に、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ）を適用して、送信可能データ量ＳＷＩＮを算出する。
【０１０８】
［変形例１］
本実施形態に係る送信端末２００の変形例１として、データ送信部２３４は、推奨広告ウィンドウサイズＲＷＩＮの変化に基づいて、当該推奨広告ウィンドウサイズＲＷＩＮの送信元の通信相手端末（受信端末３００）が達成可能な受信速度を推定し、推定結果に基づいて、データの送信速度を決定しても良い。上述の通り、推奨広告ウィンドウサイズＲＷＩＮが減少した場合、調整部２３３は、補正係数αを減少させ、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを減少させて推定する。そこで、受信端末３００において受信速度の低下を抑制するために、データ送信部２３４は、推奨広告ウィンドウサイズＲＷＩＮが減少した場合、送信速度を向上させても良い。
【０１０９】
また、上述の通り、推奨広告ウィンドウサイズＲＷＩＮが増加した場合、調整部２３３は、補正係数αを増加させ、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを増加させて推定する。そこで、受信端末３００において達成可能な受信速度を越えないように、データ送信部２３４は、推奨広告ウィンドウサイズＲＷＩＮが増加した場合、送信速度を低下させても良い。
【０１１０】
また、調整部２３３は、広告ウィンドウサイズＲＷＩＮの増減の代わりに、パケットロスの有無に基づいて補正係数αを調整しても良い。送信端末２００（調整部２３３）は、受信端末からのＡＣＫパケットを観察し、パケットロスを示す信号（重複ＡＣＫ）を検出した場合は、補正係数αを減少させる。一方、送信端末２００（調整部２３３）は、パケットロスがなくパケットが転送できた場合は補正係数αを増加させる。
【０１１１】
以上の通り、本実施形態に係る送信端末２００は、受信端末３００から送信される推奨広告ウィンドウサイズに応じて、送信データ量の過大量を調整する。そのため、本実施形態に係る通信システム１は、第１の実施形態に係る通信システム１と同様の効果を奏するとともに、受信端末３００が広告ウィンドウサイズを制御する機能を備えていない場合であっても、送信端末２００から受信端末３００への通信効率を向上させることに貢献する。
【０１１２】
［第３の実施形態］
次に、第３の実施形態について説明する。
【０１１３】
本実施形態は、受信端末から広告される推奨広告ウィンドウサイズが０になるまでに、受信端末が受信したデータ量を、送信可能データ量として記憶する形態である。なお、本実施形態における説明では、上記の実施形態と重複する部分の説明は省略する。さらに、本実施形態における説明では、上記の実施形態と同一の構成要素には、同一の符号を付し、その説明を省略する。また、本実施形態における説明では、上記の実施形態と同一の作用効果についても、その説明を省略する。
【０１１４】
本実施形態に係る送信端末２００、受信端末３００の内部構成は、図３、図４に示す通りである。以下の説明では、第２の実施形態に係る送信端末２００との相違点について、詳細に説明する。
【０１１５】
本実施形態に係る調整部２３３は、通信相手端末（受信端末３００）から推奨広告ウィンドウサイズＲＷＩＮがゼロと広告された場合、推奨広告ウィンドウサイズＲＷＩＮがゼロになるまでに、当該通信相手端末（受信端末３００）が受信したデータ量を、送信可能なデータ量として決定する。
【０１１６】
具体的には、本実施形態に係る調整部２３３は、受信端末３００から広告された推奨広告ウィンドウサイズＲＷＩＮがゼロであるか否かを判断する。そして、受信端末３００から広告された推奨広告ウィンドウサイズＲＷＩＮがゼロである場合には、調整部２３３は、推奨広告ウィンドウサイズＲＷＩＮがゼロになるまでに、受信端末３００において受信されたデータ量を、送信端末２００が送信可能データ量として、セグメント記憶部２３１に記憶させる。
【０１１７】
以上のように、本実施形態に係る送信端末２００は、受信端末から広告される推奨広告ウィンドウサイズが０になるまでに、受信端末が受信したデータ量を、送信可能データ量として記憶する。そのため、本実施形態に係る通信システム１は、第１の実施形態に係る通信システム１と同様の効果を奏するとともに、送信端末２００が受信端末３００の許容データ量の範囲内でデータを送信することに貢献する。
【０１１８】
［第４の実施形態］
次に、第４の実施形態について説明する。
【０１１９】
本実施形態は、送信可能データ量が、受信端末３００において実際に受信可能なデータ量の範囲内となるように、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを推定する形態である。なお、本実施形態における説明では、上記の実施形態と重複する部分の説明は省略する。さらに、本実施形態における説明では、上記の実施形態と同一の構成要素には、同一の符号を付し、その説明を省略する。また、本実施形態における説明では、上記の実施形態と同一の作用効果についても、その説明を省略する。
【０１２０】
本実施形態に係る送信端末２００、受信端末３００の内部構成は、図３、図４に示す通りである。以下の説明では、第２の実施形態に係る送信端末２００との相違点について、詳細に説明する。
【０１２１】
本実施形態に係る調整部２３３は、送信データの確認応答ＡＣＫとして、通信相手端末（受信端末３００）から、通信コネクションのリセットを示すパケットを含む確認応答ＡＣＫを受信した場合、当該確認応答に対応する前記送信データのデータサイズを、一度に送信不可能なデータサイズとして決定する。
【０１２２】
補正係数αの上限値α＿ｍａｘを用いて算出される、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗは、一度に送信可能なデータ量の上限値（以下、「送信可能上限データ量」と呼ぶ）に相当する。即ち、一度に送信不可能なデータ量とは、送信可能上限データ量を越えるデータ量である。
【０１２３】
具体的には、調整部２３３は、受信端末３００から、リセットフラグのあるパケットを受信した場合、当該リセットフラグのあるパケットに対応する、データ送信時の補正係数αに基づいて、上限値α＿ｍａｘを推定する。調整部２３３は、推定した上限値α＿ｍａｘを、セグメント記憶部２３１に記憶させる。そのため、調整部２３３は、記憶された上限値α＿ｍａｘに基づいて、一度に送信不可能なデータ量を算出できる。
【０１２４】
データ送信時には、調整部２３３は、補正係数αを、上限値α＿ｍａｘ以下に決定する。そして、調整部２３３は、決定した補正係数αを用いて、第２の実施形態と同様に、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗを推定する。
【０１２５】
なお、上限値α＿ｍａｘの初期値は、十分に大きい値であるものとする。また、調整部２３３は、同一の受信端末３００との通信履歴がある場合、記憶されている上限値α＿ｍａｘの値を、上限値α＿ｍａｘの初期値として利用しても良い。
【０１２６】
図９、図１０は、本実施形態に係る送信端末２００の動作の一例を示すフローチャートである。
【０１２７】
図９に示すステップＳ３０１〜ステップＳ３０９は、図５に示すステップＳ１０１〜ステップＳ１０９と同一であるため、詳細な説明を省略する。
【０１２８】
ここで、受信端末が３００から確認応答ＡＣＫを受信した（ステップＳ３０９のＹｅｓ分岐）とする。その場合、図１０に示す「Ａ」（ステップＳ３１０）に遷移し、図１０に示すステップＳ３１１に遷移する。
【０１２９】
ステップＳ３１１において、受信した確認応答ＡＣＫ（ｔ）が、リセットフラグのあるパケットであるか否かを、調整部２３３は判断する。なお、リセットフラグのあるパケットを受信することは、通信コネクションが切断されたことを意味する。つまり、ステップＳ３１１において、通信コネクションが切断されたか否かを、調整部２３３は判断する。
【０１３０】
リセットフラグのあるパケットである場合（ステップＳ３１１のＹｅｓ分岐）には、調整部２３３は、補正係数αの上限α＿ｍａｘを、以下の式６に基づいて算出する（ステップＳ３１２）。そして、ステップＳ３１３に遷移する。
【数６】
0006554807.tif 000007
【０１３１】
なお、以下の式６において、Δは、上記の式４、式５と同一の値であっても良い。あるいは、調整部２３３は、補正係数αと、上限値α＿ｍａｘの差分に基づいて、Δを算出しても良い。具体的には、調整部２３３は、以下の式７に基づいて、Δを算出しても良い。なお、式７において、βは、所定の定数であるとする。
【数７】
0006554807.tif 000008
【０１３２】
また、上述の通り、調整部２３３は、通信開始からの時間が経過するほど、Δが減少するように、Δを算出しても良い。
【０１３３】
一方、リセットフラグのあるパケットではない場合（ステップＳ３１１のＮｏ分岐）には、ステップＳ３１３に遷移する。
【０１３４】
ステップＳ３１３において、推奨広告ウィンドウサイズＲＷＩＮが減少したか否かを、調整部２３３は判断する。推奨広告ウィンドウサイズＲＷＩＮが減少した場合（ステップＳ３１３のＹｅｓ分岐）には、調整部２３３は、補正係数αを減少させる（ステップＳ３１４）。具体的には、第２の実施形態と同様に、上述の式４の通りに、補正係数αを減少させる。そして、ステップＳ３１６に遷移する。
【０１３５】
ステップＳ３１６において、調整部２３３は、以下の式８に基づいて、α＿ｍａｘを更新する。そして、ステップＳ３１７に遷移する。
【数８】
0006554807.tif 000009
【０１３６】
一方、推奨広告ウィンドウサイズＲＷＩＮが増加した場合（ステップＳ３１３のＮｏ分岐）には、調整部２３３は、補正係数αを増加させる（ステップＳ３１５）。具体的には、第２の実施形態と同様に、上述の式５の通りに、補正係数αを増加させる。そして、ステップＳ３１７に遷移する。なお、第２の実施形態と同様に、図１０には図示しないが、推奨広告ウィンドウサイズが変化しない場合（即ち、ＲＷＩＮ（ｔ−１）＝ＲＷＩＮ（ｔ））には、調整部２３３は、上述の式３に基づいて算出された補正係数αを採用する。
【０１３７】
ステップＳ３１７において、以下の式９に基づいて、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ）を推定する。
【数９】
0006554807.tif 000010
【０１３８】
ステップＳ３１８において、上述の式１に、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ）を適用して、送信可能データ量ＳＷＩＮを算出する。そして、図１０に示す「Ｂ」（ステップＳ３１９）に遷移し、図９に示すステップＳ３０２に戻り、処理を継続する。
【０１３９】
［変形例１］
本実施形態に係る送信端末２００の変形例１として、送信端末２００は、リセットフラグのあるパケットの有無に基づいて、送信速度を決定しても良い。具体的には、データ送信部２３４は通信相手端末（受信端末３００）から送信される確認応答ＡＣＫにおける、通信コネクションのリセットを示すパケットの有無に基づいて、当該確認応答の送信元の通信相手端末（受信端末３００）の受信速度を推定しても良い。そして、データ送信部２３４は、推定結果に基づいて、データの送信速度を決定しても良い。
【０１４０】
上述の通り、リセットフラグのあるパケットを受信することは、通信コネクションが切断されたことを意味する。そこで、リセットフラグのあるパケットを受信した場合、受信端末３００において達成可能な受信速度を越えないように、データ送信部２３４は、送信速度を低下させても良い。
【０１４１】
以上の通り、本実施形態に係る送信端末２００は、受信端末３００において実際に受信可能なデータ量の範囲内となるように、１回の送信可能データ量を決定する。そのため、本実施形態に係る通信システム１は、第１の実施形態に係る通信システム１と同様の効果を奏するとともに、送信端末２００がデータを送りすぎることで、受信端末３００がデータを消失させることを防止できる。
【０１４２】
［第５の実施形態］
次に、第５の実施形態について説明する。
【０１４３】
本実施形態は、送信端末２００が、受信端末３００において受信可能なデータ量の上限を推定し、当該上限を越えないように、データを送信する形態である。なお、本実施形態における説明では、上記の実施形態と重複する部分の説明は省略する。さらに、本実施形態における説明では、上記の実施形態と同一の構成要素には、同一の符号を付し、その説明を省略する。また、本実施形態における説明では、上記の実施形態と同一の作用効果についても、その説明を省略する。
【０１４４】
本実施形態に係る送信端末２００、受信端末３００の内部構成は、図３、図４に示す通りである。以下の説明では、第２の実施形態に係る送信端末２００との相違点について、詳細に説明する。
【０１４５】
本実施形態に係るデータ送信部２３４は、単位時間当たりに送信可能なデータ量が、所定の閾値より少ない場合、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗに基づいて決定した送信可能データ量のデータを通信相手端末（受信端末３００）に送信する。
【０１４６】
図１１、図１２は、本実施形態に係る送信端末２００の動作の一例を示すフローチャートである。
【０１４７】
図１１に示すステップＳ４０１〜ステップＳ４０４は、図５に示すステップＳ１０１〜ステップＳ１０４と同一であるため、詳細な説明を省略する。
【０１４８】
ＴＣＰ送信部２３０が送信パケットを作成した後（ステップＳ４０４）、送信データが、送信可能なデータ量の範囲内であるか否かを、データ送信部２３４は判断する（ステップＳ４０５）。送信データが、送信可能なデータ量の範囲内である場合（ステップＳ４０５のＹｅｓ分岐）には、ステップＳ４０６に遷移する。一方、送信データが、送信可能なデータ量の範囲内ではない場合（ステップＳ４０５のＮｏ分岐）には、ステップＳ４０４に戻り、処理を継続する。
【０１４９】
ステップＳ４０６において、単位時間当たりに送信可能なデータ量が、閾値ＭＡＸ＿ＢＵＲＳＴ以下であるか否かを、データ送信部２３４は判断する。単位時間当たりに送信可能なデータ量が、閾値ＭＡＸ＿ＢＵＲＳＴ以下である場合（ステップＳ４０６のＹｅｓ分岐）には、データ送信部２３４は送信パケットを送信する（ステップＳ４０７）。つまり、送信データが、送信可能なデータ量の範囲内であるとともに、単位時間当たりに送信可能なデータ量が、閾値ＭＡＸ＿ＢＵＲＳＴ以下である場合、データ送信部２３４は送信パケットを送信する。
【０１５０】
ＴＣＰ送信部２３０は、単位時間当たりに送信可能なデータ量の統計値を、閾値ＭＡＸ＿ＢＵＲＳＴとして算出する。例えば、受信端末３００から送信される推奨広告ウィンドウサイズが減少した場合、当該減少後の値を、単位時間当たりに送信可能なデータ量を用いて、閾値ＭＡＸ＿ＢＵＲＳＴとして算出しても良い。なお、閾値ＭＡＸ＿ＢＵＲＳＴの初期値は、十分に大きな値であるとする。
【０１５１】
一方、単位時間当たりに送信可能なデータ量が、閾値ＭＡＸ＿ＢＵＲＳＴを越える場合（ステップＳ４０６のＮｏ分岐）には、ステップＳ４０４に戻り、処理を継続する。
【０１５２】
なお、図１１においては、ステップＳ４０５の処理と、ステップＳ４０４の処理とを、異なる処理として図示するが、ステップＳ４０５の処理、及びステップＳ４０６の処理を、一つの処理として、データ送信部２３４はデータ送信の可否を判断しても良いことは勿論である。
【０１５３】
データ送信部２３４が送信パケットを送信（ステップＳ４０７）した後、ステップＳ４０８に遷移する。なお、ステップＳ４０８〜ステップＳ４１０の処理は、図５に示すステップＳ１０７〜ステップＳ１０９の処理と同一であるため、詳細な説明を省略する。
【０１５４】
受信端末３００から確認応答ＡＣＫを受信した場合（ステップＳ４１０のＹｅｓ分岐）には、図１２に示す「Ｃ」（ステップＳ４１１）に遷移し、図１２に示すステップＳ４１２に遷移する。
【０１５５】
ステップＳ４１２において、推奨広告ウィンドウサイズＲＷＩＮが減少したか否かを、調整部２３３は判断する。推奨広告ウィンドウサイズＲＷＩＮが減少したか否かに関する判断の詳細は上述の通りであるため、詳細な説明を省略する。
【０１５６】
推奨広告ウィンドウサイズが減少した場合（ステップＳ４１２のＹｅｓ分岐）には、調整部２３３は、補正係数αを減少させる（ステップＳ４１３）。具体的には、第２の実施形態と同様に、上述の式４の通りに、補正係数αを減少させる。そして、ステップＳ４１４に遷移する。
【０１５７】
ステップＳ４１４において、調整部２３３は、第４の実施形態と同様に、上述の式８に基づいて、α＿ｍａｘを更新する。
【０１５８】
ステップＳ４１５において、ＴＣＰ送信部２３０は、閾値ＭＡＸ＿ＢＵＲＳＴを更新する。そして、ステップＳ４１７に遷移する。
【０１５９】
ここで、推奨広告ウィンドウサイズＲＷＩＮが減少したことは、受信端末３００において、前回の送信データ量が、受信可能な上限のデータ量以上であったことを意味する。これは、受信端末３００において、受信可能な上限のデータ量は、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ−１）に対応する送信可能データ量ＳＷＩＮより少ないことを意味する。そこで、ＴＣＰ送信部２３０は、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ−１）に対応する送信可能データ量ＳＷＩＮを、閾値ＭＡＸ＿ＢＵＲＳＴとして決定する。
【０１６０】
送信端末２００が、前回算出された送信可能データ量ＳＷＩＮを、閾値ＭＡＸ＿ＢＵＲＳＴとして決定すると、送信端末２００は、以降のデータ送信時には、前回算出された、送信可能データ量ＳＷＩＮを越えるデータ量を送信できない（図１１に示すステップＳ４０６参照）。その結果、送信端末２００が、受信端末において受信可能である、上限値以下のデータ量を送信することで、受信端末３００において、送信パケットの廃棄が発生しないとともに、送信端末２００と、受信端末３００との間において、通信効率を向上できる。
【０１６１】
一方、推奨広告ウィンドウサイズが増加した場合（ステップ４１２のＮｏ分岐）には、調整部２３３は、補正係数αを増加させる（ステップＳ４１６）。具体的には、第２の実施形態と同様に、上述の式５の通りに、補正係数αを増加させる。そして、ステップＳ４１７に遷移する。なお、第２の実施形態と同様に、図１２には図示しないが、推奨広告ウィンドウサイズが変化しない場合（即ち、ＲＷＩＮ（ｔ−１）＝ＲＷＩＮ（ｔ））には、調整部２３３は、上述の式３に基づいて算出された補正係数αを採用する。
【０１６２】
ステップＳ４１７において、上述の式９に基づいて、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ）を推定する。
【０１６３】
ステップＳ４１８において、上述の式１に、補正広告ウィンドウサイズＲＷＩＮ＿ｎｅｗ（ｔ）を適用して、送信可能データ量ＳＷＩＮを算出する。そして、図１２に示す「Ｄ」（ステップＳ４１９）に遷移し、図１１に示すステップＳ４０２に戻り、処理を継続する。
【０１６４】
以上の通り、本実施形態に係る送信端末２００は、受信端末３００において受信可能なデータ量の上限を推定し、当該上限を越えないように、データを送信する、そのため、本実施形態に係る通信システム１は、第１の実施形態に係る通信システム１と同様の効果を奏するとともに、受信端末３００が広告ウィンドウサイズを制御する機能を備えていない場合であっても、送信端末２００から受信端末３００への通信効率を向上させることに貢献する。
【０１６５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１６６】
（付記１）上記の第１の視点に係る通信端末の通りである。
【０１６７】
（付記２）前記調整部は、基準遅延時間に対する通信遅延時間の比を算出し、前記比を前記補正係数として決定する、付記１に記載の通信端末。
【０１６８】
（付記３）前記調整部は、第１の前記推奨広告ウィンドウサイズと、第１の前記推奨広告ウィンドウサイズを受信後における第２の前記推奨広告ウィンドウサイズとの差分に基づいて、前記補正係数を増減する、付記１又は２に記載の通信端末。
【０１６９】
（付記４）前記調整部は、パケットロスの有無に基づいて、前記補正係数を増減する、付記１又は２に記載の通信端末。
【０１７０】
（付記５）前記調整部は、前記通信相手端末から前記推奨広告ウィンドウサイズがゼロと広告された場合、前記推奨広告ウィンドウサイズがゼロになるまでに、当該通信相手端末が受信したデータ量を、送信可能なデータ量として決定する、付記１乃至４のいずれか一に記載の通信端末。
【０１７１】
（付記６）前記調整部は、送信データの確認応答として、前記通信相手端末から、通信コネクションのリセットを示すパケットを含む確認応答を受信した場合、当該確認応答に対応する前記送信データのデータサイズを、一度に送信不可能なデータサイズとして決定する、付記１乃至５のいずれか一に記載の通信端末。
【０１７２】
（付記７）前記データ送信部は、単位時間当たりに送信可能なデータ量が、所定の閾値より少ない場合、前記補正広告ウィンドウサイズに基づいて決定した前記送信可能データ量のデータを前記通信相手端末に送信する、付記１乃至６のいずれか一に記載の通信端末。
【０１７３】
（付記８）前記データ送信部は、前記推奨広告ウィンドウサイズの変化に基づいて、当該推奨広告ウィンドウサイズの送信元の前記通信相手端末が達成可能な受信速度を推定し、推定結果に基づいて、データの送信速度を決定する、付記１乃至７のいずれか一に記載の通信端末。
【０１７４】
（付記９）前記データ送信部は、前記通信相手端末から送信される確認応答における、通信コネクションのリセットを示すパケットの有無に基づいて、当該確認応答の送信元の前記通信相手端末の受信速度を推定し、推定結果に基づいて、データの送信速度を決定する、付記１乃至８のいずれか一に記載の通信端末。
【０１７５】
（付記１０）通信端末と、前記通信端末の通信相手端末とが、ネットワークを介して接続する通信システムであって、前記通信相手端末は、前記通信端末からデータを受信した場合、当該通信相手端末の受信可能なデータ量を示す、推奨広告ウィンドウサイズを含む確認応答を、前記通信端末に返信し、前記通信端末は、前記通信相手端末から、前記推奨広告ウィンドウサイズを受信した場合、前記通信相手端末との通信状況に基づいて補正係数を決定し、前記補正係数に基づいて、当該推奨広告ウィンドウサイズ以上の補正広告ウィンドウサイズを決定する調整部と、前記補正広告ウィンドウサイズに基づいて、送信可能データ量を決定するデータ送信部と、
を備える通信システム。
【０１７６】
（付記１１）上記第２の視点に係る通信方法の通りである。
【０１７７】
（付記１２）上記第３の視点に係るプログラムの通りである。
【０１７８】
なお、上記の付記１０乃至１２に示す形態は、付記１に示す形態と同様に、付記２乃至９に示す形態に展開することが可能である。
【０１７９】
なお、上述の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１８０】
１  通信システム
１０１  ネットワーク
１０２  ＴＣＰコネクション
２００、２０１  送信端末
２１０、３１０  アプリケーション
２２０、３２０  データ記憶部
２３０  ＴＣＰ送信部
２３１、３３１  セグメント記憶部
２３２  輻輳ウィンドウ決定部
２３３、１００１  調整部
２３４、１００２  データ送信部
２３５  遅延計測部
２４０、３４０  ＩＰ処理部
２５０、３５０  入出力処理部
３００、３０１  受信端末
３３０  ＴＣＰ送信部
３３２  ＡＣＫ送信部
３３３  データ受信部
１０００  通信端末
２０００  通信相手端末
【図１】
0006554807.tif 000011
【図２】
0006554807.tif 000012
【図３】
0006554807.tif 000013
【図４】
0006554807.tif 000014
【図５】
0006554807.tif 000015
【図６】
0006554807.tif 000016
【図７】
0006554807.tif 000017
【図８】
0006554807.tif 000018
【図９】
0006554807.tif 000019
【図１０】
0006554807.tif 000020
【図１１】
0006554807.tif 000021
【図１２】
0006554807.tif 000022