(57)【要約】  本発明による高速通信システムは、通信経路上に設けられた複数のノードと、前記複数のノードそれぞれの間に張られた複数の通信コネクションとを備える。前記複数のノードは、前記複数の通信コネクションそれぞれが達成できる通信性能を示す複数の性能モデル情報を、前記ノード間で交換する。前記複数のノードそれぞれは、前記複数の性能モデル情報のうちいずれかの性能モデル情報に基づいた通信制御を実施する。
2011102294.tif 000002
【特許請求の範囲】
【請求項１】
通信経路上に設けられた複数のノードと、
前記複数のノードそれぞれの間に張られた複数の通信コネクションとを備え、
前記複数のノードは、前記複数の通信コネクションそれぞれが達成できる通信性能を示す複数の性能モデル情報を、前記ノード間で交換し、
前記複数のノードそれぞれは、前記複数の性能モデル情報のうちいずれかの性能モデル情報に基づいた通信制御を実施する
高速通信システム。
【請求項２】
前記複数のノードそれぞれは、前記達成できる通信性能のうち前記ノード間の平均スループットを推定し、
前記複数のノードそれぞれは、前記平均スループットで示される性能モデル情報を、前記ノード間で交換して、目標とする平均スループットを決定し、前記目標とする平均スループットによる通信制御を実施する
請求項１に記載の高速通信システム。
【請求項３】
前記複数のノードそれぞれは、前記達成できる通信性能のうち前記ノード間のスループット上昇速度を推定し、
前記複数のノードそれぞれは、前記スループット上昇速度で示される性能モデル情報を、前記ノード間で交換して、目標とするスループット上昇速度を決定し、前記目標とするスループット上昇速度による通信制御を実施する
請求項１に記載の高速通信システム。
【請求項４】
前記複数のノードは、始点ノードと、終点ノードと、前記始点ノードと前記終点ノードとの間に設けられた中継ノードとを有し、
前記始点ノードが通信を行うことを通知する制御開始信号を終点ノードへ送信し、
前記制御開始信号を検知した前記終点ノードが、前記制御開始信号の検知に基づいて前記終点ノードの性能モデル情報を算出し、また前記中継ノードが、前記制御開始信号の検知に基づいて前記中継ノードの性能モデル情報を算出し、
前記始点ノードが前記性能モデル情報を格納した性能モデル通知信号を前記終点ノードへ送信し、
前記中継ノードが前記性能モデル通信信号を前記終点ノードへ転送する際に、前記性能モデル通知信号に格納されている性能モデル情報と、前記中継ノードの算出した性能モデル情報とを比較して小さい値を示す性能モデル情報のみを格納した前記性能モデル通知信号を転送し、
前記終点ノードが受信した前記性能モデル通知信号に格納されている性能モデル情報を記憶すると共に、前記性能モデル情報を格納した性能モデル確定信号を前記始点ノードへ送信し、
前記性能モデル確定信号を前記始点ノードへ中継した中継ノードおよび前記始点ノードが前記性能モデル確定信号に格納された性能モデル情報を記憶し、
前記始点ノードと前記中継ノードは前記性能モデル確定信号に格納された性能モデル情報に基づいてＴＣＰ制御を行う
請求項１から請求項３のいずれか一項に記載の高速通信システム。
【請求項５】
前記始点ノードと前記中継ノードと前記終点ノードは、隣接して接続する前段ノードと後段ノードとを有し、
前記前段ノードと前記後段ノードとの間のＲＴＴの時間において、前記前段ノードと前記後段ノードとの間の平均スループットで通信が行われた場合のデータ量の定数倍のデータ量よりも、前記後段ノードのキューに蓄積されているデータ量が少ない場合、通常の輻輳ウィンドウの制御を示す通信抑制判定信号を、前記後段ノードが前記前段ノードへ送信し、
前記前段ノードが前記通信抑制判定信号に基づいてＴＣＰ制御を行う
請求項４に記載の高速通信システム。
【請求項６】
前記始点ノードと前記中継ノードと前記終点ノードは、隣接して接続する前段ノードと後段ノードとを有し、
前記後段ノードのキューに蓄積されているデータ量が、前記前段ノードと前記後段ノードの間のＲＴＴの時間において、前記前段ノードと前記後段ノードとの間の平均スループットで通信が行われた場合のデータ量の定数倍のデータ量以上であって、通信停止を示す上限値である定数よりも少ない場合、輻輳ウィンドウを減少させる制御を示す通信抑制判定信号を、前記後段ノードが前記前段ノードへ送信し、
前記前段ノードが前記通信抑制判定信号に基づいてＴＣＰ制御を行う
請求項４または請求項５に記載の高速通信システム。
【請求項７】
前記始点ノードと前記中継ノードと前記終点ノードは、隣接して接続する前段ノードと後段ノードとを有し、
前記後段ノードのキューに蓄積されているデータ量が、通信停止を示す上限値を超えている場合には、データ送信を、後段ノードとその次のノードの間のＲＴＴの時間だけ停止することを示す通信抑制判定信号を、前記後段ノードが前記前段ノードへ送信し、
前記前段ノードが前記通信抑制判定信号に基づいてＴＣＰ制御を行う
請求項４から請求項６のいずれか一項に記載の高速通信システム。
【請求項８】
前記後段ノードがパケットロスを検知した場合であって、前記後段ノードが次のノードへのＴＣＰ制御において輻輳ウィンドウを減少させる制御を行っている場合、後段ノードとその次のノードの間のＲＴＴの時間だけ停止することを示す通信抑制判定信号を、前記後段ノードが前記前段ノードへ送信し、
前記前段ノードが前記通信抑制判定信号に基づいてＴＣＰ制御を行う
請求項４から請求項６のいずれか一項に記載の高速通信システム。
【請求項９】
前記前段ノードは、前記後段ノードと前記その次のノードの間のＲＴＴの時間だけ通信を停止して、前記ＲＴＴの時間経過後、輻輳ウィンドウにスループット低減割合を乗算して、新たな輻輳ウィンドウのサイズを決定し、通信を再開する
請求項８に記載の高速通信システム。
【請求項１０】
始点ノードと終点ノードと前記始点ノードと前記終点ノードとの間に設けられた中継ノードとを有する通信経路上の複数のノードを経由して行われる高速通信システムにおける高速通信方法であって、
前記始点ノードが通信を行うことを通知する制御開始信号を前記終点ノードへ送信し、
前記制御開始信号を検知した前記終点ノードが、前記制御開始信号の検知に基づいて終点ノードの性能モデル情報を算出し、
前記中継ノードが、前記制御開始信号の検知に基づいて終点ノードの性能モデル情報を算出し、
前記始点ノードが前記性能モデル情報を格納した性能モデル通知信号を前記終点ノードへ送信し、
前記中継ノードが前記性能モデル通信信号を前記終点ノードへ転送する際に、前記性能モデル通知信号に格納されている性能モデル情報と、前記中継ノードが算出した性能モデル情報とを比較して小さい値を示す性能モデル情報のみを格納した前記性能モデル通知信号を転送し、
前記終点ノードが受信した前記性能モデル通知信号に格納されている性能モデル情報を記憶すると共に、前記性能モデル情報を格納した性能モデル確定信号を前記始点ノードへ送信し、
前記性能モデル確定信号を前記始点ノードへ中継した中継ノードおよび前記始点ノードが前記性能モデル確定信号に格納された性能モデル情報を記憶し、
前記始点ノードと前記中継ノードは前記性能モデル確定信号に格納された性能モデル情報に基づいてＴＣＰ制御を行う
ことを含む高速通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードを介してデータ送信する高速通信システム及び高速通信方法に関する。
【背景技術】
【０００２】
ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）通信方式は、インターネットにて用いられる代表的な通信プロトコルである。このＴＣＰ／ＩＰ通信方式では、送信端末は、受信端末から通知されたウィンドウサイズ(受信端末が受信可能なデータセグメント数やデータサイズ等の情報)の範囲内において、送信可能な最大のデータサイズを用いて通信した際の通信速度に適合させるよう通信レートを決定して通信を行う。送信端末が決定する通信レートはネットワークの遅延に反比例し、またパケットロス率の平方根に反比例し低下することが知られている。つまり、大きな遅延が存在するネットワークや、パケットロス率が高いネットワークでは、ＴＣＰの通信性能は発揮されない。【０００３】
図１に示すように、ＴＣＰ通信を利用し、端末もしくはノード間において順次データを転送しつつ最終宛先の装置へデータを転送する通信方式が存在する。このようにＴＣＰの通信レートを決定する制御をネットワーク上の複数のノードそれぞれで行うような通信方式では、ネットワークの遅延とパケットロスがそれぞれのノード間におけるネットワーク区間に分散される。このため、それぞれのノード間におけるＴＣＰコネクションにおけるネットワークの遅延とパケットロスが小さくなりＴＣＰによる通信性能が向上する。無線通信の性能向上を目的とした関連技術が特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】日本国特開２００８−１９９３３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、このような通信方式では、それぞれのＴＣＰコネクションが独立に動作するため、データを転送するノードのキューにデータが多く蓄積してしまう場合がある。一例として、データを転送するノードが、一方のネットワークからＴＣＰコネクションＡにより受信したデータを、他方のネットワークへＴＣＰコネクションＢにより送出する場合について説明する。この場合、ＴＣＰコネクションＡのスループットが、ＴＣＰコネクションＢのスループットよりも大きな場合には、ノード上のキューに蓄積するデータ量が増加する。そして、ノードのキューに蓄積するデータが蓄積量の上限に達しそうな場合、ノードは、ＴＣＰの広告ウィンドウを用いて、受信可能なデータサイズを制限することをデータ送信元の他ノードへ送信し、その通信を一時的に停止する処理を行う。しかしながら、この方法では、ノードのキューに蓄積するデータが蓄積量の上限に達する直前にしか制御がかからず、キューに多量のデータが蓄積してしまうことを防止することができない。また、広告ウィンドウを用いて送信元からのデータのスループットを減少させる方法では、信号の伝達に時間を要するため、通信再開時にも遅延が原因となり性能が低下してしまう。【０００６】
同様に、キューに蓄積するデータ量が蓄積量の上限を超えそうな場合には、ＩＥＥＥ８０２．１で規定されているポーズ信号など、通信を一時停止する信号を送信元のノードへ送信する方法がある。しかしながら、この方法を遅延が存在する回線において行うと、通信を一時停止するまでの時間と、再開するまで時間による遅れにより、極端な通信性能の低下の原因となる。このため、一般的には利用されていない。
ＴＣＰ通信では、パケットがネットワーク内で失われた場合に、データの再送を行う。データの再送が行われる際は、スループットが低下する場合がありノード上のキューが増加する。
一般的なＴＣＰの制御では、ネットワークの遅延に依存して、通信レートの上昇速度が決定される。このため、それぞれ遅延が異なるネットワーク区間では、通信レートに違いが生じ、結果的にノードのキューに多くのデータが蓄積してしまうという問題が存在する。【０００７】
本発明は、通信経路上に複数存在するノード上のキューそれぞれにおいて蓄積するデータ量を軽減して通信性能を向上させることのできる高速通信システムおよび高速通信方法を提供することを目的の一例としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の高速通信システムは、通信経路上に設けられた複数のノードと、前記複数のノードそれぞれの間に張られた複数の通信コネクションとを備え、前記複数のノードは、前記複数の通信コネクションそれぞれが達成できる通信性能を示す複数の性能モデル情報を、前記ノード間で交換し、前記複数のノードそれぞれは、前記複数の性能モデル情報のうちいずれかの性能モデル情報に基づいた通信制御を実施する。【０００９】
本発明の高速通信システムにおいて、前記複数のノードとしては、始点ノードと、終点ノードと、前記始点ノードと終点ノードとの間に設けられた中継ノードとを有することが好ましい。前記始点ノードが通信を行うことを通知する制御開始信号を終点ノードへ送信し、前記制御開始信号を検知した前記終点ノードが、前記制御開始信号の検知に基づいて前記終点ノードの性能モデル情報を算出し、また前記中継ノードが、前記制御開始信号の検知に基づいて前記中継ノードの性能モデル情報を算出してもよい。前記始点ノードが前記性能モデル情報を格納した性能モデル通知信号を前記終点ノードへ送信し、前記中継ノードが前記性能モデル通信信号を前記終点ノードへ転送する際に、前記性能モデル通知信号に格納されている性能モデル情報と、前記中継ノードの算出した性能モデル情報とを比較して小さい値を示す性能モデル情報のみを格納した前記性能モデル通知信号を転送してもよい。次に、前記終点ノードが受信した前記性能モデル通知信号に格納されている性能モデル情報を記憶すると共に、前記性能モデル情報を格納した性能モデル確定信号を前記始点ノードへ送信し、前記性能モデル確定信号を前記始点ノードへ中継した中継ノードおよび前記始点ノードが前記性能モデル確定信号に格納された性能モデル情報を記憶し、前記始点ノードと前記中継ノードは前記性能モデル確定信号に格納された性能モデル情報に基づいてＴＣＰ制御を行ってもよい。【００１０】
本発明の高速通信方法は、始点ノードと終点ノードと前記始点ノードと前記終点ノードとの間に設けられた中継ノードとを有する通信経路上の複数のノードを経由して行われる高速通信システムに用いられる。この高速通信方法は、前記始点ノードが通信を行うことを通知する制御開始信号を前記終点ノードへ送信し、前記制御開始信号を検知した前記終点ノードが、前記制御開始信号の検知に基づいて終点ノードの性能モデル情報を算出し、前記中継ノードが、前記制御開始信号の検知に基づいて終点ノードの性能モデル情報を算出し、前記始点ノードが前記性能モデル情報を格納した性能モデル通知信号を前記終点ノードへ送信し、前記中継ノードが前記性能モデル通信信号を前記終点ノードへ転送する際に、前記性能モデル通知信号に格納されている性能モデル情報と、前記中継ノードが算出した性能モデル情報とを比較して小さい値を示す性能モデル情報のみを格納した前記性能モデル通知信号を転送し、前記終点ノードが受信した前記性能モデル通知信号に格納されている性能モデル情報を記憶すると共に、前記性能モデル情報を格納した性能モデル確定信号を前記始点ノードへ送信し、前記性能モデル確定信号を前記始点ノードへ中継した中継ノードおよび前記始点ノードが前記性能モデル確定信号に格納された性能モデル情報を記憶し、前記始点ノードと前記中継ノードは前記性能モデル確定信号に格納された性能モデル情報に基づいてＴＣＰ制御を行うことを含む。
【発明の効果】
【００１１】
本発明の実施態様によれば、上述の処理により、ノードのキューに蓄積するデータ量を大きくせずに通信を行うことにより、通信の高速化を図ることができる。
また、本発明の実施態様によれば、ノードの前後のＴＣＰコネクションにおける速度の違いによって、ノードに蓄積するデータ量を増大させることを軽減できるため、通信の高速化を図ることができる。
また、本発明の実施態様によれば、ノードの前後において通信レートを上下させる速度を同じように制御することとなるので、ノードに蓄積するデータ量を増大させることを軽減できるため、通信の高速化を図ることができる。
また、本発明の実施態様によれば、制御信号を用いて通信停止をしても、通信を再開する際に伝送遅延によって通信再開が遅れない。これにより、通信性能の低下を防止することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態による高速通信システムの構成を示すブロック図である。
【図２】図１に示す送信端末の機能ブロックを示す図である。
【図３】図１に示す受信端末の機能ブロックを示す図である。
【図４】図１に示す中継ノードの機能ブロックを示す図である。
【図５】本発明の第１の実施形態による高速通信システムの処理フローを示す図である。
【図６】本発明の第１の実施形態による各ノードにおけるキューの状態を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の第１の実施形態による高速通信システムを図面を参照して説明する。
図１は第１の実施形態による高速通信システムの構成を示すブロック図である。
図１に示す高速通信システム（高速通信装置）は、送信端末１０１と、受信端末１０２と、中継ノード１０３，１０４とから構成されている。図１は、送信端末１０１が受信端末１０２と通信する例を示している。送信端末１０１から送信されたデータが中継ノード１０３へ送信される。中継ノード１０３がそのデータを中継ノード１０４へ送信する。また中継ノード１０４がそのデータを受信端末１０２へ送信する。このとき、各隣接する端末とノード間またはノードとノード間においてＴＣＰコネクションによりデータが送信される。
【００１４】
データ通信の際に、送信端末１０１は、そのデータ通信の下流にあるノード１０３へのデータの送信時に、達成可能な平均スループットＢを通知する。ノード１０３は送信端末１０１から受信した平均スループットＢと、自ノードが達成可能な平均スループットＢとを比較して、小さい値のスループットＢをデータ通信の下流の中継ノード１０４へ送信する。中継ノード１０４は、中継ノード１０３から受信した平均スループットＢと、自ノードの平均スループットＢを同様に比較し小さい値のスループットＢをデータ通信の下流の受信端末１０２へ送信する。これにより受信端末１０２は、送信端末１０１から受信端末１０２へ至る各区間のＴＣＰデータ通信において、最も小さな平均スループットＢを知ることができる。
【００１５】
また、同様に送信端末１０１は、そのデータ通信の下流にあるノード１０３へのデータの送信時に、自端末におけるスループットの上昇速度ΔＣを通知する。ノード１０３は送信端末１０１から受信した上昇速度ΔＣと、自ノードにおけるスループットの上昇速度ΔＣとを比較して、小さい値の上昇速度ΔＣをデータ通信の下流の中継ノード１０４へ送信する。中継ノード１０４は、中継ノード１０３から受信したスループットの上昇速度ΔＣと、自ノードにおけるスループットの上昇速度ΔＣを同様に比較し小さい値の上昇速度ΔＣをデータ通信の下流の受信端末１０２へ送信する。これにより受信端末１０２は、送信端末１０１から受信端末１０２へ至る各区間のＴＣＰデータ通信において、最も小さなスループットの上昇速度ΔＣを知ることができる。
【００１６】
受信端末１０２は中継ノード１０４から受信した平均スループットＢやスループットの上昇速度ΔＣの情報を中継ノード１０４へ送信する。中継ノード１０４はその平均スループットＢやスループットの上昇速度ΔＣの情報を中継ノード１０３へ送信する。中継ノード１０３はその平均スループットＢやスループットの上昇速度ΔＣの情報を送信端末１０１へ送信する。これによりデータ通信の通信経路上にある各ノードや各端末は、その通信経路における最低の平均スループットＢやスループットの上昇速度ΔＣの情報を検出することができる。データ通信の通信経路上にある各ノードや各端末はデータ通信の最終宛先から送信された平均スループット（通信経路における最低の平均スループット）Ｂやスループットの上昇速度ΔＣを用いて通信制御を行う。
【００１７】
一般的な通信技術では、通信回線を接続する場合に利用可能な回線速度、すなわち最大スループットを通知し合うことは行われていた。
これに対し、本発明の実施形態では、ネットワークを複数のＴＣＰ区間で分割し、それぞれのＴＣＰ区間で達成可能な平均スループットＢをネットワークの品質状況によって送信端末、受信端末、中継ノードのそれぞれで推定し、その情報をそれぞれ交換し合う。これにより、通信経路上にて実際に利用可能なスループットを知ることができ、これらの情報を用いて各端末やノードにおけるキューに多くのデータが蓄積されないよう制御する。更に本発明の実施形態によれば、上記のように各ＴＣＰ区間にて推定された平均スループットＢに加え、スループットの上昇速度ΔＣを各端末や中継ノードがそれぞれ交換し合い、これにより、通信制御を行う。
ＴＣＰはネットワークの混雑状況に応じて、スループットを動的に適応させるプロトコルである。スループットの上昇速度ΔＣとは、単位時間当たりのスループット上昇速度である。
【００１８】
ＴＣＰの派生技術であるＴＣＰ  ＲＥＮＯでは、基本的にパケットが端末間や端末・ノード間等を１往復する時間（ＲＴＴ：Round Trip Time）に１パケット分スループットを上昇させる。このため、単位時間当たりのスループット上昇速度ΔＣは、以下の式から算出できる。
ΔＣ＝ＰａｃｋｅｔＳｉｚｅ／ＲＴＴ
別のＴＣＰの派生技術であるＣＵＢＩＣ  ＴＣＰでは、ＲＴＴに依存せず、パケットロス率に応じスループットが決定される。したがって、異なる派生技術のＴＣＰであっても、単位時間あたりのスループットの上昇速度を求め、端末・ノード間で交換し合い、最も小さな平均スループットやスループットの上昇速度を考慮してそれぞれのノードが動作することで、キューにデータが蓄積する速度を調整することができる。その結果、キューに蓄積するデータ量を少なくすることができる。
【００１９】
更に、本発明の実施形態においては、上記処理に加え、パケットがネットワーク内で消失した場合にパケット再送に要する時間と、スループットを減少させる場合の減少幅、それぞれの端末とノードにあるキューに蓄積されているデータ量の情報を、ノード間や端末・ノード間でそれぞれ交換し合う。例えば、中継ノード１０４から受信端末１０２へのＴＣＰコネクションにおいて、パケットロスが発生したことをノード１０４が検知する。すると、ノード１０４は、前段に隣接する中継ノード１０３に向けてパケットロスが発生したことを通知する制御信号Ｓを送る。中継ノード１０３では、この制御信号Ｓを受け付けると、その制御信号Ｓに格納されている「ノード１０４の受信端末１０２に対するパケット再送に要する時間」だけパケット送信を待機し、その後、制御信号Ｓに格納されている「通信再開時のスループット」と同じスループットにて通信を再開する。これによって、中継ノード１０３のキューに蓄積するデータ量を軽減し、かつ、ノード１０４のデータ送信を不必要に停止することなく通信を継続することができる。
【００２０】
本発明の実施形態では、これら交換し合った、通信の性能モデルの情報（スループットＢや、スループットの上昇速度ΔＣなど）と、キューにあるデータ量を鑑み、それぞれのノードのキューに必要以上に多くのデータが蓄積してしまうことがなく、かつ十分な量となるよう制御する。
【００２１】
図２は送信端末の機能ブロックを示す図である。
図２で示すように、送信端末１０１は、入出力処理部１１と、ＩＰ処理部１２と、ＴＣＰ送信部１３と、アプリケーション処理部１４とを備える。
入出力処理部１１は、ネットワークから受信したパケットをＩＰ処理部１２に渡し、ＩＰ処理部１２から渡されたパケットをネットワークに送信する。ＩＰ処理部１２は、入出力処理部１１から入力されたパケットのあて先を判定しＴＣＰ送信部１３へ渡し、ＴＣＰ送信部１３から渡されたＴＣＰセグメントをパケット化して入出力処理部１１へ渡す。ＴＣＰ送信部１３は、通信相手からの制御信号を受信しこれに応じたＴＣＰの処理方法を決定し、アプリケーションから渡されたデータに対しＴＣＰの処理を実施してＴＣＰセグメント化してＩＰ処理部１２へ渡す。アプリケーション処理部１４は、データ記憶部１５からデータを取り出しＴＣＰ送信部１３に渡す。
【００２２】
ＴＣＰ送信部１３は、制御信号受信部１３１と、動作モデル決定部１３２と、第１輻輳ウィンドウ決定部１３３と、第２輻輳ウィンドウ決定部１３４と、データ送信部１３５を備える。
制御信号受信部１３１は、通信相手からの制御信号を受信し、動作モデル決定部１３２へ渡す。動作モデル決定部１３２は、制御信号から第２輻輳ウィンドウ決定部１３４の動作方法を決定しその動作方法を第２輻輳ウィンドウ決定部１３４へ伝える。第２輻輳ウィンドウ決定部１３４は、通常のＴＣＰによる輻輳ウィンドウ制御を実現する第１輻輳ウィンドウ決定部１３３、動作モデル決定部１３２から指示された動作方法に従い、調整された輻輳ウィンドウ制御を実現する。データ送信部１３５は、アプリケーション処理部１４から渡されたデータをセグメント記憶部１６に格納し、第１輻輳ウィンドウ決定部１３３もしくは第２輻輳ウィンドウ決定部１３４の輻輳ウィンドウを参照しつつデータの送信を決定し、ＴＣＰセグメントを作成してＩＰ処理部１２に渡す。
【００２３】
図３は受信端末の機能ブロックを示す図である。
図３で示すように、受信端末１０２は、入出力処理部２１と、ＩＰ処理部２２と、ＴＣＰ受信部２３と、アプリケーション処理部２４とを備える。
入出力処理部２１は、ネットワークからのパケットを受信しＩＰ処理部２２に渡し、ＩＰ処理部２２から渡されたパケットをネットワークに送信する。ＩＰ処理部２２は、入出力処理部２１から入力されたパケットの宛先を判定しＴＣＰ受信部２３へ渡し、ＴＣＰ受信部２３から渡されたＡＣＫをパケット化して入出力処理部２１へ渡す。ＴＣＰ受信部２３は、ＩＰ処理部２２からパケットを受け取りＴＣＰの受信処理を行い、必要に応じ制御信号をＩＰ処理部２２に渡し、データをアプリケーション処理部へ渡す。アプリケーション処理部２４は、ＴＣＰ受信部２３からデータを受け取りデータ記憶部２５に格納する。
【００２４】
ＴＣＰ受信部２３は、データ受信部２３１と、ＡＣＫ送信部２３２と、制御信号送受信部２３３とを備える。
データ受信部２３１は、ＩＰ処理部２２から渡されたパケットからセグメントを取り出し、セグメント記憶部２３４に格納しアプリケーションからの要求に応じセグメントをデータ化(整列，結合)してデータを渡し、セグメント記憶部２３４にあるキューの残り容量を参照してＡＣＫ送信部２３２に通知する。ＡＣＫ送信部２３２は、データ受信部２３１からの通知を受けてＡＣＫを生成し、ＩＰ処理部２２に渡す。制御信号送受信部２３３は、制御信号を送信受信する。
【００２５】
図４は中継ノードの機能ブロックを示す図である。
中継ノード１０３，１０４は、受信したパケットに対しＴＣＰ受信処理を行い、これをデータ化し、データ転送部３５によってＴＣＰ送信部３４にそのデータを渡してパケットを送信する処理を行う。
中継ノード１０３，１０４の機能と、送信端末１０１や受信端末１０２との違いについて説明する。中継ノード１０３，１０４は、入出力処理部３１と、ＩＰ処理部３２と、ＴＣＰ受信部３３と、ＴＣＰ送信部３４と、データ転送部３５とを備える。入出力処理部３１、ＩＰ処理部３２、ＴＣＰ受信部３３、ＴＣＰ送信部３４については、送信端末１０１や受信端末１０２の対応する処理部と同様の処理を行うが、下記の処理において異なる。つまり、中継ノード１０３，１０４のＴＣＰ送信部３４の制御信号送受信部３４１は、パケットロスが発生した場合、ＴＣＰ受信部３３の制御信号送受信部３３３に通知する。また、ＴＣＰ受信部３３の制御信号受信部３３３は、送信元である通信相手にパケットロスと、現在のＴＣＰ送信部３４にある送信待ちデータ量や、通信再開時のスループットを通知する処理を行う。
【００２６】
図５は高速通信システムの処理フローを示す。
次に、本実施形態による高速通信システムの処理フローの詳細について順を追って説明する。
図１の高速通信システムにおいてデータ通信が行われた場合の例について説明する。送信端末１０１から送信されたデータは、中継ノード１０３、中継ノード１０４、受信端末１０２へと順に転送される。
まず、送信端末１０１は、制御開始信号を受信端末１０２へ送信する（ステップＳ１０１）。このとき、制御開始信号は、中継ノード１０３，１０４を経由して受信端末１０２に送信される。次に、制御開始信号を送信した送信端末１０１において、送信端末１０１と中継ノード１０３との間のＴＣＰコネクションにおいて達成可能な平均スループットＢ１を算出する（ステップＳ１０２）。この平均スループットＢ（Ｂ１）の算出処理は、式（１）により行う。
【００２７】
【数１】
2011102294.tif 000003
【００２８】
ここで、上記式（１）において、“ｋ”を中継ノード１０３を示す「１０３」とすると、“Ｗｋ”は送信端末１０１の最大輻輳ウィンドウサイズと後段ノードである中継ノード１０３の最大受信ウィンドウサイズのうちの小さい値である。“ｄ”は送信端末１０１と後段ノードである中継ノード１０３の間のＲＴＴである。“Ｃ”は定数、“ｐ”はパケットロス率である。“ｄ”および“ｐ”は、予め統計値によって算出されたものとし、通信中に随時更新すると良い。
【００２９】
送信端末１０１は、スループットの上昇速度ΔＣを次のように求める（ステップＳ１０３）。
ΔＣ＝ＰａｃｋｅｔＳｉｚｅ／ｄ
“ＰａｃｋｅｔＳｉｚｅ”はセグメントサイズである。送信端末１０１は、自端末において仮にパケットロスが発生した場合にパケット送信の再送により通信を再開するまでの時間ＦＲＴ（以下、通信再開予定時間）を次のように求める（ステップＳ１０３）。
ＦＲＴ＝ｄ（ｄ：送信端末１０１と中継ノード１０３の間のＲＴＴ）
送信端末１０１は、パケットロスが発生した場合にパケットを再送し通信が再開される場合に、パケットロス前と比較しスループットを低減させる割合ＢＤ（以下、スループット低減割合）を次のように求める（ステップＳ１０４）。
ＢＤ＝１／２
【００３０】
ステップＳ１０１において送信端末１０１から送信された制御開始信号を受信した中継ノード１０３、中継ノード１０４、受信端末１０２は、送信端末１０１と同様に、送信先のノードまたは端末との間のＴＣＰコネクションにおける平均スループットＢ、そのＴＣＰコネクションにおけるスループットの上昇速度ΔＣ、通信再開予定時間ＦＲＴ、スループット低減割合ＢＤを算出する。
送信端末１０１の算出した情報をそれぞれ、平均スループットＢ１、スループットの上昇速度ΔＣ１、通信再開予定時間ＦＲＴ１、スループット低減割合ＢＤ１と表記する。受信端末１０２の算出した情報をそれぞれ、平均スループットＢ２、スループットの上昇速度ΔＣ２、通信再開予定時間ＦＲＴ２、スループット低減割合ＢＤ２と表記する。中継ノード１０３の算出した情報をそれぞれ、平均スループットＢ３、スループットの上昇速度ΔＣ３、通信再開予定時間ＦＲＴ３、スループット低減割合ＢＤ３と表記する。中継ノード１０４の算出した情報をそれぞれ、平均スループットＢ４、スループットの上昇速度ΔＣ４、通信再開予定時間ＦＲＴ４、スループット低減割合ＢＤ４と表記する。
【００３１】
次に、送信端末１０１は、算出した平均スループットＢ１、スループットの上昇速度ΔＣ１、通信再開予定時間ＦＲＴ１、スループット低減割合ＢＤ１を格納した性能モデル通知信号を生成し、その性能モデル通知信号を中継ノード１０３へ送信する（ステップＳ１０５）。中継ノード１０３は性能モデル通知信号を受信すると、その性能モデル通知信号に格納されている平均スループットＢ１と、自ノードで算出した平均スループットＢ３とを比較する（ステップＳ１０６）。次に、中継ノード１０３は、性能モデル通知信号に格納された情報を、その比較において小さい値を示す平均スループットＢと、その平均スループットＢを算出した装置（送信端末１０１または中継ノード１０３の何れか一方）において算出されたスループットの上昇速度ΔＣ、通信再開予定時間ＦＲＴ、スループット低減割合ＢＤとに更新する。また、中継ノード１０３は、その更新した性能モデル通知信号を、中継ノード１０４へ送信する（ステップＳ１０７）。
【００３２】
中継ノード１０４においても同様の処理を行う。すなわち、中継ノード１０４は、中継ノード１０３から受信した性能モデル通知信号から平均スループットＢを取得し、その平均スループットＢと自ノードの平均スループットＢ４と比較し（ステップＳ１０８）、小さい値を示す平均スループットＢを選択する。次に、中継ノード１０４は、性能モデル通知信号に格納された情報を、その比較において小さい値を示す平均スループットＢと、その平均スループットＢを算出した装置において算出されたスループットの上昇速度ΔＣ、通信再開予定時間ＦＲＴ、スループット低減割合ＢＤとに更新する。また、中継ノード１０３は、その更新した性能モデル通知信号を、受信端末１０２へ送信する（ステップＳ１０９）。受信端末１０２は、平均スループットＢ、スループットの上昇速度ΔＣ、通信再開予定時間ＦＲＴ、スループット低減割合ＢＤを記憶部に格納する。
【００３３】
受信端末１０２は、その記憶部に格納した情報のうち、平均スループットＢ、スループットの上昇速度ΔＣ、スループット低減割合ＢＤを格納した性能モデル確定信号を生成し、中継ノード１０４へ送信する（ステップＳ１１０）。中継ノード１０４は性能モデル確定信号に格納されている平均スループットＢ、スループットの上昇速度ΔＣ、スループット低減割合ＢＤを記憶部に格納し、その性能モデル確定信号を中継ノード１０３へ送信する（ステップＳ１１１）。同様に、中継ノード１０３は、性能モデル確定信号に格納されている平均スループットＢ、スループットの上昇速度ΔＣ、スループット低減割合ＢＤを記憶部に格納し、その性能モデル確定信号を送信端末１０１へ送信する（ステップＳ１１２）。送信端末１０１は、性能モデル確定信号に格納されている平均スループットＢ、スループットの上昇速度ΔＣ、スループット低減割合ＢＤを記憶部に格納する。
【００３４】
次に、ＴＣＰ送信部１３において動作モデル決定部１３２を持つ送信端末１０１と、ＴＣＰ送信部３４において動作モデル決定部３４２を持つ中継ノード１０３、および中継ノード１０４は、性能モデル確定信号によって取得した情報（以下、性能モデル確定信号によって得られた各情報を、平均スループットＢｘ、スループットの上昇速度ΔＣｘ、スループット低減割合ＢＤｘとする）を基に、ＴＣＰ制御の動作を次のように決定する（ステップＳ１１３）。まず、送信端末１０１、中継ノード１０３，１０４の動作モデル決定部（１３２，３４２）は、以下の項目（ａ）、（ｂ）、（ｃ）を算出する。
（ａ）最大ウィンドウサイズ＝平均スループットＢｘ＊２
（ｂ）ＡＣＫパケットを１つ受信した際の輻輳ウィンドウの増加幅＝２＊スループットの上昇速度ΔＣｘ／ｄ
ただし、“ｄ”は、端末−ノード間またはノード−ノード間のＲＴＴである。
（ｃ）パケットロス時の輻輳ウィンドウの減少＝スループット低減割合ＢＤｘ
【００３５】
それぞれの第１輻輳ウィンドウ決定部（１３３，３４３）は、例えば次のように通常のＴＣＰの動作を実現する。
・最大ウィンドウサイズ = 端末ごとの任意の設定による。
・ＡＣＫパケットを１つ受信した際の輻輳ウィンドウの増加幅＝1パケット分
・パケットロス時の輻輳ウィンドウの減少＝１／２
ＴＣＰ制御には、パケットロスの判定を基に動作を決定するＴＣＰ制御や、遅延の増加を基に動作を決定するＴＣＰ制御、パケットロスと遅延の両方を考慮するＴＣＰ制御などがあるが、いずれの動作によってＴＣＰ制御を実現してもよい。各端末や中継ノードや、決定したパラメータに基づいてＴＣＰの制御を行う。
【００３６】
図６は各ノードにおけるキューの状態を示す図である。
各中継ノード１０３，１０４および受信端末１０２は、上述の処理によって決定したＴＣＰ動作を行う。さらに、各中継ノード１０３，１０４および受信端末１０２は、ＴＣＰ受信部（２３，３３）のキューに蓄積されている送信待ちデータ量に応じて、次のように上流のノードもしくは上流端末に通信抑制判定信号を通知する。ここでは、ｉ＝０，１，２，３とする。また、ノード（ｉ）に関しては、送信端末１０１をノード（０），中継ノード１０３をノード（１），中継ノード１０４をノード（２），受信端末１０２をノード（３）とする。さらに、ノード（ｉ）に対するそれぞれのキューｑ（ｉ）を、ｑ（０），ｑ（１），ｑ（２），ｑ（３）とする。
【００３７】
このとき、前段ノード（ｉ−１）とこれに連続して連なる後段ノード（ｉ）について考える。
（Ａ）：ｑ（ｉ）＜ｍ＊平均スループットＢ（ｉ）＊ＦＲＴ（ｉ−１）の場合
これは、前段ノード（ｉ−１）と後段ノード（ｉ）の間のＲＴＴの時間において、このノード間の平均スループットＢ（ｉ−１）で通信が行われた場合のデータ量のｍ倍（ｍは定数）のデータ量よりも、後段ノード（ｉ）のキューｑ（ｉ）に蓄積されているデータ量が少ない場合である。この場合、データ通信に余裕があるため、通常の輻輳ウィンドウの制御を行う第１輻輳ウィンドウ決定部（１３３，３４３）の使用を示す通信抑制判定信号を、後段ノード（ｉ）が前段ノード（ｉ−１）へ送信する。
【００３８】
（Ｂ）：ｍ＊平均スループットＢ（ｉ）＊ＦＲＴ（ｉ−１）≦ｑ（ｉ）≦Ｘの場合
これは、後段ノード（ｉ）のキューｑ（ｉ）に蓄積されているデータ量が、前段ノード（ｉ−１）と後段ノード（ｉ）の間のＲＴＴの時間において、このノード間の平均スループットＢ（ｉ）で通信が行われた場合のデータ量のｍ倍（ｍは定数）のデータ量以上であって、通信停止を示す上限値である定数Ｘよりも少ない場合である。この場合、データ通信に余裕がないため、輻輳ウィンドウを減少させる制御を行う第２輻輳ウィンドウ決定部（１３４，３４４）の使用を示す通信抑制判定信号を、後段ノード（ｉ）が前段ノード（ｉ−１）へ送信する。
【００３９】
（Ｃ）：Ｘ＜ｑ（ｉ）の場合
これは、後段ノード（ｉ）のキューｑ（ｉ）に蓄積されているデータ量が、通信停止を示す上限値Ｘを超えている場合である。この場合には、データ送信を、ＦＲＴ（ｉ）、つまり後段ノード（ｉ）とその次のノード（ｉ＋１）の間のＲＴＴの時間だけ停止することを示す通信抑制判定信号を、後段ノード（ｉ）が前段ノード（ｉ−１）へ送信する。定数ｍは２〜４程度、定数Ｘは５〜１０程度などの数値を設定する。そして、通信抑制判定信号を受信した各ノードは、その通信抑制判定信号が示す情報に基づいて通信制御を行う。
【００４０】
また、各ノードや端末はパケットロスの発生を検知する。パケットロスの発生を検知した場合には、パケットロスを検知したノード（ｉ）は次のように制御信号Ｓを送信し、これを受けたノード（ｉ−１）も次のように動作する。
（Ｄ）：パケットロスを検知したノード（ｉ）が第２輻輳ウィンドウ決定部を利用して通信している場合、ＦＲＴ（ｉ）、つまり後段ノード（ｉ）とその次のノード（ｉ＋１）の間のＲＴＴの時間だけ停止することを示す通信抑制判定信号を、後段ノード（ｉ）が前段ノード（ｉ−１）へ送信する。  （Ｅ）：ノード（ｉ−１）は通信抑制判定信号で示されたＦＲＴ（ｉ）の時間、通信を停止する。そしてＦＲＴ（ｉ）の時間経過後、ノード（ｉ−１）は、輻輳ウィンドウにスループット低減割合ＢＤを乗算して、新たな輻輳ウィンドウのサイズを決定し、通信を再開する。
以上の処理によって、本実施形態による高速通信システムは、ノードにあるキューに蓄積されたデータ量に応じてＴＣＰの制御方法を変更する処理を行う。
【００４１】
あるノード（ｉ）に送信待ちデータ量が十分多く、ノード（ｉ−１）でパケットロスが発生し、通信がＦＲＴ（ｉ−１）ほど停止、つまり、ノード（ｉ）とその前段のノード（ｉ−１）の間のＲＴＴの時間だけ停止した場合にも、ノード（ｉ）の送信待ちデータが０にならない場合について説明する。この場合には、ノード（ｉ−１）は、スループットを抑えた第２輻輳ウィンドウ決定部（１３４，３４４）によってＴＣＰの動作を行う。
逆に、あるノード（ｉ）にある送信待ちデータ量が十分多くなく、ノード（ｉ−１）でパケットロスが発生し、通信がＦＲＴ（ｉ−１）ほど停止した場合に、ノード（ｉ）の送信待ちデータが０になりそうな場合について説明する。この場合には、ノード（ｉ−１）はスループットをより高くする第１輻輳ウィンドウ決定部（１３３，３４３）によってＴＣＰの動作を行う。
これによって各ノードのキューに溜まるデータ量を小さく抑えることを可能とする。
【００４２】
例えば、中継ノード１０４から受信端末１０２へのＴＣＰコネクションがボトルネックである場合について説明する。この場合は、中継ノード１０４は、第１輻輳ウィンドウ決定部（３４３）によるＴＣＰの動作を行う。また、他の中継ノードや送信端末１０１は、第２輻輳ウィンドウ決定部（１３４，３４４）のＴＣＰの動作により、中継ノード１０４と受信端末１０１間の通信とおよそ同じスループットを発揮するような制御となる。
また、例えば、送信端末１０１から中継ノード１０３へのＴＣＰコネクションがボトルネックである場合について説明する。この場合は、送信端末１０１は第１輻輳ウィンドウ決定部（１３３）によるＴＰの動作を行い、他のノードは、第２輻輳ウィンドウ決定部（３４４）のＴＣＰの動作により、送信端末１０１と中継ノード１０３の間の通信とおよそ同じスループットを発揮するような制御となる。
【００４３】
次に、第２の実施形態による高速通信システムについて説明する。
第２の実施形態による高速通信システムでは、第１の実施形態で示した構成において、中継ノード１０３の第１輻輳ウィンドウ決定部３４３が第１の実施形態で説明した処理とは異なる処理を行う場合の例である。
ここで、中継ノード１０３をノードｉとする。そしてノードｉの第１輻輳ウィンドウ決定部１３３は、（Ｉ）および（ＩＩ）の条件を満たすように（１）〜（３）のように設定する。
（Ｉ）：ノード（ｉ）における平均スループットＢ（ｉ）＝ノード（ｉ＋１）における平均スループットＢ（ｉ＋１）
（ＩＩ）：ノード（ｉ）におけるパケットロスが発生した場合のスループット低減割合ＢＤ（ｉ）＝ノード（ｉ＋１）におけるパケットロスが発生した場合のスループット低減割合ＢＤ（ｉ＋１）
（１）：最大ウィンドウサイズ＝（平均スループットＢ（ｉ＋１）×ｄ（ｉ＋１））×（ｄ（ｉ）／ｄ（ｉ＋１））
（２）：ＡＣＫパケットを１つ受信した際の輻輳ウィンドウの増加幅＝２×ノード（ｉ＋１）のスループットの上昇速度ΔＣ（ｉ＋１）／ｄ（ｉ＋１）
ただし、“ｄ”はノードとそのノードの後段ノードの間のＲＴＴ
（３）：パケットロス時のノード（ｉ）における輻輳ウィンドウの減少値＝ノード（ｉ＋１）におけるパケットロスが発生した場合のスループット低減割合ＢＤ（ｉ＋１）
これによって，ノードｉからノードｉ＋１への通信経路（ｉ）の遅延が非常に大きく、かつノードｉ＋１からノードｉ＋２への通信経路（ｉ＋１）の遅延が小さい場合にも、両者が等しいスループットでほぼ連動して通信できるようになる。
これは、ノード１０３からノード１０４への通信経路が、海底ケーブル区間などのように、パケットロスは無いが遅延が非常に大きい通信経路である場合に有効である。なぜなら、一般的なＴＣＰはＲＴＴごとに輻輳ウィンドウを１パケット分ずつ増加させるため、スループットの上昇が非常におそくなってしまうためである。本発明の実施形態を用いると、この問題を解決することもできる。
【００４４】
以上、高速通信システムについて説明したが、上述の処理によれば、ノードのキューに蓄積するデータ量を大きくせずに通信を行うことにより、通信の高速化を図ることができる。
また、本発明の実施形態によれば、ノードの前後のＴＣＰコネクションにおける速度の違いによって、ノードに蓄積するデータ量を増大させることを軽減できるため、通信の高速化を図ることができる。
また、本発明の実施形態によれば、ノードの前後において通信レートを上下させる速度を同じように制御することとなるので、ノードに蓄積するデータ量を増大させることを軽減できるため、通信の高速化を図ることができる。
また、本発明の実施形態によれば、制御信号を用いて通信停止をしても、通信を再開する際に伝送遅延によって通信再開が遅れず、これにより、通信性能の低下を防止することができる。
【００４５】
上述の送信端末、中継ノード、受信端末は内部に、コンピュータシステムを有している。上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。
このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータがそのプログラムを実行するようにしても良い。
【００４６】
上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００４７】
この出願は、２０１０年２月１７日に出願された日本出願特願２０１０−０３２８７２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００４８】
本発明は、複数のノードを介してデータ送信する高速通信システム及び高速通信方法に適用することができる。この高速通信システム及び高速通信方法によれば、ノードのキューに蓄積するデータ量を大きくせずに通信を行うことにより、通信の高速化を図ることができる。
【符号の説明】
【００４９】
１０１      送信端末
１０２ 受信端末
１０３，１０４       中継ノード
１１，２１，３１     入出力処理部
１２，２２，３２     ＩＰ処理部
１３，３４    ＴＣＰ送信部
２３   ＴＣＰ受信部
１４，２４，３５     アプリケーション処理部
【図１】
2011102294.tif 000004
【図２】
2011102294.tif 000005
【図３】
2011102294.tif 000006
【図４】
2011102294.tif 000007
【図５】
2011102294.tif 000008
【図６】
2011102294.tif 000009
【国際調査報告】
2011102294.tif 000010
2011102294.tif 000011
2011102294.tif 000012
2011102294.tif 000013