(57)【要約】【課題】ネットワークの輻輳状態を考慮しつつ、通信セッションにおける輻輳回避動作中のスループット向上を図り得る通信装置等を提供する。【解決手段】ネットワーク１０に連続的に送出するデータ量を制御する通信装置１であって、ＲＴＴ（Round Trip Time）を基準として送信レート制御モードを決定し、送信レート制御モードに応じて送信レートの上限値を決定し、送信レートの上限値を越えない範囲でデータを連続的に送出し続けるように制御するようにしたこと。【選択図】図１
2014069642.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信先に向けて所定量の通信データを出力する送信データ出力部と、この送信データ出力部を駆動制御し前記ネットワークに連続的に送出可能なデータ量を制御する送信レート制御部とを備えた通信装置であって、
前記送信レート制御部が、予め決定された特定の送信レートの上限値を越えない範囲で前記送信データを連続的に送出し続けるように制御する送信レート制御機能を備えていることを特徴とした通信装置。
【請求項２】
請求項１に記載の通信装置において、
前記送信レート制御部には、前記ネットワークの輻輳情報に基づいて送信レート制御モードを特定する送信レート制御モード特定部と、この特定された送信レート制御モードに応じて送信レートの上限値を決定する送信レート計算部とが併設され、
この送信レート制御モード特定部および送信レート計算部の各出力情報に基づいて、前記送信レート制御部が、前記送信データ出力部の出力動作を制御する機能を備えていることを特徴とした通信装置。
【請求項３】
請求項２に記載の通信装置において、
前記送信レート制御モード特定部は、送信レート制御モードとして、前記ネットワークの輻輳情報に基づいて、送信レートを急増させるレート急増モードと、送信レートを少しずつ増加させるレート調整モードと、送信レートを抑制するレート抑制モードとの何れか一つに特定する機能を備えていることを特徴とした通信装置。
【請求項４】
請求項３に記載の通信装置において、
前記送信レート制御モード特定部は、前記ネットワークにおける信号伝搬時間が、早い場合、通常の場合、又は遅い場合のそれぞれについて、対応する前記送信レート制御モードを特定する制御モード特定機能を備えていることを特徴とした通信装置。
【請求項５】
請求項２に記載の通信装置において、
前記送信レート制御モード特定部は、現時点の信号伝播時間が過去の信号伝播時間の最小値以下になると、送信レートを急増させるレート急増モードを前記送信レート制御モードとして特定する機能を備えていることを特徴とする通信装置。
【請求項６】
請求項２に記載の通信装置において、
前記送信レート制御モード特定部は、現時点の信号伝播時間が過去の信号伝播時間の最小値よりも大きく且つ最大値よりも小さい場合に、送信レートを少しずつ増加させるレート調整モードを、前記送信レート制御モードとして特定する機能を備えていることを特徴とする通信装置。
【請求項７】
請求項２に記載の通信装置において、
前記送信レート制御モード特定部は、現時点の信号伝播時間が過去の信号伝播時間の最大値以上になると、送信レートを抑制するレート抑制モードを送信レート制御モードとして特定する機能を備えていることを特徴とする通信装置。
【請求項８】
請求項１に記載の通信装置において、
前記送信レート制御部は、予め装備したデータ受信部の受信バッファサイズの空き容量がゼロとならない限りは、送信レート上限値を越えない範囲で最大限の送信レートでデータの送出制御を継続する最大レート送信制御機能を備えていることを特徴とする通信装置。
【請求項９】
ネットワークを介して通信先に向けて所定量の通信データを出力する送信データ出力部と、この送信データ出力部を駆動制御し前記ネットワークに連続的に送出可能なデータ量を制御する送信レート制御部とを備えた通信装置にあって、
前記ネットワークから得られる輻輳情報に基づいて予め装備された送信レート制御モード特定部が、前記データの送信に必要な送信レート制御モードを特定し、
この特定された送信レート制御モードに応じて、予め装備された送信レート計算部が送信レートの上限値を決定し、
この決定された特定の送信レートの上限値を越えない範囲で前記送信データを連続的に送出し続けるように、前記送信レート制御部が前記送信データ出力部を駆動制御するようにしたことを特徴とする送信データ出力制御方法。
【請求項１０】
ネットワークを介して通信先に向けて所定量の通信データを出力する送信データ出力部と、この送信データ出力部を駆動制御し前記ネットワークに連続的に送出可能なデータ量を制御する送信レート制御部とを備えた通信装置にあって、
前記ネットワークの輻輳情報に基づいてデータ送信に必要な送信レート制御モードを特定するレート制御モード特定機能、
この特定された送信レート制御モードに応じて、送信レートの上限値を決定する送信レート上限値決定機能、
および決定された特定の前記送信レートの上限値を越えない範囲で前記送信データを連続的に送出し続けるように、前記送信データ出力部を駆動制御する出力部駆動制御機能、  を設け、これらをコンピュータに実現させるようにしたことを特徴とする送信データ出力制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して通信セッションを実行する通信装置等に係り、特に、ＴＣＰ（Transmission Control Protocol）のように輻輳制御機能をもつ通信プロトコルを用いた通信装置、送信データ出力制御方法、及びそのプログラムに関する。
【背景技術】
【０００２】
現在、インターネットを介して大量のデータを安全に且つ正確に送信する通信プロコルとして幅広く用いられているＴＣＰ（Transmission Control Protocol）による通信にあっては、効率的なデータ転送を行うために、ウィンドウ制御が使用されている。【０００３】
このウィンドウ制御では、まず、データの受信側が受信バッファサイズ（RWIN、Receive Window）をデータ送信側へ通知する。データ送信側は、受信側の確認応答（ACK）を待たずに、受信バッファサイズ（RWIN）分のデータを送信できる。
このとき、RWINが回線速度と比べて小さすぎると、データ転送効率が悪化してスループットが低下する。また、RWINが回線速度と比べて大きすぎると、データ損失による再送処理に時間が掛かりスループットが低下する。【０００４】
上記通信プロトコルであるＴＣＰは、ネットワークの輻輳状況に応じて輻輳ウィンドウ（CWND、Congestion Window）を適切に調整する輻輳制御機能を備えている。このＴＣＰの輻輳制御機能は、通信状態を常時チェックし、ネットワークに輻輳がない間は輻輳ウィンドウを拡大することにより送信帯域を増大させ、又ネットワークが輻輳している場合には、輻輳ウィンドウを縮小することで送信帯域を減少させるように設定する機能を備えている。【０００５】
このような輻輳制御機能を採用したＴＣＰバージョンの例として、TCP-Renoがある（非特許文献１）。このTCP-Renoでは、輻輳回避動作においてパケット廃棄を検出したとき、ネットワークが輻輳状態にあると判断して輻輳ウィンドウを現状の半分に縮小し、これにより送信帯域を減少させる。【０００６】
一方、パケット廃棄が検出されない間は、ネットワークが輻輳状態にないと判断して、輻輳ウィンドウを1MMS（Maximum Segment Size）ずつ線形に拡大することにより、送信帯域を緩やかに増大させる。【０００７】
ところで、TCP-Renoは、パケット廃棄が発生すると、いったん輻輳ウィンドウのサイズを半減させることから、その後、ウィンドウサイズが十分な大きさに増加するまでの間は本来期待されるスループットが得られないという問題がある。【０００８】
これは、特に輻輳以外の原因でもパケット廃棄が発生し得る無線回線等にとっては深刻な問題である。即ち、輻輳に起因しないパケット廃棄であるにも関わらず、ＴＣＰスループットを不必要に低下させることになる。
また、TCP-Renoは、ウィンドウサイズ分のデータを送出後に確認応答としてのＡＣＫが返ってくるまで次のデータを送信しないため、送信データ応答時間としてのＲＴＴ（Round Trip Time）が大きくなると、ＴＣＰスループットは不必要に低下する。【０００９】
例えば、WiMAX（Worldwide Interoperability for Microwave Access）、HSPA（High Speed Packet Access）、LTE （Long Term Evolution）等の通信方式が適用された無線回線では、移動端末と基地局との間の無線リンクレイヤにエラーが発生する場合がある。これにより、輻輳以外の原因でパケット廃棄が発生すると、ＴＣＰスループットは不必要に低下する。【００１０】
一方、このエラーを回復する技術的手法として、移動端末と基地局との間の無線リンクレイヤで自動的に再送する自動再送制御（ARQ: Automatic Repeat Request）が使用されることがある。この場合は、パケット廃棄を防止できる可能性はあるが、自動再送制御に要する時間に応じて輻輳に起因しないＲＴＴの増加が生じ、同時にＴＣＰスループットは不必要に低下する。【００１１】
これらパケット廃棄が発生した際、ネットワークから端末に対してパケット廃棄が輻輳に起因したものであるか否かに関する何らかの情報与える関連技術として、特許文献１が知られている（第１の関連技術）。
即ち、この第１の関連技術である特許文献１には、回線のエラーによりパケット廃棄が発生した際、受信端末から送信端末に対してＥＬＮ（Explicit Loss Notification）情報を送信し、送信端末は、パケット廃棄が輻輳によるものでない場合には不必要に輻輳ウィンドウを減少させないという技術が開示されている。【００１２】
又、上記パケット廃棄の発生を直ちに輻輳発生と判断することに代えて、ＴＣＰ送信端末がもつ情報を用いて輻輳判断を行い対応措置をとる関連技術として、特許文献２が知られている（第２の関連技術）。
即ち、この第２の関連技術である特許文献２には、まず、回線のＲＴＴを計測し、そのＲＴＴが一定値以下である場合には輻輳で無いと判定することにより、パケット廃棄を検出した場合でも輻輳ウィンドウを減少させないという技術が開示されている。【００１３】
更に、第３の関連技術として、例えば、特許文献３には、輻輳ウィンドウに基づき通信セッションを実行する通信装置が、通信セッションにおけるＲＴＴからボトルネック回線の利用率を推定し、推定した回線利用率に基づき輻輳回避動作における輻輳ウィンドウの増加幅を決定し、輻輳ウィンドウを拡大させるとき、適用すべき輻輳ウィンドウのサイズを前記増加幅に基づき決定するという技術が開示されている。【００１４】
又、第４の関連技術である特許文献４には、送信レートを適正に制御し、相手により確実に到達するように再送パケットを送信する技術が開示されている。
更に、第５の関連技術である特許文献５には、ワイヤレス環境におけるネットワーク情報に基づいたレート制御を行うことで、ワイヤレス環境の特性を考慮した効果的なレート制御を実現する送信技術が開示されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００４−０８０４１３号公報
【特許文献２】特開２００１−１６０８２４号公報
【特許文献３】特開２００６−２１７２３４号公報
【特許文献４】特開２００５−１３６５４８号公報
【特許文献５】特開２００３−３１８９７９号公報
【非特許文献】
【００１６】
【非特許文献１】W. Stevens, "TCP Slow Start , Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms," IETF RFC2001, http://www.ietf.org/rfc/rfc2001.txt, January 1997. [平成24年8 月30日検索]
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上記第１の関連技術の問題点としては、端末に対してパケット廃棄の原因や無線回線の状態を通知する機構がネットワークに必要であるため、導入が難しいことである。
特に、無線回線に接続された端末と、その無線回線に接続されていない不特定多数の端末とが通信を行う場合、後者の不特定多数の端末全てに対して前記機構を導入することは容易ではない。また、同様な機構を有線回線に適用することは困難である。【００１８】
第２の関連技術の問題点は、前述した応答時間としてのＲＴＴに基づく輻輳判断の不確かさである。ＲＴＴが取り得る値の範囲はルータのバッファ容量に依存することから、輻輳判断に用いる最適なＲＴＴ閾値は一意に決定し難い。【００１９】
即ち、ルータのバッファ容量が大きいほどＲＴＴが取り得る値の範囲が広がるので、端末に一定のＲＴＴ閾値を設定しても、バッファ容量が比較的大きいルータの回線を使用するときよりも、ルータのバッファ容量が比較的小さい回線を使用するときの方が、輻輳発生と判断され易くなる。【００２０】
そうすると、実際は軽度の輻輳であるにも拘らず輻輳発生と判断する可能性があり、その結果、不必要な輻輳ウィンドウの減少制御によりスループットが低下することとなる。また逆に、バッファ容量が比較的大きい場合、輻輳発生と判断すべき状態に対し、未だ輻輳ではないと判断する可能性があり、その場合、減少させるべき輻輳ウィンドウが減少されず、結果、輻輳を回避することができないという問題が生じる。また、輻輳ウィンドウを適切に制御できたとしても輻輳に起因しないＲＴＴの増加によりＴＣＰスループットが不必要に低下する。【００２１】
又、第３の関連技術の問題点は、ＲＴＴに基づくボトルネック回線利用率の推定の不確かさである。推定した回線利用率に基づき輻輳回避動作における輻輳ウィンドウの増加幅を決定するが、確実に回線利用率を知る方法ではないため推定値に誤差が含まれる可能性がある。その結果として、不必要な輻輳ウィンドウの減少制御によりスループットが低下する、また逆に、減少させるべき輻輳ウィンドウが減少されず、結果として輻輳を回避できないという問題が生じる。【００２２】
更に、第４の関連技術では、ＲＴＴの増加率及び減少率に合わせてパケト通信レートの減少率及び増加率を決定しており、このため、ＲＴＴの広範囲の変動に対しても常に迅速対応可能な送受信回路を準備しなければ成らないという不都合があり、装置が大型化するという不都合がある。【００２３】
又、第５の関連技術では、中継ノードで取得されたネットワーク情報も加味してレート制御を行う旨開示されているが、レート制御の内容について、特にモードについての具体的な開示がない。又、輻輳回避動作に関する技術内容については、パケットロスの回避以外は何ら具体的な開示がない。【００２４】
［発明の目的］
本発明は、上記課題を鑑みてなされたものであり、ネットワークの輻輳状態を考慮しつつ、通信セッションにおける輻輳回避動作中のスループット向上を図り得る通信装置、送信データ出力制御方法、及びそのプログラムを提供することを、その目的とする。
【課題を解決するための手段】
【００２５】
上記目的を達成するために、本発明に係る通信装置は、ネットワークを介して通信先に向けて所定量の通信データを出力する送信データ出力部と、この送信データ出力部を駆動制御し前記ネットワークに連続的に送出可能なデータ量を制御する送信レート制御部とを備えた通信装置であって、
前記送信レート制御部が、予め決定された特定の送信レートの上限値を越えない範囲で前記送信データを連続的に送出し続けるように制御する送信レート制御機能を備えていることを特徴とする。【００２６】
上記目的を達成するために、本発明に係る送信データ出力制御方法は、ネットワークを介して通信先に向けて所定量の通信データを出力する送信データ出力部と、この送信データ出力部を駆動制御し前記ネットワークに連続的に送出可能なデータ量を制御する送信レート制御部とを備えた通信装置にあって、
前記ネットワークから得られる輻輳情報に基づいて予め装備された送信レート制御モード特定部が、前記データの送信に必要な送信レート制御モードを特定し、
この特定された送信レート制御モードに応じて、予め装備された送信レート計算部が送信レートの上限値を決定し、
この決定された特定の送信レートの上限値を越えない範囲で前記送信データを連続的に送出し続けるように、前記送信レート制御部が前記送信データ出力部を駆動制御するようにしたことを特徴とする。【００２７】
上記目的を達成するために、本発明に係る送信データ出力制御プログラムは、ネットワークを介して通信先に向けて所定量の通信データを出力する送信データ出力部と、この送信データ出力部を駆動制御し前記ネットワークに連続的に送出可能なデータ量を制御する送信レート制御部とを備えた通信装置にあって、
前記ネットワークの輻輳情報に基づいて送信レート制御モードを特定するレート制御モード特定機能、この特定された送信レート制御モードに応じて、送信レートの上限値を決定する送信レート上限値決定機能、および決定された特定の前記送信レートの上限値を越えない範囲で前記送信データを連続的に送出し続けるように、前記送信データ出力部を駆動制御する出力部駆動制御機能、を設け、これらをコンピュータに実現させるようにしたことを特徴とする。
【発明の効果】
【００２８】
本発明は上記の如く構成したので、これによると、例えば通信回線がボトルネック回線であっても現時点における状況に適した送信レートでデータを送出でき、これにより、ランダムパケット廃棄やパケットエラー回復遅延が生じる通信環境においても、ボトルネック回線の帯域を有効に利用しつつ輻輳を回避し、且つ通信セッションにおける輻輳回避動作中のスループット向上を図り得る通信装置、送信データ出力制御方法、及びそのプログラムを提供することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態に係る通信装置の基本的構成を示すロック図である。
【図２】本発明の一実施形態に係る通信装置の全体構成を示すブロック図である。
【図３】本発明の一実施形態に係る通信装置の動作手順を示すフローチャートである。
【発明を実施するための形態】
【００３０】
次に、本発明の実施の形態について図面を参照して説明する。
［基本的内容]
最初に、本発明にかかる通信装置の基本的な内容を、図１に基づいて説明する。
図１において、通信装置１は、ネットワーク１０を介して通信先である相手側通信機２に向けて所定量の通信データを出力する送信データ出力部１１と、この送信データ出力部１１を駆動制御し前記ネットワーク１０に連続的に送出可能なデータ量を制御する送信レート制御部１８とを備えている。
【００３１】
そして、上記した送信レート制御部１８は、予め決定された特定の送信レートの上限値を越えない範囲で、前記送信データを連続的に送出し続けるように制御する送信レート制御機能１８Ａを備えている。
【００３２】
ここで、符号１２は前述したネットワーク１０に対する送受信用のネットワークインタフェース部を示す。又、符号１３はネットワーク１０を介して相手側通信機２からの発信情報を受信するデータ受信部を示し、符号１９はネットワーク１０を介して相手側通信機２へ所定の送信データを発信するデータ送信部を示す。
【００３３】
そして、実際のデータ送信に際しては、送信データ出力部１１に駆動制御されて送信データ出力部１１が稼働し、ネットワーク１０を介して通信先である相手側通信機２に向けて所定量の通信データを出力する。この場合、送信データ出力部１１は、上述したように予め決定された特定の送信レートの枠内で、その上限値を越えない範囲で、前記送信データを連続的に送出し続けるように制御する。
【００３４】
このため、本実施形態によると、例えば通信回線がボトルネック回線であっても現時点における状況に適した送信レートでデータを送出でき、これにより、ランダムパケット廃棄やパケットエラー回復遅延が生じる通信環境においても、ボトルネック回線の帯域を有効に利用しつつ、輻輳を回避することが可能となる。
【００３５】
［具体的な実施内容]
以下、本実施形態を、上記した図１の基本的内容を含む図２乃至図３に基づいて、更に詳細に説明する。
【００３６】
図２において、本実施形態に係る通信装置１は、ネットワーク１０を介して相手側通信機２と所定のデータを送受信するネットワークインタフェース部１２と、相手側通信機２から発信される送信データを受信するデータ受信部１３と、必要に応じて送信データ応答時間としてのＲＴＴ（Round Trip Time）を計算するＲＴＴ計算部１４と、受信側の受信レートを計算する受信レート計算部１５とを備えている。
【００３７】
この通信装置１は、更に、上記ＲＴＴ計算部１４で計算したＲＴＴの値（ネットワークの輻輳情報）を基準として送信レート制御モードを特定する送信レート制御モード特定部１６と、特定された送信レート制御モードに応じた送信レートの上限値を決定する送信レート計算部１７と、予め設けられて送信データ出力部１１を出力動作を制御する送信レート制御部１８と、送信レート制御部１８に制御されて送信データ出力部１１から出力される送信データを前述した相手側通信機２に向けて出力するデータ送信部１９とを備えている。
【００３８】
ここで、送信レート制御部１８には上記送信レート制御モード特定部１６と送信レート計算部１７とが併設されており、この送信レート制御モード特定部１６および送信レート計算部１７の各出力情報に基づいて、前記送信レート制御部１８が、前記送信データ出力部１１の出力動作を制御する構成となっている。
【００３９】
また、ネットワークインタフェース部１２は、ネットワーク１０からパケットを受信すると、そのパケットをデータ受信部１３に送る機能を備えている。またデータ送信部１９から送信用のパケットを受信すると、そのパケットをネットワーク１０に送出する機能を備えている。
【００４０】
上記データ受信部１３は、ネットワークインタフェース部１２からパケットを受け取ると、そのパケットをＲＴＴ計算部１４および受信レート計算部１５に、それぞれ送り込む機能を備えている。
【００４１】
又、ＲＴＴ計算部１４は、データ受信部１３から受け取ったパケットを解析して送信データ応答時間としてのＲＴＴを計算する機能を備えている。例えば、ＴＣＰにて行われる方法と同様にＲＴＴを計算することができる。
【００４２】
即ち、Timestamp Optionが利用可能な場合、肯定的応答信号であるACKの受信時に、「（現在の時刻）−（Timestamp Echo）」を、ＲＴＴとすることができる。
一方、Timestamp Optionが利用できない場合には、ACKの受信時に、「（現在の時刻）−（ACKされたパケットが送信された時刻）」を、ＲＴＴとすることができる。
【００４３】
受信レート計算部１５は、データ受信部１３から受け取ったパケットを解析して、受信側の受信レートを計算する機能を備えている。
例えば、時刻ｔ＿iに受け取ったi番目のACKと、時刻ｔ＿i+kに受け取ったi+k番目のACKの、それぞれに記述されている確認応答番号をRcvBytes＿i、RcvBytes＿i+kとする。
【００４４】
このとき、時刻ｔ＿iから時刻ｔ＿i+kまでの間の受信側の受信レートRcvRateを、近似的にRcvRate＝（RcvBytes＿i+k−RcvBytes＿i）／（ｔ＿i+k−ｔ＿i）とすることができる。ここで、パラメータｋは事前に設定しておく任意の自然数である。また、受信レートは、誤差を除去するために、過去のRcvRateの値の移動平均としてもよい。
【００４５】
送信レート制御モード特定部１６は、ＲＴＴ計算部１４が算出したＲＴＴの値を基準として、下記の制御モードの何れか一つを特定する機能を備えている。ここで、送信レート制御モードとしては、本実施形態では、予めレート急増モード、レート調整モード、及びレート抑制モードの三つが設定されている。
【００４６】
ここで、レート急増モードは、ボトルネック回線の帯域を使いきれていないことを前提として送信レートを急増させるモードである。
又、レート調整モードは、ボトルネック回線の帯域をほぼ使いきっていることを前提として送信レートを少しずつ増加させるモードである。
更に、レート抑制モードは、ボトルネック回線の帯域を超過して送信していることを前提としてレートを抑制するモードである。
【００４７】
そして、送信レート制御モード特定部１６は、最小ＲＴＴをＲＴＴ＿min、最大ＲＴＴをＲＴＴ＿maxとして、通信回線が「ＲＴＴ≦ＲＴＴ＿min」の場合、送信レート制御モードとしてレート急増モードを特定する。
即ち、送信レート制御モード特定部１６は、現時点の信号伝播時間ＲＴＴが過去の信号伝播時間の最小値（ＲＴＴ＿min）以下になると、送信レートを急増させるレート急増モードを、前記送信レート制御モードとして特定する機能を備えている。
【００４８】
又、送信レート制御モード特定部１６は、通信回線が「ＲＴＴ＿min＜ＲＴＴ＜ＲＴＴ＿max」の場合、送信レート制御モードとしてレート調整モードを特定する。
即ち、送信レート制御モード特定部１６は、現時点の信号伝播時間ＲＴＴが、過去の信号伝播時間の最小値Ｒ（ＴＴ＿min）よりも大きく且つ最大値（ＲＴＴ＿max）よりも小さい場合に、送信レートを少しずつ増加させるレート調整モードを、前記送信レート制御モードとして特定する機能を備えている。
【００４９】
更に、送信レート制御モード特定部１６は、通信回線が「ＲＴＴ＿max≦ＲＴＴ」の場合、レート抑制モードと特定する。
即ち、送信レート制御モード特定部１６は、現時点の信号伝播時間ＲＴＴが過去の信号伝播時間の最大値（ＲＴＴ＿max）以上になると、送信レートを抑制するレート抑制モードを送信レート制御モードとして特定する機能を備えている。
【００５０】
ここで、ＲＴＴ＿min、ＲＴＴ＿maxは、例えば次のように決める。
ＲＴＴ＿minは、その時点では輻輳が無かったことを示唆する値であり、過去のＲＴＴ値の内の最小のＲＴＴとする。
そして、ＲＴＴ＿maxは、その時点で輻輳が発生したことを示唆する値であり、パケット廃棄を検出する直前のＲＴＴ値、或いは連続パケットを検出する直前のＲＴＴ値、或いはその近辺のＲＴＴ値の平均値とする。
【００５１】
このように、本実施形態にあっては、前述した送信レート制御モード特定部１６は、ネットワーク１０における信号伝搬時間（通信時間）が、早い場合、通常の場合、遅い場合、のそれぞれに対応させて、前述した送信レート制御モードであるレート急増モード、レート調整モード、レート抑制モードをそれぞれ特定する制御モード特定機能を備えている。
【００５２】
又、上記送信レート計算部１７は、送信レート制御モード特定部１６が特定した送信レート制御モードに応じて、送信レートの上限値を決定する機能を備えている。
ここで、送信レート制御モードがレート急増モードの場合、送信レートの上限値を、「R＿lim＝R ＿lim＋R＿u」で計算する。ただし、R＿uは予め決められた単位レートである。
【００５３】
又、送信レート制御モードがレート調整モードの場合、送信レートの上限値を、レート調整モードがｎ回連続で続く度に「R＿lim＝R＿lim＋R＿u」で計算する。それ以外のときは、「R＿lim＝R＿lim」で計算する。
【００５４】
ここで、パラメータンｎ事前に設定しておく任意の自然数である。また、例えば、ボトルネック回線の仕様上の帯域上限値B＿maxが既知である場合には、「R＿lim＝（1−α）×R＿lim＋α×B＿max」としてもよい。ただし、パラメータαは事前に設定しておく0＜α＜1の範囲の整数である。
【００５５】
更に、送信レート制御モードがレート抑制モードの場合、送信レートの上限値を、「R＿lim＝RcvRate」のように計算する。ただし、RcvRateは受信レート計算部１５が算出した受信側の受信レートである。
【００５６】
又、上記送信レート制御部１８は、送信レート計算部１７が算出した送信レートの上限値であるR＿limを上限としてデータを送出する機能を備えている。その際、TCPの輻輳ウィンドウ（CWND、Congestion Window）に基づくフロー制御は行わず、受信側の受信バッファサイズ（RWIN、Receive Window）が０とならない限りにおいてはR＿limを上限として、最大限の送信レートでデータを送出し続ける。
【００５７】
即ち、送信レート制御部１８は、予め装備したデータ受信部１３における受信バッファ１３Ａのバッファサイズの空き容量がゼロとならない限りは、送信レート上限値を越えない範囲で最大限の送信レートでデータの送出制御を継続する最大レート送信制御機能１８Ａを備えている。
【００５８】
ここで、肯定的応答信号であるACKにより受信側におけるデータ受信部１３の受信バッファサイズが０であると通知された場合、受信側の受信バッファ１３Ａに空き領域がなくなったことを意味している。この場合、受信側から送信側に対して受信バッファサイズが０よりも大きい値で通知されるまでは、送信を中断する。
そして、上記データ送信部１９は、送信レート制御部１８が指定したタイミングでパケットを送信する。
【００５９】
［動作の説明］
次に、図３のフローチャートに基づいて、上記実施形態に係る通信装置の動作手順を説明する。
【００６０】
最初に、上記実施形態における通信装置１のデータ送信に至る動作手順の要部について説明する。
まず、ネットワーク１０を介して通信先に向けて所定量の通信データを出力する送信データ出力部１１と、この送信データ出力部１１を駆動制御し前記ネットワーク１０に連続的に送出可能なデータ量を制御する送信レート制御部１８とを備えた上記通信装置にあって、まず、前述したネットワーク１０から得られる輻輳情報に基づいて予め装備された送信レート制御モード特定部１６が、前記データの送信に必要な送信レート制御モードを特定する（送信レート制御モード特定工程）。
【００６１】
次に、この送信レート制御モード特定部１６により特定された送信レート制御モードに応じて、予め装備された送信レート計算部１５が送信レートの上限値を決定する（送信レート上限値決定工程）。
【００６２】
続いて、この送信レート計算部１５で決定された特定の送信レートの上限値を越えない範囲で、前記送信データを連続的に送出し続けるように、前記送信レート制御部１８が前記送信データ出力部１１を駆動制御するようにした（データ出力制御工程）。
【００６３】
そして、本実施形態における動作手順をこのように構成し、かかる動作手順を順次実行することにより、前述した目的が達成される。
【００６４】
以下、これを更に詳述する。
まず、送信側の通信装置１（以下「送信端末」と呼ぶ）は、送信端末である自装置１と受信側である相手側通信装置２（以下「受信端末」と呼ぶ）との間に、インターネット１０を介してＴＣＰコネクションを開設し（図３：ステップＳ１０１）、送信データの送信を開始する（図３：ステップＳ１０２）。
【００６５】
送信端末１から送信したパケットに対して、受信端末２より受信確認パケット（ACKパケット）が送り返されると、これをデータ受信部１３が受信する（図３：ステップＳ１０３）。受信したACKパケットを用いて、ＲＴＴ計算部１４は受信したＲＴＴを求め、同時に、受信レート計算部１５は受信端末２のデータ受信レートRcvRateを算出する（図３：ステップＳ１０４）。
【００６６】
これにより、現時点におけるネットワーク１０の輻輳状態（即ちデータ送信に必要な送信レート制御モードを特定するためのネットワーク情報）が、まず、信号伝播時間ＲＴＴの値によって検知される。
【００６７】
次に、送信レート制御モード特定部１６は、ＲＴＴ≦ＲＴＴ＿minの場合、送信レート制御モードを、送信レート急増モードと判定する（図２：１０５／イエス）。
即ち、前述した送信レート制御モードを特定する工程にあっては、前記ネットワーク１０における現時点の信号伝搬時間ＲＴＴが過去の信号伝播時間の最小値（ＲＴＴ＿min）以下になると、前記送信レートを急増させるレート急増モードを、前記送信レート制御モード特定部１６が前記送信レート制御モードとして特定する。
【００６８】
そして、この結果を受けて、送信レート計算部１７は、送信レートの上限値を、R＿lim＝R＿lim＋R＿uのように計算する（図２：１０６）。
【００６９】
一方、送信レート制御モード特定部１６は、ＲＴＴ＿min＜ＲＴＴ＜ＲＴＴ＿maxの場合、送信レート制御モードを、レート調整モードと判定する（図２：１０７／イエス）。  即ち、前記送信レート制御モードを特定する工程にあっては、前記ネットワーク１０における現時点の信号伝播時間ＲＴＴが過去の信号伝播時間の最小値（ＲＴＴ＿min）よりも大きく且つ最大値（ＲＴＴ＿max）よりも小さい場合に、前記送信レートを少しずつ増加させるレート調整モードを、前記送信レート制御モード特定部１６が前記送信レート制御モードとして特定する。
【００７０】
そして、この結果を受けて、送信レート計算部１７は、Ｘ＝Ｘ＋１とし（図２：１０８）、Ｘ＝ｎである場合（図２：１０９／イエス）、Ｘ＝０とし、送信レートの上限値を、R＿lim＝R＿lim＋R＿uとする（図２：１１０）。
【００７１】
又、送信レート制御モード特定部１６は、ＲＴＴ＿max≦ＲＴＴの場合、送信レート制御モードを、レート抑制モードと判定する（図２：１０７／ノー）。そして、送信レートの上限値をR＿lim＝RcvRateとする（図２：１１１）。
即ち、前記送信レート制御モードの特定する工程にあっては、前記ネットワーク１０における現時点の信号伝播時間ＲＴＴが過去の信号伝播時間の最大値（ＲＴＴ＿max）以上になると、前記送信レートを抑制するレート抑制モードを、前記送信レート制御モード特定部１６が送信レート制御モードとして特定する。
【００７２】
そして、送信端末１は、送信すべきデータが終了するまで上記手段を繰り返し（図２：１１２）、最後にＴＣＰコネクションを切断して通信を終了する（図２：１１３）。
【００７３】
一方、送信レート制御部１８は、ＴＣＰの輻輳ウィンドウ（CWND、Congestion Window）に基づくフロー制御は行わず、受信側のデータ受信部１３における受信バッファ１３Ａのバッファサイズ（RWIN、Receive Window）が０とならない限りにおいては、R＿limを上限として、最大限の送信レートでデータを送出し続ける。
【００７４】
即ち、前述した送信データ出力部１１を駆動制御する工程にあっては、予め装備されたデータ受信部１３における受信バッファ１３Ａのバッファサイズの空き容量がゼロとならない限り、前記送信レートの上限値を越えない範囲で且つ最大限の送信レートで、前記送信レート制御部１６が前記データの送出制御を継続するように構成した。
【００７５】
一方、ACKにより受信側の受信バッファサイズが０であると通知された場合は、受信側の受信バッファ１３Ａに空き領域がなくなったことを意味している。その場合は、受信側から送信側に対して受信バッファサイズが０よりも大きい値で通知されるまでは、送信を中断する（図２：１０２）。
【００７６】
ここで、上記各動作ステップ（内容実行工程）にあっては、その実行内容をプログラム化し、前記通信装置１に予め装備したコンピュータに実現させるように構成してもよい。このプログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録するようにしてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され実行される。
【００７７】
以上説明したように、本実施形態によれば、ＲＴＴを計測し、そのＲＴＴを基準として送信レートを決定することで、輻輳に依存しないパケット廃棄を検出した場合でも不必要に送信レートを低下することがない。
【００７８】
また、ＴＣＰの輻輳ウィンドウに基づくフロー制御は行わず、受信側の受信バッファサイズ（RWIN、Receive Window）が０とならない限りにおいてはR＿limを上限として、最大限の送信レートでデータを送出し続けることにより、無線リンクレイヤの自動再送制御などによる輻輳に起因しないＲＴＴの増加が生じても不必要に送信レートをすることがない。
【００７９】
また、送信レート制御モードとして、レート急増モードとレート抑制モードに加えレート調整モードを設けることで、ＲＴＴ基準値（ＲＴＴ＿min、ＲＴＴ＿max）の見積もりに誤差があったとしても、その影響を小さくすることができる。また、ネットワークから通信装置に特別な情報を通知する機構が不要であるため、比較的容易にスループットの向上を図ることができる。
【００８０】
以上のように、本実施形態に係る通信装置１は上記の如く構成され機能するので、これによると、送信データ応答時間であるＲＴＴ（Round Trip Timeを用いて推定したボトルネック回線の利用率に基づき、例えば通信回線がボトルネック回線であっても現時点における状況に適した送信レートでデータを送出でき、これにより、ランダムパケット廃棄やパケットエラー回復遅延が生じる通信環境においても、ボトルネック回線の帯域を有効に利用しつつ、輻輳を回避することが可能となる。
【００８１】
本発明の適用範囲は、例えば、ネットワークを介して接続された通信装置１及び通信装置２の間のセッションを中継する中継装置に、本発明を適用してもよい。この中継装置は、両通信装置間の通信セッションにおいて、一方の通信装置１との間でセッションを一旦終端した後、他方の通信装置２との間で新たなセッションを行うことにより、両端末間を中継するものである。
【００８２】
本発明を実施する上で好適な通信プロトコルは、上記実施形態で説明したＴＣＰであるが、このＴＣＰに限らず、輻輳制御を行うものであれば他の通信プロトコルであってもよい。
【００８３】
ここで、上述した実施形態については、その新規な技術的内容の要点をまとめると、以下のようになる。
尚、下記に上記実施形態の技術的内容は以下のように付記１乃至付記１８としてまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００８４】
（付記１）＜請求項１＞
ネットワークを介して通信先に向けて所定量の通信データを出力する送信データ出力部と、この送信データ出力部を駆動制御し前記ネットワークに連続的に送出可能なデータ量を制御する送信レート制御部とを備えた通信装置であって、
前記送信レート制御部が、予め決定された特定の送信レートの上限値を越えない範囲で前記送信データを連続的に送出し続けるように制御する送信レート制御機能を備えていることを特徴とした通信装置。
【００８５】
（付記２）＜請求項２＞
付記１に記載の通信装置において、
前記送信レート制御部には、前記ネットワークの輻輳情報に基づいて送信レート制御モードを特定する送信レート制御モード特定部と、この特定された送信レート制御モードに応じて送信レートの上限値を決定する送信レート計算部とが併設され、
この送信レート制御モード特定部および送信レート計算部の各出力情報に基づいて、前記送信レート制御部が、前記送信データ出力部の出力動作を制御する機能を備えていることを特徴とした通信装置。
【００８６】
（付記３）＜請求項３＞
付記２に記載の通信装置において、
前記送信レート制御モード特定部は、送信レート制御モードとして、前記ネットワークの輻輳情報に基づいて、送信レートを急増させるレート急増モードと、送信レートを少しずつ増加させるレート調整モードと、送信レートを抑制するレート抑制モードとの何れか一つに特定する機能を備えていることを特徴とした通信装置。
【００８７】
（付記４）＜請求項４＞
付記３に記載の通信装置において、
前記送信レート制御モード特定部は、前記ネットワークにおける信号伝搬時間が、早い場合、通常の場合、又は遅い場合のそれぞれについて、対応する前記送信レート制御モードを特定する制御モード特定機能を備えていることを特徴とした通信装置。
【００８８】
（付記５）＜請求項５＞
付記２に記載の通信装置において、
前記送信レート制御モード特定部は、現時点の信号伝播時間が過去の信号伝播時間の最小値以下になると、送信レートを急増させるレート急増モードを前記送信レート制御モードとして特定する機能を備えていることを特徴とする通信装置。
【００８９】
（付記６）＜請求項６＞
付記２に記載の通信装置において、
前記送信レート制御モード特定部は、現時点の信号伝播時間が過去の信号伝播時間の最小値よりも大きく且つ最大値よりも小さい場合に、送信レートを少しずつ増加させるレート調整モードを、前記送信レート制御モードとして特定する機能を備えていることを特徴とする通信装置。
【００９０】
（付記７）＜請求項７＞
付記２に記載の通信装置において、
前記送信レート制御モード特定部は、現時点の信号伝播時間が過去の信号伝播時間の最大値以上になると、送信レートを抑制するレート抑制モードを送信レート制御モードとして特定する機能を備えていることを特徴とする通信装置。
【００９１】
（付記８）＜請求項８＞
付記１に記載の通信装置において、
前記送信レート制御部は、予め装備したデータ受信部の受信バッファサイズの空き容量がゼロとならない限りは、送信レート上限値を越えない範囲で最大限の送信レートでデータの送出制御を継続する最大レート送信制御機能を備えていることを特徴とする通信装置。
【００９２】
（付記９）＜請求項９＞（方法の発明）
ネットワークを介して通信先に向けて所定量の通信データを出力する送信データ出力部と、この送信データ出力部を駆動制御し前記ネットワークに連続的に送出可能なデータ量を制御する送信レート制御部とを備えた通信装置にあって、
前記ネットワークから得られる輻輳情報に基づいて、予め装備された送信レート制御モード特定部が、前記データの送信に必要な送信レート制御モードを特定し、
この特定された送信レート制御モードに応じて、予め装備された送信レート計算部が送信レートの上限値を決定し、
この決定された送信レートの上限値を越えない範囲で前記送信データを連続的に送出し続けるように、前記送信レート制御部が前記送信データ出力部を駆動制御するようにしたことを特徴とする送信データ出力制御方法。
【００９３】
（付記１０）（請求項５対応）
付記９に記載の送信データ出力制御方法において、
前記送信レート制御モードを特定する工程にあっては、前記ネットワークにおける現時点の信号伝搬時間が過去の信号伝播時間の最小値以下になると、前記送信レートを急増させるレート急増モードを、前記送信レート制御モード特定部が前記送信レート制御モードとして特定することを特徴とした送信データ出力制御方法。
【００９４】
（付記１１）（請求項６対応）
付記９に記載の送信データ出力制御方法において、
前記送信レート制御モードを特定する工程にあっては、前記ネットワークにおける現時点の信号伝播時間が過去の信号伝播時間の最小値よりも大きく且つ最大値よりも小さい場合に、前記送信レートを少しずつ増加させるレート調整モードを、前記送信レート制御モード特定部が前記送信レート制御モードとして特定することを特徴とした送信データ出力制御方法。
【００９５】
（付記１２）（請求項７対応）
付記９に記載の送信データ出力制御方法において、
前記送信レート制御モードの特定する工程にあっては、前記ネットワークにおける現時点の信号伝播時間が過去の信号伝播時間の最大値以上になると、前記送信レートを抑制するレート抑制モードを、前記送信レート制御モード特定部が送信レート制御モードとして特定することを特徴とした送信データ出力制御方法。
【００９６】
（付記１３）（請求項８対応）
付記９に記載の送信データ出力制御方法において、
前記送信データ出力部を駆動制御する工程にあっては、予め装備されたデータ受信部の受信バッファサイズの空き容量がゼロとならない限り、前記送信レートの上限値を越えない範囲で且つ最大限の送信レートで、前記送信レート制御部が前記データの送出制御を継続するようにしたことを特徴とする送信データ出力制御方法。
【００９７】
（付記１４）（プログラム発明／付記９対応）
ネットワークを介して通信先に向けて所定量の通信データを出力する送信データ出力部と、この送信データ出力部を駆動制御し前記ネットワークに連続的に送出可能なデータ量を制御する送信レート制御部とを備えた通信装置にあって、
前記ネットワークの輻輳情報に基づいて前記データの送信に必要な送信レート制御モードを特定するレート制御モード特定機能、
この特定された送信レート制御モードに応じて、送信レートの上限値を決定する送信レート上限値決定機能、
および決定された特定の前記送信レートの上限値を越えない範囲で前記送信データを連続的に送出し続けるように、前記送信データ出力部を駆動制御する出力部駆動制御機能、  を設け、これらをコンピュータに実現させるようにしたことを特徴とする送信データ出力制御プログラム。
【００９８】
（付記１５）／付記１０対応
付記１４に記載の送信データ出力制御プログラムにおいて、
前記送信レート制御モードを特定するレート制御モード特定機能にあっては、
前記ネットワークにおける現時点の信号伝搬時間が過去の信号伝播時間の最小値以下になった場合に、前記送信レートを急増させるレート急増モードを前記送信レート制御モードとして特定する機能を備えた構成とし、
この特定処理機能を前記コンピュータに実現させるようにしたことを特徴とする送信データ出力制御プログラム。
【００９９】
（付記１６）／付記１１対応
付記１４に記載の送信データ出力制御プログラムにおいて、
前記送信レート制御モードを特定するレート制御モード特定機能にあっては、
前記ネットワークにおける現時点の信号伝播時間が過去の信号伝播時間の最小値よりも大きく且つ最大値よりも小さい場合に、前記送信レートを少しずつ増加させるレート調整モードを前記送信レート制御モードとして特定する機能を備えた構成とし、
この特定処理機能を前記コンピュータに実現させるようにしたことを特徴とする送信データ出力制御プログラム。
【０１００】
（付記１７）／付記１２対応
前記送信レート制御モードを特定するレート制御モード特定機能にあっては、
前記ネットワークにおける現時点の信号伝播時間が過去の信号伝播時間の最大値以上になると、前記送信レートを抑制するレート抑制モードを送信レート制御モードとして特定する機能を備えた構成とし、
この特定処理機能を前記コンピュータに実現させるようにしたことを特徴とする送信データ出力制御プログラム。
【０１０１】
（付記１８）／付記１３対応
付記１４に記載の送信データ出力制御プログラムにおいて、
前記送信データ出力部を駆動制御する出力部駆動制御機能にあっては、
予め装備されたデータ受信部の受信バッファサイズの空き容量がゼロとならない限り、送信レートの上限値を越えない範囲で且つ最大限の送信レートで、前記送信データの送出制御を継続する機能を備えた構成とし、
この制御機能を前記コンピュータに実現させるようにしたことを特徴とする送信データ出力制御プログラム。
【０１０２】
この出願は２０１２年１１月５日に出願された日本出願特願２０１２−２４３３６３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１０３】
通信端末、通信中継装置、通信サーバ装置、及び有線通信、無線通信に係る各システムなどに適用可能である。
【符号の説明】
【０１０４】
１  通信装置
２  相手側通信装置
１０  ネットワーク
１１  送信データ出力部
１２  ネットワークインタフェース部
１３  データ受信部
１３Ａ  受信バッファ
１４  ＲＴＴ計算部
１５  受信レート計算部
１６  送信レート制御モード特定部
１７  送信レート計算部
１８  送信レート制御部
１８Ａ  最大レート送信制御機能
１９  データ送信部
【図１】
2014069642.tif 000003
【図２】
2014069642.tif 000004
【図３】
2014069642.tif 000005
【手続補正書】
【提出日】平成27年4月14日(2015.4.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
ここで、パラメータｎは、事前に設定しておく任意の自然数である。また、例えば、ボトルネック回線の仕様上の帯域上限値Ｂ＿ｍａｘが既知である場合には、「Ｒ＿ｌｉｍ＝（１−α）×Ｒ＿ｌｉｍ＋α×Ｂ＿ｍａｘ」としてもよい。ただし、パラメータαは事前に設定しておく０＜α＜１の範囲の実数である。
【国際調査報告】
2014069642.tif 000006
2014069642.tif 000007
2014069642.tif 000008