(57)【要約】【課題】  ネットワークを有効に利用し、複数マルチキャスト通信間の公平性を保つマルチキャスト通信を提供する。【解決手段】  送信側シェーパは、データ往復遅延時間あるいはデータ片方向遅延時間測定パケットを複数の受信側シェーパに送信し、受信側シェーパは、受信した測定パケットに記録してある送信時刻を記録した応答パケットあるいは受信した測定パケットに基づき計算したデータ片方向遅延時間を送信側シェーパに送信し、送信側シェーパは、複数の応答パケットを受信し、データ往復遅延時間あるいはデータ片方向遅延時間に基づき最適データ送信レートを求める。あらかじめ測定対象となる受信側シェーパを限定することもできる。また、データパケットを測定用パケットとして利用することもできる。【選択図】  図１
2006340081.tif 000002
【特許請求の範囲】
【請求項１】
送信端末と複数の受信端末とがそれぞれの端末装置に接続されたシェーパを経由してデータ送受信を行うマルチキャスト通信に適用されるフロー制御方法において、
送信端末に接続されているシェーパは、予め設定された時間間隔毎に送信時刻を記録したＲＴＴ(Round Trip Time)測定パケットを受信端末に接続されている複数のシェーパに送信し、
受信端末に接続されているシェーパは、受信したＲＴＴ測定パケットに記録してある送信時刻を記録した応答パケットを送信端末に接続されているシェーパに送信し、
送信端末に接続されているシェーパは、
複数の応答パケットを受信し、その中で最も遅く受信した応答パケットの受信時刻と当該応答パケットに記録してある送信時刻との差分からデータ往復遅延時間を算出し、
このデータ往復遅延時間が自シェーパで保持している最短データ往復遅延時間よりも短い場合には、当該データ往復遅延時間を新しい最短データ往復遅延時間として保持し、
前記データ往復遅延時間を最短データ往復遅延時間で除算したものにデータの優先度毎に設定されるデータ送信レートを乗算して期待されるデータ送信レートを得て、
期待されるデータ送信レートから現在のデータ送信レートを減算してレート差分を得て、
レート差分が優先度毎の所定の閾値よりも小さい場合にはデータ送信レートを増やし、
レート差分が優先度毎の所定の閾値よりも大きい場合にはデータ送信レートを減らし、
当該データ送信レートの増減により求めたデータ送信レートを最適データ送信レートとして採用する
ことを特徴とするフロー制御方法。
【請求項２】
送信端末に接続されているシェーパが予め設定された時間間隔毎に送信時刻を記録したＲＴＴ測定パケットを受信端末に接続されている複数のシェーパに送信する代わりに、
送信端末に接続されているシェーパは、送信時刻を記録したＲＴＴ測定パケットを受信端末に接続されている複数のシェーパに送信し、
受信端末に接続されているシェーパは、受信したＲＴＴ測定パケットに記録してある送信時刻を記録した応答パケットを送信端末に接続されているシェーパに送信し、
送信端末に接続されているシェーパは、
複数の応答パケットを受信し、その中で最も遅く受信した応答パケットの送信元のシェーパを測定対象シェーパとし、
予め設定された時間間隔毎に、予め設定された回数だけ、当該測定対象シェーパに対し送信時刻を記録したＲＴＴ測定パケットを送信し、
このＲＴＴ測定パケットを受信した測定対象シェーパは、ＲＴＴ測定パケットに記録されている送信時刻を記録した応答パケットを前記送信端末に接続されているシェーパに送信し、
送信端末に接続されているシェーパは、
この応答パケットに基づきデータ往復遅延時間を算出して前記最適データ送信レートを算出することを前記予め設定された回数繰り返し、
前記予め設定された回数のＲＴＴ測定パケットの送信後は、再び、受信端末に接続されている複数のシェーパに送信時刻を記録したＲＴＴ測定パケットを送信し、新たな測定対象シェーパを決定する
という処理を繰り返す請求項１記載のフロー制御方法。
【請求項３】
送信端末に接続されているシェーパは、ＲＴＴ測定パケットに代えて、送信端末から送信されるデータパケットにシェーパでの送信時刻を記録し、
受信端末に接続されているシェーパは、受信したデータパケットに記録されている送信時刻を記録した応答パケットを前記送信端末に接続されているシェーパに送信する
請求項１または２記載のフロー制御方法。
【請求項４】
送信端末に接続されているシェーパは、送信時刻を記録したＲＴＴ測定パケットあるいはデータパケットを送信してから、予め設定されたＲＴＴ最大許容値を越えても、受信端末に接続されているシェーパからの応答パケットの受信がない場合には、そのシェーパへのデータパケット送信を中止する
請求項１ないし３のいずれかに記載のフロー制御方法。
【請求項５】
送信端末と複数の受信端末とがそれぞれの端末装置に接続されたシェーパを経由してデータ送受信を行うマルチキャスト通信に適用されるフロー制御方法において、
送信端末に接続されているシェーパは、予め設定された時間間隔毎に送信時刻を記録したＯＷＴ(One Way trip Time)測定パケットを受信端末に接続されている複数のシェーパに送信し、
受信端末に接続されているシェーパは、受信したＯＷＴ測定パケットに記録してある送信時刻と当該ＯＷＴ測定パケットの受信時刻との差分からデータ片方向遅延時間を算出し、データ片方向遅延時間を記録したＯＷＴ通知パケットを送信端末に接続されているシェーパに送信し、
送信端末に接続されているシェーパは、
受信した複数のＯＷＴ通知パケットに記録してあるデータ片方向遅延時間を比較し、その中で最大の値を代表データ片方向遅延時間とし、
代表データ片方向遅延時間が自シェーパで保持している最短データ片方向遅延時間よりも短い場合には、当該代表データ片方向遅延時間を新しい最短データ片方向遅延時間として保持し、
代表データ片方向遅延時間を最短データ片方向遅延時間で除算したものにデータの優先度毎に設定されるデータ送信レートを乗算して期待されるデータ送信レートを得て、
期待されるデータ送信レートから現在のデータ送信レートを減算してレート差分を得て、
レート差分が優先度毎の所定の閾値よりも小さい場合にはデータ送信レートを増やし、
レート差分が優先度毎の所定の閾値よりも大きい場合にはデータ送信レートを減らし、
当該データ送信レートの増減により求めたデータ送信レートを最適データ送信レートとして採用する
ことを特徴とするフロー制御方法。
【請求項６】
送信端末に接続されているシェーパが予め設定された時間間隔毎に送信時刻を記録したＯＷＴ測定パケットを受信端末に接続されている複数のシェーパに送信する代わりに、
送信端末に接続されているシェーパは、送信時刻を記録したＯＷＴ測定パケットを受信端末に接続されている複数のシェーパに送信し、
受信端末に接続されているシェーパは、受信したＯＷＴ測定パケットに記録してある送信時刻と当該ＯＷＴ測定パケットの受信時刻との差分からデータ片方向遅延時間を算出し、当該データ片方向遅延時間を記録したＯＷＴ通知パケットを前記送信端末に接続されているシェーパに送信し、
送信端末に接続されているシェーパは、
複数のＯＷＴ通知パケットを受信し、その中で最も大きなデータ片方向遅延時間が記録されたＯＷＴ通知パケットの送信元のシェーパを測定対象シェーパとし、
予め設定された時間間隔毎に、予め設定された回数だけ、当該測定対象シェーパに対し送信時刻を記録したＯＷＴ測定パケットを送信し、
このＯＷＴ測定パケットを受信した測定対象シェーパは、ＯＷＴ測定パケットに記録されている送信時刻と当該ＯＷＴ測定パケットの受信時刻との差分からデータ片方方向遅延時間を算出した結果を記録したＯＷＴ通知パケットを前記送信端末に接続されているシェーパに送信し、
送信端末に接続されているシェーパは、このＯＷＴ通知パケットに記録されたデータ片方向遅延時間に基づき前記最適データ送信レートを算出することを前記予め設定された回数繰り返し、
前記予め設定された回数のＯＷＴ測定パケットの送信後は、再び、受信端末に接続されている複数のシェーパに送信時刻を記録したＯＷＴ測定パケットを送信し、新たな測定対象シェーパを決定する
という処理を繰り返す請求項５記載のフロー制御方法。
【請求項７】
送信端末に接続されているシェーパは、ＯＷＴ測定パケットに代えて、送信端末から送信されるデータパケットにシェーパでの送信時刻を記録し、
受信端末に接続されているシェーパは、受信したデータパケットに記録されている送信時刻と当該データパケットの受信時刻との差分から算出したデータ片方向遅延時間を記録したＯＷＴ通知パケットを前記送信端末に接続されているシェーパに送信する
請求項５または６記載のフロー制御方法。
【請求項８】
送信端末に接続されているシェーパは、応答パケットに記録されているデータ片方向遅延時間が、予め設定されたデータ片方向遅延時間最大許容値を越えている場合には、そのシェーパへのデータパケット送信を中止する
請求項５ないし７のいずれかに記載のフロー制御方法。
【請求項９】
送信端末と複数の受信端末とがそれぞれの端末装置に接続されたシェーパを経由してデータ送受信を行うマルチキャスト通信に適用されるフロー制御方法において、
送信端末に接続されているシェーパは、予め設定された時間間隔毎に送信時刻を記録したＯＷＴ測定パケットを受信端末に接続されている複数のシェーパに送信し、
受信端末に接続されているシェーパは、
受信したＯＷＴ測定パケットに記録してある送信時刻と当該ＯＷＴ測定パケットの受信時刻との差分からデータ片方向遅延時間を算出し、
当該データ片方向遅延時間が自シェーパで保持している最短データ片方向遅延時間よりも短い場合には、当該データ片方向遅延時間を新しい最短データ片方向遅延時間として保持し、
データ片方向遅延時間を最短データ片方向遅延時間で除算したものにデータの優先度毎に設定されるデータ送信レートを乗算して期待されるデータ送信レートを得て、
期待されるデータ送信レートから現在のデータ送信レートを減算してレート差分を得て、
レート差分が優先度毎の所定の閾値よりも小さい場合にはデータ送信レートを増やし、
レート差分が優先度毎の所定の閾値よりも大きい場合にはデータ送信レートを減らし、
当該データ送信レートの増減により求めたデータ送信レートを記録したレート通知パケットを送信端末に接続されているシェーパに送信し、
送信端末に接続されているシェーパは、受信した複数のレート通知パケットに記録されているデータ送信レートを比較し、その中で最小の値を最適データ送信レートとして採用する
ことを特徴とするフロー制御方法。
【請求項１０】
送信端末に接続されているシェーパが予め設定された時間間隔毎に送信時刻を記録したＯＷＴ測定パケットを受信端末に接続されている複数のシェーパに送信する代わりに、
送信端末に接続されているシェーパは、送信時刻を記録したＯＷＴ測定パケットを受信端末に接続されている複数のシェーパに送信し、
受信端末に接続されているシェーパは、
受信したＯＷＴ測定パケットに記録してある送信時刻と当該ＯＷＴ測定パケットの受信時刻との差分からデータ片方向遅延時間を算出し、
当該データ片方向遅延時間が自シェーパで保持している最短データ片方向遅延時間よりも短い場合には、当該データ片方向遅延時間を新しい最短データ片方向遅延時間として保持し、
データ片方向遅延時間を最短データ片方向遅延時間で除算したものにデータの優先度毎に設定されるデータ送信レートを乗算して期待されるデータ送信レートを得て、
期待されるデータ送信レートから現在のデータ送信レートを減算してレート差分を得て、
レート差分が優先度毎の所定の閾値よりも小さい場合にはデータ送信レートを増やし、
レート差分が優先度毎の所定の閾値よりも大きい場合にはデータ送信レートを減らし、
当該データ送信レートの増減により求めたデータ送信レートを記録したレート通知パケットを送信端末に接続されているシェーパに送信し、
送信端末に接続されているシェーパは、
受信した複数のレート通知パケットに記録されているデータ送信レートを比較し、その中で最も小さな値のデータ送信レートを記録したレート通知パケットの送信元のシェーパを測定対象シェーパとし、
当該測定対象シェーパに、予め設定された時間間隔毎に、予め設定された回数だけ、送信時刻を記録したＯＷＴ測定パケットを送信し、
測定対象シェーパは、データ片方向遅延時間を算出し、データ送信レートを算出し、データ送信レートを記録したレート通知パケットを前記送信端末に接続されているシェーパに送信し、
送信端末に接続されているシェーパは、
受信したレート通知パケットに記録されているデータ送信レートを採用することを繰り返し、
予め設定された回数の送信後は、再び受信端末に接続されている複数のシェーパに送信時刻を記録したパケットを送信し、新たな測定対象シェーパを決定する
という処理を繰り返す
請求項９記載のフロー制御方法。
【請求項１１】
送信端末に接続されているシェーパは、ＯＷＴ測定パケットに代えて、送信端末から送信されるデータパケットにシェーパでの送信時刻を記録し、
受信端末に接続されているシェーパは、受信したデータパケットに記録されている送信時刻と当該データパケットの受信時刻との差分からデータ片方向遅延時間を算出してデータ送信レートの算出を行い、当該データ送信レートを記録したレート通知パケットを前記送信端末に接続されているシェーパに送信する
請求項９または１０記載のフロー制御方法。
【請求項１２】
送信端末に接続されているシェーパは、レート通知パケットに記録されているデータ送信レートが、予め設定されたデータ送信レート最小許容値より小さい場合には、そのデータ送信レートを通知したシェーパへのデータパケット送信を中止する
請求項９ないし１１のいずれかに記載のフロー制御方法。
【請求項１３】
請求項１ないし４のいずれかに記載のフロー制御方法を実行する手段を備えたシェーパ装置。
【請求項１４】
請求項５ないし８のいずれかに記載のフロー制御方法を実行する手段を備えたシェーパ装置。
【請求項１５】
請求項９ないし１２のいずれかに記載のフロー制御方法を実行する手段を備えたシェーパ装置。
【請求項１６】
情報処理装置にインストールすることにより、その情報処理装置に、請求項１３ないし１５のいずれかに記載のシェーパ装置に相応する機能を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャスト通信におけるフロー制御に利用する。
【背景技術】
【０００２】
１つの送信端末から複数の受信端末へのデータ送信方法としてマルチキャスト通信が知られている。マルチキャスト通信は１つのパケットを途中のルータで複製することにより、ネットワークに流れるパケット量を減らし、トラヒックを削減することができる。
【０００３】
また、ネットワークの混雑を回避するためのフロー制御方法の一つにＴＣＰ  Ｖｅｇａｓ（例えば、非特許文献１参照）が知られている。図１３〜図１５はＴＣＰ  Ｖｅｇａｓの処理の流れを示している。送信端末と受信端末とがデータの送受信を行う場合に、送信端末がデータ送信に対する正常な確認応答であるＡＣＫ(ACKnowledgement)を受信端末から受信する際に図１３の処理が開始される。図１３〜図１５に記載の変数については、ＢａｓｅＲＴＴはネットワークに輻輳が起きていない場合のデータ往復遅延時間（以下、ＲＴＴ：Round
Trip Timeという)と定義されるが、実際は測定したＲＴＴの中で最も小さい値である。ｃｗｎｄは輻輳ウィンドウサイズであり、送信端末はウィンドウサイズの値の数のパケットをまとめて送信する。ｒｗｎｄは受信端末で設定される広告ウィンドウサイズであり、送信端末はｒｗｎｄより大きな値をｃｗｎｄに設定しないようにする。
【０００４】
ｓｓｔｈｒｅｓｈはウィンドウサイズ増加の２つのアルゴリズム、スロースタートアルゴリズムと輻輳回避アルゴリズムのどちらを使用するかを決定する閾値である。ｇａｍｍａはスロースタートアルゴリズムから輻輳回避アルゴリズムへ移行する判断のための閾値である。ａｌｐｈａとｂｅｔａとはｃｗｎｄの増減を決定する際の閾値をそれぞれ表す。ｓｓｔｈｒｅｓｈとｇａｍｍａとａｌｐｈａとｂｅｔａの初期値についてはそれぞれユーザが任意に設定可能である。
【０００５】
まず、送信端末は現在の時刻と受信したＡＣＫに対応するパケットを送信したときに記録した送信時刻からＲＴＴを算出する（ステップＳ１０）。
【０００６】
次に、ＲＴＴがＢａｓｅＲＴＴより小さいか判断し（ステップＳ１１）、真であればＲＴＴの値を新たなＢａｓｅＲＴＴの値とする（ステップＳ１２）。
【０００７】
次に、ネットワークに輻輳が起きていない場合に期待されるスループットを表すＥｘｐｅｃｔｅｄを、ｃｗｎｄをＢａｓｅＲＴＴで除算して算出し、実際のスループットを表すＡｃｔｕａｌを、ｃｗｎｄをＲＴＴで除算して算出し、さらにそれらの差であるＤｅｌｔａを算出する（ステップＳ１３）。ｃｗｎｄがｓｓｔｈｒｅｓｈより小さいか判断し、真であればスロースタートアルゴリズムである処理１へ、偽であれば輻輳回避アルゴリズムである処理２へ移る（ステップＳ１４）。
【０００８】
スロースタートアルゴリズムでは、まず、Ｄｅｌｔａがｇａｍｍａより小さいか判断し（ステップＳ２０）、偽であれば今後の処理を輻輳回避アルゴリズムに移行させるためにｓｓｔｈｒｅｓｈ＝２として（ステップＳ２４）、処理を終了する。真であればｃｗｎｄを２倍にして（ステップＳ２１）、ｃｗｎｄがｒｗｎｄを越えているか判断し（ステップＳ２２）、越えていればｒｗｎｄの値をｃｗｎｄに設定し（ステップＳ２３）、処理を終了する。
【０００９】
輻輳回避アルゴリズムでは、まず、Ｄｅｌｔａがａｌｐｈａより小さいか判断し（ステップＳ３０）、真であればｃｗｎｄを１増加させて（ステップＳ３１）、ｃｗｎｄがｒｗｎｄを越えているか判断し（ステップＳ３２）、越えていればｒｗｎｄの値をｃｗｎｄに設定し（ステップＳ３３）、処理を終了する。Ｄｅｌｔａがａｌｐｈａより大きければ、次に、Ｄｅｌｔａがｂｅｔａより小さいか判断し（ステップＳ３４）、真であれば処理は終了、偽であればｃｗｎｄを１減少させて（ステップＳ３５）、ｃｗｎｄが２より小さいか判断し（ステップＳ３６）、真であればｃｗｎｄの値を２として（ステップＳ３７）、処理を終了する。
【００１０】
このような処理を行うことにより、ネットワークが混雑してきてキューイング遅延が大きくなり、ＲＴＴの値が大きくなると、Ａｃｔｕａｌの値は小さくなるが、Ｅｘｐｅｃｔｅｄの値は変わらないため、Ｄｅｌｔａの値は大きくなり、閾値ｂｅｔａを越えるとｃｗｎｄを減少させて、送信するパケット数を減らすので、ネットワークの流量は減少し、輻輳を回避することができる。
【００１１】
逆に、ネットワークに空きが出てきて、ＲＴＴの値が小さくなると、Ｄｅｌｔａの値が小さくなり、ａｌｐｈａより小さくなるとｃｗｎｄを増加させてパケットの流量を増加させるので、ネットワークの帯域を有効に利用できる。
【００１２】
最終的にはＤｅｌｔａはａｌｐｈａとｂｅｔａとの間の値をとるようになり、ｃｗｎｄは変化せずに安定した状態に収束する。
【００１３】
ところが、既存のコネクションに対し、新たにコネクションが加わった場合には、一般的にウィンドウサイズは異なる値で収束してしまい、コネクション間でウィンドウサイズが不公平なまま安定してしまう。この問題を解決するために、図１５におけるパラメータａｌｐｈａとｂｅｔａの値を等しくする方法（例えば、非特許文献２参照）が知られている。ａｌｐｈａとｂｅｔａの値を等しくすることにより、ウィンドウサイズが固定しないため、不公平なまま安定することを防いでいる。
【００１４】
【非特許文献１】Ｌａｗｒｅｎｃｅ  Ｓ．Ｂｒａｋｍｏ，Ｌａｒｒｙ  Ｌ．Ｐｅｔｅｒｓｏｎ，“ＴＣＰ  Ｖｅｇａｓ：Ｅｎｄ  ｔｏ  Ｅｎｄ  Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ  ｏｎ  ａ  Ｇｌｏｂａｌ  Ｉｎｔｅｒｎｅｔ”ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｎ  Ｓｅｌｅｃｔｄ  Ａｒｅａｓ  ｉｎ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，Ｖｏｌ.１３，Ｎｏ．８，Ｏｃｔｏｂｅｒ  １９９５，ｐｇ．１４６５−１４８０
【非特許文献２】Ｇｏ  Ｈａｓｅｇａｗａ，Ｍａｓａｙｕｋｉ  Ｍｕｒａｔａ，ａｎｄ  Ｈｉｄｅｏ  Ｍｉｙａｈａｒａ，“Ｆａｉｒｎｅｓｓ  ａｎｄ  Ｓｔａｂｉｌｉｔｙ  ｏｆ  Ｃｏｎｇｅｓｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ｍｅｃｈａｎｉｓｍｓ  ｏｆ  ＴＣＰ”，Ｐｒｏｃ．ｏｆ  ＩＥＥＥ  ＩＮＦＯＣＯＭ，Ｍａｒ．１９９９，ｐａｇｅｓ  １３２９−１３３６
【発明の開示】
【発明が解決しようとする課題】
【００１５】
マルチキャスト通信は、コネクションレス型の通信であるため、パケットロスを検出したり、ＲＴＴを測定したりすることができない。よって、フロー制御は困難であり、トラヒックが増加して、ネットワークに輻輳が起きると、マルチキャスト通信のパケットロスが発生してしまうという問題点がある。
【００１６】
また、複数のマルチキャスト通信が混在した場合には、マルチキャスト通信間での公平性を保つことが困難であるという問題点もある。
【００１７】
ネットワークの帯域を有効に利用しつつ、ネットワークの輻輳を防ぐことができるフロー制御方法であるＴＣＰ  ＶｅｇａｓはＡＣＫを受信してＲＴＴを測定することによって動作する方法であり、ＡＣＫを用いないコネクションレス型の通信であるマルチキャスト通信にそのまま適用することは不可能である。
【００１８】
本発明は、上記の問題点を解決するためになされたもので、ＴＣＰ  Ｖｅｇａｓのアルゴリズムと同等のフロー制御を行い、ネットワークを有効に利用し、複数マルチキャスト通信間の公平性を保つマルチキャスト通信を提供することにある。
【課題を解決するための手段】
【００１９】
本発明の第一の観点は、送信端末と複数の受信端末とがそれぞれの端末装置に接続されたシェーパを経由してデータ送受信を行うマルチキャスト通信に適用されるフロー制御方法である。
【００２０】
ここで、本発明の特徴とするところは、送信端末に接続されているシェーパは、予め設定された時間間隔毎に送信時刻を記録したＲＴＴ測定パケットを受信端末に接続されている複数のシェーパに送信し、受信端末に接続されているシェーパは、受信したＲＴＴ測定パケットに記録してある送信時刻を記録した応答パケットを送信端末に接続されているシェーパに送信し、送信端末に接続されているシェーパは、複数の応答パケットを受信し、その中で最も遅く受信した応答パケットの受信時刻と当該応答パケットに記録してある送信時刻との差分からＲＴＴを算出し、このＲＴＴが自シェーパで保持している最短ＲＴＴよりも短い場合には、当該ＲＴＴを新しい最短ＲＴＴとして保持し、前記ＲＴＴを最短ＲＴＴで除算したものにデータの優先度毎に設定されるデータ送信レートを乗算して期待されるデータ送信レートを得て、期待されるデータ送信レートから現在のデータ送信レートを減算してレート差分を得て、レート差分が優先度毎の所定の閾値よりも小さい場合にはデータ送信レートを増やし、レート差分が優先度毎の所定の閾値よりも大きい場合にはデータ送信レートを減らし、当該データ送信レートの増減により求めたデータ送信レートを最適データ送信レートとして採用するところにある。
【００２１】
これにより、マルチキャスト通信においてもＲＴＴを測定し、最適なデータ送信レートを算出することができる。したがって、ＴＣＰ  Ｖｅｇａｓのアルゴリズムと同等のフロー制御を行い、ネットワークを有効に利用し、複数マルチキャスト通信間の公平性を保つマルチキャスト通信を提供することができる。
【００２２】
あるいは、送信端末に接続されているシェーパが予め設定された時間間隔毎に送信時刻を記録したＲＴＴ測定パケットを受信端末に接続されている複数のシェーパに送信する代わりに、送信端末に接続されているシェーパは、送信時刻を記録したＲＴＴ測定パケットを受信端末に接続されている複数のシェーパに送信し、受信端末に接続されているシェーパは、受信したＲＴＴ測定パケットに記録してある送信時刻を記録した応答パケットを送信端末に接続されているシェーパに送信し、送信端末に接続されているシェーパは、複数の応答パケットを受信し、その中で最も遅く受信した応答パケットの送信元のシェーパを測定対象シェーパとし、予め設定された時間間隔毎に、予め設定された回数だけ、当該測定対象シェーパに対し送信時刻を記録したＲＴＴ測定パケットを送信し、このＲＴＴ測定パケットを受信した測定対象シェーパは、ＲＴＴ測定パケットに記録されている送信時刻を記録した応答パケットを前記送信端末に接続されているシェーパに送信し、送信端末に接続されているシェーパは、この応答パケットに基づきＲＴＴを算出して前記最適データ送信レートを算出することを前記予め設定された回数繰り返し、前記予め設定された回数のＲＴＴ測定パケットの送信後は、再び、受信端末に接続されている複数のシェーパに送信時刻を記録したＲＴＴ測定パケットを送信し、新たな測定対象シェーパを決定するという処理を繰り返すこともできる。
【００２３】
これによれば、測定対象シェーパを限定し、送信端末に接続されているシェーパは、当該測定対象シェーパに対してのみＲＴＴ測定パケットを繰り返し送信して当該測定対象シェーパからの応答パケットを受信するという処理を行うことができるため、ＲＴＴ測定に要するネットワーク資源および通信帯域を低減させて有効利用することができる。
【００２４】
また、送信端末に接続されているシェーパは、ＲＴＴ測定パケットに代えて、送信端末から送信されるデータパケットにシェーパでの送信時刻を記録し、受信端末に接続されているシェーパは、受信したデータパケットに記録されている送信時刻を記録した応答パケットを前記送信端末に接続されているシェーパに送信することもできる。
【００２５】
これによれば、ＲＴＴ測定専用のパケットを用意する必要がなく、ＲＴＴ測定のためだけに通信帯域を使用することがないため、通信帯域を有効利用することができる。
【００２６】
また、送信端末に接続されているシェーパは、送信時刻を記録したＲＴＴ測定パケットあるいはデータパケットを送信してから、予め設定されたＲＴＴ最大許容値を越えても、受信端末に接続されているシェーパからの応答パケットの受信がない場合には、そのシェーパへのデータパケット送信を中止することができる。
【００２７】
例えば、受信端末または伝送路またはシェーパ自身の障害などにより、ＲＴＴが異常に大きくなった場合には、このようなシェーパへのデータパケットの送信は無意味であるから、予め設定されたＲＴＴ最大許容値を越えたシェーパに対してはデータパケットの送信を中止することにより、無効となる通信を回避することができる。
【００２８】
あるいは、本発明のフロー制御方法は、送信端末に接続されているシェーパは、予め設定された時間間隔毎に送信時刻を記録したデータ片方向遅延時間（以下、ＯＷＴ：One Way trip Timeという）測定パケットを受信端末に接続されている複数のシェーパに送信し、受信端末に接続されているシェーパは、受信したＯＷＴ測定パケットに記録してある送信時刻と当該ＯＷＴ測定パケットの受信時刻との差分からＯＷＴを算出し、ＯＷＴを記録したＯＷＴ通知パケットを送信端末に接続されているシェーパに送信し、送信端末に接続されているシェーパは、受信した複数のＯＷＴ通知パケットに記録してあるＯＷＴを比較し、その中で最大の値を代表ＯＷＴとし、代表ＯＷＴが自シェーパで保持している最短ＯＷＴよりも短い場合には、当該代表ＯＷＴを新しい最短ＯＷＴとして保持し、代表ＯＷＴを最短ＯＷＴで除算したものにデータの優先度毎に設定されるデータ送信レートを乗算して期待されるデータ送信レートを得て、期待されるデータ送信レートから現在のデータ送信レートを減算してレート差分を得て、レート差分が優先度毎の所定の閾値よりも小さい場合にはデータ送信レートを増やし、レート差分が優先度毎の所定の閾値よりも大きい場合にはデータ送信レートを減らし、当該データ送信レートの増減により求めたデータ送信レートを最適データ送信レートとして採用することを特徴とする。
【００２９】
これにより、マルチキャスト通信においてもＯＷＴを測定し、最適なデータ送信レートを算出することができる。
【００３０】
あるいは、送信端末に接続されているシェーパが予め設定された時間間隔毎に送信時刻を記録したＯＷＴ測定パケットを受信端末に接続されている複数のシェーパに送信する代わりに、送信端末に接続されているシェーパは、送信時刻を記録したＯＷＴ測定パケットを受信端末に接続されている複数のシェーパに送信し、受信端末に接続されているシェーパは、受信したＯＷＴ測定パケットに記録してある送信時刻と当該ＯＷＴ測定パケットの受信時刻との差分からＯＷＴを算出し、当該ＯＷＴを記録したＯＷＴ通知パケットを前記送信端末に接続されているシェーパに送信し、送信端末に接続されているシェーパは、複数のＯＷＴ通知パケットを受信し、その中で最も大きなＯＷＴが記録されたＯＷＴ通知パケットの送信元のシェーパを測定対象シェーパとし、予め設定された時間間隔毎に、予め設定された回数だけ、当該測定対象シェーパに対し送信時刻を記録したＯＷＴ測定パケットを送信し、このＯＷＴ測定パケットを受信した測定対象シェーパは、ＯＷＴ測定パケットに記録されている送信時刻と当該ＯＷＴ測定パケットの受信時刻との差分からデータ片方方向遅延時間を算出した結果を記録したＯＷＴ通知パケットを前記送信端末に接続されているシェーパに送信し、送信端末に接続されているシェーパは、このＯＷＴ通知パケットに記録されたＯＷＴに基づき前記最適データ送信レートを算出することを前記予め設定された回数繰り返し、前記予め設定された回数のＯＷＴ測定パケットの送信後は、再び、受信端末に接続されている複数のシェーパに送信時刻を記録したＯＷＴ測定パケットを送信し、新たな測定対象シェーパを決定するという処理を繰り返すこともできる。
【００３１】
これによれば、測定対象シェーパを限定し、当該測定対象シェーパに対してのみＯＷＴ測定パケットを繰り返し送信して当該測定対象シェーパからのＯＷＴ通知パケットを受信するという処理を行うことができるため、ＯＷＴ測定に要するネットワーク資源および通信帯域を低減させて有効利用することができる。
【００３２】
また、送信端末に接続されているシェーパは、ＯＷＴ測定パケットに代えて、送信端末から送信されるデータパケットにシェーパでの送信時刻を記録し、受信端末に接続されているシェーパは、受信したデータパケットに記録されている送信時刻と当該データパケットの受信時刻との差分から算出したＯＷＴを記録したＯＷＴ通知パケットを前記送信端末に接続されているシェーパに送信することもできる。
【００３３】
これによれば、ＯＷＴ測定専用のパケットを用意する必要がなく、ＯＷＴ測定のためだけに通信帯域を使用することがないため、通信帯域を有効利用することができる。
【００３４】
また、送信端末に接続されているシェーパは、ＯＷＴ通知パケットに記録されているＯＷＴが、予め設定されたＯＷＴ最大許容値を越えている場合には、そのシェーパへのデータパケット送信を中止することができる。
【００３５】
例えば、受信端末または伝送路またはシェーパ自身の障害などにより、ＯＷＴが異常に大きくなった場合には、このようなシェーパへのデータパケットの送信は無意味であるから、予め設定されたＯＷＴ最大許容値を越えたシェーパに対してはデータパケットの送信を中止することにより、無効となる通信を回避することができる。
【００３６】
あるいは、本発明のフロー制御方法は、送信端末に接続されているシェーパは、予め設定された時間間隔毎に送信時刻を記録したＯＷＴ測定パケットを受信端末に接続されている複数のシェーパに送信し、受信端末に接続されているシェーパは、受信したＯＷＴ測定パケットに記録してある送信時刻と当該ＯＷＴ測定パケットの受信時刻との差分からＯＷＴを算出し、当該ＯＷＴが自シェーパで保持している最短ＯＷＴよりも短い場合には、当該ＯＷＴを新しい最短ＯＷＴとして保持し、ＯＷＴを最短ＯＷＴで除算したものにデータの優先度毎に設定されるデータ送信レートを乗算して期待されるデータ送信レートを得て、期待されるデータ送信レートから現在のデータ送信レートを減算してレート差分を得て、レート差分が優先度毎の所定の閾値よりも小さい場合にはデータ送信レートを増やし、レート差分が優先度毎の所定の閾値よりも大きい場合にはデータ送信レートを減らし、当該データ送信レートの増減により求めたデータ送信レートを記録したレート通知パケットを送信端末に接続されているシェーパに送信し、送信端末に接続されているシェーパは、受信した複数のレート通知パケットに記録されているデータ送信レートを比較し、その中で最小の値を最適データ送信レートとして採用することを特徴とする。
【００３７】
これによれば、受信端末に接続されているシェーパがＯＷＴを算出するため、送信端末に接続されているシェーパにおける演算処理の負荷を軽減させることができる。特に、本発明が適用されるマルチキャスト通信は、１対多通信であることから、受信端末に接続されている多数のシェーパに演算処理の負荷を分散させることによる送信端末に接続されているシェーパにおける演算処理の負荷軽減効果は大きい。
【００３８】
あるいは、送信端末に接続されているシェーパが予め設定された時間間隔毎に送信時刻を記録したＯＷＴ測定パケットを受信端末に接続されている複数のシェーパに送信する代わりに、送信端末に接続されているシェーパは、送信時刻を記録したＯＷＴ測定パケットを受信端末に接続されている複数のシェーパに送信し、受信端末に接続されているシェーパは、受信したＯＷＴ測定パケットに記録してある送信時刻と当該ＯＷＴ測定パケットの受信時刻との差分からＯＷＴを算出し、当該ＯＷＴが自シェーパで保持している最短ＯＷＴよりも短い場合には、当該ＯＷＴを新しい最短ＯＷＴとして保持し、ＯＷＴを最短ＯＷＴで除算したものにデータの優先度毎に設定されるデータ送信レートを乗算して期待されるデータ送信レートを得て、期待されるデータ送信レートから現在のデータ送信レートを減算してレート差分を得て、レート差分が優先度毎の所定の閾値よりも小さい場合にはデータ送信レートを増やし、レート差分が優先度毎の所定の閾値よりも大きい場合にはデータ送信レートを減らし、当該データ送信レートの増減により求めたデータ送信レートを記録したレート通知パケットを送信端末に接続されているシェーパに送信し、送信端末に接続されているシェーパは、受信した複数のレート通知パケットに記録されているデータ送信レートの中で最も小さな値のデータ送信レートを記録したレート通知パケットの送信元のシェーパを測定対象シェーパとし、当該測定対象シェーパに、予め設定された時間間隔毎に、予め設定された回数だけ、送信時刻を記録したＯＷＴ測定パケットを送信し、測定対象シェーパは、ＯＷＴを算出し、データ送信レートを算出し、データ送信レートを記録したレート通知パケットを前記送信端末に接続されているシェーパに送信し、送信端末に接続されているシェーパは、受信したレート通知パケットに記録されているデータ送信レートを採用することを繰り返し、予め設定された回数の送信後は、再び受信端末に接続されている複数のシェーパに送信時刻を記録したパケットを送信し、新たな測定対象シェーパを決定するという処理を繰り返すこともできる。
【００３９】
これによれば、測定対象シェーパを限定し、当該測定対象シェーパに対してのみＯＷＴ測定パケットを繰り返し送信して当該測定対象シェーパからのレート通知パケットを受信するという処理を行うことができるため、ＯＷＴ測定に要するネットワーク資源および通信帯域を低減させて有効利用することができる。
【００４０】
また、送信端末に接続されているシェーパは、ＯＷＴ測定パケットに代えて、送信端末から送信されるデータパケットにシェーパでの送信時刻を記録し、受信端末に接続されているシェーパは、受信したデータパケットに記録されている送信時刻と当該データパケットの受信時刻との差分からＯＷＴを算出してデータ送信レートの算出を行い、当該データ送信レートを記録したレート通知パケットを前記送信端末に接続されているシェーパに送信することもできる。
【００４１】
これによれば、ＯＷＴ測定専用のパケットを用意する必要がなく、ＯＷＴ測定のためだけに通信帯域を使用することがないため、通信帯域を有効利用することができる。
【００４２】
また、送信端末に接続されているシェーパは、レート通知パケットに記録されているデータ送信レートが、予め設定されたデータ送信レート最小許容値より小さい場合には、そのデータ送信レートを通知したシェーパへのデータパケット送信を中止することができる。
【００４３】
例えば、受信端末または伝送路またはシェーパ自身の障害などにより、ＯＷＴが異常に大きくなった場合には、このようなシェーパへのデータパケットの送信は無意味であるから、予め設定されたデータ送信レート最小許容値より小さいデータ送信レートとなるシェーパに対してはデータパケットの送信を中止することにより、無効となる通信を回避することができる。
【００４４】
本発明の第二の観点は、本発明のフロー制御方法を実行する手段を備えたシェーパ装置である。
【００４５】
本発明の第三の観点は、情報処理装置にインストールすることにより、その情報処理装置に、本発明のシェーパ装置に相応する機能を実現させるプログラムである。本発明のプログラムは記録媒体に記録されることにより、前記情報処理装置は、この記録媒体を用いて本発明のプログラムをインストールすることができる。あるいは、本発明のプログラムを保持するサーバからネットワークを介して直接前記情報処理装置に本発明のプログラムをインストールすることもできる。
【００４６】
これにより、汎用の情報処理装置を用いて、本発明のシェーパ装置を実現することができる。
【発明の効果】
【００４７】
本発明によれば、シェーパがＲＴＴもしくはＯＷＴを測定し、それを用いてＴＣＰ  Ｖｅｇａｓと同等のフロー制御を行うことにより、ネットワークを有効に利用し、複数マルチキャスト通信間の公平性を保ち、ネットワークの輻輳を防ぐマルチキャスト通信を実現することが可能となる。
【発明を実施するための最良の形態】
【００４８】
（第一の実施の形態）
図１は本発明の実施形態の構成を表している。送信端末１−１、１−２はシェーパ１１を経由してデータパケットのマルチキャスト送信を行う装置であり、受信端末２−１〜２−ｎ２と、受信端末３−１〜３−ｎ３と、受信端末４−１〜４−ｎ４とはシェーパ１２とシェーパ１３とシェーパ１４とを経由してデータパケットの受信を行う装置である。
【００４９】
図２は送信側シェーパであるシェーパ１１のブロック図を表し、図３は受信側シェーパであるシェーパ１２とシェーパ１３とシェーパ１４のブロック図を表している。
【００５０】
シェーパ１１はＲＴＴの測定を行うが、その中で最短のＲＴＴを表すＢａｓｅＲＴＴを受信側シェーパ毎の値としてＢａｓｅＲＴＴリスト１０６に保持し、優先度毎に決定されるデータ送信レートを表すｒａｔｅを送信レートリスト１０８に保持し、ＲＴＴの測定間隔時間を表すｉｎｔｅｒｖａｌと、パケットの最大転送単位を表すＭＴＵ(Maximum Transmission Unit:最大転送単位)と、データの送信レートの増減に関わる閾値ａｌｐｈａを記憶領域に格納する。
【００５１】
また、シェーパ１１はデータパケットのＴＯＳフィールド中の優先度毎にパケットをキューに格納し、送信レートリスト１０８で保持しているデータ送信レートに則って、キューから順次パケットを読み込んで送信を行う。
【００５２】
また、ｉｎｔｅｒｖａｌの値とｒａｔｅの初期値とａｌｐｈａの値とＭＴＵの値とはユーザがあらかじめ設定しておく。
【００５３】
図１において、送信端末１−１が受信端末２−１〜２−ｎ２と受信端末３−１〜３−ｎ３と受信端末４−１〜４−ｎ４とにパケットをマルチキャスト送信すると、シェーパ１１は送信端末１−１から送信されるパケットを取り込み、キューに格納し、送信レートリスト１０８に保持してあるデータ送信レートでパケットを送信しつつ、ＲＴＴ測定を開始し、以後、測定間隔時間であるｉｎｔｅｒｖａｌの時間経過毎にＲＴＴ測定を行う。
【００５４】
図４、図５はＲＴＴを測定して適切なデータ送信レートを設定する処理の流れを示している。以下、図４の処理について説明する。まず、シェーパ１１はクロック１０１から時刻情報を得て、送信時刻を記録したＵＤＰパケット（以後、ＲＴＴ測定パケットと呼ぶ）をＲＴＴ測定パケット生成部１０２にて生成し、ＲＴＴ測定パケット送信部１０３からシェーパ１２とシェーパ１３とシェーパ１４とにマルチキャスト送信する（ステップＳ４０）。
【００５５】
シェーパ１２とシェーパ１３とシェーパ１４とはＲＴＴ測定パケット受信部１０９にてＲＴＴ測定パケットを受信する（ステップＳ４１）。シェーパ１２とシェーパ１３とシェーパ１４とは受信したＲＴＴパケットに記録されている送信時刻を記録したＵＤＰパケット（以後、応答パケットと呼ぶ）を応答パケット生成部１１０にて生成し、応答パケット送信部１１１からシェーパ１１にユニキャスト送信する（ステップＳ４２）。
【００５６】
シェーパ１１はシェーパ１２とシェーパ１３とシェーパ１４とからの応答パケットを応答パケット受信部１０４にて受信する（ステップＳ４３）。シェーパ１１はＲＴＴ演算部１０５にて、最も遅くに受信した応答パケットに記録されている送信時刻とクロック１０１から得た応答パケットの受信時刻との差分からＲＴＴを算出し（ステップＳ４４）、送信レート演算部１０７にてレート算出を行う（ステップＳ４５）。算出した送信レートをｒａｔｅに設定し、送信レートリスト１０８に格納する（ステップＳ４６）。次回以降のデータ送信においては、ここまでの処理で得られたｒａｔｅを適用する。
【００５７】
以下、図５を用いて図４のステップＳ４５のレート算出処理について詳細を説明する。
【００５８】
シェーパ１１はＢａｓｅＲＴＴリスト１０６で保持している該当シェーパに対応するＢａｓｅＲＴＴと算出したＲＴＴとを比較し（ステップＳ５０）、算出したＲＴＴがＢａｓｅＲＴＴより短い時間の場合には、ＢａｓｅＲＴＴに算出したＲＴＴを設定し、ＢａｓｅＲＴＴリスト１０６に格納する（ステップＳ５１）。ここで、ＢａｓｅＲＴＴの方がＲＴＴより短い時間である場合にはＢａｓｅＲＴＴの更新は行わない。
【００５９】
次に、シェーパ１１はＲＴＴとＢａｓｅＲＴＴとｒａｔｅとから、ネットワークに輻輳が起きていない場合に期待されるデータ送信レートであるＥｘｐｅｃｔｅｄと実際のデータ送信レートであるＡｃｔｕａｌとを算出し、ＥｘｐｅｃｔｅｄとＡｃｔｕａｌとの差分にＢａｓｅＲＴＴを乗算し、期待されるデータ送信と実際のデータ送信とのレート差分にあたるＤｅｌｔａを算出し（ステップＳ５２）、Ｄｅｌｔａとａｌｐｈａとを比較する（ステップＳ５３）。
【００６０】
Ｄｅｌｔａがａｌｐｈａより小さい場合には、データ送信レートを増やしてもよいと判断し、最大転送単位ＭＴＵの大きさのパケット１つを送信した場合のレート分、すなわち、ＭＴＵをＲＴＴで除算した値をｒａｔｅに加算し、送信レートリスト１０８に格納する（ステップＳ５４）。逆に、ネットワークが混雑してくると、ＲＴＴが増加するため、これに伴いＤｅｌｔａはａｌｐｈａより大きくなり、データ送信レートを減らす必要があると判断し、最大転送単位ＭＴＵの大きさのパケット１つを送信した場合のレート分、すなわち、ＭＴＵをＲＴＴで除算した値をｒａｔｅから減算し（ステップＳ５５）、パケットの流量を減らすため、ネットワークの輻輳を回避することができる。
【００６１】
また、シェーパ１１は優先度毎に分けたキュー毎にｒａｔｅとａｌｐｈａとの値を設定して、ｒａｔｅを算出することにより、ｒａｔｅに差をつけて、優先度別の制御を行うことができる。ａｌｐｈａの値を大きくするほどｒａｔｅは大きくなり易いため、ａｌｐｈａの値を大きく設定したキューに優先度の高いパケットを格納してａｌｐｈａの値を小さく設定したキューに優先度の低いパケットを格納することにより、ＱｏＳ制御を行うことができる。
【００６２】
また、シェーパ１１に送信端末１−１と送信端末１−２と複数の送信端末が接続され、送信端末１−１と送信端末１−２とが同じ優先度でマルチキャスト送信を行う場合には、送信端末１−１から送信されるパケットと送信端末１−２から送信されるパケットをシェーパ１１の同じキューに格納し、同じｒａｔｅを用いて送信制御を行うことにより、送信端末１−１と送信端末１−２との公平性を実現することができる。
【００６３】
また、まずは、シェーパ１１がＲＴＴ測定パケットをシェーパ１２とシェーパ１３とシェーパ１４とにマルチキャスト送信し、シェーパ１２とシェーパ１３とシェーパ１４とが応答パケットを送信し、シェーパ１１はそれぞれのシェーパからの応答パケットを受信するが、例えば、シェーパ１２からの応答パケットを最も遅く受信した場合には、シェーパ１２を測定対象シェーパに設定し、次回から予め設定しておいた回数であるＮ回は測定対象シェーパであるシェーパ１２だけにＲＴＴ測定パケットをユニキャスト送信して、ＲＴＴを算出し、レート算出を行い、Ｎ回の測定後は、再びシェーパ１２とシェーパ１３とシェーパ１４とにＲＴＴ測定パケットをマルチキャスト送信し、測定対象シェーパを新たに設定するということを繰り返す方法もある。この方法により、測定対象シェーパのみにＲＴＴ測定パケットを送信すればよいので、ネットワーク上に流れるパケット量を減らすことができる。
【００６４】
また、シェーパ１１は予めＲＴＴ最大許容値を設定しておき、ＲＴＴ測定パケットを送信してから、ＲＴＴ最大許容値の時間を過ぎても、応答パケットの返信がないシェーパがあった場合には、そのシェーパへの経路のネットワークに何らかの問題が発生していると判断し、ネットワークに問題のないシェーパへの送信に影響することを防ぐため、応答パケットの返信がないシェーパへのマルチキャスト送信を中止する方法もある。
【００６５】
また、シェーパ１１はＲＴＴ測定の際に、ＲＴＴ測定パケットを用いず、送信端末１−１が送信するデータパケットにシェーパ１１での送信時刻を記録し、シェーパ１２とシェーパ１３とシェーパ１４とは、このデータパケットを受信し、記録されている送信時刻を記録した応答パケットをシェーパ１１に送信する方法もある。この方法により、データパケットを用いてＲＴＴを測定することで、ネットワークの流量を増やさずにＲＴＴ測定を行うことができる。
【００６６】
（第二の実施の形態）
図１は本発明の実施形態の構成を表している。送信端末１−１、１−２はシェーパ１１を経由してデータパケットのマルチキャスト送信を行う装置であり、受信端末２−１〜２−ｎ２と、受信端末３−１〜３−ｎ３と、受信端末４−１〜４−ｎ４とはシェーパ１２とシェーパ１３とシェーパ１４とを経由してデータパケットの受信を行う装置である。
【００６７】
図６は送信側シェーパであるシェーパ１１のブロック図を表し、図７は受信側シェーパであるシェーパ１２とシェーパ１３とシェーパ１４のブロック図を表している。
【００６８】
シェーパ１１はＯＷＴの測定を行うが、その中で最短のＯＷＴを表すＢａｓｅＯＷＴを受信側シェーパ毎の値としてＢａｓｅＯＷＴリスト２０６に保持し、優先度毎に決定されるデータ送信レートを表すｒａｔｅを送信レートリスト２０８に保持し、ＯＷＴの測定間隔時間を表すｉｎｔｅｒｖａｌと、パケットの最大転送単位を表すＭＴＵ(Maximum Transmission Unit:最大転送単位)と、データの送信レートの増減に関わる閾値ａｌｐｈａを記憶領域に格納する。
【００６９】
また、シェーパ１１はデータパケットのＴＯＳフィールド中の優先度毎にパケットをキューに格納し、送信レートリスト２０８で保持しているデータ送信レートに則って、キューから順次パケットを読み込んで送信を行う。
【００７０】
また、ｉｎｔｅｒｖａｌの値とｒａｔｅの初期値とａｌｐｈａの値とＭＴＵの値とはユーザが予め設定しておく。図１において、送信端末１−１が受信端末２−１〜２−ｎ２と受信端末３−１〜３−ｎ３と受信端末４−１〜４−ｎ４とにパケットをマルチキャスト送信すると、シェーパ１１は送信端末１−１から送信されるパケットを取り込み、キューに格納し、送信レートリスト２０８に保持してあるデータ送信レートでパケットを送信しつつ、ＯＷＴ測定を開始し、以後、測定間隔時間であるｉｎｔｅｒｖａｌの時間経過毎にＯＷＴ測定を行う。
【００７１】
図８、図９はＯＷＴを測定して適切なデータ送信レートを設定する処理の流れを示している。以下、図８の処理について説明する。まず、シェーパ１１はクロック２０１から時刻情報を得て、送信時刻を記録したＵＤＰパケット（以後、ＯＷＴ測定パケットと呼ぶ）をＯＷＴ測定パケット生成部２０２にて生成し、ＯＷＴ測定パケット送信部２０３からシェーパ１２とシェーパ１３とシェーパ１４とにマルチキャスト送信する（ステップＳ６０）。シェーパ１２とシェーパ１３とシェーパ１４とはＯＷＴ測定パケット受信部２０９にてＯＷＴ測定パケットを受信する（ステップＳ６１）。シェーパ１２とシェーパ１３とシェーパ１４とはクロック２１１から得たＯＷＴ測定パケットの受信時刻とＯＷＴ測定パケットに記録されている送信時刻からＯＷＴ演算部２１０にてＯＷＴを算出する（ステップＳ６２）。
【００７２】
シェーパ１２とシェーパ１３とシェーパ１４とは算出したＯＷＴを記録したＵＤＰパケット（以後、ＯＷＴ通知パケットと呼ぶ）をＯＷＴ通知パケット生成部２１２にて生成し、ＯＷＴ通知パケット送信部２１３からシェーパ１１にユニキャスト送信する（ステップＳ６３）。シェーパ１１はシェーパ１２とシェーパ１３とシェーパ１４とからのＯＷＴ通知パケットをＯＷＴ通知パケット受信部２０４にて受信する（ステップＳ６４）。シェーパ１１はＯＷＴ比較部２０５にて、受信したＯＷＴ通知パケットに記録されているＯＷＴの中で最も大きな値を代表ＯＷＴに設定し（ステップＳ６５）、代表ＯＷＴを用いて送信レート演算部２０７にてレート算出を行う（ステップＳ６６）。算出したレートの値をｒａｔｅに設定し、送信レートリスト２０８に格納する（ステップＳ６７）。次回以降のデータ送信においては、ここまでの処理で得られたｒａｔｅを適用する。
【００７３】
以下、図９を用いて図８のステップＳ６６のレート算出処理について詳細を説明する。
【００７４】
シェーパ１１はＢａｓｅＯＷＴリスト２０６で保持している該当シェーパに対応するＢａｓｅＯＷＴと代表ＯＷＴとを比較し（ステップＳ７０）、代表ＯＷＴがＢａｓｅＯＷＴより短い時間の場合に、ＢａｓｅＯＷＴに代表ＯＷＴを設定し、ＢａｓｅＯＷＴリスト２０６に格納する（ステップＳ７１）。ここで、ＢａｓｅＯＷＴの方が代表ＯＷＴより短い時間である場合にはＢａｓｅＯＷＴの更新は行わない。
【００７５】
次に、シェーパは代表ＯＷＴとＢａｓｅＯＷＴとｒａｔｅとから、ネットワークに輻輳が起きていない場合に期待されるデータ送信レートであるＥｘｐｅｃｔｅｄと実際のデータ送信レートであるＡｃｔｕａｌとを算出し、ＥｘｐｅｃｔｅｄとＡｃｔｕａｌとの差分にＢａｓｅＯＷＴを乗算し、期待されるデータ送信と実際のデータ送信とのレート差分にあたるＤｅｌｔａを算出し（ステップＳ７２）、Ｄｅｌｔａとａｌｐｈａとを比較する（ステップＳ７３）。
【００７６】
Ｄｅｌｔａがａｌｐｈａより小さい場合には、データ送信レートを増やしてもよいと判断し、最大転送単位ＭＴＵの大きさのパケット１つを送信した場合のレート分、すなわち、ＭＴＵをＯＷＴで除算した値をｒａｔｅに加算し、送信レートリスト２０８に格納する（ステップＳ７４）。逆に、ネットワークが混雑してくると、ＯＷＴが増加するため、これに伴いＤｅｌｔａはａｌｐｈａより大きくなり、データ送信レートを減らす必要があると判断し、最大転送単位ＭＴＵの大きさのパケット１つを送信した場合のレート分、すなわち、ＭＴＵをＯＷＴで除算した値をｒａｔｅから減算し（ステップＳ７５）、パケットの流量を減らすため、ネットワークの輻輳を回避することができる。
【００７７】
また、シェーパ１１は優先度毎に分けたキュー毎にｒａｔｅとａｌｐｈａとの値を設定して、ｒａｔｅを算出することにより、ｒａｔｅに差をつけて、優先度別の制御を行うことができる。ａｌｐｈａの値を大きくするほどｒａｔｅは大きくなり易いため、ａｌｐｈａの値を大きく設定したキューに優先度の高いパケットを格納して、ａｌｐｈａの値を小さく設定したキューに優先度の低いパケットを格納することにより、ＱｏＳ制御を行うことができる。
【００７８】
また、シェーパ１１に送信端末１−１と送信端末１−２と複数の送信端末が接続され、送信端末１−１と送信端末１−２とが同じ優先度でマルチキャスト送信を行う場合には、送信端末１−１から送信されるパケットと送信端末１−２から送信されるパケットをシェーパ１１の同じキューに格納し、同じｒａｔｅを用いて送信制御を行うことにより、送信端末１−１と送信端末１−２との公平性を実現することができる。
【００７９】
また、まずは、シェーパ１１がＯＷＴ測定パケットをシェーパ１２とシェーパ１３とシェーパ１４とにマルチキャスト送信し、シェーパ１２とシェーパ１３とシェーパ１４とがＯＷＴを算出し、ＯＷＴ通知パケットを送信し、シェーパ１１はシェーパ１２とシェーパ１３とシェーパ１４とから通知されたＯＷＴを比較するが、例えば、シェーパ１２から通知されたＯＷＴが最も大きい値だった場合には、シェーパ１２を測定対象シェーパに設定し、次回から予め設定しておいた回数であるＮ回は測定対象シェーパであるシェーパ１２だけにＯＷＴ測定パケットをユニキャスト送信してレート算出を行う。Ｎ回の測定後は、再びシェーパ１２とシェーパ１３とシェーパ１４とにＯＷＴ測定パケットをマルチキャスト送信し、測定対象シェーパを新たに設定するということを繰り返す方法もある。この方法により、測定対象シェーパのみにＯＷＴ測定パケットを送信すればよいので、ネットワーク上に流れるパケット量を減らすことができる。
【００８０】
また、シェーパ１１は予めＯＷＴ最大許容値を設定しておき、シェーパ１２とシェーパ１３とシェーパ１４とから通知されるＯＷＴを比較するときに、ＯＷＴ最大許容値より通知されたＯＷＴが大きい場合には、そのＯＷＴを通知したシェーパへの経路のネットワークに何らかの問題が発生していると判断し、ネットワークに問題のないシェーパへの送信に影響することを防ぐため、ＯＷＴ最大許容値より大きいＯＷＴを通知したシェーパへのマルチキャスト送信を中止する方法もある。
【００８１】
また、シェーパ１１はＯＷＴ測定の際に、ＯＷＴ測定パケットを用いず、送信端末１−１が送信するデータパケットにシェーパ１１での送信時刻を記録し、シェーパ１２とシェーパ１３とシェーパ１４とはこのデータパケットを受信し、記録されている送信時刻と、データパケットの受信時刻との差分からＯＷＴを算出する方法もある。この方法により、データパケットを用いてＯＷＴを測定することで、ネットワーク流量を増やさずにＯＷＴ測定を行うことができる。
【００８２】
（第三の実施の形態）
図１は本発明の実施形態の構成を表している。送信端末１−１、１−２はシェーパ１１を経由してデータパケットのマルチキャスト送信を行う装置であり、受信端末２−１〜２−ｎ２と、受信端末３−１〜３−ｎ３と、受信端末４−１〜４−ｎ４とはシェーパ１２とシェーパ１３とシェーパ１４とを経由してデータパケットの受信を行う装置である。
【００８３】
図１０は送信側シェーパであるシェーパ１１のブロック図を表し、図１１は受信側シェーパであるシェーパ１２とシェーパ１３とシェーパ１４のブロック図を表している。
【００８４】
シェーパ１１は優先度毎に決定されるデータ送信レートを表すｒａｔｅを送信レートリスト３０６に保持し、ＯＷＴの測定間隔時間を表すｉｎｔｅｒｖａｌを記憶領域に格納する。シェーパ１２とシェーパ１３とシェーパ１４とはそれぞれ、データの片方向遅延時間を表すＯＷＴの中で最短のＯＷＴを表すＢａｓｅＯＷＴを送信側シェーパ毎の値としてＢａｓｅＯＷＴリスト３１０に保持し、パケットの最大転送単位を表すＭＴＵと、データの送信レートの増減に関わる閾値ａｌｐｈａを記憶領域に格納する。
【００８５】
また、シェーパ１１はデータパケットのＴＯＳフィールド中の優先度毎にパケットをキューに格納し、送信レートリスト３０６で保持しているデータ送信レートに則って、キューから順次パケットを読み込んで送信を行う。
【００８６】
また、ｉｎｔｅｒｖａｌの値とｒａｔｅの初期値とａｌｐｈａの値とＭＴＵの値とはユーザが予め設定しておく。図１において、送信端末１−１が受信端末２−１〜２−ｎ２と受信端末３−１〜３−ｎ３と受信端末４−１〜４−ｎ４とにパケットをマルチキャスト送信すると、シェーパ１１は送信端末１−１から送信されるパケットを取り込み、キューに格納し、送信レートリスト３０６に保持してあるデータ送信レートでパケットを送信しつつ、ＯＷＴ測定を開始し、以後、測定間隔時間であるｉｎｔｅｒｖａｌの時間経過毎にＯＷＴの測定を行う。
【００８７】
図１２、図９はＯＷＴを測定して適切なデータ送信レートを設定する処理の流れを示している。以下、図１２の処理について説明する。まず、シェーパ１１はクロック３０１から時刻情報を得て、送信時刻と送信レートリスト３０６から得た現在のデータ送信レートを記録したＵＤＰパケット（以後、ＯＷＴ測定パケットと呼ぶ）をＯＷＴ測定パケット生成部３０２にて生成し、ＯＷＴ測定パケット送信部３０３からシェーパ１２とシェーパ１３とシェーパ１４とにマルチキャスト送信する（ステップＳ８０）。
【００８８】
シェーパ１２とシェーパ１３とシェーパ１４とはＯＷＴ測定パケット受信部３０７にてＯＷＴ測定パケットを受信する（ステップＳ８１）。シェーパ１２とシェーパ１３とシェーパ１４とはクロック３０９から得たＯＷＴ測定パケットの受信時刻とＯＷＴ測定パケットに記録されている送信時刻からＯＷＴ演算部３０８にてＯＷＴを算出し（ステップＳ８２）、レート算出部３１１にてレート算出を行う（ステップＳ８３）。
【００８９】
シェーパ１２とシェーパ１３とシェーパ１４とは算出したレート結果を記録したＵＤＰパケット（以後、レート通知パケットと呼ぶ）をレート通知パケット生成部３１２にて生成し、レート通知パケット送信部３１３からシェーパ１１へユニキャスト送信する（ステップＳ８４）。シェーパ１１はシェーパ１２とシェーパ１３とシェーパ１４とからのレート通知パケットをレート通知パケット受信部３０４にて受信する（ステップＳ８５）。シェーパ１１はレート比較部３０５にて、受信したレート通知パケットに記録されているレートの中で最も小さい値をｒａｔｅに設定し、送信レートリスト３０６に格納する（ステップＳ８６）。次回以降のデータ送信においては、ここまでの処理で得られたｒａｔｅを適用する。
【００９０】
以下、図９を用いて図１２のステップＳ８３のレート算出処理について詳細を説明する。
【００９１】
シェーパ１２とシェーパ１３とシェーパ１４とはＢａｓｅＯＷＴリスト３１０で保持している該当シェーパに対応するＢａｓｅＯＷＴと算出したＯＷＴとを比較し（ステップＳ７０）、ＯＷＴがＢａｓｅＯＷＴより短い時間の場合には、ＢａｓｅＯＷＴにＯＷＴを設定し、ＢａｓｅＯＷＴリスト３１０に格納する（ステップＳ７１）。ここで、ＢａｓｅＯＷＴの方がＯＷＴより短い時間である場合にはＢａｓｅＯＷＴの更新は行わない。
【００９２】
次に、シェーパはＯＷＴとＢａｓｅＯＷＴとＯＷＴ測定パケットに記録されているデータ送信レートｒａｔｅとから、ネットワークに輻輳が起きていない場合に期待されるデータ送信レートであるＥｘｐｅｃｔｅｄと実際のデータ送信レートであるＡｃｔｕａｌとを算出し、ＥｘｐｅｃｔｅｄとＡｃｔｕａｌとの差分にＢａｓｅＯＷＴを乗算し、期待されるデータ送信と実際のデータ送信とのレート差分にあたるＤｅｌｔａを算出し（ステップＳ７２）、Ｄｅｌｔａとａｌｐｈａとを比較する（ステップＳ７３）。
【００９３】
Ｄｅｌｔａがａｌｐｈａより小さい場合には、データ送信レートを増やしてもよいと判断し、最大転送単位ＭＴＵの大きさのパケット１つを送信した場合のレート分、すなわち、ＭＴＵをＯＷＴで除算した値をｒａｔｅに加算する（ステップＳ７４）。逆に、ネットワークが混雑してくると、ＯＷＴが増加するため、これに伴いＤｅｌｔａはａｌｐｈａより大きくなり、データ送信レートを減らす必要があると判断し、最大転送単位ＭＴＵの大きさのパケット１つを送信した場合のレート分、すなわち、ＭＴＵをＯＷＴで除算した値をｒａｔｅから減算し（ステップＳ７５）、パケットの流量を減らすため、ネットワークの輻輳を回避することができる。
【００９４】
また、シェーパ１２とシェーパ１３とシェーパ１４とは優先度毎にａｌｐｈａの値を設定して、ｒａｔｅを算出することにより、ｒａｔｅに差をつけて、優先度別の制御を行うことができる。ａｌｐｈａの値を大きくするほどｒａｔｅは大きくなりやすいため、ａｌｐｈａの値を大きく設定したキューに優先度の高いパケットを格納して、ａｌｐｈａの値を小さく設定したキューに優先度の低いパケットを格納することにより、ＱｏＳ制御をすることができる。
【００９５】
また、シェーパ１１に送信端末１−１と送信端末１−２と複数の送信端末が接続され、送信端末１−１と送信端末１−２とが同じ優先度でマルチキャスト送信を行う場合には、送信端末１−１から送信されるパケットと送信端末１−２から送信されるパケットとをシェーパ１１の同じキューに格納し、同じｒａｔｅを用いて送信制御を行うことにより、送信端末１−１と送信端末１−２との公平性を実現することができる。
【００９６】
また、まずは、シェーパ１１からＯＷＴ測定パケットをシェーパ１２とシェーパ１３とシェーパ１４とにマルチキャスト送信し、シェーパ１１はシェーパ１２とシェーパ１３とシェーパ１４とから通知されたレートを比較するが、例えば、シェーパ１２から通知されたレートが最も小さい値だった場合には、シェーパ１２を測定対象シェーパに設定し、次回から予め設定しておいた回数であるＮ回は測定対象シェーパであるシェーパ１２だけにＯＷＴ測定パケットをユニキャスト送信してレート算出を行う。Ｎ回の測定後は、再びシェーパ１２とシェーパ１３とシェーパ１４とにＯＷＴ測定パケットをマルチキャスト送信し、測定対象シェーパを新たに設定するということを繰り返す方法もある。この方法により、測定対象シェーパのみにＯＷＴ測定パケットを送信すればよいので、ネットワーク上に流れるパケット量を減らすことができる。
【００９７】
また、シェーパ１１は予めデータ送信レート最小許容値を設定しておき、シェーパ１２とシェーパ１３とシェーパ１４とから通知されるレートを比較するときに、データ送信レート最小許容値より通知されたデータ送信レートが小さい場合には、そのレートを通知したシェーパへの経路のネットワークに何らかの問題が発生していると判断し、ネットワークに問題のないシェーパへの送信に影響することを防ぐため、データ送信レート最小許容値より小さいデータ送信レートを通知したシェーパへのマルチキャスト送信を中止する方法もある。
【００９８】
また、シェーパ１１はＯＷＴ測定の際に、ＯＷＴ測定パケットを用いず、送信端末１−１が送信するデータパケットにシェーパ１１での送信時刻を記録し、シェーパ１２とシェーパ１３とシェーパ１４とはこのデータパケットを受信し、記録されている送信時刻と、データパケットの受信時刻との差分からＯＷＴを算出する方法もある。この方法により、データパケットを用いてＯＷＴを測定することで、ネットワークの流量を増やさずにＯＷＴ測定を行うことができる。
【００９９】
（第四の実施の形態）
第四の実施の形態は、汎用の情報処理装置にインストールすることにより、その情報処理装置にシェーパ１１〜１４に相応する機能を実現させるプログラムである。このプログラムは、記録媒体に記録されて情報処理装置にインストールされ、あるいは通信回線を介して情報処理装置にインストールされることにより当該情報処理装置に、シェーパ１１〜１４にそれぞれ相応する機能を実現させることができる。
【産業上の利用可能性】
【０１００】
本発明によれば、シェーパがＲＴＴもしくはＯＷＴを測定し、それを用いてＴＣＰ  Ｖｅｇａｓと同等のフロー制御を行うことにより、ネットワークを有効に利用し、複数マルチキャスト通信間の公平性を保ち、ネットワークの輻輳を防ぐマルチキャスト通信を実現することが可能となる。
【図面の簡単な説明】
【０１０１】
【図１】本発明の実施の形態によるマルチキャスト通信フロー制御方法のネットワーク構成例を表す図。
【図２】本発明の第一の実施形態による送信側シェーパ装置のブロック図。
【図３】本発明の第一の実施形態による受信側シェーパ装置のブロック図。
【図４】本発明の第一の実施形態によるフロー制御方法の処理の流れを表すフローチャート。
【図５】本発明の第一の実施形態によるＲＴＴを用いたレート算出の流れを表すフローチャート。
【図６】本発明の第二の実施形態による送信側シェーパ装置のブロック図。
【図７】本発明の第二の実施形態による受信側シェーパ装置のブロック図。
【図８】本発明の第二の実施形態によるフロー制御方法の処理の流れを表すフローチャート。
【図９】本発明の第二の実施形態および第三の実施形態によるＯＷＴを用いたレート算出の流れを表すフローチャート。
【図１０】本発明の第三の実施形態による送信側シェーパ装置のブロック図。
【図１１】本発明の第三の実施形態による受信側シェーパ装置のブロック図。
【図１２】本発明の第三の実施形態によるフロー制御方法の処理の流れを表すフローチャート。
【図１３】従来技術であるＴＣＰ  Ｖｅｇａｓの処理の流れを表すフローチャート。
【図１４】従来技術であるＴＣＰ  Ｖｅｇａｓの処理の流れを表すフローチャート。
【図１５】従来技術であるＴＣＰ  Ｖｅｇａｓの処理の流れを表すフローチャート。
【符号の説明】
【０１０２】
１−１、１−２  送信端末
２−１〜２−ｎ２、３−１〜３−ｎ３、４−１〜４−ｎ４  受信端末
１１〜１４  シェーパ
１０１、２０１、２１１、３０１、３０９  クロック
１０２  ＲＲＴ測定パケット生成部
１０３  ＲＴＴ測定パケット送信部
１０４  応答パケット受信部
１０５  ＲＲＴ演算部
１０６  ＢａｓｅＲＴＴリスト
１０７、２０７  送信レート演算部
１０８、２０８、３０６  送信レートリスト
１０９  ＲＴＴ測定パケット受信部
１１０  応答パケット生成部
１１１  応答パケット送信部
２０２、３０２  ＯＷＴ測定パケット生成部
２０３、３０３  ＯＷＴ測定パケット送信部
２０４  ＯＷＴ通知パケット受信部
２０５  ＯＷＴ比較部
２０６、３１０  ＢａｓｅＯＵＴリスト
２０９、３０７  ＯＷＴ測定パケット受信部
２１０、３０８  ＯＷＴ演算部
２１２  ＯＷＴ通知パケット生成部
２１３  ＯＷＴ通知パケット送信部
３０４  レート通知パケット受信部
３０５  レート比較部
３１１  レート演算部
３１２  レート通知パケット生成部
３１３  レート通知パケット送信部
【図１】
2006340081.tif 000003
【図２】
2006340081.tif 000004
【図３】
2006340081.tif 000005
【図４】
2006340081.tif 000006
【図５】
2006340081.tif 000007
【図６】
2006340081.tif 000008
【図７】
2006340081.tif 000009
【図８】
2006340081.tif 000010
【図９】
2006340081.tif 000011
【図１０】
2006340081.tif 000012
【図１１】
2006340081.tif 000013
【図１２】
2006340081.tif 000014
【図１３】
2006340081.tif 000015
【図１４】
2006340081.tif 000016
【図１５】
2006340081.tif 000017