(57)【要約】  送信した送信データに対する応答データが到着した到着実時刻と、他のデータ通信装置から送信された応答データがデータ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、データの通信経路上の中継装置（２０）のバッファサイズとに基づいてデータの実効転送速度を算出し、算出した実効転送速度に基づき送信データ間の送信間隔を算出する送信間隔算出部（１１）と、算出された送信間隔に基づき送信データの送信制御を行なう送信制御部（１２）とをそなえることにより、規則網として構成される相互結合網において輻輳制御を効率よく実現する。
2013042219.tif 000002
【特許請求の範囲】
【請求項１】
中継装置を介して他のデータ通信装置にデータを送信するデータ通信装置において、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、
前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有することを特徴とするデータ通信装置。
【請求項２】
前記送信間隔算出部は、前記送信間隔として、前記データのデータ長を前記実効転送速度で除算した値から、前記データ長を輻輳が発生していない場合の実効データ転送速度で除算した値を減算した値を算出することを特徴とする、請求項１記載のデータ通信装置。
【請求項３】
中継装置を介して他のデータ通信装置にデータを送信するデータ通信装置において、
前記他のデータ通信装置に送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有することを特徴とするデータ通信装置。
【請求項４】
前記制限サイズの初期値として、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じた値を２倍することにより算出される往復伝送遅延時間に、輻輳が発生していない場合の実効データ転送速度を乗ずることにより算出した値を設定することを特徴とする請求項３記載のデータ通信装置。
【請求項５】
前記制限サイズ算出部は、前記制限サイズとして、前記往復伝送遅延時間に前記実効転送速度を乗ずることにより算出した値を算出することを特徴とする請求項４記載のデータ通信装置。
【請求項６】
中継装置介してデータを送信するデータ送信方法であって、
コンピュータが、
送信した送信データに対する応答データが到着した到着実時刻と、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、
前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出し、
前記算出した送信間隔に基づき、送信データの送信制御を行なうことを特徴とするデータ送信方法。
【請求項７】
前記送信間隔として、前記データのデータ長を前記実効転送速度で除算した値から、前記データ長を輻輳が発生していない場合の実効データ転送速度で除算した値を減算した値を算出することを特徴とする請求項６記載のデータ送信方法。
【請求項８】
中継装置を介して他のデータ通信装置にデータを送信するデータ送信方法であって、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、
前記算出した実効転送速度に基づき制限サイズを算出し、
前記他のデータ通信装置に送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が前記制限サイズ以下となるようにデータの送信を行なうことを特長とするデータ送信方法。
【請求項９】
前記制限サイズの初期値として、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じた値を２倍することにより算出される往復伝送遅延時間に、輻輳が発生していない場合の実効データ転送速度を乗ずることにより算出した値を設定することを特徴とする請求項８記載のデータ送信方法。
【請求項１０】
前記制限サイズとして、前記往復伝送遅延時間に前記実効転送速度を乗ずることにより算出した値を算出することを特徴とする請求項９記載のデータ送信方法。
【請求項１１】
複数の中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、
前記計算機ノードは、
前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、
前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有することを特徴とする計算機システム。
【請求項１２】
前記送信間隔算出部は、前記送信間隔として、前記データのデータ長を前記実効転送速度で除算した値から、前記データ長を輻輳が発生していない場合の実効データ転送速度で除算した値を減算した値を算出することを特徴とする請求項１１記載の計算機システム。
【請求項１３】
中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、
前記計算機ノードは、
前記他の計算ノードに送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、
前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有することを特徴とする計算機システム。
【請求項１４】
前記制限サイズの初期値として、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じた値を２倍することにより算出される往復伝送遅延時間に、輻輳が発生していない場合の実効データ転送速度を乗ずることにより算出した値を設定することを特徴とする請求項１３記載の計算機システム。
【請求項１５】
前記制限サイズ算出部は、前記制限サイズとして、前記往復伝送遅延時間に前記実効転送速度を乗ずることにより算出した値を算出することを特徴とする請求項１４記載の計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信装置，データ送信方法及び計算機システムに関する。
【背景技術】
【０００２】
IP交換網や並列計算機においてノード間を接続する相互結合網は、一般的に、パケットを転送するルータの相互接続で構成される。大規模なネットワークでは、全ノード間を一対一接続する完全結合網は導入コストが高くなるため使用されず、又、通信経路が競合しないようにルータの制御を行なう機構もまた高コストとなるため使用されない。
そのため、ルータにおいては、互いに異なる入力ポートから入力された複数のパケットをそれぞれ転送する際、一つの出力ポートについて当該複数のパケット間で競合が発生する場合がある。【０００３】
ルータは、一般的に、出力競合が起きた場合に１つのパケットを選んで転送し、その間、競合する他のパケットを格納して、その転送を遅らせるためバッファをそなえる。しかしながら、バッファ量は有限であるため、連続してパケット間の競合が起きるとバッファは枯渇する。そして、バッファが枯渇すると入力パケットは破棄せざるを得ない。
バッファの枯渇を避けるために、一部のルータは、バッファ残量が少なくなると競合する入力ポートの接続先ルータにパケット送信停止を要求するフロー制御機能をそなえる。特に並列計算機においては、厳密なバッファ残量管理を行なうことによりパケット破棄を起さないフロー制御が一般的に行なわれている。【０００４】
フロー制御においては、パケット間の競合によるバッファが枯渇した旨の情報をフロー上流のルータに送出する。従って、競合が起きている通信経路にパケットを連続送信する送信元ノードについて、最終的にこの送信元ノードが接続されるルータのバッファが枯渇して送信が停止することになる。
ネットワークに接続された送信装置が特定の宛先にデータを転送する場合、一般的にデータ転送は一定時間継続し、データ転送継続中の通信経路は不変である。従って、通信経路の競合は一定時間継続し、パケット破棄もしくはバッファ枯渇の要因となる。このような、通信経路におけるパケットの競合がデータ転送速度の大幅な低下を引き起こす現象は輻輳と呼ばれる。【０００５】
多数の通信経路において同時に輻輳が発生すると、深刻なデータ転送速度低下現象を広範囲に引き起こす。特にパケット破棄の場合には、ほとんど通信不可能なほどデータ転送速度が低下する現象が起きる場合があり、かかる現象は輻輳崩壊と呼ばれる。
輻輳崩壊は、例えば、輻輳が起きている間、破棄されるパケットを送信し続けたり、競合点までの通信経路の全バッファを枯渇させることにより生じる。【０００６】
このような、輻輳崩壊による深刻なデータ転送速度低下を回避するため、輻輳制御が行なわれている。
この輻輳制御は、輻輳検出と送信元ノードでのデータ送信抑制とによって実現される。輻輳の影響は短時間に広がるため、輻輳は早期に検出できることが望ましい。送信元ノードが輻輳の発生を検出する手段は、宛先ノードからの応答パケットによることが一般的である。例えばTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルにおいては、一定時間応答パケットが到着しないことを検出することにより輻輳の発生を検出する。これはIP交換網が輻輳時にパケットを破棄する性質を利用している。【０００７】
また、DCB （Data Center Bridging）、CCE（Converged Enhanced Ethernet）、DCE（Data Center Ethernet）等のデータセンター向けEthernet拡張規格では、フロー制御でパケットロスを回避するともに、再送信タイムアウト以外の輻輳検出手段をそなえている。（Ethernetは登録商標。）
輻輳検出はいずれもルータで輻輳を検出する仕組を採用しており、このルータから送信元ノードに対して専用パケットを送るか、ルータからの応答パケットにフラグを付けることで輻輳をパケット送信元のルータ等に通知する。【０００８】
ここで、ルータのバッファは、輻輳の発生した場合にパケットを保持するだけの容量がない場合があり、輻輳が発生した場合の影響は非常に大きい。このため、輻輳が一旦検出されると、輻輳は広範囲なデータ転送速度の低下を既に引き起こしている可能性があり、輻輳制御には輻輳の予防ではなく、輻輳の解消が求められている。
TCP/IPの当初の輻輳制御方式は、パケットの再送信による輻輳の再発生を回避するため、再送信のデータ転送速度を通常時のデータ転送速度よりも下げて、徐々にデータ転送速度を通常時の通信速度まで上げるスロースタート方式であった。【０００９】
この方式では、一度輻輳が起こるとデータ転送速度が一旦下がり、徐々にデータ転送速度が上がって再び輻輳が起きることを繰り返す。そのため、ネットワークの利用効率が低いという課題がある。
また、IP交換網の高速化や、ルータがバッファ枯渇前にランダムにパケットを破棄するなどの輻輳崩壊を防ぐ技術の発達に従い、より迅速に帯域を収束させる輻輳制御方式も使用されている。【００１０】
例えば、TCP/IPにおける輻輳制御プロトコルのデファクトスタンダードでは、再送信１回につきデータ送信量を半分に下げる。このような倍率でデータ送信量を下げる輻輳制御は一般にAIMD（Additive Increase Multiplicative Decrease）方式と呼ばれる。このAIMD方式では、上述したスロースタート方式よりもデータ転送速度の振幅が小さくなり、収束するようになった。しかし依然として、ネットワークの利用効率にはロスがある。
【特許文献１】特開平８−５６２２２号公報
【特許文献２】特開２０００−１３３９１号公報
【非特許文献１】IETF RFC2581
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述の如き従来のIP交換網で行なわれている輻輳制御では、ルータがパケット破棄や輻輳通知を行ない、送信元ノードにおいてデータ転送速度の抑制を行なう。しかし、IP交換網は、接続する計算機の種類・構成とは独立してネットワーク構成を設計できるように考慮されているため、ネットワーク構成は不規則であり、どの程度データ転送速度を抑制すべきか明確でない。このため、データ転送速度を変化させて適切なデータ転送速度を発見する方式も用いられているが、このような制御方式においては、データ転送速度が不安定でネットワークの利用効率が低くなるという課題があり、又、規則的なネットワーク網として構成される相互結合網を想定するものではない。【００１２】
1つの側面では、本発明は、規則的なネットワーク網として構成される相互結合網において輻輳制御を効率よく実現することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【００１３】
上記の目的を達成するために、このデータ通信装置は、中継装置を介して他のデータ通信装置にデータを送信するデータ通信装置において、前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有する。【００１４】
また、このデータ通信装置は、中継装置を介して他のデータ通信装置にデータを送信するデータ通信装置において、前記他のデータ通信装置に送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有する。【００１５】
さらに、このデータ送信方法は、中継装置介してデータを送信するデータ送信方法であって、コンピュータが、送信した送信データに対する応答データが到着した到着実時刻と、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出し、前記算出した送信間隔に基づき、送信データの送信制御を行なう。【００１６】
また、このデータ送信方法は、中継装置を介して他のデータ通信装置にデータを送信するデータ送信方法であって、前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき制限サイズを算出し、前記他のデータ通信装置に送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が前記制限サイズ以下となるようにデータの送信を行なう。【００１７】
さらに、この計算機システムは、複数の中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、前記計算機ノードは、前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有する。【００１８】
また、この計算機システムは、中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、前記計算機ノードは、前記他の計算ノードに送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有する。
【発明の効果】
【００１９】
開示の技術によれば、以下の少なくともいずれか１つの効果ないし利点を奏する。
（１）輻輳制御を効率よく実現することができる。
（２）相互結合網を効率よく使用することができる。
（３）輻輳の影響範囲拡大を防ぐことができる。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態の一例としての並列計算機システムにそなえられた相互結合網インタフェースの機能構成を模式的に示す図である。
【図２】第１実施形態の一例としての並列計算機システムの構成を例示する図である。
【図３】第１実施形態の一例としての並列計算機システムにそなえられる計算ノードのハードウェア構成を模式的に示す図である。
【図４】第１実施形態の一例としての並列計算機システムにおける送信時刻テーブルを例示する図である。
【図５】第１実施形態の一例としての並列計算機システムにおけるメッセージ送信時の処理を説明するフローチャートである。
【図６】第１実施形態の一例としての並列計算機システムにおける応答パケットの受信時の処理を説明するフローチャートである。
【図７】第２実施形態の一例としての並列計算機システムにそなえられた相互結合網インタフェースの機能構成を模式的に示す図である。
【図８】第２実施形態の一例としての並列計算機システムにおけるメッセージ送信時の処理を説明するフローチャートである。
【図９】第２実施形態の一例としての並列計算機システムにおける応答パケットの受信時の処理を説明するフローチャートである。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して本発明の実施の形態を説明する。
（Ａ）第１実施形態
図１は第１実施形態の一例としての並列計算機システム１にそなえられた相互結合網インタフェースの機能構成を模式的に示す図、図２はその並列計算機システム１の構成を例示する図である。又、図３は第１実施形態の一例としての並列計算機システム１にそなえられる計算ノード１００のハードウェア構成を模式的に示す図である。【００２２】
第１実施形態の一例として並列計算機システム１は、図２に示すように、複数（図２に示す例では４つ）の計算ノード１００−１，１００−２，１００−３，１００−４を、１以上（図２に示す例では２つ）のルータ（スイッチ装置）２０−１，２０−２を介して相互に通信可能に接続した相互結合網（通信網）により構成されている。
なお、本並列計算機システム１にそなえられる複数の計算ノード１００−１，１００−２，１００−３，１００−４は互いに同様の構成をそなえており、又、複数のルータ２０−１，２０−２も互いに同様の構成をそなえている。【００２３】
以下、計算ノードを示す符号としては、複数の計算ノードのうち１つを特定する必要があるときには符号１００−１〜１００−４を用いるが、任意の計算ノードを指すときには符号１００を用いる。同様に、以下、ルータを示す符号としては、複数のルータのうち１つを特定する必要があるときには符号２０−１，２０−２を用いるが、任意のルータを指すときには符号２０を用いる。【００２４】
ルータ２０は、複数の計算ノード１００や他のルータ２０と通信可能に接続され、受信したパケット（データ）を転送先に送信する中継装置である。
図２に示す例においては、各ルータ２０はそれぞれＰ１〜Ｐ４の４つのポートをそなえている。そして、ルータ２０−１においては、ポートＰ１，Ｐ２に計算ノード１００−１，１００−２を接続されるとともに、ポートＰ３，Ｐ４にルータ２０−２のポートＰ４，Ｐ３がそれぞれ接続されている。又、ルータ２０−２においては、ポートＰ１，Ｐ２に計算ノード１００−３，１００−４を接続されている。【００２５】
ルータ２０は、図３に示すように、送受信バッファ２１及びクロスバスイッチ２２をそなえる。送受信バッファ２１は送受信されるデータを一時的に格納するバッファでありポート毎にそなえられる。送受信バッファ２１は送信バッファ２１２及び受信バッファ２１１をそなえる。
送信バッファ２１２及び受信バッファ２１１は、それぞれ例えばＦＩＦＯ（First In First Out）型のバッファメモリである。送信バッファ２１２は計算ノード１００や他のルータ２０等に送出するパケットを格納するバッファメモリであり、クロスバスイッチ２２を介して取得したパケットを格納する。【００２６】
受信バッファ２１１は、計算ノード１００や他のルータ２０等から送信されたパケットを受信して格納する。この受信バッファ２１１に格納されたパケットは、クロスバスイッチ２２を介して他の計算ノード１００や他のルータ２０等に送出される。
本並列計算機システム１においては、各計算ノード１００から送信されるデータ（メッセージ）はパケットに分割された状態で送受信される。又、このパケットのパケット長（Ｌ）は適宜設定することができ、又、固定長もしくは可変長として適宜実施することができる。【００２７】
また、本並列計算機システム１においては、ルータ２０は、送受信バッファ２１においてバッファ残量が少なくなると、競合する入力ポートの接続先ルータ２０や計算ノード１００にパケット送信停止を要求するフロー制御機能をそなえる。
計算ノード１００は、プロセッサ１１１及び相互結合網インタフェース１１０をそなえる。【００２８】
計算ノード１００は演算機能をそなえる装置であり、各計算ノード１００は、相互結合網インタフェース１１０を介してルータ２０と通信可能に接続されている。これにより、本並列計算機システム１内の任意の計算ノード１００間でパケットを送受信することができる。
プロセッサ１１１は、相互結合網インタフェース１１０のパケット受信回路１１２が保持するパケットを順次取得し、データ処理を行なう。また、プロセッサ１１１は、他の計算ノード１００へデータを送信する必要がある場合に、そのデータを分割して宛先アドレスを含むパケットを生成し、相互結合網インタフェース１１０のパケット送信回路１１３へ出力する。【００２９】
相互結合網インタフェース１１０は、計算ノード１００をルータ２０と通信可能に接続するインタフェース装置であり、計算ノード１００からのパケットの送出や受信を制御する。
すなわち、プロセッサ１１１によって作成されたパケットは相互結合網インタフェース１１０を介してルータ２０に送信され、又、ルータ２０から送信されたデータは相互結合網インタフェース１１０を介して計算ノード１００に送達される。【００３０】
この相互結合網インタフェース１１０は、図３に示すように、パケット送信回路１１３，パケット送信時刻テーブル１１４，構成情報保持部１１５及びパケット受信回路１１２をそなえる。
パケット受信回路１１２は、内部にＦＩＦＯ型のバッファメモリ（図示省略）を有している。パケット受信回路１１２は、ルータ２０からパケットを取得すると、取得したパケットをバッファメモリの最後尾に格納する。また、パケット受信回路１１２は、プロセッサ１１１からの要求に応じて、バッファメモリの先頭からパケットを取り出し、プロセッサ１１１へ受け渡す。【００３１】
構成情報保持部１１５は、本並列計算機システム１の構成に関する情報を保持するメモリ等の保持部である。
本並列計算機システム１をなす相互結合網は規則結合網として構成され、計算ノード１００間で送受信されるデータは、定められた通信経路（伝送経路）を通過する。
すなわち、本並列計算機システム１において、送信元の計算ノード１００と宛先の計算ノード１００とが特定されると、これらの計算ノード１００間で送受信されるパケットが通過するルータ２０等の中継機器の数（リンク数，メトリック）は特定される。以下、本並列計算機システム１において、通信経路上においてパケットが通るリンク数、すなわち、ルータ２０等の中継装置の数をホップ数（ｈ）という。【００３２】
例えば、図２に示す例において、計算ノード１００−１から計算ノード１００−３に送信されるパケットは、ルータ２０−１のポートＰ１の受信バッファ２１１に格納された後、クロスバスイッチ２２に入力され、ポートＰ３の送信バッファ２１２に格納される。そして、パケットは、ルータ２０−２に送信され、ルータ２０−２のポートＰ４の受信バッファ２１１に格納された後、クロスバスイッチ２２を介してポートＰ２の送信バッファ２１２に格納される。その後、パケットは送信先である計算ノード１００−４に送達される。このような計算ノード１００−１から計算ノード１００−３に送信されるパケットの送信においては、ホップ数（ｈ）は通過するルータ２０の台数に等しく、ｈ＝２となる。【００３３】
また、ルータ２０において、パケットがルータ２０を通過する際にかかる時間が、１ホップあたりの転送遅延時間（Ｄ）として規定される。又、ルータ２０における、パケットの１回の転送時に通過する送信バッファ２１２と受信バッファ２１１とのバッファサイズの総和が、１ホップあたりのルータバッファ量（Ｂ）として規定される。
さらに、本並列計算機システム１において、計算ノード１００間のパケットの各伝達経路について、輻輳がない場合の転送速度（Ｔ）が、算出もしくは測定することにより規定される。【００３４】
構成情報保持部１１５には、本並列計算機システム１における各通信経路に対して、ホップ数（ｈ）や輻輳がない場合の転送速度（Ｔ）が対応付けて記録されている。又、構成情報保持部１１５が保持する構成情報には、ルータ２０についての、１ホップあたりの転送遅延時間（Ｄ）や１ホップあたりのルータバッファ量（Ｂ），パケット長（Ｌ）も含まれる。なお、これらの構成情報保持部１１５に記録される構成情報は、本並列計算機システム１の設計時において求めることができ、構成情報は、例えば、そのシステム設計時に作成される。構成情報は、図示しないメモリ等に後述するパケット送信回路１１３が参照可能な形式で構成情報保持部１１５に格納される。なお、構成情報保持部１１５に格納される構成情報は、例えば、データベースやテーブル等の形式で格納してもよく、種々変形して実施することができる。【００３５】
パケット送信時刻テーブル１１４は、パケット送信回路１１３により送信した各パケットについて、その送信時刻を管理する。
図４は第１実施形態の一例としての並列計算機システム１におけるパケット送信時刻テーブル１１４を例示する図である。
この図４に示す例においては、パケット送信時刻テーブル１１４は、エントリとして、パケット識別子ｐ，パケット送信時刻及びメッセージ識別子ｍを相互に関連付けて記録する。【００３６】
このパケット送信時刻テーブル１１４は、パケットが送信されてから応答パケットが戻ってくるまでの時間（ラウンドトリップタイム）の測定に用いられる。
パケット識別子ｐは、個々のパケットを識別するためにユニークに設定される識別子である。パケット送信時刻は、そのパケットがパケット送信回路１１３によって送信された時刻である。メッセージ識別子ｍは、そのパケットが構成するメッセージを識別するために設定される識別子である。【００３７】
これらのパケット送信時刻テーブル１１４に格納される情報は、例えばパケット送信回路１１３により生成され、パケットの送信時に随時パケット送信時刻テーブル１１４に格納される。
また、パケット送信時刻テーブル１１４に記録されたエントリは、対応する応答パケットがパケット受信回路１１２により受信された時点で、パケット送信時刻テーブル１１４から削除される。これにより、パケット送信時刻テーブル１１４を参照することによって、特定のパケットについて、応答パケットが未着の状態である送信中のパケット（メッセージ）であるか否かを判断することができる。【００３８】
パケット送信回路１１３は、内部にＦＩＦＯ等のバッファメモリを有している。パケット送信回路１１３は、プロセッサ１１１が送信したデータであるメッセージを取得すると、取得したメッセージをパケットに分割し、分割したパケットをバッファメモリに格納する。また、パケット送信回路１１３は、ルータ２０からの要求に応答して、そのバッファメモリからパケットを取り出し、ルータ２０へ出力する。【００３９】
そして、パケット送信回路１１３は、図１に示すように、待ち時間算出部１１及び送信制御部１２としての機能をそなえる。
待ち時間算出部（送信間隔算出部）１１は、当該並列計算機システム１を形成する相互結合網の構成から予想される到着予測時刻を算出する。
具体的には、待ち時間算出部１１は、パケット受信回路１１２が応答パケットを受信すると、パケット送信時刻テーブル１１４から、その応答パケットに対応する送信パケットのパケット送信時刻を読み出す。更に、待ち時間算出部１１は、構成情報保持部１１５から、通信経路においてパケットが通過したルータ等の中継装置の数を表すホップ数（ｈ）と1ホップあたりの転送遅延量（Ｄ）とを読み出し、ホップ数と遅延量を乗算した値（ｈ×Ｄ）を算出する。【００４０】
そして、待ち時間算出部１１は、パケット送信時刻テーブル１１４から読み出したパケット送信時刻に対して、算出したｈ×Ｄを加算することにより、到着予測時刻を求める。
また、待ち時間算出部１１は、計算した到着予測時刻と実際に応答パケットが到着した時刻である到着実時刻とを比較する。待ち時間算出部１１は、計算した到着予想時刻よりも到着実時刻が遅れている場合に、更に、到着実時刻から到着予測時刻を減算して到着時間の差分（ｄ）を算出する。【００４１】
さらに、待ち時間算出部１１は、この算出した差分（ｄ）と、構成情報保持部１１５から読み出したホップ数（ｈ）及び１ホップあたりのルータバッファ量（Ｂ）とを用いて、通信経路におけるパケットの実効転送速度（ｔ）を算出する。
輻輳発生状態は、通信経路上のバッファが全て枯渇した状態であり、送信先までの通信経路上の全てのバッファがパケットで満たされた状態であると考えられる。そこで、通信経路上の総バッファサイズｈ×Ｂに相当するデータ量が時間ｄで転送されたものと仮定して、実効転送速度（ｔ）を以下の式（１）を用いて算出する。【００４２】
ｔ＝ｈ×Ｂ／ｄ  ・・・（１）
そして、待ち時間算出部１１は、算出した実効転送速度（ｔ）を以降のデータ送信速度とするために、パケット送信間隔（ｇ）を以下の式（２）を用いて算出する。
ｇ＝（Ｌ／ｔ）−（Ｌ／Ｔ）  ・・・（２）
なお、待ち時間算出部１１は、このパケット送信間隔（ｇ）の算出に際して、パケット長（Ｌ）や輻輳がない場合の転送速度（Ｔ）も構成情報保持部１１５から読み出す。又、待ち時間算出部１１は、算出したパケット送信間隔（ｇ）を図示しないメモリ等に格納してもよい。【００４３】
送信制御部１２は、待ち時間算出部１１によって算出されたパケット送信間隔（ｇ）を、連続して複数のパケットを送信する際の送信間隔としてパケットの送信制御を行なう。具体的には、連続して複数のパケットを送信するに際して、先のパケットを送信してから、パケット送信間隔（ｇ）経過後に後続するパケットを送信する。すなわち、パケット送信間隔（ｇ）は、パケット間の待ち時間に相当する。【００４４】
このようなパケット送信間隔（ｇ）をパケット間に設定してパケット送信制御を行なうことにより、前述した実効転送速度（ｔ）でパケットが伝送される。
すなわち、上述した式（２）により求めたパケット送信間隔（ｇ）でパケットを送信することは、輻輳が生じている通信経路での転送速度に合わせてパケット間隔を調整して、新たなパケットを輻輳が生じている通信経路上に送信することに相当する。すなわち、通信経路上における実際のスループットに合わせてパケットの転送速度を低下させてパケットを順次送信する。これにより、その通信経路上でのパケットの混雑状況がそれ以上悪化することがない。これにより、最終的に輻輳が解消する。【００４５】
本並列計算機システム１においては、通信経路上で輻輳が発生すると、実効転送速度（ｔ）の値が大きくなり、これに伴い、パケット送信間隔（ｇ）の値が大きくなる。これにより、送信制御部１２は大きなパケット送信間隔（ｇ）でパケットを送信することになり、通信経路上でのパケットの混雑状況が緩和され、その結果、輻輳が解消される。
なお、上述した待ち時間算出部１１や送信制御部１２としての各機能は、電子回路によって実現してもよく、又、図示しないプロセッサがプログラムを実行することによって実現してもよい。【００４６】
上述の如く構成された第１実施形態の一例としての並列計算機システム１におけるメッセージ送信時の処理を図５に示すフローチャート（ステップＡ１０〜Ａ５０）に従って説明する。
メッセージの送信元の計算ノード１００（送信ノード）のパケット送信回路１１３がメッセージの送信処理を開始すると、パケット送信回路１１３は、先ず、パケット送信間隔（ｇ）に予め初期値を設定することにより初期化を行なう（ステップＡ１０）。このパケット送信間隔（ｇ）の初期値は、例えば、ｇ＝０である。【００４７】
送信制御部１２は、パケット送信間隔（ｇ）が経過するまで待ち合わせを行ない（ステップＡ２０）、パケット送信間隔（ｇ）が経過すると、パケットの送信を行なう（ステップＡ３０）。又、この送信されるパケットには、メッセージ識別子ｍやパケット識別子ｐが付加される。
パケット送信回路１１３は、パケットの送信に伴い、送信したパケットに関する情報をパケット送信時刻テーブル１１４に記録する（ステップＡ４０）。すなわち、パケット送信時刻テーブル１１４に、送信したパケットのパケット識別子ｐやメッセージ識別子ｍ，送信時刻を記録する。【００４８】
パケット送信回路１１３は、メッセージを形成する全てのパケットの送信が完了したか否かを確認する（ステップＡ５０）。全てのパケットの送信が完了していない場合には（ステップＡ５０のｎｏルート参照）、ステップＡ２０に戻る。又、全てのパケットの送信が完了した場合には（ステップＡ５０のｙｅｓルート参照）、メッセージの送信処理を完了する。【００４９】
次に、本第１実施形態の一例としての並列計算機システム１における応答パケットの受信時の処理を図６に示すフローチャート（ステップＢ１０〜Ｂ４０）に従って説明する。
メッセージの送信元の計算ノード１００（送信ノード）において、送信したパケットに対する応答パケットを受信したか否かの確認を行ない（ステップＢ１０）、応答パケットを受信していない場合には（ステップＢ１０のｎｏルート参照）、処理を終了する。すなわち、パケット受信回路１１２は応答パケットの受信待ちを行なう。【００５０】
応答パケットを受信した場合には（ステップＢ１０のｙｅｓルート参照）、パケット送信回路１１３において、応答パケットのメッセージ識別子ｍがパケット送信時刻テーブル１１４に記録されているパケットのメッセージ識別子ｍと一致するか否かを確認する（ステップＢ２０）。
応答パケットのパケット識別子ｍが送信中のメッセージと一致した場合には（ステップＢ２０のｙｅｓルート参照）、次に、パケット送信回路１１３は、応答パケットのパケット識別子ｐがパケット送信時刻テーブル１１４に記録されているか否かを確認する（ステップＢ３０）。【００５１】
応答パケットのパケット識別子ｐがパケット送信時刻テーブル１１４に記録されている場合には（ステップＢ３０のｙｅｓルート参照）、待ち時間算出部１１は、パケット送信間隔（ｇ）の算出を行なう。
待ち時間算出部１１は、応答パケットのパケット識別子ｐに対応するパケット送信時刻をパケット送信時刻テーブル１１４から読み出して到着予想時刻の算出を行ない、その応答パケットの現実の受信時刻、すなわち、到着実時刻との比較を行なう。この到着予想時刻と到着実時刻との比較の結果、計算した到着予想時刻よりも到着実時刻が遅れている場合、すなわち輻輳発生したと判断されたとき、待ち時間算出部１１は、到着実時刻から到着予測時刻を減算して到着時間の差分（ｄ）を算出する。そして、待ち時間算出部１１は、前述した式（１）を用いて実効転送速度（ｔ）を算出し、更に、前述した式（２）を用いてパケット送信間隔（ｇ）を算出する。又、比較の結果、計算した到着予想時刻と到着実時刻が一致した場合、すなわち輻輳が生じていない場合には、例えば、パケット送信間隔（ｇ）はｇ＝０とする。【００５２】
パケット送信回路１１３は、待ち時間算出部１１によって算出したパケット送信間隔（ｇ）により、パケット送信間隔（ｇ）の更新を行なう（ステップＢ４０）。
そして、送信制御部１２は、上述の如く待ち時間算出部１１によって算出されたパケット送信間隔（ｇ）をパケット間隔としてパケットを順次送信する。
また、応答パケットのパケット識別子ｍが送信中のメッセージと一致しない場合（ステップＢ２０のｎｏルート参照）や、応答パケットのパケット識別子ｐがパケット送信時刻テーブル１１４に記録されていない場合（ステップＢ３０のｎｏルート参照）には、処理を終了する。【００５３】
このように、第１実施形態の一例としての並列計算機システム１によれば、通信経路におけるパケットの実効転送速度（ｔ）を算出し、式（２）を用いてパケット送信間隔（ｇ）を算出する。そして、送信制御部１２が、この算出されたパケット送信間隔（ｇ）でパケットを送信する。
これにより、通信経路上における実際のスループットに合わせてパケットが順次送信され、輻輳が解消することができる。すなわち、通信経路上の実効転送速度（ｔ）に合わせた輻輳制御を効率よく実現することができ、並列計算機システム１における相互結合網を効率よく使用することができる。【００５４】
本第１実施形態の並列計算機システム１においては、送信先（宛先）までの通信経路上のホップ数（ｈ）を使用して輻輳がない場合の応答パケットの到着時刻を予測し、実際の到着時刻と予測時刻のずれを測定する。更に、到着時刻のずれと宛先までの総バッファサイズ（ｈ×Ｂ）から実効転送速度（ｔ）を算出し、パケットの転送速度を算出した実効転送速度まで下げる。【００５５】
本第１実施形態の一例としての並列計算機システム１における輻輳制御方式においては、輻輳が解消された状態になると応答パケットの到着時刻が予測と一致し、送信元の計算ノード１００のデータ転送速度が引き上げられて再び輻輳を起すことになる。すなわち、ネットワークの状態を輻輳解消状態と、輻輳の影響範囲が狭い状態との間で維持することにより、ネットワーク（通信網）の利用効率を落とさない効果がある。又、輻輳制御を行なわない場合と比較して、輻輳の影響範囲拡大を防ぐ効果もある。【００５６】
また、本第１実施形態の一例としての並列計算機システム１における輻輳制御方式によれば、例えば、ルータ等の中継装置で輻輳を検出して送信元の計算ノード１００に通知するような複雑な機構を必要としない。すなわち、導入コストや運用コストを低減できる効果もある。
なお、本技術はパケットのロスレス転送を行うネットワークに用いて好適である。【００５７】
（Ｂ）第２実施形態
図７は第２実施形態の一例としての並列計算機システム１にそなえられた相互結合網インタフェースの機能構成を模式的に示す図である。
本第２実施形態の一例としての並列計算機システム１は、図２及び図３に示すような、第１実施形態の並列計算機システム１と同様のハードウェア構成をそなえ、相互結合網により構成されている。【００５８】
そして、図７に示すように、第２実施形態の一例としての並列計算機システム１は、第１実施形態の待ち時間算出部１１に代えて制限サイズ算出部１３をそなえる。又、本第２実施形態の一例としての並列計算機システム１は、第１実施形態のパケット送信時刻テーブル１１４に代えて送信データ管理情報保持部１１６をそなえる。
さらに、本第２実施形態の一例としての並列計算機システム１においては、送信制御部１２は、応答パケットが未到着の送信パケットの総データ量がウィンドウサイズｗ（制限サイズ）以下となるよう制御するウィンドウ制御によりパケットの送信を行なう。【００５９】
そして、これらの他の部分は第１実施形態の並列計算機システム１と同様に構成されている。なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は適宜省略する。
送信制御部１２においては、送信元の計算ノード１００においては、応答パケットが返っていないデータ量を一定以下に保つウィンドウ制御を行なう。具体的には、応答パケットが返っていない送信パケットの総データ量がウィンドウサイズ（ｗ）を超える場合は、送信制御部１２はパケット送信を停止する。【００６０】
また、パケット送信回路１１３においては、送信パケットの所定位置にパケット送信時刻を記録する。この送信パケットに記録されたパケット送信時刻は、この送信パケットに対応して送信先の計算ノード１００から送信される応答パケットにも格納される。これにより、送信パケットが送信されてから応答パケットが戻ってくるまでの時間であるラウンドトリップタイムを測定することが可能となる。【００６１】
送信データ管理情報保持部１１６は、パケット送信回路１１３により送信した各パケットのうち応答パケットが未着のパケットについての情報を保持するメモリ等の保持部である。
具体的には、送信データ管理情報保持部１１６が保持する送信データ管理情報には、パケット送信回路１１３により送信した各パケットのうち応答パケットが未着のパケットについてのメッセージ識別子ｍとデータサイズが含まれる。そして、送信データ管理情報には、パケット送信回路１１３により送信した各パケットのうち応答パケットが未着のパケットのデータサイズの総量（未応答データ量）が含まれる。【００６２】
制限サイズ算出部１３は、当該並列計算機システム１を形成する相互結合網の構成から予想される到着予測時刻を算出する。
具体的には、制限サイズ算出部１３は、パケット受信回路１１２により応答パケットが受信されると、その応答パケットに記録されたパケット送信時刻を読み出す。更に、制限サイズ算出部１３は、構成情報保持部１１５から、通信経路においてパケットが通過したルータ等の中継装置の数を表すホップ数（ｈ）と１ホップあたりの転送遅延量（Ｄ）とを読み出し、これらを乗算した値（ｈ×Ｄ）を算出する。【００６３】
そして、制限サイズ算出部１３は、応答パケットから読み出したパケット送信時刻に対して、算出した（ｈ×Ｄ）を加算することにより、到着予測時刻を求める。
また、制限サイズ算出部１３は、計算した到着予測時刻と実際に応答パケットが到着した時刻（到着実時刻）とを比較する。制限サイズ算出部１３は、計算した到着予想時刻よりも到着実時刻が遅れている場合に、更に、到着実時刻から到着予測時刻を減算して到着時間の差分（ｄ）を算出する。【００６４】
さらに、制限サイズ算出部１３は、この算出した差分（ｄ）と、構成情報保持部１１５から読み出したホップ数（ｈ）及び１ホップあたりのルータバッファ量（Ｂ）とを用いて、通信経路におけるパケットの実効転送速度（ｔ）を近似的に算出する。すなわち、制限サイズ算出部１３は、第１実施形態の待ち時間算出部１１と同様に、実効転送速度（ｔ）を前述した式（１）を用いて算出する。【００６５】
そして、制限サイズ算出部１３は、算出した実効転送速度（ｔ）を以降のデータ送信速度とするために、ウィンドウサイズ（ｗ）を以下の式（３）を用いて算出する。
ｗ＝２×ｈ×Ｄ×ｔ  ・・・（３）
なお、制限サイズ算出部１３は、算出したウィンドウサイズ（ｗ）を図示しないメモリ等に格納してもよい。【００６６】
また、本第２実施形態の一例としての並列計算機システム１においては、ウィンドウサイズ（ｗ）の初期値を、ｗ＝２×ｈ×Ｄ×Ｔとする。
このウィンドウサイズｗ＝２×ｈ×Ｄ×Ｔは、輻輳がない状態で実効転送速度（Ｔ）を得るための値であり、ウィンドウサイズ（ｗ）の最大値を示す。又、２×ｈ×Ｄは、データ通信経路における往復伝送遅延時間に相当する。【００６７】
通信経路上において輻輳が発生すると、実効転送速度（ｔ）が低下する。本並列計算機システム１においては、この実効転送速度（ｔ）の低下に伴い、ウィンドウサイズ（ｗ）が小さくなる。ウィンドウサイズ（ｗ）が小さくなるとウィンドウ制御によりパケットの送信が抑止される。これにより未応答データ量が小さくなり、通信経路上の遅延（輻輳）が解消されることになる。通信経路上における輻輳が解消されると、実効転送速度（ｔ）が大きくなり、ウィンドウサイズ（ｗ）が大きくなる。ウィンドウサイズ（ｗ）が大きくなると送信可能なパケット数も多くなる。【００６８】
なお、上述した待ち制限サイズ算出部１３や送信制御部１２としての各機能は、電子回路によって実現してもよく、又、図示しないプロセッサがプログラムを実行することによって実現してもよい。
上述の如く構成された第２実施形態の一例としての並列計算機システム１におけるメッセージ送信時の処理を図８に示すフローチャート（ステップＣ１０〜Ｃ４０）に従って説明する。【００６９】
メッセージの送信元の計算ノード１００（送信ノード）のパケット送信回路１１３がメッセージの送信処理を開始すると、パケット送信回路１１３は、先ず、ウィンドウサイズ（ｗ）にｗ＝２×ｈ×Ｄ×Ｔを設定することにより初期化を行なう（ステップＣ１０）。
送信制御部１２は、送信データ管理情報保持部１１６の送信データ管理情報を参照して、未応答データ量がウィンドウサイズ（ｗ）以上であるか否かを確認する（ステップＣ２０）。未応答データ量がウィンドウサイズ（ｗ）以上である場合には（ステップＣ２０のｙｅｓルート参照）、未応答データ量がウィンドウサイズ（ｗ）よりも小さくなるまで待ち合わせを行なう。【００７０】
未応答データ量がウィンドウサイズ（ｗ）未満である場合には（ステップＣ２０のｎｏルート参照）、送信制御部１２が、パケットの送信を行なう（ステップＣ３０）。又、この送信されるパケットには、メッセージ識別子ｍやパケット識別子ｐが付加される。又、パケット送信回路１１３は、このパケット送信に伴い、送信データ管理情報保持部１１６の送信データ管理情報の更新を行なう。具体的には、送信したパケットのメッセージ識別子ｍを登録したり、送信したパケットのデータサイズを未応答データ量に加算する。【００７１】
パケット送信回路１１３は、メッセージを形成する全てのパケットの送信が完了したか否かを確認する（ステップＣ４０）。全てのパケットの送信が完了していない場合には（ステップＣ４０のｎｏルート参照）、ステップＣ２０に戻る。又、全てのパケットの送信が完了した場合には（ステップＣ４０のｙｅｓルート参照）、メッセージの送信処理を完了する。【００７２】
次に、本第２実施形態の一例としての並列計算機システム１における応答パケットの受信時の処理を図９に示すフローチャート（ステップＤ１０〜Ｄ４０）に従って説明する。
メッセージの送信元の計算ノード１００（送信ノード）において、送信したパケットに対する応答パケットを受信したか否かの確認を行ない（ステップＤ１０）、応答パケットを受信していない場合には（ステップＤ１０のｎｏルート参照）、処理を終了する。すなわち、パケット受信回路１１２は応答パケットの受信待ちを行なう。【００７３】
応答パケットを受信した場合には（ステップＤ１０のｙｅｓルート参照）、パケット送信回路１１３において、応答パケットのメッセージ識別子ｍが、送信データ管理情報保持部１１６に記録されている応答パケットが未着のパケットのメッセージ識別子ｍと一致するか否かを確認する（ステップＤ２０）。
応答パケットのパケット識別子ｍが送信中のメッセージと一致した場合には（ステップＤ２０のｙｅｓルート参照）、パケット送信回路１１３は、送信データ管理情報保持部１１６の送信データ管理情報における未応答データ量を更新する（ステップＤ３０）。すなわち、受信した応答パケットに対応する送信パケットのデータサイズを未応答データ量から減算する。【００７４】
また、パケット送信回路１１３においては、制限サイズ算出部１３が、応答パケットに記録されているパケット送信時刻を読み出し、到着予想時刻の算出を行ない、その応答パケットの受信時刻、すなわち、到着実時刻との比較を行なう。この比較の結果、計算した到着予想時刻よりも到着実時刻が遅れている場合に、制限サイズ算出部１３は、到着実時刻から到着予測時刻を減算して到着時間の差分（ｄ）を算出する。そして、制限サイズ算出部１３は、前述した式（１）を用いて実効転送速度（ｔ）を算出し、更に、前述した式（３）を用いてウィンドウサイズ（ｗ）を算出する。【００７５】
パケット送信回路１１３は、制限サイズ算出部１３によって算出したウィンドウサイズ（ｗ）により、ウィンドウサイズ（ｗ）の更新を行ない（ステップＤ４０）、処理を終了する。
また、応答パケットのパケット識別子ｍが送信中のメッセージと一致しない場合（ステップＤ２０のｎｏルート参照）にも、処理を終了する。【００７６】
このように、第２実施形態の一例としての並列計算機システム１においても、第１実施形態と同様の作用効果を得ることができる。
すなわち、通信経路におけるパケットの実効転送速度（ｔ）を算出し、ウィンドウサイズ（ｗ）を式（３）を用いて算出する。そして、送信制御部１２が、この算出されたウィンドウサイズ（ｗ）を用いてウィドウ制御を伴うパケット送信を行なう。【００７７】
これにより、通信経路上における実際のスループットに合わせてパケットが送信され、輻輳が解消することができる。すなわち、通信経路上の実効転送速度（ｔ）に合わせた輻輳制御を実現することができ、並列計算機システム１における相互結合網を効率よく使用することができる。
本第２実施形態の並列計算機システム１においても、第１実施形態と同様に、送信先（宛先）までの通信経路上のホップ数（ｈ）を使用して輻輳がない場合の応答パケットの到着時刻を予測し、実際の到着時刻と予測時刻のずれを測定する。更に、到着時刻のずれと宛先までの総バッファサイズ（ｈ×Ｂ）から実効転送速度（ｔ）を推定し、パケットの転送速度を実効転送速度まで下げる。【００７８】
本第２実施形態の一例としての並列計算機システム１における輻輳制御方式においても、第１実施形態と同様に、ネットワークの状態を輻輳解消状態と、輻輳の影響範囲が狭い状態との間で維持することにより、ネットワークの利用効率を落とさない効果がある。又、輻輳制御を行なわない場合と比較して、輻輳の影響範囲拡大を防ぐ効果もある。
また、本第２実施形態の一例としての並列計算機システム１における輻輳制御方式によれば、例えば、ルータ等の中継装置で輻輳を検出して送信元の計算ノード１００に通知するような複雑な機構を必要としない。すなわち、導入コストや運用コストを低減できる効果もある。【００７９】
なお、本技術はパケットのロスレス転送を行うネットワークに用いて好適である。
（Ｃ）第１実施形態の変形例
上述した第１実施形態においては、待ち時間算出部１１は、通信経路上のホップ数（ｈ）に基づき実効転送速度（ｔ）を算出しているが、本変形例においては、通信経路上における輻輳が生じたルータ２０（以下、輻輳ルータ２０という）の数に基づいて実効転送速度（ｔ）を算出する。【００８０】
本第１実施形態の変形例においては、パケット内に新たなフィールドとして輻輳ルータ通過回数ｃが追加される。この輻輳ルータ通過回数ｃは、輻輳ルータ２０を通過する度に、この輻輳ルータ２０によりインクリメントされるカウンタ値である。この輻輳ルータ通過回数ｃは、例えば、一般に、ルータ２０がエンド・ノードにネットワークの輻輳状態を通知する輻輳情報通知機能として用いられているＥＣＮ（Explicit Congestion Notification）のフィールドを転用することにより容易に実現することができる。【００８１】
すなわち、ルータ２０等の中継装置において、ＥＣＮフィールドにビットを立てる代わりに、輻輳ルータ通過回数ｃのインクリメントを行なう機能を実装する。具体的には、ルータ２０において、パケットを転送する際に、バッファ２１１，２１２で待ち合わせが生じた場合、パケット内に記録された輻輳ルータ通過回数ｃに１を加算する。なお、パケット内の特定の値をインクリメントする手法は、既知の種々の手法を用いて実現することができる。【００８２】
また、送信元の計算ノード１００において、パケット送信回路１１３からパケットを送出する際には、この輻輳ルータ通過回数ｃを０に初期化する。
さらに、送信先の計算ノード１００においては、受信した送信パケットに対する応答パケットに輻輳ルータ通過回数ｃを複写して、この輻輳ルータ通過回数ｃを含む応答パケットを返信する。【００８３】
そして、送信元の計算ノード１００においては、応答パケットに記録された輻輳ルータ通過回数ｃを用いて、実効転送速度（ｔ）及びパケット送信間隔（ｇ）を算出する。
すなわち、待ち時間算出部１１は、計算した到着予測時刻と実際に応答パケットが到着した時刻（到着実時刻）とを比較し、計算した到着予想時刻よりも到着実時刻が遅れている場合に、更に、到着実時刻から到着予測時刻を減算して到着時間の差分（ｄ）を算出する。【００８４】
そして、待ち時間算出部１１は、この算出した差分（ｄ）と、応答パケットから読み出した輻輳ルータ通過回数ｃ及び１ホップあたりのルータバッファ量（Ｂ）とを用いて、通信経路におけるパケットの実効転送速度（ｔ）を近似的に算出する。
本変形例においては、パケットの通信経路上における輻輳ルータ２０のバッファが枯渇した状態であると判断し、送信先までの通信経路上のうち輻輳ルータ２０のバッファがパケットで満たされた状態であると考える。すなわち、輻輳ルータ２０の総バッファサイズｃ×Ｂに相当するデータ量が時間ｄで転送されたものと仮定して、実効転送速度（ｔ）を以下の式（４）を用いて算出する。【００８５】
ｔ＝ｃ×Ｂ／ｄ  ・・・（４）
そして、待ち時間算出部１１は、算出した実効転送速度（ｔ）を以降のデータ送信速度とするために、パケット送信間隔（ｇ）を上述した式（２）を用いて算出する。
このように、第１実施形態の変形例の一例としての並列計算機システム１によれば、上述した第１実施形態と同様の作用効果を得ることができる他、実際に輻輳が生じた中継装置の数に基づいて実効転送速度（ｔ）を算出することにより、並列計算機システム１の状態に即したパケット送信間隔（ｇ）を算出することができ信頼性が向上する。【００８６】
（Ｄ）第２実施形態の変形例
上述した第２実施形態においては、制限サイズ算出部１３は、通信経路上のホップ数（ｈ）に基づき実効転送速度（ｔ）を算出しているが、本第２実施形態の変形例においても、第１実施形態の変形例と同様に、通信経路上における輻輳ルータ２０の数に基づいて実効転送速度（ｔ）を算出する。【００８７】
すなわち、本第２実施形態の変形例においても、第１実施形態の変形例と同様に、パケット内に新たなフィールドとして輻輳ルータ通過回数ｃが追加され、この輻輳ルータ通過回数ｃは、輻輳ルータ２０を通過する度に、この輻輳ルータ２０においてインクリメントされる。
また、送信元の計算ノード１００において、パケット送信回路１１３からパケットを送出する際には、この輻輳ルータ通過回数ｃを０に初期化する。【００８８】
さらに、送信先の計算ノード１００においては、受信した送信パケットに対する応答パケットに輻輳ルータ通過回数ｃを複写して、この輻輳ルータ通過回数ｃを含む応答パケットを返信する。
そして、送信元の計算ノード１００においては、応答パケットに記録された輻輳ルータ通過回数ｃを用いて、実効転送速度（ｔ）及びパケット送信間隔（ｇ）を算出する。【００８９】
すなわち、制限サイズ算出部１３は、計算した到着予測時刻と実際に応答パケットが到着した時刻（到着実時刻）とを比較し、計算した到着予想時刻よりも到着実時刻が遅れている場合に、更に、到着実時刻から到着予測時刻を減算して到着時間の差分（ｄ）を算出する。
そして、制限サイズ算出部１３は、この算出した差分（ｄ）と、応答パケットから読み出した輻輳ルータ通過回数ｃ及び１ホップあたりのルータバッファ量（Ｂ）とを用いて、通信経路におけるパケットの実効転送速度（ｔ）を近似的に算出する。【００９０】
本変形例においても、制限サイズ算出部１３は、実効転送速度（ｔ）を上述した式（４）を用いて算出する。
そして、制限サイズ算出部１３は、算出した実効転送速度（ｔ）を以降のデータ送信速度とするために、ウィンドウサイズ（ｗ）を上述した式（３）を用いて算出する。
このように、第２実施形態の変形例の一例としての並列計算機システム１によれば、上述した第２実施形態と同様の作用効果を得ることができる他、実際に輻輳が生じたルータ２０の数に基づいて実効転送速度（ｔ）を算出することにより、並列計算機システム１の状態に即したパケット送信間隔（ｇ）を算出することができ信頼性が向上する。【００９１】
（Ｅ）その他
そして、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した各実施形態および変形例においては、並列計算機システム１が４台の計算ノード１００と２台のルータ２０をそなえた相互結合網として構成されているが、これに限定されるものではない。すなわち、相互結合網において、３台以下もしくは５台以上の計算ノード１００をそなえてもよく、又、３台以上のルータ２０をそなえてもよい。更に、スイッチやリピータ等、ルータ２０以外の中継装置をそなえてもよい。又、３台以上のルータ２０等をそなえて相互結合網を構成する場合には、これらの中継装置や計算ノード１００の接続形態は適宜変更して実施することができる。【００９２】
また、上述した第１実施形態及びその変形例において、は、パケット送信時刻テーブル１１４をそなえ、このパケット送信時刻テーブル１１４を参照することによりラウンドトリップタイムの測定を実現しているが、これに限定されるものではない。すなわち、例えば、第２実施形態の並列計算機システム１と同様に、パケット送信回路１１３において、送信パケットの所定位置にパケット送信時刻を記録することにより、ラウンドトリップタイムの測定を実現してもよい。【００９３】
同様に、上述した第２実施形態及びその変形例においては、パケット送信回路１１３においては、送信パケットの所定位置にパケット送信時刻を記録することにより、ラウンドトリップタイムの測定を実現しているが、これに限定されるものではない。すなわち、例えば、第１実施形態の並列計算機システム１と同様に、パケット送信時刻テーブル１１４をそなえてもよい。【００９４】
また、上述した各実施形態及びその変形例においては、実際の到着時刻と予測時刻のずれを測定し、輻輳発生を検出した時に、パケットの転送速度を実効転送速度に合わせるべく、パケット送信間隔（ｇ）やウィンドウサイズ（ｗ）を決定・更新しているが、これに限定されるものではない。例えば、輻輳発生を検出した時に、一時的に、所定期間、パケット送信を抑止し、その後、パケットの転送速度を実効転送速度に合わせるべく、パケット送信間隔（ｇ）やウィンドウサイズ（ｗ）を決定・更新してもよい。【００９５】
輻輳発生を検出した時に、一時的に、所定期間、パケット送信を抑止することにより、輻輳を早く解消することができる。そして、その後、パケットの転送速度を実効転送速度に合わせるべく、パケット送信間隔（ｇ）やウィンドウサイズ（ｗ）を決定・更新することにより、効率的にパケットの送信を行なうことができる。
【符号の説明】
【００９６】
１    並列計算機システム（計算機システム）
１１    待ち時間算出部（送信間隔算出部）
１２    送信制御部
１３    制限サイズ算出部
２０，２０−１，２０−２    ルータ（中継装置）
２１    送受信バッファ
２２    クロスバスイッチ
１００，１００−１，１００−２，１００−３，１００−４    計算ノード
１１０    相互結合網インタフェース（送信装置）
１１１    プロセッサ
１１２    パケット受信回路
１１３    パケット送信回路
１１４    パケット送信時刻テーブル
１１５    構成情報保持部
１１６    送信データ管理情報保持部
２１１，２１２    バッファ
Ｐ１〜Ｐ４    ポート
【図１】
2013042219.tif 000003
【図２】
2013042219.tif 000004
【図３】
2013042219.tif 000005
【図４】
2013042219.tif 000006
【図５】
2013042219.tif 000007
【図６】
2013042219.tif 000008
【図７】
2013042219.tif 000009
【図８】
2013042219.tif 000010
【図９】
2013042219.tif 000011
【手続補正書】
【提出日】平成26年4月28日(2014.4.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
中継装置を介して他のデータ通信装置にデータを送信するデータ通信装置において、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、
前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有することを特徴とするデータ通信装置。
【請求項２】
前記送信間隔算出部は、前記送信間隔として、前記データのデータ長を前記実効転送速度で除算した値から、前記データ長を輻輳が発生していない場合の実効転送速度で除算した値を減算した値を算出することを特徴とする、請求項１記載のデータ通信装置。
【請求項３】
中継装置を介して他のデータ通信装置にデータを送信するデータ通信装置において、
前記他のデータ通信装置に送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有することを特徴とするデータ通信装置。
【請求項４】
前記制限サイズの初期値として、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じた値を２倍することにより算出される往復伝送遅延時間に、輻輳が発生していない場合の実効転送速度を乗ずることにより算出した値を設定することを特徴とする請求項３記載のデータ通信装置。
【請求項５】
前記制限サイズ算出部は、前記制限サイズとして、前記往復伝送遅延時間に前記実効転送速度を乗ずることにより算出した値を算出することを特徴とする請求項４記載のデータ通信装置。
【請求項６】
中継装置を介してデータを送信するデータ送信方法であって、
コンピュータが、
送信した送信データに対する応答データが到着した到着実時刻と、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、
前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出し、
前記算出した送信間隔に基づき、送信データの送信制御を行なうことを特徴とするデータ送信方法。
【請求項７】
中継装置を介して他のデータ通信装置にデータを送信するデータ送信方法であって、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、
前記算出した実効転送速度に基づき制限サイズを算出し、
前記他のデータ通信装置に送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が前記制限サイズ以下となるようにデータの送信を行なうことを特徴とするデータ送信方法。
【請求項８】
複数の中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、
前記計算機ノードは、
前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、
前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有することを特徴とする計算機システム。
【請求項９】
中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、
前記計算機ノードは、
前記他の計算ノードに送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、
前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有することを特徴とする計算機システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
さらに、このデータ送信方法は、中継装置を介してデータを送信するデータ送信方法であって、コンピュータが、送信した送信データに対する応答データが到着した到着実時刻と、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出し、前記算出した送信間隔に基づき、送信データの送信制御を行なう。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
応答パケットを受信した場合には（ステップＢ１０のｙｅｓルート参照）、パケット送信回路１１３において、応答パケットのメッセージ識別子ｍがパケット送信時刻テーブル１１４に記録されているパケットのメッセージ識別子ｍと一致するか否かを確認する（ステップＢ２０）。
応答パケットのメッセージ識別子ｍが送信中のメッセージと一致した場合には（ステップＢ２０のｙｅｓルート参照）、次に、パケット送信回路１１３は、応答パケットのパケット識別子ｐがパケット送信時刻テーブル１１４に記録されているか否かを確認する（ステップＢ３０）。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
パケット送信回路１１３は、待ち時間算出部１１によって算出したパケット送信間隔（ｇ）により、パケット送信間隔（ｇ）の更新を行なう（ステップＢ４０）。
そして、送信制御部１２は、上述の如く待ち時間算出部１１によって算出されたパケット送信間隔（ｇ）をパケット間隔としてパケットを順次送信する。
また、応答パケットのメッセージ識別子ｍが送信中のメッセージと一致しない場合（ステップＢ２０のｎｏルート参照）や、応答パケットのパケット識別子ｐがパケット送信時刻テーブル１１４に記録されていない場合（ステップＢ３０のｎｏルート参照）には、処理を終了する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
応答パケットを受信した場合には（ステップＤ１０のｙｅｓルート参照）、パケット送信回路１１３において、応答パケットのメッセージ識別子ｍが、送信データ管理情報保持部１１６に記録されている応答パケットが未着のパケットのメッセージ識別子ｍと一致するか否かを確認する（ステップＤ２０）。
応答パケットのメッセージ識別子ｍが送信中のメッセージと一致した場合には（ステップＤ２０のｙｅｓルート参照）、パケット送信回路１１３は、送信データ管理情報保持部１１６の送信データ管理情報における未応答データ量を更新する（ステップＤ３０）。すなわち、受信した応答パケットに対応する送信パケットのデータサイズを未応答データ量から減算する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００７５
【補正方法】変更
【補正の内容】
【００７５】
パケット送信回路１１３は、制限サイズ算出部１３によって算出したウィンドウサイズ（ｗ）により、ウィンドウサイズ（ｗ）の更新を行ない（ステップＤ４０）、処理を終了する。
また、応答パケットのメッセージ識別子ｍが送信中のメッセージと一致しない場合（ステップＤ２０のｎｏルート参照）にも、処理を終了する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
輻輳発生を検出した時に、一時的に、所定期間、パケット送信を抑止することにより、輻輳を早く解消することができる。そして、その後、パケットの転送速度を実効転送速度に合わせるべく、パケット送信間隔（ｇ）やウィンドウサイズ（ｗ）を決定・更新することにより、効率的にパケットの送信を行なうことができる。
（Ｆ）付記
（付記１）
中継装置を介して他のデータ通信装置にデータを送信するデータ通信装置において、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、
前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有することを特徴とするデータ通信装置。
（付記２）
前記送信間隔算出部は、前記送信間隔として、前記データのデータ長を前記実効転送速度で除算した値から、前記データ長を輻輳が発生していない場合の実効転送速度で除算した値を減算した値を算出することを特徴とする、付記１記載のデータ通信装置。
（付記３）
中継装置を介して他のデータ通信装置にデータを送信するデータ通信装置において、
前記他のデータ通信装置に送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有することを特徴とするデータ通信装置。
（付記４）
前記制限サイズの初期値として、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じた値を２倍することにより算出される往復伝送遅延時間に、輻輳が発生していない場合の実効転送速度を乗ずることにより算出した値を設定することを特徴とする付記３記載のデータ通信装置。
（付記５）
前記制限サイズ算出部は、前記制限サイズとして、前記往復伝送遅延時間に前記実効転送速度を乗ずることにより算出した値を算出することを特徴とする付記４記載のデータ通信装置。
（付記６）
中継装置を介してデータを送信するデータ送信方法であって、
コンピュータが、
送信した送信データに対する応答データが到着した到着実時刻と、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、
前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出し、
前記算出した送信間隔に基づき、送信データの送信制御を行なうことを特徴とするデータ送信方法。
（付記７）
前記送信間隔として、前記データのデータ長を前記実効転送速度で除算した値から、前記データ長を輻輳が発生していない場合の実効転送速度で除算した値を減算した値を算出することを特徴とする付記６記載のデータ送信方法。
（付記８）
中継装置を介して他のデータ通信装置にデータを送信するデータ送信方法であって、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、
前記算出した実効転送速度に基づき制限サイズを算出し、
前記他のデータ通信装置に送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が前記制限サイズ以下となるようにデータの送信を行なうことを特徴とするデータ送信方法。
（付記９）
前記制限サイズの初期値として、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じた値を２倍することにより算出される往復伝送遅延時間に、輻輳が発生していない場合の実効転送速度を乗ずることにより算出した値を設定することを特徴とする付記８記載のデータ送信方法。
（付記１０）
前記制限サイズとして、前記往復伝送遅延時間に前記実効転送速度を乗ずることにより算出した値を算出することを特徴とする付記９記載のデータ送信方法。
（付記１１）
複数の中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、
前記計算機ノードは、
前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、
前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有することを特徴とする計算機システム。
（付記１２）
前記送信間隔算出部は、前記送信間隔として、前記データのデータ長を前記実効転送速度で除算した値から、前記データ長を輻輳が発生していない場合の実効転送速度で除算した値を減算した値を算出することを特徴とする付記１１記載の計算機システム。
（付記１３）
中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、
前記計算機ノードは、
前記他の計算ノードに送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、
前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有することを特徴とする計算機システム。
（付記１４）
前記制限サイズの初期値として、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じた値を２倍することにより算出される往復伝送遅延時間に、輻輳が発生していない場合の実効転送速度を乗ずることにより算出した値を設定することを特徴とする付記１３記載の計算機システム。
（付記１５）
前記制限サイズ算出部は、前記制限サイズとして、前記往復伝送遅延時間に前記実効転送速度を乗ずることにより算出した値を算出することを特徴とする付記１４記載の計算機システム。

【手続補正書】
【提出日】平成26年11月7日(2014.11.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
複数の中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、
前記計算ノードは、
前記複数の計算ノードのうち他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、
前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有することを特徴とする計算機システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、
前記計算ノードは、
前記複数の計算ノードのうち他の計算ノードに送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、
前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有することを特徴とする計算機システム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
さらに、この計算機システムは、複数の中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、前記計算ノードは、前記複数の計算ノードのうち他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
また、この計算機システムは、中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、前記計算ノードは、前記複数の計算ノードのうち他の計算ノードに送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
輻輳発生を検出した時に、一時的に、所定期間、パケット送信を抑止することにより、輻輳を早く解消することができる。そして、その後、パケットの転送速度を実効転送速度に合わせるべく、パケット送信間隔（ｇ）やウィンドウサイズ（ｗ）を決定・更新することにより、効率的にパケットの送信を行なうことができる。
（Ｆ）付記
（付記１）
中継装置を介して他のデータ通信装置にデータを送信するデータ通信装置において、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、
前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有することを特徴とするデータ通信装置。
（付記２）
前記送信間隔算出部は、前記送信間隔として、前記データのデータ長を前記実効転送速度で除算した値から、前記データ長を輻輳が発生していない場合の実効転送速度で除算した値を減算した値を算出することを特徴とする、付記１記載のデータ通信装置。
（付記３）
中継装置を介して他のデータ通信装置にデータを送信するデータ通信装置において、
前記他のデータ通信装置に送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有することを特徴とするデータ通信装置。
（付記４）
前記制限サイズの初期値として、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じた値を２倍することにより算出される往復伝送遅延時間に、輻輳が発生していない場合の実効転送速度を乗ずることにより算出した値を設定することを特徴とする付記３記載のデータ通信装置。
（付記５）
前記制限サイズ算出部は、前記制限サイズとして、前記往復伝送遅延時間に前記実効転送速度を乗ずることにより算出した値を算出することを特徴とする付記４記載のデータ通信装置。
（付記６）
中継装置を介してデータを送信するデータ送信方法であって、
コンピュータが、
送信した送信データに対する応答データが到着した到着実時刻と、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、
前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出し、
前記算出した送信間隔に基づき、送信データの送信制御を行なうことを特徴とするデータ送信方法。
（付記７）
前記送信間隔として、前記データのデータ長を前記実効転送速度で除算した値から、前記データ長を輻輳が発生していない場合の実効転送速度で除算した値を減算した値を算出することを特徴とする付記６記載のデータ送信方法。
（付記８）
中継装置を介して他のデータ通信装置にデータを送信するデータ送信方法であって、
前記他のデータ通信装置に送信した送信データに対する応答データが到着した到着実時刻と、前記他のデータ通信装置から送信された応答データが前記データ通信装置に到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の前記中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、
前記算出した実効転送速度に基づき制限サイズを算出し、
前記他のデータ通信装置に送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が前記制限サイズ以下となるようにデータの送信を行なうことを特徴とするデータ送信方法。
（付記９）
前記制限サイズの初期値として、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じた値を２倍することにより算出される往復伝送遅延時間に、輻輳が発生していない場合の実効転送速度を乗ずることにより算出した値を設定することを特徴とする付記８記載のデータ送信方法。
（付記１０）
前記制限サイズとして、前記往復伝送遅延時間に前記実効転送速度を乗ずることにより算出した値を算出することを特徴とする付記９記載のデータ送信方法。
（付記１１）
複数の中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、
前記計算ノードは、
前記複数の計算ノードのうち他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、送信データ間の送信間隔を算出する送信間隔算出部と、
前記算出された送信間隔に基づき、送信データの送信制御を行なう送信制御部とを有することを特徴とする計算機システム。
（付記１２）
前記送信間隔算出部は、前記送信間隔として、前記データのデータ長を前記実効転送速度で除算した値から、前記データ長を輻輳が発生していない場合の実効転送速度で除算した値を減算した値を算出することを特徴とする付記１１記載の計算機システム。
（付記１３）
中継装置をそなえた通信網と、当該通信網を介してデータの送受信を行なう複数の計算ノードとをそなえる計算機システムにおいて、
前記計算ノードは、
前記複数の計算ノードのうち他の計算ノードに送信した送信データに対する応答データが未到着の送信データのデータ量を総和した総データ量が制限サイズ以下となるようにデータの送信を行なう送信制御部と、
前記他の計算ノードに送信した送信データに対する応答データが到着した到着実時刻と、前記他の計算ノードから送信された応答データが前記計算ノードに到着するまでに経由した中継装置の数に１つの中継装置を経由する際に要する転送遅延時間を乗じて算出される到着予測時刻との差分と、前記データの通信経路上の中継装置のバッファサイズとに基づいて前記データの実効転送速度を算出し、前記算出した実効転送速度に基づき、前記制限サイズを算出する制限サイズ算出部とを有することを特徴とする計算機システム。
（付記１４）
前記制限サイズの初期値として、前記応答データが到着するまでに経由した中継装置の数に、１つの中継装置を経由する際に要する転送遅延時間を乗じた値を２倍することにより算出される往復伝送遅延時間に、輻輳が発生していない場合の実効転送速度を乗ずることにより算出した値を設定することを特徴とする付記１３記載の計算機システム。
（付記１５）
前記制限サイズ算出部は、前記制限サイズとして、前記往復伝送遅延時間に前記実効転送速度を乗ずることにより算出した値を算出することを特徴とする付記１４記載の計算機システム。
【国際調査報告】
2013042219.tif 000012
2013042219.tif 000013