(57)【特許請求の範囲】
【請求項１】
ネットワークを介して複数の通信端末間でデータの送受信を行いかつ前記通信端末間の通信を中継する中継ノードを含む通信システムであって、
前記通信端末及び前記中継ノードのいずれかは、
発生したデータ量を入力とし、予め設定された目標帯域を出力速度とする入力バケットと、前記入力バケットから出力されるデータ量を入力とし、実際の出力帯域を出力速度とする出力バケットとを有し、前記出力バケットの蓄積量を、前記目標帯域と実際の出力帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、
前記保持手段で保持する値を基に輻輳ウインドの増加量及び減少量を表す輻輳制御パラメータの変更を行う手段と
を有することを特徴とする通信システム。
【請求項２】
前記通信端末及び前記中継ノードのいずれかは、前記保持手段に保持する値が大きくなるのにしたがって輻輳発生時の輻輳ウインドの減少量を小さく設定することを特徴とする
請求項１記載の通信システム。
【請求項３】
前記通信端末及び前記中継ノードのいずれかは、前記保持手段で保持する値を基に前記目標帯域を修正する手段を含むことを特徴とする請求項１記載の通信システム。
【請求項４】
前記通信端末及び前記中継ノードのいずれかは、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、前記目標とする輻輳ウインドの値を基に輻輳発生時の輻輳ウインドの減少量を設定する手段とを含む
ことを特徴とする請求項１記載の通信システム。
【請求項５】
送信側の通信端末の保持手段は、発生した送信データ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってそのカウント値を減少する前記入力バケットの第一のカウンタと、前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自端末から実際に出力されたデータ量にしたがってそのカウント値を減少する前記出力バケットの第二のカウンタとを含み、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする請求項１記載の通信システム。
【請求項６】
前記中継ノードの保持手段は、受信したデータ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってカウント値を減少する前記入力バケットの第一のカウンタと、前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自ノードから実際に出力されたデータ量にしたがってカウント値を減少する前記出力バケットの第二のカウンタとを含み、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする請求項１記載の通信システム。
【請求項７】
前記通信端末及び前記中継ノードのいずれかは、減少後の輻輳ウインドが減少前の輻輳ウインドの半分以下であれば、前記減少後の輻輳ウインドを前記減少前の輻輳ウインドの半分とすることを特徴とする請求項２記載の通信システム。
【請求項８】
前記通信端末及び前記中継ノードのいずれかは、前記ネットワークの輻輳度を基に輻輳ウインドの上限を計算する手段を含み、輻輳発生時に輻輳ウインドを減少させる場合、前記輻輳ウインドを少なくとも前記上限以下に減少させることを特徴とする請求項１記載の通信システム。
【請求項９】
前記通信端末及び前記中継ノードのいずれかは、パケット廃棄の検出直前の輻輳ウインドの値に対する一定値の減算及び一定値の乗算のいずれかを行って前記輻輳ウインドの上限を計算することを特徴とする請求項８記載の通信システム。
【請求項１０】
前記通信端末及び前記中継ノードのいずれかは、再送タイムアウトの頻度に比例して前記輻輳ウインドの上限を小さく設定することを特徴とする請求項８記載の通信システム。
【請求項１１】
前記通信端末及び前記中継ノードのいずれかは、前記保持手段で保持された値が大きくなるにしたがって非輻輳時の輻輳ウインドの増加量を大きく設定する手段を含むことを特徴とする請求項１記載の通信システム。
【請求項１２】
前記通信端末及び前記中継ノードのいずれかは、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、前記目標とする輻輳ウインドの値と現在の輻輳ウインドの値とを基に非輻輳時の輻輳ウインドの増加量を設定する手段とを含むことを特徴とする請求項１記載の通信システム。
【請求項１３】
前記通信端末及び前記中継ノードのいずれかは、現在の輻輳ウインドの値が前記目標とする輻輳ウインドの値よりも小さい場合に、前記非輻輳時の輻輳ウインドの増加量を大きく変更する手段と、往復転送遅延時間が大きくなるにしたがって前記増加量を小さく変更する手段とを含むことを特徴とする請求項１２記載の通信システム。
【請求項１４】
ネットワークを介して複数の通信端末間でデータの送受信を行いかつ前記通信端末間の通信を中継する中継ノードを含む通信システムであって、
受信側の通信端末及び前記中継ノードのいずれかは、
送信側の通信端末から送信されたデータ量を入力とし、目標帯域を出力速度とする入力バケットを有し、入力バケットの蓄積量を、入力帯域と目標帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、
前記保持手段で保持する値を基に前記送信側の通信端末へと返送する送達確認応答パケットを分割する手段と
を有することを特徴とする通信システム。
【請求項１５】
前記受信側の通信端末及び前記中継ノードのいずれかは、１つのデータパケットの受信に対して受信確認するシーケンス番号を少しずつ大きくした複数の送達確認応答パケットに分割してその送達確認応答パケットを前記送信側の通信端末に返信する手段を含み、前記保持手段で保持する値が大きくなるにしたがって前記送達確認応答パケットの分割数を大きくすることを特徴とする請求項１４記載の通信システム。
【請求項１６】
ネットワークを介して他の通信端末との間でデータの送受信を行う通信端末であって、
発生したデータ量を入力とし、予め設定された目標帯域を出力速度とする入力バケットと、前記入力バケットから出力されるデータ量を入力とし、実際の出力帯域を出力速度とする出力バケットとを有し、前記出力バケットの蓄積量を、前記目標帯域と前記実際の出力帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、
前記保持手段で保持する値を基に輻輳ウインドの増加量及び減少量を表す輻輳制御パラメータの変更を行う手段と
を有することを特徴とする通信端末。
【請求項１７】
前記保持手段に保持する値が大きくなるのにしたがって輻輳発生時の輻輳ウインドの減少量を小さく設定することを特徴とする請求項１６記載の通信端末。
【請求項１８】
前記保持手段で保持する値を基に前記目標帯域を修正する手段を含むことを特徴とする請求項１６記載の通信端末。
【請求項１９】
予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、前記目標とする輻輳ウインドの値を基に前記輻輳発生時の輻輳ウインドの減少量を設定する手段とを含むことを特徴とする請求項１８記載の通信端末。
【請求項２０】
発生した送信データ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってそのカウント値を減少する前記入力バケットの第一のカウンタと、前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自端末から実際に出力されたデータ量にしたがってそのカウント値を減少する前記出力バケットの第二のカウンタとを含み、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする請求項１６記載の通信端末。
【請求項２１】
減少後の輻輳ウインドが減少前の輻輳ウインドの半分以下であれば、前記減少後の輻輳ウインドを前記減少前の輻輳ウインドの半分とすることを特徴とする請求項１７記載の通信端末。
【請求項２２】
前記ネットワークの輻輳度を基に輻輳ウインドの上限を計算する手段を含み、輻輳発生時に輻輳ウインドを減少させる場合、前記輻輳ウインドを少なくとも前記上限以下に減少させることを特徴とする請求項１６記載の通信端末。
【請求項２３】
パケット廃棄の検出直前の輻輳ウインドの値に対する一定値の減算及び一定値の乗算のいずれかを行って前記輻輳ウインドの上限を計算することを特徴とする請求項２２記載の通信端末。
【請求項２４】
再送タイムアウトの頻度に比例して前記輻輳ウインドの上限を小さく設定することを特徴とする請求項２２記載の通信端末。
【請求項２５】
前記保持手段で保持された値が大きくなるにしたがって非輻輳時の輻輳ウインドの増加量を大きく設定する手段を含むことを特徴とする請求項１６記載の通信端末。
【請求項２６】
予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、前記目標とする輻輳ウインドの値と現在の輻輳ウインドの値とを基に非輻輳時の輻輳ウインドの増加量を設定する手段とを含むことを特徴とする請求項１６記載の通信端末。
【請求項２７】
現在の輻輳ウインドの値が前記目標とする輻輳ウインドの値よりも小さい場合に、前記非輻輳時の輻輳ウインドの増加量を大きく変更する手段と、往復転送遅延時間が大きくなるにしたがって前記増加量を小さく変更する手段とを含むことを特徴とする請求項２６記載の通信端末。
【請求項２８】
ネットワークを介して他の通信端末との間でデータの送受信を行う通信端末であって、
送信側の通信端末から送信されたデータ量を入力とし、目標帯域を出力速度とする入力バケットを有し、入力バケットの蓄積量を、前記入力帯域と目標帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、
前記保持手段で保持する値を基に前記送信側の通信端末へと返送する送達確認応答パケットを分割する手段と
を有することを特徴とする通信端末。
【請求項２９】
１つのデータパケットの受信に対して受信確認するシーケンス番号を少しずつ大きくした複数の送達確認応答パケットに分割してその送達確認応答パケットを前記送信側の通信端末に返信する手段を含み、前記保持手段で保持する値が大きくなるにしたがって前記送達確認応答パケットの分割数を大きくすることを特徴とする請求項２８記載の通信端末。
【請求項３０】
ネットワークを介して複数の通信端末間でデータの送受信を行う通信システムにおいて、前記通信端末間の通信を中継する中継ノードであって、
発生したデータ量を入力とし、予め設定された目標帯域を出力速度とする入力バケットと、前記入力バケットから出力されるデータ量を入力とし、実際の出力帯域を出力速度とする出力バケットとを有し、前記出力バケットの蓄積量を、前記目標帯域と実際の出力帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、
前記保持手段で保持する値を基に輻輳ウインドの増加量及び減少量を表す輻輳制御パラメータの変更を行う手段と
を有することを特徴とする中継ノード。
【請求項３１】
前記保持手段に保持する値が大きくなるのにしたがって輻輳発生時の輻輳ウインドの減少量を小さく設定することを特徴とする請求項３０記載の中継ノード。
【請求項３２】
前記保持手段で保持する値を基に前記目標帯域を修正する手段を含むことを特徴とする請求項３０記載の中継ノード。
【請求項３３】
予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、前記輻輳発生時の輻輳ウインドの減少量を前記目標とする輻輳ウインドの値を基に設定する手段とを含むことを特徴とする請求項３０記載の中継ノード。
【請求項３４】
受信したデータ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってカウント値を減少する前記入力バケットの第一のカウンタと、前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自ノードから実際に出力されたデータ量にしたがってカウント値を減少する前記出力バケットの第二のカウンタとを含み、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする請求項３０記載の中継ノード。
【請求項３５】
減少後の輻輳ウインドが減少前の輻輳ウインドの半分以下であれば、前記減少後の輻輳ウインドを前記減少前の輻輳ウインドの半分とすることを特徴とする請求項３０記載の中継ノード。
【請求項３６】
前記ネットワークの輻輳度を基に輻輳ウインドの上限を計算する手段を含み、輻輳発生時に輻輳ウインドを減少させる場合、前記輻輳ウインドを少なくとも前記上限以下に減少させることを特徴とする請求項３０記載の中継ノード。
【請求項３７】
パケット廃棄の検出直前の輻輳ウインドの値に対する一定値の減算及び一定値の乗算のいずれかを行って前記輻輳ウインドの上限を計算することを特徴とする請求項３６記載の中継ノード。
【請求項３８】
再送タイムアウトの頻度に比例して前記輻輳ウインドの上限を小さく設定することを特徴とする請求項３６記載の中継ノード。
【請求項３９】
前記保持手段で保持された値が大きくなるにしたがって非輻輳時の輻輳ウインドの増加量を大きく設定する手段を含むことを特徴とする請求項３０記載の中継ノード。
【請求項４０】
予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、非輻輳時の輻輳ウインドの増加量を前記目標とする輻輳ウインドの値と現在の輻輳ウインドの値とを基に設定する手段とを含むことを特徴とする請求項３０記載の中継ノード。
【請求項４１】
現在の輻輳ウインドの値が前記目標とする輻輳ウインドの値よりも小さい場合に、前記非輻輳時の輻輳ウインドの増加量を大きく変更する手段と、往復転送遅延時間が大きくなるにしたがって前記増加量を小さく変更する手段とを含むことを特徴とする請求項３０記載の中継ノード。
【請求項４２】
ネットワークを介して複数の通信端末間でデータの送受信を行う通信システムにおいて、前記通信端末間の通信を中継する中継ノードであって、
送信側の通信端末から送信されたデータ量を入力とし、目標帯域を出力速度とする入力バケットを有し、入力バケットの蓄積量を、入力帯域と目標帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、
前記保持手段で保持する値を基に前記送信側の通信端末へと返送する送達確認応答パケットを分割する手段と
を有することを特徴とする中継ノード。
【請求項４３】
１つのデータパケットの受信に対して受信確認するシーケンス番号を少しずつ大きくした複数の送達確認応答パケットに分割してその送達確認応答パケットを前記送信側の通信端末に返信する手段を含み、前記保持手段で保持する値が大きくなるにしたがって前記送達確認応答パケットの分割数を大きくすることを特徴とする請求項４２記載の中継ノード。
【請求項４４】
ネットワークを介して複数の通信端末間でデータの送受信を行いかつ前記通信端末間の通信を中継する中継ノードを含む通信システムに用いる通信方法であって、
前記通信端末及び前記中継ノードのいずれかが、
発生したデータ量を入力とし、予め設定された目標帯域を出力速度とする入力バケットと、前記入力バケットから出力されるデータ量を入力とし、実際の出力帯域を出力速度とする出力バケットとを有し、前記出力バケットの蓄積量を、前記目標帯域と実際に出力した帯域との差分の累積及び前記差分の履歴のいずれかとして保持手段に保持する処理と、
前記保持手段で保持する値を基に輻輳ウインドの増加量及び減少量を表す輻輳制御パラメータの変更を行う処理とを実行することを特徴とする通信方法。
【請求項４５】
前記通信端末及び前記中継ノードのいずれかが、前記保持手段に保持する値が大きくなるのにしたがって輻輳発生時の輻輳ウインドの減少量を小さく設定することを特徴とする請求項４４記載の通信方法。
【請求項４６】
前記通信端末及び前記中継ノードのいずれかが、前記保持手段で保持する値を基に前記目標帯域を修正する処理を実行することを特徴とする請求項４４記載の通信方法。
【請求項４７】
前記通信端末及び前記中継ノードのいずれかが、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する処理と、前記輻輳発生時の輻輳ウインドの減少量を前記目標とする輻輳ウインドの値を基に設定する処理とを実行することを特徴とする請求項４４記載の通信方法。
【請求項４８】
送信側の通信端末が、前記入力バケットの第一のカウンタにて発生した送信データ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってそのカウント値を減少する処理と、前記出力バケットの第二のカウンタにおいて前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自端末から実際に出力されたデータ量にしたがってそのカウント値を減少する処理とを実行し、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする請求項４４記載の通信方法。
【請求項４９】
前記中継ノードが、第一のカウンタにて受信したデータ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってカウント値を減少する処理と、第二のカウンタにおいて前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自ノードから実際に出力されたデータ量にしたがってカウント値を減少する処理とを実行し、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする請求項４４記載の通信方法。
【請求項５０】
前記通信端末及び前記中継ノードのいずれかが、減少後の輻輳ウインドが減少前の輻輳ウインドの半分以下であれば、前記減少後の輻輳ウインドを前記減少前の輻輳ウインドの半分とすることを特徴とする請求項４５記載の通信方法。
【請求項５１】
前記通信端末及び前記中継ノードのいずれかが、前記ネットワークの輻輳度を基に輻輳ウインドの上限を計算する処理を実行し、輻輳発生時に輻輳ウインドを減少させる場合、前記輻輳ウインドを少なくとも前記上限以下に減少させることを特徴とする請求項４４記載の通信方法。
【請求項５２】
前記通信端末及び前記中継ノードのいずれかが、パケット廃棄の検出直前の輻輳ウインドの値に対する一定値の減算及び一定値の乗算のいずれかを行って前記輻輳ウインドの上限を計算することを特徴とする請求項５１記載の通信方法。
【請求項５３】
前記通信端末及び前記中継ノードのいずれかが、再送タイムアウトの頻度に比例して前記輻輳ウインドの上限を小さく設定することを特徴とする請求項５１記載の通信方法。
【請求項５４】
前記通信端末及び前記中継ノードのいずれかが、前記保持手段で保持された値が大きくなるにしたがって非輻輳時の輻輳ウインドの増加量を大きく設定する処理を実行することを特徴とする請求項４４記載の通信方法。
【請求項５５】
前記通信端末及び前記中継ノードのいずれかが、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する処理と、前記目標とする輻輳ウインドの値と現在の輻輳ウインドの値とを基に非輻輳時の輻輳ウインドの増加量を設定する処理とを実行することを特徴とする請求項４４記載の通信方法。
【請求項５６】
前記通信端末及び前記中継ノードのいずれかが、現在の輻輳ウインドの値が前記目標とする輻輳ウインドの値よりも小さい場合に、前記非輻輳時の輻輳ウインドの増加量を大きく変更する処理と、往復転送遅延時間が大きくなるにしたがって前記増加量を小さく変更する処理とを実行することを特徴とする請求項５５記載の通信方法。
【請求項５７】
ネットワークを介して複数の通信端末間でデータの送受信を行いかつ前記通信端末間の通信を中継する中継ノードを含む通信システムに用いる通信方法であって、
受信側の通信端末及び前記中継ノードのいずれかが、
送信側の通信端末から送信されたデータ量を入力とし、目標帯域を出力速度とする入力バケットを有し、入力バケットの蓄積量を、入力帯域と目標帯域との差分の累積及び前記差分の履歴のいずれかとして保持手段に保持する処理と、
前記保持手段で保持する値を基に前記送信側の通信端末へと返送する送達確認応答パケットを分割する処理と
を実行することを特徴とする通信方法。
【請求項５８】
前記受信側の通信端末及び前記中継ノードのいずれかが、１つのデータパケットの受信に対して受信確認するシーケンス番号を少しずつ大きくした複数の送達確認応答パケットに分割してその送達確認応答パケットを前記送信側の通信端末に返信する処理を含み、前記保持手段で保持する値が大きくなるにしたがって前記送達確認応答パケットの分割数を大きくすることを特徴とする請求項５７記載の通信方法。
【請求項５９】
ネットワークを介して複数の通信端末間でデータの送受信を行いかつ前記通信端末間の通信を中継する中継ノードを含む通信システムに用いる通信方法のプログラムであって、
前記通信端末及び前記中継ノードのいずれかのコンピュータに、
発生したデータ量を入力とし、予め設定された目標帯域を出力速度とする入力バケットと、前記入力バケットから出力されるデータ量を入力とし、実際の出力帯域を出力速度とする出力バケットとを有し、前記出力バケットの蓄積量を、前記目標帯域と実際に出力した帯域との差分の累積及び前記差分の履歴のいずれかとして保持手段に保持する処理と、
前記保持手段で保持する値を基に輻輳ウインドの増加量及び減少量を表す輻輳制御パラメータの変更を行う処理と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信システム、通信端末、中継ノード及びそれに用いる通信方法並びにそのプログラムに関し、特にセッション層での輻輳制御機構及びスループット制御機構を有する通信システムに関する。
【背景技術】
【０００２】
現在、さまざまな種類のアプリケーションがネットワーク上で用いられており、それらのアプリケーション毎にネットワークに対して要求する品質が異なっている。例えば、即時性が要求されるアプリケーションでは、他のアプリケーションに比べて低い転送時間、高い帯域、あるいは低いパケット廃棄確率が求められる。一方、即時性の要求されないアプリケーションでは、即時性が要求されるアプリケーションに比べて、長い転送時間、低い帯域、あるいは高い廃棄が許容される。【０００３】
ネットワーク内でアプリケーション毎の帯域制御を実現する第一の技術としては、ネットワークノードによる帯域割当方式がある。この帯域割当方式としては、例えば、各ルータにおいてセッション毎に最適な帯域を与える「Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ」が提案されている（例えば、非特許文献１参照）。【０００４】
ネットワーク内でアプリケーション毎の帯域制御を実現する第二の技術としては、端末のトランスポート層制御による帯域差別化方式がある。代表的なトランスポートプロトコルであるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）では、ウインドサイズ（送達確認なしで連続して送受信できるデータ量）というパラメータを調節することで送信帯域を制御している。通常、ウインドサイズはネットワークの輻輳度に応じて制御される。【０００５】
すなわち、現在、最も広く用いられているバージョンであるＴＣＰ−Ｒｅｎｏ（例えば、非特許文献２参照）では、輻輳を検出していない間は輻輳ウインドを一定の速度で増加し、輻輳を検出した際には輻輳ウインドを半分に減少させることで、ネットワークを輻輳させない範囲で高いスループットを得られるように輻輳ウインドを制御する。【０００６】
一方、優先すべきセッションに関しては、輻輳検出時に毎回輻輳ウインドを減少させるのではなく、複数回の輻輳検出に対して１回だけ輻輳ウインドを減少させる方式が提案されている（例えば、特許文献１参照）。また、輻輳制御方式としては、１本のＴＣＰセッションが複数本のＴＣＰセッションと同程度の帯域を得られるように制御する方法も提案されている（例えば、非特許文献３参照）。これらの方式を用いることによって、異なるＴＣＰセッション間で異なる帯域を得ることが可能となる。【０００７】
ネットワーク内でアプリケーション毎の帯域制御を実現する第三の技術としては、端末のトランスポート層制御による帯域制御方式がある。例えば、この帯域制御方式としては、推定した回線帯域を基に輻輳ウインドの目標値を定め、これを基にＴＣＰセッションの輻輳ウインドの増減を制御する方式が提案されている（例えば、特許文献２及び非特許文献４参照）。ここで、推定した帯域の代わりに、予め固定的に帯域を設定することで、目標帯域に沿った帯域制御が可能であると考えられる。【０００８】
ＴＣＰでは、ウインドサイズというパラメータを調節することで送信帯域を制御する。通常、ウインドサイズはネットワークの輻輳度に応じて制御される。すなわち、現在、最も広く用いられているバージョンであるＴＣＰ−Ｒｅｎｏでは、輻輳を検出していない間、輻輳ウインドを一定の速度で増加し、輻輳を検出した際に輻輳ウインドを半分に減少させることで、ネットワークを輻輳させない範囲で高いスループットを得られるように輻輳ウインドを制御している（例えば、非特許文献２参照）。【０００９】
上述した第二及び第三の技術の利点は、第一の技術がネットワーク内の全ノードが帯域制御に対応している必要があるのに対し、第二の技術では送信端末のみが帯域制御に対応していれば良い点である。【００１０】
【特許文献１】特開平０９−３０７８７１号公報
【特許文献２】特開２００５−３６５１９３
【非特許文献１】Ｒ．Ｂｒａｄｅｎ，Ｄ．Ｃｌａｒｋ，Ｓ．Ｓｈｅｎｋｅｒ，“Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  ｉｎ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ａｎ  Ｏｖｅｒｖｉｅｗ”（ＩＥＴＦ  ＲＦＣ１６３３，１９９４）
【非特許文献２】Ｗ．Ｓｔｅｖｅｎｓ，“ＴＣＰ  Ｓｌｏｗ  Ｓｔａｒｔ，Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ，Ｆａｓｔ  Ｒｅｔｒａｎｓｍｉｔ，ａｎｄ  Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ  Ａｌｇｏｒｉｔｈｍｓ”（ＲＦＣ２００１，Ｊａｎ  １９９７）
【非特許文献３】Ｊ．Ｃｒｏｗｒｏｆｔ  ａｎｄ  Ｐ．Ｏｅｃｈｃｓｌｉｎ，“Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  ｅｎｄ−ｔｏ−ｅｎｄ  Ｉｎｔｅｒｎｅｔ  ｓｅｒｖｉｃｅｓ  ｕｓｉｎｇ  ａ  ｗｅｉｇｈｔｅｄ  ｐｒｏｐｏｒｔｉｏｎａｌ  ｆａｉｒ  ｓｈａｒｉｎｇ  ＴＣＰ”（ＡＣＭ  Ｃｏｍｐｕｔ．Ｃｏｍｍｕｎ．Ｒｅｖ．，ｖｏｌ．２８，ｎｏ．３，ｐｐ．５３−６９，Ｊｕｌｙ  １９９８）
【非特許文献４】Ｃ．Ｃａｓｅｔｔｉ，Ｍ．Ｇｅｒｌａ，Ｓ．Ｍａｓｃｏｌｏ，Ｍ．Ｙ．Ｓａｎａｄｉｄｉ，ａｎｄ  Ｒ．Ｗａｎｇ，“ＴＣＰ  Ｗｅｓｔｗｏｏｄ：Ｂａｎｄｗｉｄｔｈ  Ｅｓｔｉｍａｔｉｏｎ  ｆｏｒ  Ｅｎｈａｎｃｅｄ  Ｔｒａｎｓｐｏｒｔ  ｏｖｅｒ  Ｗｉｒｅｌｅｓｓ  Ｌｉｎｋｓ”（Ｉｎ  ｐｒｏｃ．ｏｆ  Ｍｏｂｉｃｏｍ  ２００１）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来の帯域制御を実現する第一の技術では、導入コストが高いという問題点がある。この第一の技術では、ネットワーク内のノードに優先制御方式を実装しなければならないため、すでにネットワーク内に導入されているノードを帯域制御方式対応のものに置き換える必要がある。また、送信端末だけに目標帯域等のセッション毎のパラメータを設定するだけでなく、全ノードにこれらのパラメータを設定する必要があるため、ノードのコストも、運用管理のコストも大きい。【００１２】
従来の帯域差別化を実現する第二の技術では、帯域の差別化は可能であるが、絶対的な品質目標が定められている場合に、この目標に則した品質を保証することができないという問題点がある。【００１３】
従来の帯域制御を実現する第三の技術では、ネットワークの輻輳状態に関わらず輻輳ウインドサイズの目標値を定めるため、場合によってネットワークの深刻な輻輳を引き起こしてスループットが大幅に低下してしまうという問題点がある。この第三の技術では、目標帯域がネットワークの利用可能帯域よりも大きい場合、ウインドサイズを大きくしてスループットを増加させようとしても、利用可能帯域を越えるパケットがネットワーク内で廃棄されることになる。この場合には、目標帯域と利用可能帯域との差が大きければ、多くのパケットが廃棄されることになり、ＴＣＰの再送タイムアウトが発生して秒単位での通信停止の状態となり、大幅にスループットが低下する。【００１４】
一方、従来のＴＣＰでは、このような場合、ネットワークの輻輳度に応じてウインドサイズが小さくなるため、再送タイムアウトが発生するほど多くのパケット廃棄が発生しない。したがって、このような場合では、第二の技術が逆効果となって、従来のＴＣＰを使う場合に比べてもスループットが低下してしまう。【００１５】
そこで、本発明の目的は上記の問題点を解消し、ネットワークを深刻な輻輳状態へと陥らせることなく、ＴＣＰセッションのスループットを目標帯域にしたがって制御することができる通信システム、通信端末、中継ノード及びそれに用いる通信方法並びにそのプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
上記課題を解決する第１の発明は、ネットワークを介して複数の通信端末間でデータの送受信を行いかつ前記通信端末間の通信を中継する中継ノードを含む通信システムであって、前記通信端末及び前記中継ノードのいずれかは、発生したデータ量を入力とし、予め設定された目標帯域を出力速度とする入力バケットと、前記入力バケットから出力されるデータ量を入力とし、実際の出力帯域を出力速度とする出力バケットとを有し、前記出力バケットの蓄積量を、前記目標帯域と実際の出力帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、前記保持手段で保持する値を基に輻輳ウインドの増加量及び減少量を表す輻輳制御パラメータの変更を行う手段とを有することを特徴とする。
【００１７】
上記課題を解決する第２の発明は、上記第１の発明において、前記通信端末及び前記中継ノードのいずれかは、前記保持手段に保持する値が大きくなるのにしたがって輻輳発生時の輻輳ウインドの減少量を小さく設定することを特徴とする。【００１８】
上記課題を解決する第３の発明は、上記第１の発明において、前記通信端末及び前記中継ノードのいずれかは、前記保持手段で保持する値を基に前記目標帯域を修正する手段を含むことを特徴とする。【００１９】
上記課題を解決する第４の発明は、上記第１の発明において、前記通信端末及び前記中継ノードのいずれかは、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、前記目標とする輻輳ウインドの値を基に輻輳発生時の輻輳ウインドの減少量を設定する手段とを含むことを特徴とする。【００２０】
上記課題を解決する第５の発明は、上記第１から第４のいずれかの発明において、送信側の通信端末の保持手段は、発生した送信データ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってそのカウント値を減少する前記入力バケットの第一のカウンタと、前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自端末から実際に出力されたデータ量にしたがってそのカウント値を減少する前記出力バケットの第二のカウンタとを含み、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする。
【００２１】
上記課題を解決する第６の発明は、上記第１から第４のいずれかの発明において、前記中継ノードの保持手段は、受信したデータ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってカウント値を減少する前記入力バケットの第一のカウンタと、前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自ノードから実際に出力されたデータ量にしたがってカウント値を減少する前記出力バケットの第二のカウンタとを含み、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする。
【００２２】
上記課題を解決する第７の発明は、上記第２から第６のいずれかの発明において、前記通信端末及び前記中継ノードのいずれかは、減少後の輻輳ウインドが減少前の輻輳ウインドの半分以下であれば、前記減少後の輻輳ウインドを前記減少前の輻輳ウインドの半分とすることを特徴とする。【００２３】
上記課題を解決する第８の発明は、上記第１から第４のいずれかの発明において、前記通信端末及び前記中継ノードのいずれかは、前記ネットワークの輻輳度を基に輻輳ウインドの上限を計算する手段を含み、輻輳発生時に輻輳ウインドを減少させる場合、前記輻輳ウインドを少なくとも前記上限以下に減少させることを特徴とする。【００２４】
上記課題を解決する第９の発明は、上記第８の発明において、前記通信端末及び前記中継ノードのいずれかは、パケット廃棄の検出直前の輻輳ウインドの値に対する一定値の減算及び一定値の乗算のいずれかを行って前記輻輳ウインドの上限を計算することを特徴とする。【００２５】
上記課題を解決する第１０の発明は、上記第８の発明において、前記通信端末及び前記中継ノードのいずれかは、再送タイムアウトの頻度に比例して前記輻輳ウインドの上限を小さく設定することを特徴とする。【００２６】
上記課題を解決する第１１の発明は、上記第１の発明において、前記通信端末及び前記中継ノードのいずれかは、前記保持手段で保持された値が大きくなるにしたがって非輻輳時の輻輳ウインドの増加量を大きく設定する手段を含むことを特徴とする。【００２７】
上記課題を解決する第１２の発明は、上記第１の発明において、前記通信端末及び前記中継ノードのいずれかは、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、前記目標とする輻輳ウインドの値と現在の輻輳ウインドの値とを基に非輻輳時の輻輳ウインドの増加量を設定する手段とを含むことを特徴とする。【００２８】
上記課題を解決する第１３の発明は、上記第１２の発明において、前記通信端末及び前記中継ノードのいずれかは、現在の輻輳ウインドの値が前記目標とする輻輳ウインドの値よりも小さい場合に、前記非輻輳時の輻輳ウインドの増加量を大きく変更する手段と、往復転送遅延時間が大きくなるにしたがって前記増加量を小さく変更する手段とを含むことを特徴とする。【００２９】
上記課題を解決する第１４の発明は、ネットワークを介して複数の通信端末間でデータの送受信を行いかつ前記通信端末間の通信を中継する中継ノードを含む通信システムであって、受信側の通信端末及び前記中継ノードのいずれかは、送信側の通信端末から送信されたデータ量を入力とし、目標帯域を出力速度とする入力バケットを有し、入力バケットの蓄積量を、入力帯域と目標帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、前記保持手段で保持する値を基に前記送信側の通信端末へと返送する送達確認応答パケットを分割する手段とを有することを特徴とする。
【００３０】
上記課題を解決する第１５の発明は、上記第１４の発明において、前記受信側の通信端末及び前記中継ノードのいずれかは、１つのデータパケットの受信に対して受信確認するシーケンス番号を少しずつ大きくした複数の送達確認応答パケットに分割してその送達確認応答パケットを前記送信側の通信端末に返信する手段を含み、前記保持手段で保持する値が大きくなるにしたがって前記送達確認応答パケットの分割数を大きくすることを特徴とする。【００３１】
上記課題を解決する第１６の発明は、ネットワークを介して他の通信端末との間でデータの送受信を行う通信端末であって、発生したデータ量を入力とし、予め設定された目標帯域を出力速度とする入力バケットと、前記入力バケットから出力されるデータ量を入力とし、実際の出力帯域を出力速度とする出力バケットとを有し、前記出力バケットの蓄積量を、前記目標帯域と前記実際の出力帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、前記保持手段で保持する値を基に輻輳ウインドの増加量及び減少量を表す輻輳制御パラメータの変更を行う手段とを有することを特徴とする。
【００３２】
上記課題を解決する第１７の発明は、上記第１６の発明において、前記保持手段に保持する値が大きくなるのにしたがって輻輳発生時の輻輳ウインドの減少量を小さく設定することを特徴とする。【００３３】
上記課題を解決する第１８の発明は、上記第１６の発明において、前記保持手段で保持する値を基に前記目標帯域を修正する手段を含むことを特徴とする。【００３４】
上記課題を解決する第１９の発明は、上記第１８の発明において、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、前記目標とする輻輳ウインドの値を基に前記輻輳発生時の輻輳ウインドの減少量を設定する手段とを含むことを特徴とする。【００３５】
上記課題を解決する第２０の発明は、上記第１６から第１９のいずれかの発明において、発生した送信データ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってそのカウント値を減少する前記入力バケットの第一のカウンタと、前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自端末から実際に出力されたデータ量にしたがってそのカウント値を減少する前記出力バケットの第二のカウンタとを含み、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする。
【００３６】
上記課題を解決する第２１の発明は、上記第１６から第２１のいずれかの発明において、減少後の輻輳ウインドが減少前の輻輳ウインドの半分以下であれば、前記減少後の輻輳ウインドを前記減少前の輻輳ウインドの半分とすることを特徴とする。【００３７】
上記課題を解決する第２２の発明は、上記第１６から第２１のいずれかの発明において、前記ネットワークの輻輳度を基に輻輳ウインドの上限を計算する手段を含み、輻輳発生時に輻輳ウインドを減少させる場合、前記輻輳ウインドを少なくとも前記上限以下に減少させることを特徴とする。【００３８】
上記課題を解決する第２３の発明は、上記第２２の発明において、パケット廃棄の検出直前の輻輳ウインドの値に対する一定値の減算及び一定値の乗算のいずれかを行って前記輻輳ウインドの上限を計算することを特徴とする。【００３９】
上記課題を解決する第２４の発明は、上記第２２の発明において、再送タイムアウトの頻度に比例して前記輻輳ウインドの上限を小さく設定することを特徴とする。【００４０】
上記課題を解決する第２５の発明は、上記第１６の発明において、前記保持手段で保持された値が大きくなるにしたがって非輻輳時の輻輳ウインドの増加量を大きく設定する手段を含むことを特徴とする。【００４１】
上記課題を解決する第２６の発明は、上記第１６の発明において、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、前記目標とする輻輳ウインドの値と現在の輻輳ウインドの値とを基に非輻輳時の輻輳ウインドの増加量を設定する手段とを含むことを特徴とする。【００４２】
上記課題を解決する第２７の発明は、上記第２６の発明において、現在の輻輳ウインドの値が前記目標とする輻輳ウインドの値よりも小さい場合に、前記非輻輳時の輻輳ウインドの増加量を大きく変更する手段と、往復転送遅延時間が大きくなるにしたがって前記増加量を小さく変更する手段とを含むことを特徴とする。【００４３】
上記課題を解決する第２８の発明は、ネットワークを介して他の通信端末との間でデータの送受信を行う通信端末であって、送信側の通信端末から送信されたデータ量を入力とし、目標帯域を出力速度とする入力バケットを有し、入力バケットの蓄積量を、前記入力帯域と目標帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、前記保持手段で保持する値を基に前記送信側の通信端末へと返送する送達確認応答パケットを分割する手段とを有することを特徴とする。
【００４４】
上記課題を解決する第２９の発明は、上記第２８の発明において、１つのデータパケットの受信に対して受信確認するシーケンス番号を少しずつ大きくした複数の送達確認応答パケットに分割してその送達確認応答パケットを前記送信側の通信端末に返信する手段を含み、前記保持手段で保持する値が大きくなるにしたがって前記送達確認応答パケットの分割数を大きくすることを特徴とする。【００４５】
上記課題を解決する第３０の発明は、ネットワークを介して複数の通信端末間でデータの送受信を行う通信システムにおいて、前記通信端末間の通信を中継する中継ノードであって、発生したデータ量を入力とし、予め設定された目標帯域を出力速度とする入力バケットと、前記入力バケットから出力されるデータ量を入力とし、実際の出力帯域を出力速度とする出力バケットとを有し、前記出力バケットの蓄積量を、前記目標帯域と実際の出力帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、前記保持手段で保持する値を基に輻輳ウインドの増加量及び減少量を表す輻輳制御パラメータの変更を行う手段とを有することを特徴とする。
【００４６】
上記課題を解決する第３１の発明は、上記第３０の発明において、前記保持手段に保持する値が大きくなるのにしたがって輻輳発生時の輻輳ウインドの減少量を小さく設定することを特徴とする。【００４７】
上記課題を解決する第３２の発明は、上記第３０の発明において、前記保持手段で保持する値を基に前記目標帯域を修正する手段を含むことを特徴とする。【００４８】
上記課題を解決する第３３の発明は、上記第３０の発明において、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、前記輻輳発生時の輻輳ウインドの減少量を前記目標とする輻輳ウインドの値を基に設定する手段とを含むことを特徴とする。【００４９】
上記課題を解決する第３４の発明は、上記第３０から第３３のいずれかの発明において、受信したデータ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってカウント値を減少する前記入力バケットの第一のカウンタと、前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自ノードから実際に出力されたデータ量にしたがってカウント値を減少する前記出力バケットの第二のカウンタとを含み、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする。
【００５０】
上記課題を解決する第３５の発明は、上記第３０から第３４のいずれかの発明において、減少後の輻輳ウインドが減少前の輻輳ウインドの半分以下であれば、前記減少後の輻輳ウインドを前記減少前の輻輳ウインドの半分とすることを特徴とする。【００５１】
上記課題を解決する第３６の発明は、上記第３０から第３５のいずれかの発明において、前記ネットワークの輻輳度を基に輻輳ウインドの上限を計算する手段を含み、輻輳発生時に輻輳ウインドを減少させる場合、前記輻輳ウインドを少なくとも前記上限以下に減少させることを特徴とする。【００５２】
上記課題を解決する第３７の発明は、上記第３６の発明において、パケット廃棄の検出直前の輻輳ウインドの値に対する一定値の減算及び一定値の乗算のいずれかを行って前記輻輳ウインドの上限を計算することを特徴とする。【００５３】
上記課題を解決する第３８の発明は、上記第３６の発明において、再送タイムアウトの頻度に比例して前記輻輳ウインドの上限を小さく設定することを特徴とする。【００５４】
上記課題を解決する第３９の発明は、上記第３０の発明において、前記保持手段で保持された値が大きくなるにしたがって非輻輳時の輻輳ウインドの増加量を大きく設定する手段を含むことを特徴とする。【００５５】
上記課題を解決する第４０の発明は、上記第３０の発明において、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する手段と、非輻輳時の輻輳ウインドの増加量を前記目標とする輻輳ウインドの値と現在の輻輳ウインドの値とを基に設定する手段とを含むことを特徴とする。【００５６】
上記課題を解決する第４１の発明は、上記第３０の発明において、現在の輻輳ウインドの値が前記目標とする輻輳ウインドの値よりも小さい場合に、前記非輻輳時の輻輳ウインドの増加量を大きく変更する手段と、往復転送遅延時間が大きくなるにしたがって前記増加量を小さく変更する手段とを含むことを特徴とする。【００５７】
上記課題を解決する第４２の発明は、ネットワークを介して複数の通信端末間でデータの送受信を行う通信システムにおいて、前記通信端末間の通信を中継する中継ノードであって、送信側の通信端末から送信されたデータ量を入力とし、目標帯域を出力速度とする入力バケットを有し、入力バケットの蓄積量を、入力帯域と目標帯域との差分の累積及び前記差分の履歴のいずれかとして保持する保持手段と、前記保持手段で保持する値を基に前記送信側の通信端末へと返送する送達確認応答パケットを分割する手段とを有することを特徴とする。
【００５８】
上記課題を解決する第４３の発明は、上記第４２の発明において、１つのデータパケットの受信に対して受信確認するシーケンス番号を少しずつ大きくした複数の送達確認応答パケットに分割してその送達確認応答パケットを前記送信側の通信端末に返信する手段を含み、前記保持手段で保持する値が大きくなるにしたがって前記送達確認応答パケットの分割数を大きくすることを特徴とする。【００５９】
上記課題を解決する第４４の発明は、ネットワークを介して複数の通信端末間でデータの送受信を行いかつ前記通信端末間の通信を中継する中継ノードを含む通信システムに用いる通信方法であって、前記通信端末及び前記中継ノードのいずれかが、発生したデータ量を入力とし、予め設定された目標帯域を出力速度とする入力バケットと、前記入力バケットから出力されるデータ量を入力とし、実際の出力帯域を出力速度とする出力バケットとを有し、前記出力バケットの蓄積量を、前記目標帯域と実際に出力した帯域との差分の累積及び前記差分の履歴のいずれかとして保持手段に保持する処理と、前記保持手段で保持する値を基に輻輳ウインドの増加量及び減少量を表す輻輳制御パラメータの変更を行う処理とを実行することを特徴とする。
【００６０】
上記課題を解決する第４５の発明は、上記第４４の発明において、前記通信端末及び前記中継ノードのいずれかが、前記保持手段に保持する値が大きくなるのにしたがって輻輳発生時の輻輳ウインドの減少量を小さく設定することを特徴とする。【００６１】
上記課題を解決する第４６の発明は、上記第４４の発明において、前記通信端末及び前記中継ノードのいずれかが、前記保持手段で保持する値を基に前記目標帯域を修正する処理を実行することを特徴とする。【００６２】
上記課題を解決する第４７の発明は、上記第４４の発明において、前記通信端末及び前記中継ノードのいずれかが、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する処理と、前記輻輳発生時の輻輳ウインドの減少量を前記目標とする輻輳ウインドの値を基に設定する処理とを実行することを特徴とする。【００６３】
上記課題を解決する第４８の発明は、上記第４４から第４７のいずれかの発明において、送信側の通信端末が、前記入力バケットの第一のカウンタにて発生した送信データ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってそのカウント値を減少する処理と、前記出力バケットの第二のカウンタにおいて前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自端末から実際に出力されたデータ量にしたがってそのカウント値を減少する処理とを実行し、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする。
【００６４】
上記課題を解決する第４９の発明は、上記第４４から第４７のいずれかの発明において、前記中継ノードが、第一のカウンタにて受信したデータ量にしたがってカウント値を増加しかつ前記目標帯域にしたがってカウント値を減少する処理と、第二のカウンタにおいて前記第一のカウンタにて減少させたカウント値にともなってカウント値を増加しかつ自ノードから実際に出力されたデータ量にしたがってカウント値を減少する処理とを実行し、前記第二のカウンタのカウント値を前記保持手段で保持する値とすることを特徴とする。【００６５】
上記課題を解決する第５０の発明は、上記第４５から第４９のいずれかの発明において、前記通信端末及び前記中継ノードのいずれかが、減少後の輻輳ウインドが減少前の輻輳ウインドの半分以下であれば、前記減少後の輻輳ウインドを前記減少前の輻輳ウインドの半分とすることを特徴とする。【００６６】
上記課題を解決する第５１の発明は、上記第４４から第５０のいずれかの発明において、前記通信端末及び前記中継ノードのいずれかが、前記ネットワークの輻輳度を基に輻輳ウインドの上限を計算する処理を実行し、輻輳発生時に輻輳ウインドを減少させる場合、前記輻輳ウインドを少なくとも前記上限以下に減少させることを特徴とする。【００６７】
上記課題を解決する第５２の発明は、上記第５１の発明において、前記通信端末及び前記中継ノードのいずれかが、パケット廃棄の検出直前の輻輳ウインドの値に対する一定値の減算及び一定値の乗算のいずれかを行って前記輻輳ウインドの上限を計算することを特徴とする。【００６８】
上記課題を解決する第５３の発明は、上記第５１の発明において、前記通信端末及び前記中継ノードのいずれかが、再送タイムアウトの頻度に比例して前記輻輳ウインドの上限を小さく設定することを特徴とする。【００６９】
上記課題を解決する第５４の発明は、上記第４４の発明において、前記通信端末及び前記中継ノードのいずれかが、前記保持手段で保持された値が大きくなるにしたがって非輻輳時の輻輳ウインドの増加量を大きく設定する処理を実行することを特徴とする。【００７０】
上記課題を解決する第５５の発明は、上記第４４の発明において、前記通信端末及び前記中継ノードのいずれかが、予め設定された目標帯域及び修正された目標帯域のいずれかを基に目標とする輻輳ウインドの値を導出する処理と、前記目標とする輻輳ウインドの値と現在の輻輳ウインドの値とを基に非輻輳時の輻輳ウインドの増加量を設定する処理とを実行することを特徴とする。【００７１】
上記課題を解決する第５６の発明は、上記第５５の発明において、前記通信端末及び前記中継ノードのいずれかが、現在の輻輳ウインドの値が前記目標とする輻輳ウインドの値よりも小さい場合に、前記非輻輳時の輻輳ウインドの増加量を大きく変更する処理と、往復転送遅延時間が大きくなるにしたがって前記増加量を小さく変更する処理とを実行することを特徴とする。【００７２】
上記課題を解決する第５７の発明は、ネットワークを介して複数の通信端末間でデータの送受信を行いかつ前記通信端末間の通信を中継する中継ノードを含む通信システムに用いる通信方法であって、受信側の通信端末及び前記中継ノードのいずれかが、送信側の通信端末から送信されたデータ量を入力とし、目標帯域を出力速度とする入力バケットを有し、入力バケットの蓄積量を、入力帯域と目標帯域との差分の累積及び前記差分の履歴のいずれかとして保持手段に保持する処理と、前記保持手段で保持する値を基に前記送信側の通信端末へと返送する送達確認応答パケットを分割する処理とを実行することを特徴とする。
【００７３】
上記課題を解決する第５８の発明は、上記第５７の発明において、前記受信側の通信端末及び前記中継ノードのいずれかが、１つのデータパケットの受信に対して受信確認するシーケンス番号を少しずつ大きくした複数の送達確認応答パケットに分割してその送達確認応答パケットを前記送信側の通信端末に返信する処理を含み、前記保持手段で保持する値が大きくなるにしたがって前記送達確認応答パケットの分割数を大きくすることを特徴とする。【００７４】
上記課題を解決する第５９の発明は、ネットワークを介して複数の通信端末間でデータの送受信を行いかつ前記通信端末間の通信を中継する中継ノードを含む通信システムに用いる通信方法のプログラムであって、前記通信端末及び前記中継ノードのいずれかのコンピュータに、発生したデータ量を入力とし、予め設定された目標帯域を出力速度とする入力バケットと、前記入力バケットから出力されるデータ量を入力とし、実際の出力帯域を出力速度とする出力バケットとを有し、前記出力バケットの蓄積量を、前記目標帯域と実際に出力した帯域との差分の累積及び前記差分の履歴のいずれかとして保持手段に保持する処理と、前記保持手段で保持する値を基に輻輳ウインドの増加量及び減少量を表す輻輳制御パラメータの変更を行う処理とを実行させることを特徴とする。
【００７５】
すなわち、本発明の通信システムは、上記の目的を達成するため、ネットワークを介して複数の端末間でデータの送受信を行う通信システムにおいて、送信端末もしくは端末間の通信を中継する中継ノードが、目標帯域と、実際に出力した帯域との差分の累積あるいは差分の履歴を保持し、これら累積値あるいは差分の履歴を基に輻輳制御パラメータの変更を行うことを特徴としている。【００７６】
ここで、本発明の通信システムでは、ネットワークの状況とは独立に、ユーザが指定した帯域が得られるようにスループットを調整しており、このユーザが指定した帯域を目標帯域としている。また、輻輳制御パラメータは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）において、非輻輳時に輻輳ウインドを増加させ、輻輳時に輻輳ウインドを減少させる処理における輻輳ウインドの増加量及び減少量を表している。さらに、輻輳ウインドとは、受信側からの確認応答による設定値を超えて出力可能なパケットの上限を示している。【００７７】
本発明の他の通信システムは、上記の累積値を基に短期的に目標帯域を修正する手段と、修正された目標帯域を基に目標とする輻輳ウインドの値を導出する手段と、輻輳発生時の輻輳ウインドの減少幅を目標とする輻輳ウインドの値を基に設定する手段とを送信端末もしくは端末間の通信を中継する中継ノードに有することを特徴としている。【００７８】
本発明の別の通信システムは、ネットワークの輻輳度を基に輻輳ウインドの上限を計算する手段を送信端末もしくは端末間の通信を中継する中継ノードに有し、輻輳発生時に輻輳ウインドを減少させる際、少なくとも上限以下に減少させることを特徴としている。【００７９】
本発明のさらに別の通信システムは、上記の累積値を基に短期的に目標帯域を修正する手段と、修正された目標帯域を基に目標とする輻輳ウインドの値を導出する手段と、非輻輳時の輻輳ウインドの増加幅を目標とする輻輳ウインドの値と現在の輻輳ウインドの値とを基に設定する手段とを送信端末もしくは端末間の通信を中継する中継ノードに有することを特徴としている。【００８０】
これによって、本発明の通信システムでは、ＴＣＰの送信端末のみの変更で帯域制御が導入可能であるため、ネットワーク内のノードを置き換えることなく、低コストで帯域制御サービスが実現可能となる。【００８１】
また、本発明の通信システムでは、ネットワーク輻輳度に応じた柔軟なウインドサイズの変更を行うことによって、輻輳検出時のウインドサイズ変更幅を最適化することで、ネットワークを深刻な輻輳状態へと陥らせることなく、ＴＣＰセッションのスループットを目標帯域にしたがって制御することが実現可能となる。
【発明の効果】
【００８２】
本発明は、以下に述べるような構成及び動作とすることで、ネットワークを深刻な輻輳状態へと陥らせることなく、ＴＣＰセッションのスループットを目標帯域にしたがって制御することができるという効果が得られる。
【図面の簡単な説明】
【００８３】
【図１】本発明の一実施例による送信端末の構成を示すブロック図である。
【図２】本発明の一実施例による送信端末の動作を示すフローチャートである。
【図３】本発明の一実施例による累積帯域差分計算部の動作を説明するための図である。
【図４】本発明の他の実施例による送信端末の構成を示すブロック図である。
【図５】本発明の他の実施例による送信端末の動作を示すフローチャートである。
【図６】本発明の別の実施例による中継ノードの構成を示すブロック図である。
【図７】本発明の別の実施例による中継ノードの動作を示すフローチャートである。
【符号の説明】
【００８４】
１，２            端末
３                中継ノード
１１              データ発生部
１２，３２        データ送信制御部
１３，３３        パケット送信部
１４，３４        ＡＣＫ受信部
１５，３５        輻輳判定部
１６，２３，３６  輻輳ウインド決定部
１７，３７        目標帯域設定部
１８，３８        累積帯域差分計算部
１９，３９        輻輳ウインド制限値計算部
２０，４０        目標輻輳ウインド計算部
２１，４１        輻輳ウインド下げ幅計算部
２２              輻輳ウインド上げ幅計算部
３１              データ受信制御部
４２              パケット受信部
４３              ＡＣＫ送信部
【発明を実施するための最良の形態】
【００８５】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例による送信端末の構成を示すブロック図である。図１において、端末１は、送信データが生成されるデータ発生部１１と、生成されたデータを送信するデータ送信制御部１２とから構成されている。【００８６】
データ送信制御部１２は、与えられた輻輳ウインドにしたがってパケット出力を制御するパケット送信部１３と、図示せぬ受信端末からの送達確認パケットを受信するＡＣＫ（ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）受信部１４と、パケット廃棄を検出してネットワークの輻輳度を判定する輻輳判定部１５と、輻輳ウインドのサイズを決定する輻輳ウインド決定部１６とから構成されている。【００８７】
ここで、本実施例では、ネットワークの状況とは独立に、ユーザが指定した帯域が得られるようにスループットを調整しており、このユーザが指定した帯域を目標帯域としている。また、輻輳制御パラメータは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）において、非輻輳時に輻輳ウインドを増加させ、輻輳時に輻輳ウインドを減少させる処理における輻輳ウインドの増加量及び減少量を表している。さらに、輻輳ウインドとは、受信側からの確認応答による設定値を超えて出力可能なパケットの上限を示している。【００８８】
さらに、本実施例による構成では、データ送信制御部１２に、目標とする送信帯域を記憶しておく目標帯域設定部１７と、目標帯域と実際の出力帯域との差分の累積あるいは差分の履歴を計算する累積帯域差分計算部１８と、ネットワークの輻輳度から輻輳ウインドの上限を決定する輻輳ウインド制限値計算部１９と、目標帯域を達成するために必要な輻輳ウインドのサイズを決定する目標輻輳ウインド計算部２０と、目標輻輳ウインドのサイズより輻輳検出時の輻輳ウインドの下げ幅を決定する輻輳ウインド下げ幅計算部２１とを備えている。【００８９】
図２は本発明の一実施例による送信端末の動作を示すフローチャートである。これら図１及び図２を参照して、本発明の一実施例による端末１の動作について説明する。尚、図２に示す処理は端末１のＣＰＵ（中央処理装置）（図示せず）がコンピュータで実行可能なプログラムを実行することでも実現される。【００９０】
端末１は、コネクションが開設されると（図２ステップＳ１）、データ発生部１１で生成されたパケットをパケット送信部１３から出力する（図２ステップＳ２）。端末１は、この送信パケットに対する送達確認応答としてＡＣＫパケットが受信側から返信されると、ＡＣＫ受信部１４にてこれを受信する（図２ステップＳ３）。【００９１】
端末１は、ＡＣＫパケットを受信すると、パケット送信部１３が次のパケットを出力すると同時に、輻輳判定部１５がパケット廃棄の有無を検査する（図２ステップＳ６）。ここで、端末１は、輻輳判定部１５がパケット廃棄を検出しなければ、輻輳ウインド決定部１６にて輻輳ウインドを１ＭＳＳ（Ｍａｘｉｍｕｍ  Ｓｅｇｍｅｎｔ  Ｓｉｚｅ：最大セグメントサイズ）（送受信可能な正味の最大データ長）分増加する（図２ステップＳ７）。一方、端末１は、パケット廃棄を検出した場合、ＴＣＰ−Ｒｅｎｏ（例えば、非特許文献２参照）では輻輳ウインドを半減するが、本実施例では、以下のような処理を行う。【００９２】
まず、端末１では、ＡＣＫパケット受信時に目標帯域と実際の出力帯域との差分の累積あるいは差分の履歴を累積帯域差分計算部１８にて計算する（図２ステップＳ４）。【００９３】
この差分の計算について、図３を参照して説明する。累積帯域差分計算部１８では、発生したデータ量と目標帯域の差分の累積あるいは差分の履歴とを入力バケットにて保持しておき、この入力バケットから出力されるデータ量が、端末１から出力されるべき目標となるデータ量である。【００９４】
また、累積帯域差分計算部１８では、入力バケットから出力されるデータ量と、実際に端末１から出力されたデータ量の累積との差分を出力バケットにて保持する。したがって、出力バケットの蓄積量が目標帯域と実際の出力帯域との差分の累積あるいは差分の履歴を表し、これが正の値であれば、出力帯域が目標帯域に満たないことを示し、これが負の値であれば、目標帯域よりも出力帯域が大きいことを示している。【００９５】
目標輻輳ウインド計算部２０では、累積帯域差分を０に近づけるために、
「短期的目標帯域」＝「目標帯域」＋「累積帯域差分」／「時定数」・・・（１）
という式のように、短期的な目標帯域を定める。次に、目標輻輳ウインド計算部２０は、
「目標輻輳ウインド」＝「短期的目標帯域」×「往復伝播遅延時間」・・・（２）
という式のように目標輻輳ウインドを定める。【００９６】
輻輳ウインド制限値計算部１９では、
「輻輳ウインド制限値」＝「現在の輻輳ウインドサイズ」−「最大セグメントサイズ」×２・・・（３）
という式によって輻輳ウインドの上限を定める。但し、再送タイムアウトが頻発している場合等、ネットワークに深刻な輻輳が発生していることが推定される際には、輻輳ウインドの制限値を上記の（３）式よりも小さく設定する。【００９７】
端末１では、パケット廃棄を検出した際に、輻輳ウインドを半減するのではなく、目標輻輳ウインドと輻輳ウインド制限値とのうち小さい方を新しい輻輳ウインドとする。但し、ここで、輻輳ウインドが半分よりも小さくなってしまう場合には、ＴＣＰ−Ｒｅｎｏと同様に、輻輳ウインドを半減するものとする。これは、ネットワークに帯域の余裕があり、ＴＣＰ−Ｒｅｎｏで得られるであろう帯域が目標帯域よりも大きい場合には、目標帯域によらず、ＴＣＰ−Ｒｅｎｏと同様の帯域を得るためである。すなわち、本実施例では、スループットを目標帯域に固定するのではなく、スループットが目標帯域を下回らないように制御することが可能である。【００９８】
このように、本実施例では、パケット廃棄を検出した際の輻輳ウインドの減少幅を目標帯域にしたがって最適化することによって、スループットが目標帯域を下回らないように制御することができる。【００９９】
また、本実施例では、輻輳ウインドの上限値を設定することで、ネットワークに深刻な輻輳を発生させることを防止するとともに、目標帯域と実際に出力帯域との差分の累積あるいは差分の履歴を用いて柔軟に目標輻輳ウインドを設定することによって、出力帯域の変動を許容しつつも、目標帯域に対して出力帯域を追従させることができる。【０１００】
図４は本発明の他の実施例による送信端末の構成を示すブロック図である。図４において、本発明の他の実施例による端末２は、データ送信制御部１２の構成に、非輻輳時の輻輳ウインド増加量を変更する輻輳ウインド上げ幅計算部２２を加え、輻輳ウインド決定部１６の代わりに、輻輳ウインド上げ幅計算部２２の計算結果をも含めて輻輳ウインドを決定する輻輳ウインド決定部２３を設けた以外は、図１に示す本発明の一実施例による端末１と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の一実施例と同様である。【０１０１】
図５は本発明の他の実施例による送信端末の動作を示すフローチャートである。これら図４及び図５を参照して、本発明の他の実施例による端末２の動作について説明する。尚、図５に示す処理は端末２のＣＰＵ（図示せず）がコンピュータで実行可能なプログラムを実行することでも実現される。また、図５のステップＳ２１〜Ｓ２５，Ｓ２７〜Ｓ３２の処理は図２のステップＳ１〜Ｓ１１の処理と同様であるので、その説明を省略する。【０１０２】
本実施例による端末２の動作は、本発明の一実施例による端末１の動作とほぼ同様であり、図５のステップＳ２６の処理、つまりＡＣＫパケットを受信した後に、輻輳ウインドの上げ幅を計算する点のみが異なる。輻輳ウインド上げ幅計算部２２では、現在の輻輳ウインドが目標輻輳ウインドよりも大きければ、上述した本発明の一実施例と同様に、輻輳ウインドを１ＭＳＳ（Ｍａｘｉｍｕｍ  Ｓｅｇｍｅｎｔ  Ｓｉｚｅ）ずつ増加させるように設定する。さもなければ、輻輳ウインドをＮ×ＭＳＳずつ増加させるように設定する。ここで、Ｎは１以上の自然数であり、予め固定値を設定してもよいし、ボトルネックリンク帯域の比例した値を動的に設定してもよい。【０１０３】
また、ＮはＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ：往復遅延時間）の計測値を基に動的に変更してもよく、例えば、
Ｎ＝１＋ＡｅＢ（ＲＴＴ−最小ＲＴＴ）／（最大ＲＴＴ−最小ＲＴＴ）・・・（４）
という式のように設定しても良い。尚、この式において、Ａ及びＢは予め設定された０以上の数である。【０１０４】
このように、本実施例では、輻輳ウインドが目標値に満たない場合、輻輳ウインドを急速に増加させるため、よりすばやくスループットを目標帯域に追従させることができる。【０１０５】
図６は本発明の別の実施例による中継ノードの構成を示すブロック図である。図６において、中継ノード３は送信端末（図示せず）からのデータを受信するデータ受信制御部３１と、受信したデータを受信端末（図示せず）へと送信するデータ送信制御部３２とから構成されている。【０１０６】
データ受信制御部３１は送信端末から送信されてきたデータパケットを受信するパケット受信部４２と、受信パケットに対するＡＣＫパケットを生成して送信端末へと送り返すＡＣＫ送信部４３とから構成されている。また、データ送信制御部３２の構成は、図１に示す本発明の一実施例におけるデータ送信制御部１２の構成と同様に、パケット送信部３３と、ＡＣＫ受信部３４と、輻輳判定部３５と、輻輳ウインド決定部３６と、目標帯域設定部３７と、累積帯域差分計算部３８と、輻輳ウインド制限値計算部３９と、目標輻輳ウインド計算部４０と、輻輳ウインド下げ幅計算部４１とから構成されている。【０１０７】
図７は本発明の別の実施例による中継ノード３の動作を説明するフローチャートである。これら図６及び図７を参照して、本発明の別の実施例による中継ノード３の動作について説明する。尚、図７に示す処理は中継ノード３のＣＰＵ（図示せず）がコンピュータで実行可能なプログラムを実行することでも実現される。【０１０８】
本実施例は、本発明を送信端末ではなく、セッション中継ノードに適用した例である。セッション中継ノードでは、送信端末とのセッションと、受信端末とのセッションとをそれぞれ開設し（図７ステップＳ４１）、これらのセッション間でデータの中継を行うことで、送信端末と受信端末との間の通信を実現するノードである。【０１０９】
本実施例では、送信端末が出力したパケットをデータ受信制御部３１のパケット受信部４２にて受信し（図７ステップＳ４２）、これをデータ送信制御部３２に渡してパケット送信部３３にて受信端末に出力している。尚、データ送信制御部３２の動作は本発明の一実施例と同様であるため、その説明を省略する。【０１１０】
データ受信制御部３１の動作は、通常の受信端末におけるパケット受信処理と同様であり、パケット受信部４２にて受信したパケットに対応するＡＣＫパケットをＡＣＫ送信部４３にて生成して送信端末へと返送する。しかしながら、ＡＣＫ送信部４３の動作は、以下の点で通常の受信端末とは異なる。【０１１１】
ＡＣＫ送信部４３では累積帯域差分計算部３８が保持している入力バケットの蓄積量を監視し（図７ステップＳ４３）、これが予め定められた閾値よりも小さな値であれば、通常の受信端末での動作と同じく、受信パケットに対するＡＣＫパケットを１個生成して送信端末へと返送する（図７ステップＳ４５）。【０１１２】
ＡＣＫ送信部４３では入力バケットの蓄積量が閾値以上であれば、蓄積量に応じて複数のＡＣＫパケットを生成して送信端末へと返送する（図７ステップＳ４４）。例えば、前回セグメント１０００まで受信済みであり、今回セグメント２５００までのパケットを受信した場合、通常であれば、セグメント２５００に対するＡＣＫパケットを出力するが、ＡＣＫパケットを３個生成する場合にはセグメント１５００、２０００、２５００の３つのＡＣＫパケットを出力する。【０１１３】
ＡＣＫパケットの出力数は、
出力数＝１＋（入力バケット蓄積量／ＭＳＳ）／（１秒間のパケット到着数×時定数）  ・・・（５）
という式のように決定する。【０１１４】
このように、本実施例では、既存の送信端末や受信端末を変更することなく、ネットワーク内にセッション中継ノードを１台以上追加することで、帯域制御を実現することができる。また、本実施例では、中継ノードと受信端末との間の帯域のみでなく、送信端末へのＡＣＫを分割することで、中継ノードと送信端末との間の帯域も制御することができる。
【図１】
0004831366.tif 000002
【図２】
0004831366.tif 000003
【図３】
0004831366.tif 000004
【図４】
0004831366.tif 000005
【図５】
0004831366.tif 000006
【図６】
0004831366.tif 000007
【図７】
0004831366.tif 000008