JP4599554B2 - 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式 - Google Patents

広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式 Download PDF

Info

Publication number
JP4599554B2
JP4599554B2 JP2004362297A JP2004362297A JP4599554B2 JP 4599554 B2 JP4599554 B2 JP 4599554B2 JP 2004362297 A JP2004362297 A JP 2004362297A JP 2004362297 A JP2004362297 A JP 2004362297A JP 4599554 B2 JP4599554 B2 JP 4599554B2
Authority
JP
Japan
Prior art keywords
data
ack
window size
congestion
loss
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004362297A
Other languages
English (en)
Other versions
JP2006173961A (ja
Inventor
博靖 小畑
達 竹内
賢治 石田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HIROSHIMA CITY
Original Assignee
HIROSHIMA CITY
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HIROSHIMA CITY filed Critical HIROSHIMA CITY
Priority to JP2004362297A priority Critical patent/JP4599554B2/ja
Publication of JP2006173961A publication Critical patent/JP2006173961A/ja
Application granted granted Critical
Publication of JP4599554B2 publication Critical patent/JP4599554B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、広帯域かつ高遅延な無線ネットワークにおけるTCP通信を高速化する技術に関するものである。
現在、多くのOSに標準で実装されている従来のTCPの輻輳制御方式では、輻輳ウインドウサイズの増加を2つのアルゴリズム(スロースタートアルゴリズムと輻輳回避アルゴリズム)に基づいて行う。
スロースタートアルゴリズムは、通信開始時から実行されるアルゴリズムで、輻輳ウインドウサイズがスロースタート閾値と呼ばれる値よりも小さい時に実行される。スロースタートアルゴリズムでは、輻輳ウインドウサイズの初期値を1セグメントサイズ分とし、送信したセグメントに対するACKが1つ戻る毎に1セグメントサイズ分だけ輻輳ウインドウサイズを増加させる。一方、輻輳回避アルゴリズムは、輻輳ウインドウサイズがスロースタート閾値以上の時、実行されるアルゴリズムである。輻輳回避アルゴリズムでは、輻輳ウインドウサイズ分のセグメントに対するACKが戻る毎に1セグメントサイズ分だけ輻輳ウインドウサイズを増加させる。従って、輻輳ウインドウサイズがスロースタート閾値になるまでは、スロースタートアルゴリズムにより指数的に輻輳ウインドウサイズを増加させ、その後は輻輳回避アルゴリズムにより線形的に輻輳ウインドウサイズを増加させる。
しかしながら、従来の輻輳ウインドウサイズ増加アルゴリズムには、次のような問題がある。伝搬遅延時間の小さいネットワークでは、データを送信してからACKが戻ってくるまでにかかる時間(ラウンドトリップ時間)が小さいため、迅速に輻輳ウインドウサイズが大きくなる。しかしながら、伝搬遅延時間が大きくなると、ラウンドトリップ時間も大きくなるため、輻輳ウインドウサイズの増加速度が非常に遅くなる。特に衛星回線のような非常に伝搬遅延時間が大きな回線がネットワーク内に存在すると、この増加速度の低下は顕著となる。さらに、利用可能な帯域が非常に大きい(数百Mbpsから数Gbps)場合、最大性能が得られる輻輳ウインドウサイズに増加するまでに非常に時間がかかることになる。
この解決策として、Dummyセグメントと呼ばれる特殊なセグメントを利用してネットワークの帯域を測定し、送信開始後すぐに測定帯域を用いて輻輳ウインドウサイズを増加させる改良方式が提案されている。(例えば、非特許文献1参照。)この改良方式で提案されているDummyセグメントは送信データセグメントの複製で、優先度が低く再送は行われない。従って、ルータで輻輳が発生した場合、Dummyセグメントは優先的にルータで破棄される。しかしながら改良方式は、送信側だけではなく受信側と中間に存在するすべてのルータでDummyセグメントを扱う制御を導入する必要がある。従って、インターネットに存在するルータ数は膨大であることを考慮すると、改良方式を実現することは非常に困難であるという問題がある。
I.F.Akyildiz,G.Morabito,S.Palazzo:"TCP-Peach:A New Congestion Control Scheme for Satellite IP Newtorks," IEEE/ACM Transactions of Networking,9,3,pp.307-321,June 2001.
次に、従来のTCPの輻輳制御方式ではデータロスが発生すると、輻輳が発生していると判断する。ただし、この場合データロスは、3つ以上の重複ACKの受信により判明する。するとTCPはネットワークの帯域を圧迫して更なる輻輳を発生させないために、輻輳ウインドウサイズをデータロスが発生した時の値の半分の値に設定する。しかしながら、データのロスは輻輳だけが原因ではなく、伝送路で発生するビット誤りによっても起こる。特に、無線ネットワークでは、途中経路における降雨や障害物などにより、有線ネットワークに比べて頻繁にビット誤りが発生する。ビット誤りによるデータロスが発生した場合、輻輳が発生している訳ではないため、ネットワークの帯域を圧迫しないよう輻輳ウインドウサイズを半減する必要はない。従って、従来のTCPを無線ネットワークに適用すると、ビット誤りによるデータロスが有線ネットワークと比較して頻繁に発生するため、性能が大きく劣化する問題がある。
このビット誤りによるデータロス発生時における性能劣化を防ぐために、ネットワークの帯域を測定し、帯域の測定値を基にデータロス後の輻輳ウインドウサイズを決定する改良方式が提案されている。(例えば、非特許文献2参照。)しかしながら、改良方式で提案されているネットワーク帯域の測定方式は、ある特定のネットワークでしか利用できず、様々なネットワークが混在するネットワークで利用すると帯域の追随性能が低下し、測定帯域の精度が下がる問題がある。
佐藤徳彦,國司光宣,寺岡文男:"TCP-J:無線ネットワークに適したトランスポートプロトコル,"情報処理学会論文誌,43,12,pp.38483858,Dec.2002.
また、従来のTCPの輻輳制御方式では、再送タイマーと呼ばれるタイマーを保持している。TCPは通信途中にラウンドトリップ時間を測定し、この測定時間を基に再送タイマーの値を設定している。再送タイマーは、データを送信するときにセットされ、再送タイマーが切れる(以下、再送タイムアウトと呼ぶ)とデータを再送するという動作を行う。再送タイムアウトが発生すると、TCPはネットワークに重い輻輳が発生していると判断し、輻輳ウインドウサイズを1セグメントサイズ分に設定し、スロースタートアルゴリズムでデータの送信を再開する。
従来のTCP輻輳制御方式では再送タイムアウトの原因がすべて輻輳によるデータロスであると想定している。しかしながら、ACKがバースト的にロスするか、またはACKの到着が一時的にそれまでよりも大きく遅れる場合においても再送タイムアウトは発生する。ただし、この場合、データロスは発生しておらず、輻輳も発生していない。ACKのバースト的なロスは無線ネットワークにおけるビット誤りによって良く起こる。また、ACKの遅延によるタイムアウトは、衛星ネットワークのように高速で伝搬遅延時間が非常に安定しているネットワークで起こりやすいことが知られている。従来のTCP輻輳制御方式では、このようなACKのロスまたは遅延について考慮されていない。また、従来のTCP輻輳制御方式は、送信側主導で再送タイムアウトの原因を探る機能を持っていない。しかも、受信側からACKのロスまたは遅延が発生していることを送信側に通知する機能もない。従って、高速で遅延が安定している無線ネットワークにおいてよく発生するACKのロスまたは遅延が発生した場合、再送タイムアウトの原因は輻輳ではないにも関わらず、ACKのロスまたは遅延を検出する方法がないため、従来のTCP輻輳制御方式のようにスロースタートアルゴリズムを実行し転送レートを下げる。さらに、この場合ACKのロスまたは遅延が発生しただけで、データは受信されているにも関わらず、データが失われたと誤った判断を行い、データを誤再送することになる。その結果、著しい性能の低下が起こり問題となる。
この解決策として、再送タイムアウトが発生しデータを再送した後に、再送データのラウンドトリップ時間と再送タイムアウトが発生するまでのラウンドトリップ時間の大小関係を見ることでACKの遅延を検出する改良方式が提案されている。(例えば、非特許文献3参照。)しかしながら、この改良方式はACKの遅延を考慮しているだけで、ACKがロスした場合に対応できないという問題がある。また、改良方式はACKの遅延を検出すると、再送タイムアウト後の輻輳ウインドウサイズを1セグメントサイズ分に設定するため、ACKの遅延を検出できてもスループットの低下を避けることができないという問題もある。
長谷川剛,村田正幸,宮原秀夫:"誤再送を考慮したTCPのふくそう制御方式/エラー回復方式の改善,"電子情報通信学会 論文誌 通信B,J82-B,11,pp.2074-2084.Nov.1999.
本発明は、衛星回線を用いた衛星インターネットのように広帯域、高遅延な無線ネットワークにおいてTCPを利用した際に問題となる、大きな伝搬遅延による輻輳ウインドウ増加率の減少、ビット誤りによるデータロス時に輻輳ウインドウを不必要に低下させる問題、ACKのロスや遅延により発生する再送タイムアウト後にデータの誤再送と不必要な送信レートを低下させる問題すべてを解決し、TCP通信の高速化を実現するTCP輻輳制御方式を提供することを主たる課題とする。
上記課題を解決するために、本発明では、まず、通信中にACKの到着間隔とACKが通知する受信データ量を基に利用可能帯域を測定し、この測定帯域を利用して帯域を最大限に利用できるウインドウサイズ(測定ウインドウサイズ)を導出し、導出した測定ウインドウサイズを、従来TCPのスロースタートアルゴリズムと輻輳回避アルゴリズムに基づく輻輳ウインドウサイズに足すことで、送信開始時から最大性能が得られる大きな輻輳ウインドウサイズでの通信が可能となることを特徴とするTCP輻輳制御方式を提案する。
また、本発明では、3つ以上の重複ACKの受信により判明するデータロス発生後の輻輳ウインドウサイズおよびスロースタート閾値の設定を、重複ACK受信時に測定した利用可能帯域から得られた測定ウインドウサイズを利用して設定することを特徴とするTCP輻輳制御方式を提案する。
また、本発明では、通信中に行うネットワーク帯域の測定の際に、帯域を平滑化する係数をネットワークに合わせて動的に変化させることで、様々なネットワークに対応可能な追随性に優れた帯域測定方式を持つことを特徴とするTCP輻輳制御方式を提案する。
また、本発明では、再送タイムアウトが発生した後、再送タイムアウトの原因がデータのロスであるのか、それとも、ACKのロスまたは遅延によるものかを判断するために、送信側がそれまでに送信した最大のシーケンス番号を持つデータをプローブパケットとして送信し、受信側からそれまでに連続で受信したデータの最大シーケンス番号をACKで通知させる。プローブパケットに対するACKの受信後、プローブパケットのシーケンス番号とプローブパケットに対するACKが通知するシーケンス番号を用いて、データのロス、ACKロスまたは遅延が発生しているかを判断させることを特徴とするTCP輻輳制御方式を提案する。
さらに、本発明では、上記TCP通信方式において、再送タイムアウトの原因がデータのロスであることが分かれば、従来のTCPの動作と同じく、データ再送後に輻輳ウインドウサイズを1データセグメントサイズ分に設定し、スロースタート閾値を測定ウインドウサイズに設定した後、スロースタートアルゴリズムで送信を再開し、ACKのロスまたは遅延が再送タイムアウトの原因であることが分かれば、輻輳ウインドウサイズとスロースタート閾値を再送タイムアウトが発生する前の値に設定し、続きの新しいデータの送信を行うことを特徴とするTCP輻輳制御方式を提案する。
本発明によれば、広帯域かつ大きな伝搬遅延時間を持つ無線ネットワークであっても、ネットワークの利用可能帯域を迅速にかつ最大限利用でき、高速なTCP通信が可能となる。また、輻輳ではなく無線ネットワークで頻繁に発生するビット誤りによるデータロス時に不要にデータ送信レートを下げることなく高速なTCP通信が可能となる。さらに、広帯域であるために遅延が安定しているネットワークで発生するACKの遅延や、無線ネットワークで発生し易いビット誤りによるACKのロスが原因で起こる不必要なデータの再送と送信レートの低下を防ぐことができ、データのロスだけではなく、ACKのロスまたは遅延が発生した場合にも、高速なTCP通信が可能となる。
以下、図面を参照して本発明の実施形態を説明する。図1は、本発明に係るTCP輻輳制御方式の全体構成図である。本発明に係るTCP輻輳制御方式は、現在一般的に実装されているTCPの輻輳制御機構10の上に、4つの機構(11、12、13、14)を付け加えた構成となる。ただし、現在、広く一般的に利用されているTCPのバージョンはTCP Renoである。図1において、10は従来のTCPのバージョンであるTCP Renoの輻輳制御機構を示す。11はネットワークの帯域を測定するネットワーク帯域測定機構を示す。12は輻輳ウインドウサイズの増加速度を加速させるLWC(Lift Window Control)機構、13は重複ACKの受信により判明するデータロス発生後の輻輳ウインドウサイズとスロースタート閾値の設定を行うCWS(Congestion Window Setting)機構をそれぞれ示す。12のLWC機構と13のCWS機構は、11の機構から得られたネットワークの利用可能帯域を利用して動作する。また、14は再送タイムアウトの発生後、タイムアウトの原因がデータのロス、ACKロスまたは遅延によるものであるのかを検出し、再送タイムアウト後の輻輳ウインドウサイズとスロースタート閾値の設定を行うAEN(Acknowledgement Error Notification)機構を示す。
本発明方式における、図1のTCP(Original)の輻輳制御機構10は、現在、一般的に実装されているTCPのバージョンであるTCP Renoの輻輳制御機構を示す。また、本発明方式は受信側が複数のデータのロスを通知可能な選択確認応答(Selective ACKnowledgement、SACK)を用いる場合を想定している。ここで、SACKを利用しない通常のACKは、1つのデータのロスのみ通知可能である。従って、本発明では、TCP(Original)の輻輳制御機構10はスロースタートアルゴリズム、輻輳回避アルゴリズム、早期再送アルゴリズム、早期回復アルゴリズムの4つのアルゴリズムを含む。
ネットワーク帯域測定機構11では、受信側から送信されるACKを利用してネットワークの利用可能帯域を測定する。まず、送信側ホストがACKを受信した時刻をt(k)、1つ前のACK受信時刻をt(k-1)、送信データ量をd(k)とする。これらの情報を利用して、帯域のサンプル値BWsample(k)をACKを受信する毎に図2の式を利用して計算する。次に、計算した帯域サンプル値と過去の帯域値を利用し図3の式で平滑化することで、利用可能帯域BWkを導出する。図3において、ある時刻t(k)における利用可能帯域BWkは、過去の利用可能帯域BWk-1および時刻t(k)で取得した帯域のサンプル値BWsample(k)と前回測定の帯域サンプル値BWsample(k-1)の平均値から得られる。ただし、図3において、aは平滑化係数(0<a<1)を示し、通信を行うネットワーク毎に最適な値を設定する必要がある。また、平滑化係数aはネットワークの変動に敏感に反応させるときは、平滑化係数の値を小さくする(0に近づける)。逆にネットワークの激しい変動に対してあまり敏感に反応させたくないときは、平滑化係数を大きくする(1に近づける)。
また、図3における平滑化係数aは、衛星回線のみを使った衛星ネットワークのような特定のネットワークのみを利用して通信する場合、それぞれのネットワークに適した固定値を利用する。インターネットのように、多種多様なネットワークを経由する場合は、ネットワークの状況に合わせて動的に平滑化係数aを設定すると、追随性が向上し、より精度の良い利用可能帯域が導出できる。また、利用可能帯域は平滑化係数が極限値(最大値1、最小値0)に近いと平滑化係数の変化に敏感となる。そこで、動的に平滑化係数aを設定する方法として、極限値に近づくにつれ増減が緩やかになり、それ以外の部分においては線形的に増減する曲線を描く数式の利用が考えられる。ただし、多種多様なネットワークを経由するインターネット上でTCP通信を行う際に、平滑化係数として固定値を利用しても、十分精度の良い帯域値を得ることは可能である。
LWC機構12では、上記、ネットワーク帯域測定機構11により得られた利用可能帯域を用いて輻輳ウインドウサイズを増加させる。LWC機構は、まず、図4の式により、帯域を最大限利用できる測定ウインドウサイズcwnd_abeを導出する。図4において、BWは図3の式により得られる利用可能帯域(ただし、BWk=BWとしている。)、MSSは最大セグメントサイズ、RTTminはラウンドトリップ時間RTTの最小値を示す。ここで送信側は、送信開始時から、あるデータの送信時間とそのデータに対するACKの受信時間から得られるRTTを記録しておき、常に最小となる値をRTTminとして保持している。次に、TCP(Original)の輻輳制御機構(図1の10)のスロースタートアルゴリズムと輻輳回避アルゴリズムにより得られる輻輳ウインドウサイズcwnd_renoに、測定ウインドウサイズcwnd_abeを足すことで、輻輳ウインドウサイズcwndを図5で示される式で導出する。
LWC機構12において利用する、TCP(Original)の輻輳制御機構(図1の10)のスロースタートアルゴリズムと輻輳回避アルゴリズムでは、図6に示される式により輻輳ウインドウサイズcwnd_renoが設定される。図6において、スロースタートアルゴリズムは、データ送信開始時およびデータロスによる再送タイムアウトが発生したときに実行され、1つのACKを受信する毎に1セグメントサイズ分だけ輻輳ウインドウサイズcwnd_renoを増加させる。輻輳回避アルゴリズムは、輻輳ウインドウサイズcwnd_renoがスロースタート閾値ssthreshよりも大きくなると実行され、輻輳ウインドウサイズcwnd_reno分のACKを受信するごとに1セグメントサイズ分、輻輳ウインドウサイズcwnd_renoを増加させる。
CWS機構13では、ネットワーク帯域測定機構11で導出された利用可能帯域から計算する測定ウインドウサイズcwnd_abeを利用して、3つ以上の重複ACKの受信により判明するデータロス発生後の輻輳ウインドウサイズcwndとスロースタート閾値ssthreshを設定する。図7はCWS機構における輻輳ウインドウサイズとスロースタート閾値の設定の式を示す。図7より、cwndがssthreshよりも小さい場合、ssthreshを測定ウインドウサイズcwnd_abeに設定し、cwndはそれまでの値を保持する。もしcwndがssthresh以上であれば、ssthreshを測定ウインドウサイズcwnd_abeに設定し、cwndはssthresh(つまり測定ウインドウサイズ)に設定する。また、データロスが発生し、上記の方法でcwndを設定した後、TCP(Original)の輻輳制御機構(図1の10)で保持されている輻輳ウインドウサイズcwnd_renoは、TCP Renoの通常の動作に従い、半分の値に設定される。
AEN機構14では、再送タイムアウトが発生すると、タイムアウトの原因がデータロスかまたは、ACKのロス/遅延によるもののどちらであるかを調査する。その結果、AEN機構は再送タイムアウトの原因が分かると、データロスの場合とACKロスまたは遅延の場合でそれぞれ別の動作を行う。
まず、AENの動作概要を説明する。図8の(a)はデータロスにより再送タイムアウトが発生した場合、(b)はACKのロスまたは遅延により再送タイムアウトが発生した場合のAENの動作例をそれぞれ示す。図8において、RTOは再送タイムアウト時間、RTTはラウンドトリップ時間を示す。まず、時刻t0に送信したデータがロスまたは、送信したデータに対するACKがロス/遅延し、時刻t1に再送タイムアウトが発生すると、再送タイムアウトの原因を調査するために、プローブパケットを送信する。ここで、このプローブパケット(以下、AEN-Proveと呼ぶ)として、送信側がそれまでに送信しているデータの内、最大のシーケンス番号を持つデータを利用する。つまり、最新のシーケンス番号を持つ送信済みデータを再送することになる。なお、プローブパケットは、確実に送信するために複数個出すことも可能である。AEN-Proveを受け取った受信側は、それまでに連続して受信したデータの最大のシーケンス番号を示すACK(以下、AEN-ACKと呼ぶ)を送信側に返す。時刻t2でAEN−ACKを受信した送信側は、AEN-Proveのシーケンス番号PsegとAEN-ACKが通知するそれまでに連続して受信したデータの最大シーケンス番号Packを利用して、図9に示すように再送タイムアウトの原因がデータロスであるのか、そえともACKのロスまたは遅延であるのかを判断する。図9において、PsegはAEN-Probeのシーケンス番号、PackはAEN-ACKが通知するシーケンス番号を示す。図9より、PsegがPackよりも大きければ(Pseg>Pack)、データのロスが発生していると判断し、PsegがPack以下であれば(Pseg<=Pack)、ACKのロスまたは遅延が発生していると判断する。
シーケンス番号を用いて判定を行った結果、再送タイムアウトの原因がデータロスである場合、AEN-ACKの通知するシーケンス番号が示すロスしたデータを再送し(図8(a)の時刻t3)、輻輳ウインドウサイズcwndを1セグメントサイズ分にし、スロースタートアルゴリズムで送信を再開する。ただし、スロースタート閾値はネットワーク帯域測定機構から得られる帯域から導出する測定ウインドウサイズに設定する。一方、再送タイムアウトの原因がACKのロスまたは遅延である場合、輻輳ウインドウサイズとスロースタート閾値はそのままの値で、新しい続きのデータ送信を開始する(図8(b)の時刻t3)。
また、上記の判定において、TCP(Original)の輻輳制御機構(図1の10)では、再送タイムアウトの原因がデータロスであった場合、輻輳ウインドウサイズcwnd_renoは1セグメントサイズ分に設定する。再送タイムアウトの原因がACKのロスまたは遅延である場合は、cwnd_renoの値は変化させない。
次に、AENの詳細な動作について図10の状態遷移図を用いて説明する。図10では、ある状態から別の状態に遷移するときの条件とその時に行う動作を(1)から(14)までの番号で示している。図10の(1)から(14)までの項目において、上段はある状態から別の状態に遷移するための条件、下段はある状態から別の状態に遷移する際に行う動作をそれぞれ示す。また、図10において、PsegはAEN-Probeのシーケンス番号、PackはAEN-ACKが通知するシーケンス番号、NackはAEN-ACKではない通常のACKのシーケンス番号を示す。
ここで、AENで利用するプローブ用のデータ(AEN-Probe)およびプローブに応答するACK(AEN-ACK)は、通常のデータおよびACKとは異なることを示すために、TCPヘッダの予約フィールド(6ビット)の内1ビットを利用することを考える。つまり、TCPヘッダの予約フィールドの1ビットに1が立っていれば、このパケットはAENで利用されるパケット(AEN_ProbeまたはAEN_ACK)であることを示す。なお、通常のTCP通信では、TCPヘッダの予約フィールドの値はすべて0となっている。
図10において、再送タイムアウトが発生していない時の通信状態をNORMAL_STATE20、AEN-Probeを送信した後の状態をAEN-ACK_WAIT21、AEN-ACK_WAIT21の状態で重複ACKを受信した後の状態をDUP-ACK_RCVD22とそれぞれ呼ぶ。ただし、図10において、図を分かり易く書く都合上NORMAL_STATE20を2ヶ所に書いているが、同じものを示す。まず、NORMAL_STATE20の状態からAEN-ACK_WAIT21の状態に遷移する場合を示す。NORMAL_STATE20の状態で再送タイムアウトが発生するとAEN-Probeを送信しAEN-ACK_WAIT21状態に遷移する(1)。次に、AEN-ACK_WAIT21の状態から遷移しない場合を示す。AEN-ACK_WAIT21の状態で、Pseg>Nackとなる通常のACKを受信した場合、何もせず(ACKは無視する)状態は遷移しない(2)。次に、AEN-ACK_WAIT21の状態から、NORMAL_STATE20の状態に戻る場合を示す。AEN-ACK_WAIT21の状態で、Pseg<=PackとなるAEN-ACKを受信した場合、ACKのロスまたは遅延が発生したと判断し、続きの新しいデータの送信を開始しNORMAL_STATE20に遷移する(3)。AEN-ACK_WAIT21の状態で、Pseg>PackとなるAEN-ACKを受信した場合、データがロスしたと判断し、AEN-ACKが示すロスしたデータを再送すると同時にスロースタートアルゴリズムを開始し、NORMAL_STATE20に遷移する(4)。AEN-ACK_WAIT21の状態で、AEN-Probeが再送タイムアウトを起こした場合、到達未確認データを再送すると同時にスロースタートアルゴリズムを開始し、NORMAL_STATE20に遷移する(5)。AEN-ACK_WAIT21の状態で、Pseg<=Nackとなる通常のACKを受信した場合、タイムアウトを起こしたデータはすでに受信されていると判断し、新しい続きのデータの送信をただちに開始し、NORMAL_STATE20に遷移する(6)。次に、AEN-ACK_WAIT21の状態から、DUP-ACK_RCVD22の状態に遷移する場合を示す。AEN-ACK_WAIT21の状態で、再送タイムアウトを起こしたデータ以外のデータに対する重複ACKを受信した場合、何もせず(ACKは無視する)DUP-ACK_RCVD22に遷移する(7)。次に、DUP-ACK_RCVD22の状態から遷移しない場合を示す。DUP-ACK_RCVD22の状態で、Pseg>Nackとなる通常のACKを受信した場合、何もせず(ACKは無視する)状態も遷移しない(8)。DUP-ACK_RCVD22の状態で、再送タイムアウトを起こしたデータ以外のデータに対する3つに達しない重複ACKを受信した場合、何もせず(ACKは無視する)状態も遷移しない(9)。DUP-ACK_RCVD22の状態で、再送タイムアウトを起こしたデータ以外のデータに対する3つに達する重複ACKを受信した場合、ただちに重複ACKが示すロスしたデータを再送し状態は遷移しない(10)。最後に、DUP-ACK_RCVD22の状態からNORMAL_STATE20の状態に遷移する場合を示す。DUP-ACK_RCVD22の状態で、Pseg<=PackとなるAEN-ACKを受信した場合、ACKのロスまたは遅延が発生したと判断し、続きの新しいデータの送信を開始しNORMAL_STATE20に遷移する(11)。DUP-ACK_RCVD22の状態で、Pseg>PackとなるAEN-ACKを受信した場合、データがロスしたと判断し、AEN-ACKが示すロスしたデータを再送すると同時にスロースタートアルゴリズムを開始し、NORMAL_STATE20に遷移する(12)。DUP-ACK_RCVD22の状態で、AEN-Probeが再送タイムアウトを起こした場合、到達未確認データを再送すると同時にスロースタートアルゴリズムを開始し、NORMAL_STATE20に遷移する(13)。DUP-ACK_RCVD22の状態で、Pseg<=Nackとなる、通常のACKを受信した場合、タイムアウトを起こしたデータはすでに受信されていると判断し、新しい続きのデータの送信を開始し、NORMAL_STATE20に遷移する(14)。
次に、図10において、(1)から(14)までの状態遷移を行う際の、輻輳ウインドウサイズとスロースタート閾値の設定について説明する。まず、(4)(5)(12)(13)の場合は、輻輳ウインドウサイズを1つ分のデータセグメントサイズ、スロースタート閾値を帯域値から得られた測定ウインドウサイズに設定する。その他の場合については、輻輳ウインドウサイズとスロースタート閾値は変化させず状態遷移前の値を保持させる。
また、上記AENの輻輳ウインドウサイズとスロースタート閾値の設定において、ACKロスまたは遅延が判明した時は、再送タイムアウトが発生する前の値を保持させている。しかしながら、プローブパケットを送信している間にネットワークの状態が急変(帯域が減少/増加)している可能性ある。このような場合においては、ACKロスまたは遅延が発生後の輻輳ウインドウサイズとスロースタート閾値を、ネットワークの帯域から得られた測定ウインドウサイズを利用して設定させることで、対応可能となる。
AEN機構において、AEN-ProbeとAEN_ACKはTCPヘッダの予約フィールド(6ビット)を使って通常のデータおよびACKと区別しているが、本発明方式は予約フィールドを利用しない場合においても動作することが可能である。この時、図10において、(1)(3)(4)(5)のみ利用すればよい。この場合、受信側はAENを扱うための実装の変更を行う必要がなく、送信側のみの変更で済む。
上記までに説明した各機構の送信開始から送信終了までの動作について図11を利用して説明する。まず始めに、通信を開始するため、送信側と受信側の間にコネクションを設定する(S101)。コネクション設定が完了すると(C101)、データ送信を開始する(S102)。データ送信が開始されると、ACKを受信する毎にネットワーク帯域測定機構モジュール30によりネットワークの利用可能帯域を測定し、LWC機構モジュール31とCWS機構モジュール32の測定ウインドウサイズ計算処理(S103、S106)に測定帯域を通知する。データ送信処理(S102)を行う際に利用する輻輳ウインドウサイズの設定は、3つ以上の重複ACKにより判明するデータロスおよび再送タイムアウトが発生したとき以外は常にLWC機構モジュール31によって行われる。LWC機構モジュール31では、測定ウインドウサイズ計算処理(S103)から得られた測定ウインドウサイズとTCP(Original)の輻輳ウインドウサイズ設定処理(S104)から得られるTCP Renoに基づく輻輳ウインドウサイズを足して、送信ウインドウサイズを設定する(S105)。送信側はこの処理(S105)で得られた輻輳ウインドウサイズを用いて送信処理を行う。もし、3つの重複ACKを受信しデータロスを検出すると(C102)、CWS機構モジュール32において、測定ウインドウサイズ計算処理(S106)から得られる測定ウインドウサイズを利用して、スロースタート閾値と輻輳ウインドウサイズの設定を行う(S107)。CWS機構の処理が完了すると(C103)、データ再送処理を行い続きのデータ送信を再開する(S102)。また、データ送信中に、再送タイムアウトが発生すると(C104)、AEN機構モジュール33において、まず再送タイムアウトの原因がデータロスかまたはACKロス/遅延なのかを判定する(S108)。再送タイムアウトの原因の判明後、スロースタート閾値と輻輳ウインドウサイズの設定を行う(S109)。AEN機構の処理が完了すると(C105)、データロスが再送タイムアウトの原因であれば、ロスしたデータの再送後、データ送信を再開する(S102)。ACKロス/遅延が再送タイムアウトの原因であれば、ただちに新しい続きのデータ送信を再開する(S102)。すべてのデータ送信が完了すると(C106)、コネクションを切断し(S110)、通信を終了する。
以上、本発明方式によれば、広帯域かつ高遅延な無線ネットワークにおけるTCP通信を高速化することが可能である。さらに、同様なネットワーク特性を持つ、広帯域かつ高遅延な有線ネットワーク(ギガビットネットワーク等)においても、本発明方式は利用可能である。
本発明のTCP輻輳制御方式の構成図 サンプル帯域の計算式 利用可能帯域の計算式 測定ウインドウサイズの計算式 LWCによる輻輳ウインドウサイズの計算式 スロースタートアルゴリズムと輻輳制御アルゴリズムに基づく輻輳ウインドウサイズの設定 CWSによる輻輳ウインドウサイズの設定 AENによる再送タイムアウト原因の検出とその後の動作例 AENにおける再送タイムアウト原因の判定内容 AEN動作の状態遷移図 本発明のTCP輻輳制御方式の動作
符号の説明
10: TCP(Original)の輻輳制御機構
11: ネットワーク帯域測定機構
12: LWC(Lift Window Control)機構
13: CWS(Congestion Window Setting)機構
14: AEN(Acknowledgement Error Notification)機構
20: AENが動作していない通常の通信状態
21: AEN-Probe送出後、AEN-ACKを待っている状態
22: AEN-Probe送出後、AEN-ACKを待っている状態で重複ACKを受信した後の状態
30: ネットワーク帯域測定機構モジュール
31: LWC機構モジュール
32: CWS機構モジュール
33: AEN機構モジュール

Claims (6)

  1. 通信中に通信ネットワークの帯域を測定し、測定した値から得られる、ネットワーク帯域を最大限利用できるウインドウサイズ(以下、測定ウインドウサイズと呼ぶ)を用いて輻輳ウインドウサイズの増加率を大きくする方式と、測定ウインドウサイズを利用して重複ACKにより判明するデータロス後のTCPの輻輳ウインドウサイズおよびスロースタート閾値を設定する方式と、再送タイムアウト後にデータセグメントの確認応答であるACKセグメントのロスおよび遅延を検出することによりデータの誤再送を防ぐと共に輻輳ウインドウサイズを減少させないことで、送信レートの低下を防ぐ方式からなる、広帯域かつ高遅延な無線ネットワークにおけるTCP通信を高速化することを特徴とするTCP輻輳制御方式。
  2. 請求項1において、TCPの輻輳ウインドウサイズの増加アルゴリズムである、スロースタートアルゴリズムと輻輳回避アルゴリズムに基づく輻輳ウインドウサイズの値に、通信中の測定帯域から得られた測定ウインドウサイズを足すことで、広帯域かつ高遅延ネットワークにおいて、通信開始時からの輻輳ウインドウの増加を加速させることを特徴とするTCP輻輳制御方式。
  3. 請求項1において、ネットワーク帯域の測定を行うもので、帯域をACKの到着間隔とACKが通知するデータ受信量を利用して測定し、計測した帯域と過去の帯域およびネットワーク状況に合わせて動的に変化させる平滑化係数を利用して現在の帯域値を導出するため、様々なネットワーク環境に対応可能なことを特徴とするTCP輻輳制御方式。
  4. 請求項1において、再送タイムアウト後の輻輳ウインドウサイズとスロースタート閾値の設定を行うもので、再送タイムアウトの発生後、プローブパケットを送信し、その応答ACKからタイムアウトの原因がデータのロスかそれともACKのロスまたは遅延によるものかを判定し、再送タイムアウトの原因がデータのロスであれば、ネットワークが重い輻輳状態であると判断し、該当データの再送および輻輳ウインドウサイズを初期値に設定し、またスロースタート閾値を測定ウインドウサイズに設定した後に送信を再開し、再送タイムアウトの原因がACKロスまたは遅延であるならば、該当データの送信は行わず輻輳ウインドウサイズおよびスロースタート閾値を再送タイムアウト前の値に設定することで、ACKのロスまたは遅延により再送タイムアウトが発生した時の通信を高速化することを特徴とするTCP輻輳制御方式。
  5. 請求項4において、再送タイムアウトの原因調査に利用するプローブパケットとして、データ送信側がタイムアウト発生までに送信したデータの内、最大のシーケンス番号を持つデータを利用し、データ送信側主導でデータ受信側にそれまでに受信したデータの最大シーケンス番号を通知させることを特徴とするTCP輻輳制御方式。
  6. 請求項4において、データのロスとACKのロスまたは遅延を判定する際、プローブパケットのシーケンス番号(以下、Psegと呼ぶ)と、プローブパケットに対するACKにより通知されるデータ受信側がそれまでに受信した最新のデータのシーケンス番号(以下、Packと呼ぶ)を利用し、PsegがPackよりも大きい値(Pseg>Pack)であれば、データのロスが発生していると判断し、PsegがPack以下の値(Pseg<=Pack)であれば、ACKのロスまたは遅延が発生していると判断することを特徴とするTCP輻輳制御方式。
JP2004362297A 2004-12-15 2004-12-15 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式 Expired - Fee Related JP4599554B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004362297A JP4599554B2 (ja) 2004-12-15 2004-12-15 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004362297A JP4599554B2 (ja) 2004-12-15 2004-12-15 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式

Publications (2)

Publication Number Publication Date
JP2006173961A JP2006173961A (ja) 2006-06-29
JP4599554B2 true JP4599554B2 (ja) 2010-12-15

Family

ID=36674249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004362297A Expired - Fee Related JP4599554B2 (ja) 2004-12-15 2004-12-15 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式

Country Status (1)

Country Link
JP (1) JP4599554B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008044653A1 (fr) * 2006-10-05 2008-04-17 Ntt Docomo, Inc. Système, périphérique et procédé de communication
JP4793580B2 (ja) * 2006-12-04 2011-10-12 日本電気株式会社 プロトコル種別判別方法、そのシステム及びプログラム
JP4778453B2 (ja) * 2007-01-24 2011-09-21 株式会社エヌ・ティ・ティ・ドコモ 通信端末、輻輳制御方法および輻輳制御プログラム
JP4367505B2 (ja) 2007-03-06 2009-11-18 日本電気株式会社 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム
JP4942040B2 (ja) * 2007-07-18 2012-05-30 国立大学法人電気通信大学 通信装置および通信方法
CN101146033B (zh) * 2007-10-31 2010-04-14 重庆邮电大学 一种基于跨层协作机制提高无线自组织网络性能的方法
JP2009231857A (ja) * 2008-03-19 2009-10-08 Sony Corp 通信制御装置、通信制御方法および通信制御プログラム
JP6101046B2 (ja) * 2012-10-31 2017-03-22 日本放送協会 パケット送信装置およびそのプログラム
JP6515436B2 (ja) * 2014-01-07 2019-05-22 株式会社リコー 伝送システム、伝送端末、及びプログラム
EP2961113B1 (en) * 2014-06-24 2017-05-24 Alcatel Lucent Control of protection switching in a communication network
CN111163120A (zh) * 2018-11-08 2020-05-15 阿里巴巴集团控股有限公司 分布式数据库的数据存储传输方法和装置以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000209224A (ja) * 1999-01-18 2000-07-28 Chokosoku Network Computer Gijutsu Kenkyusho:Kk フロ―制御方法
JP2001308939A (ja) * 2000-02-17 2001-11-02 Fujitsu Ltd スループットを制御する通信システムおよび方法
JP2001352339A (ja) * 2000-06-07 2001-12-21 Nippon Telegr & Teleph Corp <Ntt> 通信システム
JP2002152308A (ja) * 2000-11-09 2002-05-24 Nec Corp データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体
JP2003198612A (ja) * 2001-12-26 2003-07-11 Nippon Telegr & Teleph Corp <Ntt> パケット通信ネットワークにおけるファイル転送方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000209224A (ja) * 1999-01-18 2000-07-28 Chokosoku Network Computer Gijutsu Kenkyusho:Kk フロ―制御方法
JP2001308939A (ja) * 2000-02-17 2001-11-02 Fujitsu Ltd スループットを制御する通信システムおよび方法
JP2001352339A (ja) * 2000-06-07 2001-12-21 Nippon Telegr & Teleph Corp <Ntt> 通信システム
JP2002152308A (ja) * 2000-11-09 2002-05-24 Nec Corp データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体
JP2003198612A (ja) * 2001-12-26 2003-07-11 Nippon Telegr & Teleph Corp <Ntt> パケット通信ネットワークにおけるファイル転送方法

Also Published As

Publication number Publication date
JP2006173961A (ja) 2006-06-29

Similar Documents

Publication Publication Date Title
US7460472B2 (en) System and method for transmitting information in a communication network
US8605590B2 (en) Systems and methods of improving performance of transport protocols
US6535482B1 (en) Congestion notification from router
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
US7564792B2 (en) Transparent optimization for transmission control protocol flow control
US10064073B2 (en) Optimizing bandwidth of cognitive radios
US20070076598A1 (en) Method and apparatus for preventing activation of a congestion control process
US7489637B2 (en) Method of enhancing the efficiency of data flow in communication systems
Samaraweera et al. Reinforcement of TCP error recovery for wireless communication
JP4599554B2 (ja) 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式
Francis et al. Techniques for enhancing TCP performance in wireless networks
KR100912178B1 (ko) 무선 환경에서의 혼잡제어방법 및 기록매체
Bassil TCP congestion control scheme for wireless networks based on tcp reserved field and snr ratio
Liu et al. A unified tcp enhancement for wireless mesh networks
Kim et al. TCP CAE: an improved congestion control using comparative ACK-based estimator
Molia et al. A conceptual exploration of TCP variants
Patel et al. TCP over Wireless Networks: Issues, Challenges and Survey of Solutions
Rani et al. Cross layer based schemes for improving the performance of TCP in wireless networks
Ghaleb-Seddik et al. Coupling Loss and Delay Differentiation to Enhance TCP Performance within Wireless Multi-hop Ad-hoc Networks
Sreekumari et al. A Timestamp based Detection of fast retransmission loss for improving the performance of TCP NewReno over wireless networks
KR20050013777A (ko) 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법
Ahmed et al. Enhancing TCP performance in mobile ad hoc networks
Latha et al. Implementation of TCP Congestion Control mechanism for Wireless Networks using TCP Reserved Field and Signal to Noise Ratio (SNR)
Ezil Sam Leni et al. Bandwidth Estimation in Wireless Networks (TCP-bwiw): to Improve TCP Performance in Wireless Communication Networks
Premalatha et al. Mitigating congestion in wireless networks by using TCP variants

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071213

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20071213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100624

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100804

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100902

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4599554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees