(57)【要約】【課題】既存のネットワークを変更することなく、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現する。【解決手段】送信レート決定部１５は、パケットロスが発生している場合、または、パケットロスが発生しておらずＲＴＴが増加している場合、輻輳が発生していると判定し、前回算出したＣＷＮＤよりも小さくなるように、優先度に従って新たなＣＷＮＤを算出する。また、パケットロスが発生しておらずＲＴＴの変化が無いまたはＲＴＴが減少している場合、輻輳が発生していないと判定し、前回算出したＣＷＮＤよりも大きくなるように、優先度に従って新たなＣＷＮＤを算出する。これにより、既存のネットワーク経路３をそのまま用いることができる。また、輻輳制御方式を変更するのみで済むから、優先度に従ったデータ伝送を簡易な手法により実現できる。【選択図】図２
2011155406.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、
前記送信したデータパケットに対する応答を受信する受信部と、
前記受信部により受信された応答に基づいて、前記ネットワークの輻輳状態を判定し、前記輻輳状態及び優先度に基づいて、前記輻輳を回避するための送信レートを決定する送信レート決定部と、を備え、
前記送信レート決定部は、
前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、
前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする送信装置。
【請求項２】
請求項１に記載の送信装置において、
さらに、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、ＲＴＴ（Round Trip Time：ラウンドトリップタイム）を計測するＲＴＴ計測部と、
前記受信部により受信された応答に含まれる確認応答番号に基づいて、パケットロスの発生を検出するパケットロス検出部と、を備え、
前記送信レート決定部は、
前記パケットロス検出部によりパケットロスの発生が検出された場合、または、前記パケットロスの発生が検出されず、かつ前記ＲＴＴ計測部により計測されたＲＴＴが増加している場合、前記ネットワークの経路に輻輳が発生していると判定し、前記パケットロスの発生が検出されず、かつ前記ＲＴＴが減少している場合、前記ネットワークの経路に輻輳が発生していないと判定する経路状態判定手段と、
前記経路状態判定手段により前記ネットワークの経路に輻輳が発生していると判定された場合、前回算出したデータ量よりも減少させ、かつ、前記優先度が高いときは低いときよりも減少量が小さくなるように、優先度が低いときは高いときよりも減少量が大きくなるように、新たなデータ量を算出し、前記ネットワークの経路に輻輳が発生していないと判定された場合、前回算出したデータ量よりも増加させ、かつ、前記優先度が高いときは低いときよりも増加量が大きくなるように、優先度が低いときは高いときよりも増加量が小さくなるように、新たなデータ量を算出するデータ量算出手段と、
前記データ量算出手段により算出された新たなデータ量と、前記受信部により受信された応答に含まれる最大受付可能データ量とを比較し、前記新たなデータ量が前記最大受付可能データ量以下の場合、前記新たなデータ量をパケット送信量に決定し、前記新たなデータ量が前記最大受付可能データ量よりも大きい場合、前記最大受付可能データ量をパケット送信量に決定するパケット送信量決定手段と、を備え、
前記パケット送信量決定手段により決定されたパケット送信量にて送信レートを制御する、ことを特徴とする送信装置。
【請求項３】
請求項２に記載の送信装置において、
前記ＲＴＴ計測部の代わりに、滞留パケット数算出部を備え、
前記滞留パケット数算出部は、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、ＲＴＴを計測し、前記ＲＴＴ、及び前記送信レート決定部により決定された送信レートにて送信されるデータパケットの量に基づいて、前記ネットワークに滞留している滞留パケット数を算出し、
前記送信レート決定部は、前記受信部により受信された応答に含まれる確認応答番号及び最大受付可能データ量、並びに前記滞留パケット数算出部により算出された滞留パケット数に基づいて、前記ネットワークの輻輳状態を判定し、前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする送信装置。
【請求項４】
ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、
前記送信したデータパケットに対する応答を受信する受信部と、
前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、ＲＴＴ（Round Trip Time：ラウンドトリップタイム）を計測するＲＴＴ計測部と、
前記受信部により受信された応答に基づいて、前記ネットワークの輻輳状態を判定し、前記輻輳状態、優先度、及び前記ＲＴＴ計測部により計測されたＲＴＴに基づいて、前記輻輳を回避するための送信レートを決定する送信レート決定部と、を備え、
前記送信レート決定部は、
前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、
前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定し、かつ、
前記送信レートを減少させる際に、前記ＲＴＴが大きい場合は、前記ＲＴＴが小さい場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記ＲＴＴが小さい場合は、前記ＲＴＴが大きい場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、
前記送信レートを増加させる際に、前記ＲＴＴが大きい場合は、前記ＲＴＴが小さい場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記ＲＴＴが小さい場合は、前記ＲＴＴが大きい場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする送信装置。
【請求項５】
請求項４に記載の送信装置において、
さらに、前記受信部により受信された応答に含まれる確認応答番号に基づいて、パケットロスの発生を検出するパケットロス検出部を備え、
前記送信レート決定部は、
前記パケットロス検出部によりパケットロスの発生が検出された場合、または、前記パケットロスの発生が検出されず、かつ前記ＲＴＴ計測部により計測されたＲＴＴが増加している場合、前記ネットワークの経路に輻輳が発生していると判定し、前記パケットロスの発生が検出されず、かつ前記ＲＴＴが減少している場合、前記ネットワークの経路に輻輳が発生していないと判定する経路状態判定手段と、
前記経路状態判定手段により前記ネットワークの経路に輻輳が発生していると判定された場合、前回算出したデータ量よりも減少させ、かつ、前記優先度が高いときは低いときよりも減少量が小さくなるように、優先度が低いときは高いときよりも減少量が大きくなるように、かつ、前記ＲＴＴが大きいときは小さいときよりも減少量が小さくなるように、ＲＴＴが小さいときは大きいときよりも減少量が大きくなるように、新たなデータ量を算出し、前記ネットワークの経路に輻輳が発生していないと判定された場合、前回算出したデータ量よりも増加させ、かつ、前記優先度が高いときは低いときよりも増加量が大きくなるように、優先度が低いときは高いときよりも増加量が小さくなるように、かつ、前記ＲＴＴが大きいときは小さいときよりも増加量が大きくなるように、ＲＴＴが小さいときは大きいときよりも増加量が小さくなるように、新たなデータ量を算出するデータ量算出手段と、
前記データ量算出手段により算出された新たなデータ量と、前記受信部により受信された応答に含まれる最大受付可能データ量とを比較し、前記新たなデータ量が前記最大受付可能データ量以下の場合、前記新たなデータ量をパケット送信量に決定し、前記新たなデータ量が前記最大受付可能データ量よりも大きい場合、前記最大受付可能データ量をパケット送信量に決定するパケット送信量決定手段と、を備え、
前記パケット送信量決定手段により決定されたパケット送信量にて送信レートを制御する、ことを特徴とする送信装置。
【請求項６】
請求項１から５までのいずれか一項に記載の送信装置において、
さらに、前記データパケットが送信される受信装置の宛先アドレスと、前記宛先アドレスに対応する優先度とを保持する優先度保持部と、
宛先アドレスを入力し、前記優先度保持部から前記宛先アドレスに対応する優先度を読み出し、前記優先度を前記送信レート決定部に出力する優先度生成部と、を備え、
前記送信レート決定部は、前記優先度生成部により出力された優先度を入力し、前記送信レートを決定する、ことを特徴とする送信装置。
【請求項７】
ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、
前記送信したデータパケットに対する応答を受信する受信部と、
前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、ＲＴＴ（Round Trip Time：ラウンドトリップタイム）を計測するＲＴＴ計測部と、
前記ＲＴＴ計測部により計測されたＲＴＴに基づいて、
前記送信レートを減少させる際に、前記ＲＴＴが大きい場合は、前記ＲＴＴが小さい場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記ＲＴＴが小さい場合は、前記ＲＴＴが大きい場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、
前記送信レートを増加させる際に、前記ＲＴＴが大きい場合は、前記ＲＴＴが小さい場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記ＲＴＴが小さい場合は、前記ＲＴＴが大きい場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する送信レート決定部と、
を備えたことを特徴とする送信装置。
【請求項８】
請求項２または５に記載の送信装置において、
前記送信レート決定部は、送信レートを増加させた結果、パケットロスの発生を検出する前にＲＴＴが増加していることを判定した場合、前記送信レートの増加を抑える、ことを特徴とする送信装置。
【請求項９】
ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信する送信方法において、
データパケットを送信するステップと、
前記送信したデータパケットに対する応答を受信するステップと、
前記受信した応答に基づいて前記ネットワークの輻輳状態を判定するステップと、
前記判定した輻輳状態及び優先度に基づいて、前記輻輳を回避するための送信レートを決定するステップと、を有し、
前記送信レートを決定するステップは、
前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、
前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする送信方法。
【請求項１０】
コンピュータを、請求項１から９までのいずれか一項に記載の送信装置として機能させるための送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の送信装置及び複数の受信装置が帯域を共有して接続されたネットワークにおいて、利用者の意図に従ったデータ伝送を実現するために、各伝送の送信レートを制御する技術に関する。
【背景技術】
【０００２】
従来、インターネットに代表されるＩＰネットワークにおいて、送受信装置は同一のネットワーク経路を共有してデータを伝送する。しかしながら、送信装置から送信されたパケットの合計がネットワーク経路の帯域幅を超えた場合、ルータにてパケットは廃棄されてしまい、データは正常に伝送されなくなる。また、パケットが送信装置から無制限に送信された場合、ＩＰネットワークに輻輳が発生し、データは正常に伝送されなくなる。このため、送受信装置において、輻輳を回避することが必要となる。そこで、送受信装置は、ＩＰネットワークで用いられる代表的な伝送プロトコルであるＴＣＰ（Transmission Control Protocol）により、輻輳制御を行っている。
【０００３】
ＴＣＰには輻輳制御機能が組み込まれており、その制御方法として様々な方式が提案されている。提案されているいずれの方式も、送信装置が、受信装置から確認応答（ＡＣＫ）パケットを受信してパケットロスの発生を検出することにより、または、ＲＴＴ（Round Trip Time：ラウンドトリップタイム）を計測してその変化を判定することにより、パケット送信量を決定し、送信レートを制御するものである。
【０００４】
（ＮｅｗＲｅｎｏ方式）
ＴＣＰに組み込まれた輻輳制御機能のうち最も普及している方式は、ＴＣＰ  ＮｅｗＲｅｎｏ方式である（非特許文献１を参照）。このＮｅｗＲｅｎｏ方式は、送信装置が、インクリメントする確認応答番号を含むＡＣＫを受信した場合、その受信毎に、一度に送信するパケット送信量を１パケットずつ増加させ、同一の確認応答番号を含むＡＣＫを連続して受信した場合、パケットロスの発生を検出したと判定し、一度に送信するパケット送信量を１／２に減少させるものである。このようなパケットロスの発生によってパケット送信量を調節するＮｅｗＲｅｎｏ方式は、ロスベース輻輳制御方式と呼ばれている。
【０００５】
ここで、ＡＣＫに含まれる確認応答番号は、送信装置により送信されたデータパケットのパケット番号に対応しており、正常時には、ＡＣＫ毎にインクリメントした値となる。受信装置がデータパケットを受信したが、正しいパケット番号ではなかったと判定した場合には（異常時には）、本来受信すべき番号を確認応答番号としたＡＣＫが生成され、送信装置へ送信される。つまり、受信装置は、正しい番号ではないパケット番号を含むデータパケットを受信した場合、本来受信すべき番号を確認応答番号としたＡＣＫを送信装置へ送信する。このように、受信装置は、正しい番号ではないパケット番号を含むデータパケットを連続して受信した場合、同一の確認応答番号を含むＡＣＫを連続して送信装置へ送信する。
【０００６】
図１０は、従来のＮｅｗＲｅｎｏ方式において、送信パケット数を示す輻輳ウィンドウサイズ（ＣＷＮＤ）の変化を説明するグラフである。このグラフは、シミュレーションにより得られた結果を示している。一般に、ＴＣＰに組み込まれた輻輳制御は、送信装置が一度に送信するパケット数である輻輳ウィンドウサイズ（ＣＷＮＤ）を調節することで行われる。
【０００７】
ＮｅｗＲｅｎｏ方式では、送信装置は、インクリメントする確認応答番号を含むＡＣＫを、受信装置から連続して受信した場合、その受信毎に、ＣＷＮＤを式（１）のように増加させる。
ＣＷＮＤ＝ＣＷＮＤ＋（１／ＣＷＮＤ）      ・・・（１）
これを時間軸上に表すと、ＣＷＮＤは、図１０に示すａ−ｂ区間のように増加する。
【０００８】
そして、送信装置は、同一の確認応答番号を含むＡＣＫを３回連続して受信した場合、パケットロスが発生したものと判定し、ＣＷＮＤを式（２）のように減少させる。つまり、パケット送信量を１／２に減少させる。
ＣＷＮＤ＝（１／２）×ＣＷＮＤ      ・・・（２）
これを時間軸上で表すと、ＣＷＮＤは、図１０において、ｂ時点でパケットロスの発生が判定された場合、ｂ−ｃ区間のように減少する。そして、送信装置は、インクリメントする確認応答番号を含むＡＣＫを連続して受信すると、その受信毎に再び、ＣＷＮＤを式（１）のように増加させる。これを時間軸上で表すと、ＣＷＮＤは、図１０に示すｃ−ｄ区間のように増加する。
【０００９】
尚、図１０に示したＣＷＮＤの変化は、ＮｅｗＲｅｎｏ方式における輻輳回避フェーズと呼ばれる制御フェーズの様子を表したものであり、このフェーズに先がけて、ネットワーク帯域の上限を探るためのスロースタートフェーズと呼ばれる初期制御が行われる。つまり、図１０に示したＣＷＮＤの変化は、初期制御が行われた後の定常的な動作である輻輳回避フェーズを表したものである。
【００１０】
ＮｅｗＲｅｎｏ方式の他に、後述する多くの輻輳制御方式が提案されている。いずれの方式も、送信装置が、正常に確認応答を受信してＣＷＮＤを増加させ、正常に確認応答を受信しない場合にパケットロスの発生を判定することにより、またはＲＴＴの増加を判定することにより、ＣＷＮＤを減少させるものである。
【００１１】
（Ｖｅｇａｓ方式）
他の代表的な輻輳制御方式として、ＴＣＰ  Ｖｅｇａｓ方式（非特許文献２を参照）がある。このＶｅｇａｓ方式は、送信装置がＲＴＴの増減に従ってパケット送信量を調節するものであり、ディレイベース輻輳制御方式と呼ばれている。
【００１２】
（他の方式）
これらの２つの輻輳制御方式を基本にして、帯域の有効利用及び送信レートの公平性の観点から、多くの改良方式が提案されている（例えば特許文献１を参照）。また、伝送されているデータの内容に緊急性がない場合、そのデータのパケット送信量を抑え、緊急性がある場合、そのデータのパケット送信量を増やすことにより、緊急性の高いデータ伝送を優先させる方式も提案されている（特許文献２を参照）。このように、従来の輻輳制御方式は、送信装置及び受信装置が自発的に送信レートを制御することが前提になっている。
【００１３】
一方、ＩＰネットワークにＱｏＳ（Quality of Service）機能を持たせ、各伝送の内容に応じた優先度に基づいて、ルータのパケット転送順位を制御する方式も提案されている。代表的な方式として、ＩｎｔＳｅｒｖ方式及びＤｉｆｆＳｅｒｖ方式がある（非特許文献３，４を参照）。これらの方式は、パケットに優先度が記述されており、ＩＰネットワークを構成するルータが、優先度の高いパケットを優先度の低いパケットよりも先に転送するものである。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００６−２１７２３４号公報
【特許文献２】特開２００６−１４３２９号公報
【非特許文献】
【００１５】
【非特許文献１】ＩＥＴＦ  ＲＦＣ３７８２
【非特許文献２】L.Brakmo and L.Peterson, TCP Vegas: End to End Congestion Avoidance on a Global Internet, IEEE Journal on Selected Areas in Communication, Vol 13 No.8, Oct.1995
【非特許文献３】ＩＥＴＦ  ＲＦＣ１６３３
【非特許文献４】ＩＥＴＦ  ＲＦＣ２４７４
【発明の概要】
【発明が解決しようとする課題】
【００１６】
前述した非特許文献１，２及び特許文献１による方式は、送受信装置がＩＰネットワークの帯域を公平に利用するように、送信レートを制御することを目的としている。このため、伝送内容に応じた優先度に従ってデータを伝送することができないという問題があった。例えば、リアルタイム性が要求される映像データ及び音声データを伝送しているときに、後から伝送しても構わないデータの伝送が開始されてネットワークが混雑すると、リアルタイム性が要求される映像または音声が途切れてしまうことがある。また、利用者により緊急性を要すると判断されたデータを伝送したい場合であっても、緊急性を要するデータを他のデータと比較して高速に伝送することができない。
【００１７】
また、前述した特許文献２による方式は、ある送信装置から受信装置への送信レートを抑え、他の送信装置から受信装置へのデータ伝送を優先させるものである。このため、利用者の所望する段階的な優先度に従って、送信レートを制御することができない。
【００１８】
また、従来のＮｅｗＲｅｎｏ方式では、送信装置は、受信装置からＡＣＫを受信した時に、ＡＣＫに含まれる確認応答番号に基づいてパケット送信量を増減させる。このため、ＲＴＴが大きい場合にはパケット送信量を増加させるのに時間がかかってしまう。つまり、ＲＴＴが大きい場合はＲＴＴが小さい場合に比べ、相対的に送信レートを増加させるのが遅くなってしまう。一般に、ＲＴＴは、送信装置と受信装置との間の距離に比例して増大する。このため、受信装置を基点とすると、遠方の送信装置との間の送信レートは、距離的に近い送信装置との間の送信レートよりも低くなってしまう。これでは、利用者の所望する優先度に従ったデータ伝送を実現することができず、また、利用者が意図するパケット送信量のデータ伝送を実現することができない。
【００１９】
図１１は、従来のＮｅｗＲｅｎｏ方式における、ＲＴＴの違いによるＣＷＮＤの変化を説明するグラフである。このグラフは、シミュレーションにより得られた結果を示している。図１１に示すように、ＲＴＴが大きい場合はＲＴＴが小さい場合に比べ、パケット送信量を示すＣＷＮＤを増加させるのに時間を要し、送信レートは低くなる。
【００２０】
また、前述した非特許文献３，４の方式は、ＩＰネットワークを構成するルータが優先度に応じて転送を行うものである。この方式を実現するためには、ＩＰネットワークを構成するルータを、この方式に対応したものに置き換える必要があり、既存のＩＰネットワークをそのまま利用することができないという問題があった。
【００２１】
このように、利用者の所望する優先度に従って、優先度の高いデータを高速に伝送し、優先度の低いデータを低速に伝送できるように、既存のＩＰネットワークを変更することなく簡易な手法によって各伝送の送信レートを制御することが望まれていた。また、ＲＴＴの大小に影響を受けることなく、利用者の意図に従ったデータ伝送を実現することが望まれていた。
【００２２】
そこで、本発明はかかる問題を解決するためになされたものであり、本発明の目的は、既存のネットワークを変更することなく、利用者の意図に従ったデータ伝送を、簡易な手法にて実現する送信装置、送信方法及びプログラムを提供することにある。具体的には、本発明の目的は、利用者の所望する優先度に従って、優先度の高いデータを高速に伝送し、優先度の低いデータを低速に伝送することが可能なデータ伝送を、簡易な手法にて実現することにある。また、他の目的は、ＲＴＴの大小にかかわらず、利用者の意図に従ったデータ伝送を、簡易な手法にて実現することにある。
【課題を解決するための手段】
【００２３】
上記目的を達成するために、本発明による送信装置は、ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、前記送信したデータパケットに対する応答を受信する受信部と、前記受信部により受信された応答に基づいて、前記ネットワークの輻輳状態を判定し、前記輻輳状態及び優先度に基づいて、前記輻輳を回避するための送信レートを決定する送信レート決定部と、を備え、前記送信レート決定部が、前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする。
【００２４】
また、本発明による送信装置は、さらに、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、ＲＴＴ（Round Trip Time：ラウンドトリップタイム）を計測するＲＴＴ計測部と、前記受信部により受信された応答に含まれる確認応答番号に基づいて、パケットロスの発生を検出するパケットロス検出部と、を備え、前記送信レート決定部が、前記パケットロス検出部によりパケットロスの発生が検出された場合、または、前記パケットロスの発生が検出されず、かつ前記ＲＴＴ計測部により計測されたＲＴＴが増加している場合、前記ネットワークの経路に輻輳が発生していると判定し、前記パケットロスの発生が検出されず、かつ前記ＲＴＴが減少している場合、前記ネットワークの経路に輻輳が発生していないと判定する経路状態判定手段と、
前記経路状態判定手段により前記ネットワークの経路に輻輳が発生していると判定された場合、前回算出したデータ量よりも減少させ、かつ、前記優先度が高いときは低いときよりも減少量が小さくなるように、優先度が低いときは高いときよりも減少量が大きくなるように、新たなデータ量を算出し、前記ネットワークの経路に輻輳が発生していないと判定された場合、前回算出したデータ量よりも増加させ、かつ、前記優先度が高いときは低いときよりも増加量が大きくなるように、優先度が低いときは高いときよりも増加量が小さくなるように、新たなデータ量を算出するデータ量算出手段と、前記データ量算出手段により算出された新たなデータ量と、前記受信部により受信された応答に含まれる最大受付可能データ量とを比較し、前記新たなデータ量が前記最大受付可能データ量以下の場合、前記新たなデータ量をパケット送信量に決定し、前記新たなデータ量が前記最大受付可能データ量よりも大きい場合、前記最大受付可能データ量をパケット送信量に決定するパケット送信量決定手段と、を備え、前記パケット送信量決定手段により決定されたパケット送信量にて送信レートを制御する、ことを特徴とする。
【００２５】
また、本発明による送信装置は、前記ＲＴＴ計測部の代わりに、滞留パケット数算出部を備え、前記滞留パケット数算出部が、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、ＲＴＴを計測し、前記ＲＴＴ、及び前記送信レート決定部により決定された送信レートにて送信されるデータパケットの量に基づいて、前記ネットワークに滞留している滞留パケット数を算出し、前記送信レート決定部が、前記受信部により受信された応答に含まれる確認応答番号及び最大受付可能データ量、並びに前記滞留パケット数算出部により算出された滞留パケット数に基づいて、前記ネットワークの輻輳状態を判定し、前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする。
【００２６】
また、本発明による送信装置は、ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、前記送信したデータパケットに対する応答を受信する受信部と、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、ＲＴＴ（Round Trip Time：ラウンドトリップタイム）を計測するＲＴＴ計測部と、前記受信部により受信された応答に基づいて、前記ネットワークの輻輳状態を判定し、前記輻輳状態、予め設定された優先度、及び前記ＲＴＴ計測部により計測されたＲＴＴに基づいて、前記輻輳を回避するための送信レートを決定する送信レート決定部と、を備え、前記送信レート決定部が、前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定し、かつ、前記送信レートを減少させる際に、前記ＲＴＴが大きい場合は、前記ＲＴＴが小さい場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記ＲＴＴが小さい場合は、前記ＲＴＴが大きい場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記ＲＴＴが大きい場合は、前記ＲＴＴが小さい場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記ＲＴＴが小さい場合は、前記ＲＴＴが大きい場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする。
【００２７】
また、本発明による送信装置は、さらに、前記受信部により受信された応答に含まれる確認応答番号に基づいて、パケットロスの発生を検出するパケットロス検出部を備え、前記送信レート決定部が、前記パケットロス検出部によりパケットロスの発生が検出された場合、または、前記パケットロスの発生が検出されず、かつ前記ＲＴＴ計測部により計測されたＲＴＴが増加している場合、前記ネットワークの経路に輻輳が発生していると判定し、前記パケットロスの発生が検出されず、かつ前記ＲＴＴが減少している場合、前記ネットワークの経路に輻輳が発生していないと判定する経路状態判定手段と、前記経路状態判定手段により前記ネットワークの経路に輻輳が発生していると判定された場合、前回算出したデータ量よりも減少させ、かつ、前記優先度が高いときは低いときよりも減少量が小さくなるように、優先度が低いときは高いときよりも減少量が大きくなるように、かつ、前記ＲＴＴが大きいときは小さいときよりも減少量が小さくなるように、ＲＴＴが小さいときは大きいときよりも減少量が大きくなるように、新たなデータ量を算出し、前記ネットワークの経路に輻輳が発生していないと判定された場合、前回算出したデータ量よりも増加させ、かつ、前記優先度が高いときは低いときよりも増加量が大きくなるように、優先度が低いときは高いときよりも増加量が小さくなるように、かつ、前記ＲＴＴが大きいときは小さいときよりも増加量が大きくなるように、ＲＴＴが小さいときは大きいときよりも増加量が小さくなるように、新たなデータ量を算出するデータ量算出手段と、前記データ量算出手段により算出された新たなデータ量と、前記受信部により受信された応答に含まれる最大受付可能データ量とを比較し、前記新たなデータ量が前記最大受付可能データ量以下の場合、前記新たなデータ量をパケット送信量に決定し、前記新たなデータ量が前記最大受付可能データ量よりも大きい場合、前記最大受付可能データ量をパケット送信量に決定するパケット送信量決定手段と、を備え、前記パケット送信量決定手段により決定されたパケット送信量にて送信レートを制御する、ことを特徴とする。
【００２８】
また、本発明による送信装置は、さらに、前記データパケットが送信される受信装置の宛先アドレスと、前記宛先アドレスに対応する優先度とを保持する優先度保持部と、宛先アドレスを入力し、前記優先度保持部から前記宛先アドレスに対応する優先度を読み出し、前記優先度を前記送信レート決定部に出力する優先度生成部と、を備え、前記送信レート決定部が、前記優先度生成部により出力された優先度を入力し、前記送信レートを決定する、ことを特徴とする。
【００２９】
また、本発明による送信装置は、ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、前記送信したデータパケットに対する応答を受信する受信部と、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、ＲＴＴ（Round Trip Time：ラウンドトリップタイム）を計測するＲＴＴ計測部と、前記ＲＴＴ計測部により計測されたＲＴＴに基づいて、前記送信レートを減少させる際に、前記ＲＴＴが大きい場合は、前記ＲＴＴが小さい場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記ＲＴＴが小さい場合は、前記ＲＴＴが大きい場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記ＲＴＴが大きい場合は、前記ＲＴＴが小さい場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記ＲＴＴが小さい場合は、前記ＲＴＴが大きい場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する送信レート決定部と、を備えたことを特徴とする。
【００３０】
また、本発明による送信装置は、前記送信レート決定部が、送信レートを増加させた結果、パケットロスの発生を検出する前にＲＴＴが増加していることを判定した場合、前記送信レートの増加を抑える、ことを特徴とする。
【００３１】
さらに、本発明による送信方法は、ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信する送信方法において、データパケットを送信するステップと、前記送信したデータパケットに対する応答を受信するステップと、前記受信した応答に基づいて前記ネットワークの輻輳状態を判定するステップと、前記判定した輻輳状態及び優先度に基づいて、前記輻輳を回避するための送信レートを決定するステップと、を有し、前記送信レートを決定するステップが、前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする。
【００３２】
さらに、本発明による送信プログラムは、コンピュータを、前記送信装置として機能させることを特徴とする。
【発明の効果】
【００３３】
本発明によれば、パケット送信量を算出する際に、利用者の意図が反映された優先度を考慮するようにしたから、利用者の意図に従ったデータ伝送を実現することができる。これにより、既存のネットワークをそのまま利用し、ＴＣＰ方式の手順を変更することなく、輻輳制御方式を変更するのみで済むから、簡易な手法にて優先度に従ったデータ伝送を実現できる。また、本発明によれば、パケット送信量を算出する際にＲＴＴを考慮するようにしたから、ＲＴＴの大小にかかわらず、利用者の意図に従ったデータ伝送を実現することができる。
【図面の簡単な説明】
【００３４】
【図１】実施例１の送信装置を含む全体システムの構成を示す図である。
【図２】実施例１による送信装置の構成を示すブロック図である。
【図３】送信レート決定部の構成を示すブロック図である。
【図４】送信装置による輻輳制御の処理を示すフローチャートである。
【図５】実施例１におけるＣＷＮＤの変化を説明するグラフである。
【図６】実施例２の送信装置を含む全体システムの構成を示す図である。
【図７】実施例３の送信装置を含む全体システムの構成を示す図である。
【図８】実施例４の送信装置を含む全体システムの構成を示す図である。
【図９】実施例５の送信装置に含まれる構成部を示す図である。
【図１０】従来のＮｅｗＲｅｎｏ方式におけるＣＷＮＤの変化を説明するグラフである。
【図１１】従来のＮｅｗＲｅｎｏ方式における、ＲＴＴの違いによるＣＷＮＤの変化を説明するグラフである。
【発明を実施するための形態】
【００３５】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。第１の実施形態（実施例１）は、複数台の送信装置から１台の受信装置へデータをアップロードするシステムを想定しており、外部から直接入力した優先度に従って送信レートを調節する例である。第２の実施形態（実施例２）は、複数台の送信装置から１台の受信装置へデータをアップロードするシステムを想定しており、優先度に従うことに加え、ＲＴＴの影響を受けないように送信レートを調節する例である。第３の実施形態（実施例３）は、１台の送信装置から複数台の受信装置へデータをダウンロードするシステムを想定しており、実施例１に対応し、外部から直接入力した優先度に従って送信レートを調節する例である。第４の実施形態（実施例４）は、１台の送信装置から複数台の受信装置へデータをダウンロードするシステムを想定しており、実施例２に対応し、優先度に従うことに加え、ＲＴＴの影響を受けないように送信レートを調節する例である。第５の実施形態（実施例５）は、データをアップロードまたはダウンロードするシステムを想定しており、優先度を外部から直接入力するのではなく、受信装置を示す宛先アドレスに基づいて優先度を生成する例である。第６の実施形態（実施例６）は、データをアップロードまたはダウンロードするシステムを想定しており、ＲＴＴの影響を受けないように送信レートを調節する例である。
【実施例１】
【００３６】
まず、実施例１について詳細に説明する。実施例１は、複数台の送信装置から１台の受信装置へデータをアップロードするシステムを想定しており、外部から直接入力した優先度に従って送信レートを調節する例である。
【００３７】
図１は、実施例１の送信装置を含む全体システムの構成を示す図である。実施例１のシステムは、複数台の送信装置１−１，１−２，１−３，・・・（例えば、複数台のクライアント）と、１台の受信装置２（例えば、１台のサーバ）とを備えて構成され、複数台の送信装置１−１，１−２，１−３，・・・が１台の受信装置２へ向けて同時に伝送するデータのアップロードを想定したシステムである。送信装置１−１，１−２，１−３，・・・と受信装置２とはネットワーク経路３により接続される。
【００３８】
各送信装置１−１，１−２，１−３，・・・は、共有するネットワーク経路３を介して受信装置２へ向けてデータを伝送する。このため、データを同時に伝送するには、帯域を分け合う必要がある。従来のＴＣＰによるデータ伝送では、送信装置に備えた輻輳制御機能により、各送信装置が公平に帯域を使用するように送信レートが制御される。
【００３９】
しかしながら、それぞれの伝送内容により、重要性または緊急度の高いファイルのデータを、より高速に受信装置２へ伝送したいという利用者の要求があっても、優先度を付けてデータを伝送することができなかった。そこで、実施例１では、利用者の所望する優先度に従ったデータ伝送を実現する。実施例２〜５においても同様である。
【００４０】
（送信装置の構成）
次に、図１に示した送信装置１−１，１−２，１−３，・・・の構成について説明する。図２は、実施例１による送信装置１（以下、送信装置１−１，１−２，１−３，・・・を総称して送信装置１という。）の構成を示すブロック図である。この送信装置１は、送信部１０、受信部１１、ＲＴＴ（ラウンドトリップタイム）計測部１２、パケットロス検出部１３、ＲＷＮＤ（受信ウィンドウサイズ）検出部１４及び送信レート決定部１５を備えている。
【００４１】
送信部１０は、送信データを入力すると共に、送信レート決定部１５からパケット送信量を入力し、送信データにＴＣＰヘッダを付加してパケット（データパケット）を生成し、パケット送信量のパケットを受信装置２へ送信する。また、送信部１０は、パケットを送信したときの時刻を内蔵タイマー（図示せず）から取得し、送信時刻をＲＴＴ計測部１２に出力する。
【００４２】
ここで、受信装置２は、送信装置１により送信されたパケットを受信し、受信したパケットが本来受信すべきパケット番号のパケットであると判定した場合（パケットが正常であると判定した場合）、パケットに含まれるパケット番号を確認応答番号に設定し、確認応答番号を含むＡＣＫ（ＡＣＫパケット）を生成して送信装置１へ送信する。一方、受信装置２は、送信装置１により送信されたパケットを受信し、受信したパケットが本来受信すべきパケット番号のパケットでないと判定した場合（パケットが正常でないと判定した場合）、本来受信すべきパケットに含まれるパケット番号を確認応答番号に設定し、確認応答番号を含むＡＣＫを生成して送信装置１へ送信する。したがって、受信装置２は、パケットが正常でないと連続して判定した場合、同一の確認応答番号を含むＡＣＫを連続して送信装置１へ送信する。
【００４３】
受信装置２から送信装置１へ送信されるＡＣＫは、送信装置１から受信装置２へ送信されたパケットに対する応答である。受信装置２は、ＡＣＫを生成する際に、受信装置２の最大受付可能データ量を示すＲＷＮＤをＴＣＰヘッダに記述し、ＴＣＰヘッダを付加したＡＣＫを送信装置１へ送信する。つまり、送信装置１が受信するＡＣＫには、確認応答番号及びＲＷＮＤが含まれる。ＲＷＮＤは、受信装置２において、送信装置１からパケットを受信することができる最大受付可能データ量を示す受信ウィンドウサイズである。
【００４４】
受信部１１は、受信装置２から確認応答番号及びＲＷＮＤを含むＡＣＫを受信し、ＡＣＫを受信したときの時刻を内蔵のタイマー（図示せず）から取得し、受信時刻をＲＴＴ計測部１２に出力する。また、受信部１１は、受信したＡＣＫをパケットロス検出部１３及びＲＷＮＤ検出部１４に出力する。
【００４５】
ＲＴＴ計測部１２は、送信部１０からパケットの送信時刻を入力して記憶し、受信部１１からそのパケットに対するＡＣＫの受信時刻を入力する。そして、ＲＴＴ計測部１２は、受信時刻から送信時刻を減算してＲＴＴを計測し、その減算結果であるＲＴＴを送信レート決定部１５に出力する。
【００４６】
パケットロス検出部１３は、受信部１１からＡＣＫを入力し、入力したＡＣＫに含まれる確認応答番号に基づいて、前回受信して入力したＡＣＫに含まれる確認応答番号と、今回受信して入力したＡＣＫに含まれる確認応答番号とを比較し、パケットロスの発生を検出する。そして、パケットロス検出部１３は、パケットロスが発生しているか否かを示すパケットロス発生有無の情報を送信レート決定部１５に出力する。具体的には、パケットロス検出部１３は、前回の確認応答番号と今回の確認応答番号とが同一であると判定して、その同一の判定が所定数連続した場合、パケットロスが発生したものと判定する。例えば、所定数が２に設定されているとき、パケットロス検出部１３は、確認応答番号が同一であるとの判定を２回連続して行った場合、すなわち、同一の確認応答番号を含むＡＣＫが３回連続したことを判定した場合、パケットロスが発生したものと判定する。この判定手法を３ＤＵＰＡＣＫという。
【００４７】
ＲＷＮＤ検出部１４は、受信部１１からＡＣＫを入力し、ＡＣＫのＴＣＰヘッダに記述されたＲＷＮＤを取得することによりＲＷＮＤを検出し、ＲＷＮＤを送信レート決定部１５に出力する。
【００４８】
送信レート決定部１５は、利用者の所望する優先度を外部から入力すると共に、ＲＴＴ計測部１２からＲＴＴを、パケットロス検出部１３からパケットロス発生有無の情報を、ＲＷＮＤ検出部１４からＲＷＮＤをそれぞれ入力する。そして、送信レート決定部１５は、優先度、ＲＴＴ及びパケットロス発生有無の各データに基づいてＣＷＮＤを算出し、ＣＷＮＤ及びＲＷＮＤのうちの小さい方をパケット送信量に決定し、パケット送信量を送信部１０に出力する。これにより、送信レートが決定される。ＣＷＮＤの算出手法の詳細については後述する。以下、ＲＷＮＤはＣＷＮＤと比較して十分に大きい値であるとし、ＣＷＮＤの増減がパケット送信量に直接影響するものとする。このようにして決定されたパケット送信量のパケットが、送信部１０から送信される。
【００４９】
尚、送信レート決定部１５は、外部から優先度を入力するようにしたが、本発明は入力方法を限定するものではない。例えば、送信レート決定部１５は、利用者が送信装置１に対して直接キー操作を行うことにより、優先度を入力するようにしてもよい。また、受信部１１がセッション開始時に優先度を受信装置２から受信し、送信レート決定部１５は、受信部１１から優先度を入力するようにしてもよい。さらに、送信レート決定部１５は、パケット伝送の途中で、変更された優先度を入力するようにしてもよい。
【００５０】
（送信レート決定部の構成）
次に、図２に示した送信レート決定部１５の構成について説明する。図３は、送信レート決定部１５の構成を示すブロック図である。この送信レート決定部１５は、経路状態判定手段２０、パラメータ設定手段２１、ＣＷＮＤ算出手段２２及びパケット送信量決定手段２３を備えている。
【００５１】
経路状態判定手段２０は、ＲＴＴ計測部１２からＲＴＴを入力すると共に、パケットロス検出部１３からパケットロス発生有無の情報を入力し、以下の（ａ）〜（ｃ）によりネットワーク経路３の輻輳状態を判定し、輻輳状態に応じてＣＷＮＤ維持、ＣＷＮＤ減少またはＣＷＮＤ増加の判定結果を生成し、判定結果をパラメータ設定手段２１及びＣＷＮＤ算出手段２２に出力する。
（ａ）パケットロス発生有りの場合、帯域に輻輳が発生していると判定し、ＣＷＮＤ減少の判定結果を生成する。
（ｂ）パケットロス発生無し、かつ、ＲＴＴが増加している場合、帯域に輻輳が発生していると判定し、ＣＷＮＤ維持またはＣＷＮＤ減少の判定結果を生成する。
（ｃ）パケットロス発生無し、かつ、ＲＴＴの変化が無いまたはＲＴＴが減少している場合、帯域に輻輳が発生していないと判定し、ＣＷＮＤ増加の判定結果を生成する。
【００５２】
ここで、経路状態判定手段２０は、今回入力したＲＴＴと前回入力したＲＴＴとを比較し、ＲＴＴの変化状態を判定する。すなわち、経路状態判定手段２０は、ＲＴＴに基づいて、ＲＴＴが増加している、ＲＴＴの変化が無い、またはＲＴＴが減少していることを判定する。尚、経路状態判定手段２０は、ＲＴＴ変化量を算出し、ＲＴＴ変化量を予め設定された閾値と比較することにより、ＲＴＴの変化状態を判定するようにしてもよい。例えば、ＲＴＴ変化量を予め設定された２つの閾値と比較し、第１の閾値よりも大きい場合、ＲＴＴが増加していると判定し、ＲＴＴ変化量が第１の閾値以下かつ第２の閾値以上である場合、ＲＴＴの変化が無いと判定し、ＲＴＴ変化量が第２の閾値よりも小さい場合、ＲＴＴが減少していると判定する。また、経路状態判定手段２０は、パケットロス発生無し、かつ、ＲＴＴが増加していると判定した場合、ＲＴＴ変化量が予め設定された閾値よりも大きい場合、ＣＷＮＤ維持の判定結果を生成し、ＲＴＴ変化量が予め設定された閾値以下の場合、ＣＷＮＤ減少の判定結果を生成する。
【００５３】
パラメータ設定手段２１は、外部から優先度を入力すると共に、経路状態判定手段２０から判定結果（ＣＷＮＤ維持、ＣＷＮＤ減少またはＣＷＮＤ増加）を入力し、判定結果及び優先度に基づいてパラメータαを設定し、パラメータαをＣＷＮＤ算出手段２２に出力する。
【００５４】
具体的には、パラメータ設定手段２１は、判定結果がＣＷＮＤ維持の場合、優先度にかかわらず、パラメータα＝１を設定する。また、パラメータ設定手段２１は、判定結果がＣＷＮＤ減少の場合、優先度に比例するように、０＜α＜１の範囲でパラメータαを設定する。例えば、優先度が高い場合、後述するＣＷＮＤ算出手段２２において算出されるＣＷＮＤをさほど減少させないように、すなわち減少率が１／２よりも低くなるように、０．５＜α＜１の範囲でパラメータαを設定する。優先度が低い場合、ＣＷＮＤを十分に減少させるように、すなわち減少率が１／２よりも高くなるように、０＜α＜０．５の範囲でパラメータαを設定する。優先度が中位の場合、ＣＷＮＤの減少率が１／２になるように、α＝０．５のパラメータαを設定する。
【００５５】
また、パラメータ設定手段２１は、判定結果がＣＷＮＤ増加の場合、優先度に比例するように、パラメータαを設定する。例えば、優先度が高い場合、ＣＷＮＤの増加量が１／ＣＷＮＤよりも大きくなるように、α＞１の範囲でパラメータαを設定する。優先度が低い場合、ＣＷＮＤの増加量が１／ＣＷＮＤよりも小さくなるように、０＜α＜１の範囲でパラメータαを設定する。優先度が中位の場合、ＣＷＮＤの増加量が１／ＣＷＮＤになるように、α＝１のパラメータαを設定する。
【００５６】
ＣＷＮＤ算出手段２２は、経路状態判定手段２０から判定結果（ＣＷＮＤ維持、ＣＷＮＤ減少またはＣＷＮＤ増加）を入力すると共に、パラメータ設定手段２１からパラメータαを入力し、以下の式によりＣＷＮＤを算出し、ＣＷＮＤをパケット送信量決定手段２３に出力する。
【００５７】
ＣＷＮＤ算出手段２２は、判定結果がＣＷＮＤ維持またはＣＷＮＤ減少の場合、以下の式によりＣＷＮＤを算出する。
ＣＷＮＤ＝α×ＣＷＮＤ      ・・・（３）
ここで、前述のとおり、判定結果がＣＷＮＤ維持の場合、パラメータα＝１であり、判定結果がＣＷＮＤ減少の場合、パラメータαは、優先度に比例した０＜α＜１範囲の値である。したがって、ＣＷＮＤ算出手段２２は、判定結果がＣＷＮＤ維持の場合、優先度にかかわらず、前回と同じＣＷＮＤを算出する。また、ＣＷＮＤ算出手段２２は、判定結果がＣＷＮＤ減少であり、優先度が高い場合、前回のＣＷＮＤよりも小さく、かつ、前回のＣＷＮＤに１／２を乗算した値よりも大きい値になるように、新たなＣＷＮＤを算出する。この場合、ＣＷＮＤは、従来のＮｅｗＲｅｎｏ方式により算出される値に比べ相対的に大きい値に減少する。また、ＣＷＮＤ算出手段２２は、判定結果がＣＷＮＤ減少であり、優先度が低い場合、前回のＣＷＮＤに１／２を乗算した値よりも小さく、かつ、０よりも大きい値になるように、新たなＣＷＮＤを算出する。この場合、ＣＷＮＤは、従来のＮｅｗＲｅｎｏ方式により算出される値に比べ相対的に小さい値に減少する。
【００５８】
一方、ＣＷＮＤ算出手段２２は、判定結果がＣＷＮＤ増加の場合、以下の式によりＣＷＮＤを算出する。
ＣＷＮＤ＝ＣＷＮＤ＋α×（１／ＣＷＮＤ）      ・・・（４）
ここで、パラメータαは、優先度に比例した値（優先度が高い場合α＞１、優先度が低い場合０＜α＜１）である。したがって、ＣＷＮＤ算出手段２２は、優先度が高い場合、前回のＣＷＮＤよりも大きく、かつ、増加量が前回のＣＷＮＤの逆数よりも大きくなるように、新たなＣＷＮＤを算出する。この場合、ＣＷＮＤは、従来のＮｅｗＲｅｎｏ方式により算出される値に比べ相対的に大きい値に増加する。また、ＣＷＮＤ算出手段２２は、優先度が低い場合、前回のＣＷＮＤより大きく、かつ、増加量が前回のＣＷＮＤの逆数よりも小さくなるように、新たなＣＷＮＤを算出する。この場合、ＣＷＮＤは、従来のＮｅｗＲｅｎｏ方式により算出される値に比べ相対的に小さい値に増加する。
【００５９】
パケット送信量決定手段２３は、ＣＷＮＤ算出手段２２からＣＷＮＤを入力すると共に、ＲＷＮＤ検出部１４からＲＷＮＤを入力し、ＣＷＮＤ及びＲＷＮＤのうちの小さい方をパケット送信量に決定し、パケット送信量を送信部１０に出力する。
【００６０】
このように、送信レート決定部１５は、優先度、ＲＴＴ及びパケットロス発生有無の各データを入力し、（ａ）パケットロス発生有りの場合、帯域に輻輳が発生していると判定し、ＣＷＮＤ減少の判定結果を生成し、優先度が高いときは優先度が低いときよりもＣＷＮＤが大きくなるように、前回のＣＷＮＤよりも小さくなる範囲で新たなＣＷＮＤを算出する。また、（ｂ）パケットロス発生無し、かつ、ＲＴＴが増加している場合、輻輳が発生していると判定し、ＣＷＮＤ維持またはＣＷＮＤ減少の判定結果を生成する。そして、ＣＷＮＤ維持の判定結果を生成した場合、前回と同じ値になるようにＣＷＮＤを算出する。また、ＣＷＮＤ減少の判定結果を生成した場合、優先度が高いときは優先度が低いときよりもＣＷＮＤが大きくなるように、前回のＣＷＮＤよりも小さくなる範囲で新たなＣＷＮＤを算出する。また、（ｃ）パケットロス発生無し、かつ、ＲＴＴの変化が無いまたはＲＴＴが減少している場合、輻輳が発生していないと判定し、ＣＷＮＤ増加の判定結果を生成し、優先度が高いときは優先度が低いときよりもＣＷＮＤが大きくなるように、前回のＣＷＮＤよりも大きくなる範囲で新たなＣＷＮＤを算出する。これにより、送信装置１は、優先度が高い場合、相対的に高い送信レートでパケットを送信し、優先度が低い場合、相対的に低い送信レートでパケットを送信するように制御することができる。尚、上記ＣＷＮＤ算出方法は、ＮｅｗＲｅｎｏ方式による伝送に対する相対的な優先度を持たせるためのものであるが、ＮｅｗＲｅｎｏ方式とは異なる他の方式による伝送においても、ＣＷＮＤの増加、減少量をその方式に対して相対的に調節することにより、ＮｅｗＲｅｎｏ方式と同様に優先度を持たせることができる。
【００６１】
（送信装置の処理）
次に、送信装置１による輻輳制御の処理について説明する。図４は、送信装置１による輻輳制御の処理を示すフローチャートである。送信装置１は、前述のとおり、受信装置２からＡＣＫを受信し、１つのＡＣＫ毎にＣＷＮＤを増減させ、パケット送信量を調節する。
【００６２】
送信部１０は、後述するステップＳ４０８にて決定されたパケット送信量にて、パケットを送信する（ステップＳ４０１）。受信部１１は、送信部１０により送信されたパケットの応答であるＡＣＫを待ち、ＡＣＫを受信する（ステップＳ４０２）。
【００６３】
ここで、ＲＴＴ計測部１２は、ＡＣＫの受信時刻からパケットの送信時刻を減算してＲＴＴを計測し、送信レート決定部１５に出力する。パケットロス検出部１３は、ＡＣＫに含まれる確認応答番号に基づいて、前回受信したＡＣＫに含まれる確認応答番号と、今回受信したＡＣＫに含まれる確認応答番号とを比較し、確認応答番号が所定数回同じであると判定した場合、パケットロスの発生有りを検出し、確認応答番号が連続していると判定した場合、パケットロスの発生無しを検出し、パケットロス発生有無を送信レート決定部１５に出力する。また、ＲＷＮＤ検出部１４は、ＡＣＫに含まれるＲＷＮＤを取得し、ＲＷＮＤを送信レート決定部１５に出力する。
【００６４】
送信レート決定部１５は、パケットロス検出部１３から入力したパケットロス発生有無の情報に基づいて、パケットロスが発生したか否かを判定する（ステップＳ４０３）。パケットロスが発生したことを判定した場合（ステップＳ４０３：パケットロス有）、帯域に輻輳が発生していると判定し、前記（ａ）のようにＣＷＮＤ減少の判定結果を生成し、優先度に従ってパラメータαを設定してＣＷＮＤ減少の処理を行い、前記式（３）を用いてＣＷＮＤを算出する（ステップＳ４０５）。一方、パケットロスが発生していないことを判定した場合（ステップＳ４０３：パケットロス無）、ＲＴＴ計測部１２から入力したＲＴＴを用いて比較処理を行う（ステップＳ４０４）。
【００６５】
送信レート決定部１５は、ステップＳ４０４において、ＲＴＴが増加していると判定した場合（ステップＳ４０４：ＲＴＴ増加）、帯域に輻輳が発生していると判定し、ＲＴＴ変化量を予め設定された閾値と比較することにより、ＣＷＮＤ維持またはＣＷＮＤ減少の判定結果を生成し、優先度に従ってパラメータαを設定してＣＷＮＤ維持またはＣＷＮＤ減少の処理を行い、前記式（３）を用いてＣＷＮＤを算出する（ステップＳ４０５）。一方、ＲＴＴの変化が無いまたはＲＴＴが減少していると判定した場合（ステップＳ４０４：変化無またはＲＴＴ減少）、帯域に輻輳が発生していないと判定し、優先度に従ってパラメータαを設定してＣＷＮＤ増加の処理を行い、前記式（４）を用いてＣＷＮＤを算出する（ステップＳ４０６）。
【００６６】
そして、送信装置１は、ステップＳ４０５またはステップＳ４０６から移行して、処理を終了させる場合（ステップＳ４０７：Ｙ）、輻輳制御の処理が終了する。一方、処理を終了させない場合（ステップＳ４０７：Ｎ）、送信レート決定部１５は、ステップＳ４０５またはステップＳ４０６において算出されたＣＷＮＤと、ＲＷＮＤ検出部１４から入力したＲＷＮＤとを比較し、ＣＷＮＤがＲＷＮＤ以下の場合、ＣＷＮＤをパケット送信量に決定し、ＣＷＮＤがＲＷＮＤよりも大きい場合、ＲＷＮＤをパケット送信量に決定し、送信部１０に出力する（ステップＳ４０８）。そして、ステップＳ４０１において、送信部１０が、ステップＳ４０８にて決定されたパケット送信量のパケットを受信装置２へ送信し、ステップＳ４０２において、受信部１１が、受信装置２から送信されるＡＣＫを待つ。このようにして、ステップＳ４０１〜ステップＳ４０８の処理が繰り返される。
【００６７】
尚、図２、図３及び図４では、ＲＴＴ計測部１２がＲＴＴを計測し、送信レート決定部１５が、ＲＴＴに基づいて輻輳の発生の有無を判定するようにしたが（図４のステップＳ４０４）、ＲＴＴの代わりに滞留パケット数を用いて判定するようにしてもよい。すなわち、送信装置１は、ネットワーク経路３に滞留しているパケットの数を算出し、その滞留パケット数に基づいて輻輳の発生の有無を判定するようにしてもよい。
【００６８】
具体的には、送信装置１が滞留パケット数算出部を備え、滞留パケット数算出部は、送信レート決定部１５からＣＷＮＤを入力し、ＲＴＴ計測部１２からＲＴＴを入力し、これまでに計測されて入力したＲＴＴのうち最小のＲＴＴをＲＴＴｍｉｎに設定し、現在計測されて入力したＲＴＴをＲＴＴｎｏｗに設定し、以下の式により、ネットワーク経路３に滞留しているパケットの数である滞留パケット数δを算出し、滞留パケット数δを送信レート決定部１５に出力する。
δ＝（ＣＷＮＤ／ＲＴＴｍｉｎ−ＣＷＮＤ／ＲＴＴｎｏｗ）×ＲＴＴｍｉｎ
・・・（５）
そして、送信レート決定部１５は、ＲＴＴ計測部１２からＲＴＴを入力する代わりに、滞留パケット数算出部から滞留パケット数δを入力し、図４のステップＳ４０４においてＲＴＴの比較処理と同じように、滞留パケット数λの比較処理を行い、輻輳の発生を判定する。この場合、送信レート決定部１５は、滞留パケット数λの変化量を算出し、その変化量と予め設定された閾値とを比較することにより、輻輳の発生を判定するようにしてもよい。送信レート決定部１５は、帯域に輻輳が発生していると判定した場合、ＣＷＮＤ維持またはＣＷＮＤ減少の判定結果を生成し、ステップＳ４０５へ移行してＣＷＮＤ維持またはＣＷＮＤ減少の処理を行う。一方、送信レート決定部１５は、帯域に輻輳が発生していないと判定した場合、ＣＷＮＤ増加の判定結果を生成し、ステップＳ４０６へ移行してＣＷＮＤ増加の処理を行う。
【００６９】
（シミュレーション結果）
図５は、実施例１におけるＣＷＮＤの変化を説明するグラフである。このグラフは、シミュレーションにより得られた結果を示している。図５には、高い優先度にて算出されたＣＷＮＤの変化と、低い優先度にて算出されたＣＷＮＤの変化とがグラフで示されており、さらに、従来のＮｅｗＲｅｎｏ方式により算出されたＣＷＮＤの変化もグラフに示されている。図５から、優先度が高い場合、ＣＷＮＤはより速く増加し、パケットロス発生時等におけるＣＷＮＤの減少量は小さくなっていることがわかる。また、優先度が低い場合、ＣＷＮＤはより遅く増加し、パケットロス発生時等におけるＣＷＮＤの減少量は大きくなっていることがわかる。
【００７０】
また、図５から、優先度が高い場合におけるＣＷＮＤの平均値が、従来のＮｅｗＲｅｎｏ方式によるＣＷＮＤの平均値よりも大きくなっており、優先度が低い場合におけるＣＷＮＤの平均値が、従来のＮｅｗＲｅｎｏ方式によるＣＷＮＤの平均値よりも小さくなっていることがわかる。
【００７１】
以上のように、実施例１の送信装置１によれば、複数台の送信装置１−１，１−２，１−３，・・・から１台の受信装置２へデータをアップロードする場合において、パケットロスが発生していると判定した場合、または、パケットロスが発生しておらず、かつＲＴＴが増加していると判定した場合、帯域に輻輳が発生していると判定し、優先度が高いときは、従来の方式によるＣＷＮＤよりも大きくなるように、優先度が低いときは、従来の方式によるＣＷＮＤよりも小さくなるように、前回のＣＷＮＤよりも小さくなる範囲で新たなＣＷＮＤを算出し、送信レートを調節するようにした。また、パケットロスが発生しておらず、かつＲＴＴの変化が無いまたはＲＴＴが減少していると判定した場合、帯域に輻輳が発生していないと判定し、優先度が高いときは、従来の方式によるＣＷＮＤよりも大きくなるように、優先度が低いときは、従来の方式によるＣＷＮＤよりも小さくなるように、前回のＣＷＮＤよりも大きくなる範囲で新たなＣＷＮＤを算出し、送信レートを調節するようにした。これにより、既存のネットワーク経路３に配置されたルータをそのまま用いることができるから、ネットワーク経路３を変更することなく、また、ＴＣＰ方式の手順を変更することなく、輻輳制御方式を変更するのみで、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。
【００７２】
また、実施例１の送信装置１によれば、図４に示したステップＳ４０４において、ＲＴＴが増加していると判定した場合、帯域に輻輳が発生していると判定し、ＣＷＮＤ維持の処理またはＣＷＮＤ減少の処理を行い、ＲＴＴの変化が無いまたはＲＴＴが減少していると判定した場合、帯域に輻輳が発生していないと判定し、ＣＷＮＤ増加の処理を行うようにした。
【００７３】
ここで、送信装置１の送信レート決定部１５が、ＣＷＮＤを急激に増加させて送信レートを高くした場合、送信レートがネットワーク経路３の帯域幅を超えた時点で、ネットワーク経路３において、連続してパケットが廃棄されてしまう。そうすると、受信装置２によりＡＣＫが送信されない期間が長時間になるから、送信装置１の受信部１１は、送信部１０から送信されたパケットに対応したＡＣＫを受信することができず、タイムアウト処理を行なう。そして、送信レート決定部１５は、タイムアウトに伴ってＣＷＮＤを小さい値（例えば、初期値１）にリセットする。すなわち、送信レート決定部１５が急激にＣＷＮＤを増加させ、受信部１１がタイムアウトを検出した場合、送信レート決定部１５は、直ちにＣＷＮＤを小さい値にリセットする。このため、送信レート決定部１５は、ＣＷＮＤを増加させる必要があるにもかかわらず、ＣＷＮＤの平均値を大きくすることができない。そこで、ＣＷＮＤを適切に増加させて送信レートを調節するには、ネットワーク経路３において、連続してパケットが廃棄されないように、送信レート決定部１５が、帯域上限付近でＣＷＮＤの増加量を抑える必要がある。
【００７４】
実施例１では、帯域上限付近でＣＷＮＤの増加量を抑えるために、ステップＳ４０４の処理を行う。具体的には、送信レート決定部１５は、ＣＷＮＤを急激に増加させたことに伴って、ステップＳ４０４においてＲＴＴの増加を判定する。これにより、パケットロスが発生する前に、ネットワーク経路３における帯域の輻輳の兆候を検出することができる。この場合、送信レート決定部１５は、ステップＳ４０５において、ＣＷＮＤ維持の処理またはＣＷＮＤ減少の処理を行う。これにより、パケットロスの発生につながるＣＷＮＤの増加を抑えることができる。このように、ＣＷＮＤの増加を抑えることができるから、連続したパケットロスの発生を防ぎ、ＡＣＫの未受信によるタイムアウト処理を避けることができる。
【００７５】
尚、実施例１の変形例として、送信装置１は、ＲＴＴ計測部１２を備えていなくてもよい。前述の実施例１の送信装置１は、ＲＴＴ計測部１２を備えており、送信レート決定部１５が、図４のステップＳ４０３において、パケットロスが発生したことを判定した場合（ステップＳ４０３：Ｙ）、ＲＴＴ計測部１２により計測されたＲＴＴの増減を判定する（ステップＳ４０４）。そして、ＲＴＴが増加していると判定した場合、ＣＷＮＤ維持またはＣＷＮＤ減少の処理を行い、ＲＴＴの変化が無いまたはＲＴＴが減少していると判定した場合、ＣＷＮＤ増加の処理を行う。これに対し、実施例１の変形例では、送信レート決定部１５は、図４のステップＳ４０３において、パケットロスが発生したことを判定した場合（ステップＳ４０３：Ｙ）、ステップＳ４０４の処理を行わないで、ＣＷＮＤ増加の処理を行う（ステップＳ４０６）。
【００７６】
以上のように、実施例１の変形例による送信装置１によれば、パケットロスが発生していると判定した場合、帯域に輻輳が発生していると判定し、優先度が高いときは、従来の方式によるＣＷＮＤよりも大きくなるように、優先度が低いときは、従来の方式によるＣＷＮＤよりも小さくなるように、前回のＣＷＮＤよりも小さくなる範囲で新たなＣＷＮＤを算出し、送信レートを調節するようにした。また、パケットロスが発生していないと判定した場合、帯域に輻輳が発生していないと判定し、優先度が高いときは、従来の方式によるＣＷＮＤよりも大きくなるように、優先度が低いときは、従来の方式によるＣＷＮＤよりも小さくなるように、前回のＣＷＮＤよりも大きくなる範囲で新たなＣＷＮＤを算出し、送信レートを調節するようにした。これにより、実施例１と同様に、既存のネットワーク経路３に配置されたルータをそのまま用いることができるから、ネットワーク経路３を変更することなく、また、ＴＣＰ方式の手順を変更することなく、輻輳制御方式を変更するのみで、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。
【００７７】
以上、実施例１の送信装置１による輻輳制御方式について、図１に示したシステムのとおり、複数台の送信装置１−１，１−２，１−３，・・・が１台の受信装置２へ向けて同時にデータを伝送するシステムを想定して説明したが、この輻輳制御方式は、送信装置１−１，１−２，１−３，・・・及び受信装置２が帯域を共有している場合に、優先度に従って各装置の相対的な伝送速度を制御するものである。したがって、実施例１の送信装置１による輻輳制御方式は、図１に示したシステム以外に、複数台の受信装置２を備えて構成されるシステムにおいても適用がある。
【実施例２】
【００７８】
次に、実施例２について詳細に説明する。実施例２は、複数台の送信装置から１台の受信装置へデータをアップロードするシステムを想定しており、優先度に従うことに加え、ＲＴＴの影響を受けないように送信レートを調節する例である。
【００７９】
図６は、実施例２の送信装置を含む全体システムの構成を示す図である。実施例２のシステムは、複数台の送信装置１−１，１−２（例えば、複数台のクライアント）と、１台の受信装置２（例えば、１台のサーバ）とを備えて構成され、複数台の送信装置１−１，１−２が１台の受信装置２へ向けて同時に伝送するデータのアップロードを想定したシステムである。送信装置１−１と受信装置２とは、ＲＴＴ＝５０ｍｓｅｃのネットワーク経路３−１及びＲＴＴ＝５０ｍｓｅｃのネットワーク経路３−３により接続される。また、送信装置１−２と受信装置２とは、ＲＴＴ＝１５０ｍｓｅｃのネットワーク経路３−２及びＲＴＴ＝５０ｍｓｅｃのネットワーク経路３−３により接続される。
【００８０】
各送信装置１−１，１−２は、ネットワーク経路３−３を共有しながら、受信装置２へ向けてデータを伝送する際に、実施例１に示した輻輳制御手法により、利用者の所望する優先度に従ったデータ伝送を実現することができる。
【００８１】
しかしながら、図６に示すように、ＲＴＴ送信装置１−１から受信装置２へ向けてデータを伝送する際のＲＴＴの合計は１００ｍｓｅｃであり、送信装置１−２から受信装置２へ向けてデータを伝送する際のＲＴＴの合計は２００ｍｓｅｃである。このため、送信装置１−２が受信装置２へ向けて送信したパケットに対するＡＣＫを受信するまでの時間は、送信装置１−１が受信装置２へ向けて送信したパケットに対するＡＣＫを受信するまでの時間に比べて２倍となる。ＣＷＮＤは、ＡＣＫを受信したときに増加するから、図１１に示したように、ＲＴＴが大きい送信装置１−２は、ＲＴＴの小さい送信装置１−１に比べて、ＣＷＮＤを増加させるのに時間を要することになる。すなわち、ＲＴＴが大きいほど、送信レートの増加速度は遅くなるから、同じ優先度が設定されていたとしても、ＲＴＴの大小の違いによって、異なる送信レートになってしまう。
【００８２】
ここで、それぞれの伝送内容により、伝送内容の重要性や緊急度によっては、ＲＴＴが大きい送信装置１−２から受信装置２へのデータ伝送は、他のデータ伝送よりも高速に行いたい場合がある。また、ＲＴＴが小さい送信装置１−１から受信装置２へのデータ伝送は、他のデータ伝送より低速に行っても構わない場合もある。
【００８３】
そこで、実施例２では、ＲＴＴの影響を受けることなく、ＲＴＴの大小にかかわらず、利用者の所望する優先度に従ったデータ伝送を実現する。
【００８４】
（送信装置の構成、送信レート決定部の構成、送信装置の処理）
次に、図６に示した実施例２による送信装置１−１，１−２の構成、送信レート決定部１５の構成及び送信装置１−１，１−２の処理について説明する。実施例２による送信装置１（以下、送信装置１−１，１−２を総称して送信装置１という。）の構成は、図２に示した構成と基本的には同様であるが、送信レート決定部１５が実施例１とは異なる処理を行う。また、送信装置１に備えた送信レート決定部１５の構成も、図３に示した構成と基本的には同様であるが、ＣＷＮＤ算出手段２２が実施例１とは異なる処理を行う。また、実施例２による送信装置１の処理も、図４に示した処理と基本的には同様であるが、ステップＳ４０５のＣＷＮＤ維持及びＣＷＮＤ減少の処理、並びにステップＳ４０６のＣＷＮＤ増加の処理が実施例１と異なっている。
【００８５】
図３を参照して、実施例２のＣＷＮＤ算出手段２２は、経路状態判定手段２０から判定結果（ＣＷＮＤ維持、ＣＷＮＤ減少またはＣＷＮＤ増加）を入力すると共に、パラメータ設定手段２１からパラメータαを入力し、さらに、ＲＴＴ計測部１２からＲＴＴを入力する。そして、ＣＷＮＤ算出手段２２は、以下の式によりＣＷＮＤを算出し、ＣＷＮＤをパケット送信量決定手段２３に出力する。
【００８６】
ＣＷＮＤ算出手段２２は、判定結果がＣＷＮＤ維持またはＣＷＮＤ減少の場合、以下の式によりＣＷＮＤを算出する（図４のステップＳ４０５）。
ＣＷＮＤ＝α×（ＲＴＴ／ＲＴＴｏｒｇ）×ＣＷＮＤ      ・・・（６）
ここで、ＲＴＴｏｒｇは、予め設定された、ＲＴＴの基準となる値である。尚、パラメータαは、実施例１と同様に、判定結果がＣＷＮＤ維持の場合、パラメータα＝１であり、判定結果がＣＷＮＤ減少の場合、優先度に比例した０＜α＜１範囲の値である。
【００８７】
ここで、ＣＷＮＤはＡＣＫを受信するＲＴＴ毎に算出されるから、ＲＴＴが大きい場合はＣＷＮＤの更新速度が遅くなり、ＲＴＴが小さい場合はＣＷＮＤの更新速度は速くなる。実施例２によれば、ＲＴＴを考慮した式（６）を用いてＣＷＮＤを算出するから、ＲＴＴが大きい場合は、ＣＷＮＤの減少量を抑えて大きい値にすることができる。また、ＲＴＴが小さい場合は、ＣＷＮＤの減少量を大きくし、ＲＴＴが大きい場合のＣＷＮＤよりもＣＷＮＤを小さい値にすることができる。したがって、ＣＷＮＤを減少させた後に増加させることを考慮すると、ＲＴＴが大きい場合はＲＴＴが小さい場合に比べ、ＣＷＮＤを増加させる際の更新頻度が少なくなり、増加量が小さくなるから、ＣＷＮＤを減少させる際の減少量を抑えることにより、ＣＷＮＤを増加させる際にＲＴＴが小さい場合と同様のＣＷＮＤを早期に得ることができる。
【００８８】
一方、ＣＷＮＤ算出手段２２は、判定結果がＣＷＮＤ増加の場合、以下の式によりＣＷＮＤを算出する（図４のステップＳ４０６）。
ＣＷＮＤ＝ＣＷＮＤ＋α×（ＲＴＴ／ＲＴＴｏｒｇ）×（１／ＣＷＮＤ）
・・・（７）
尚、パラメータαは、実施例１と同様に、優先度に比例した値（優先度が高い場合α＞１、優先度が低い場合０＜α＜１）である。
【００８９】
前述のとおり、ＣＷＮＤはＡＣＫを受信するＲＴＴ毎に算出されるから、ＲＴＴが大きい場合はＣＷＮＤの更新速度が遅くなり、ＲＴＴが小さい場合はＣＷＮＤの更新速度は速くなる。したがって、判定結果がＣＷＮＤ増加の場合、ＣＷＮＤ算出手段２２により、ＲＴＴに関わらず基準とするＲＴＴｏｒｇのときのＣＷＮＤ増加速度と同等の増加速度とすることができる。これは、所定期間Ｔにおいて、ＣＷＮＤは（Ｔ／ＲＴＴ）回更新されるから、優先度が同じ場合、ＣＷＮＤの増加量は、α×（ＲＴＴ／ＲＴＴｏｒｇ）×（１／ＣＷＮＤ）×（Ｔ／ＲＴＴ）＝α×（１／ＲＴＴｏｒｇ）×（１／ＣＷＮＤ）×Ｔとなり、ＲＴＴの値に依存することなくＣＷＮＤの増加量は一定になるからである。すなわち、図１１に示したように、ＲＴＴが大きい場合、従来はＣＷＮＤの更新速度が遅いからＣＷＮＤの増加速度が遅かった。また、ＲＴＴが小さい場合、従来はＣＷＮＤの更新速度が速いからＣＷＮＤの増加速度が速かった。実施例２によれば、ＲＴＴを考慮した式（７）を用いてＣＷＮＤを算出するから、ＲＴＴの大きさに応じてＣＷＮＤの増加速度をＲＴＴｏｒｇの増加速度に合わせることができる。
【００９０】
以上のように、実施例２の送信装置１によれば、実施例１と同様に、複数台の送信装置１−１，１−２から１台の受信装置２へデータをアップロードする場合において、パケットロスの発生及びＲＴＴの増加の有無に応じて、帯域に輻輳が発生しているか否かを判定し、優先度が高いときは、従来の方式によるＣＷＮＤよりも大きくなるように、優先度が低いときは、従来の方式によるＣＷＮＤよりも小さくなるようにＣＷＮＤを算出すると共に、帯域に輻輳が発生していると判定した場合、前回のＣＷＮＤよりも小さくなる範囲で新たなＣＷＮＤを算出し、帯域に輻輳が発生していないと判定した場合、前回のＣＷＮＤよりも大きくなる範囲で新たなＣＷＮＤを算出し、送信レートを調節するようにした。これにより、実施例１と同様に、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。また、実施例１と同様に、図４に示したステップＳ４０４の処理により、パケットロスが発生する前に、ネットワーク経路３−１，３−２，３−３における帯域の輻輳の兆候を検出し、ＣＷＮＤの増加を抑えることができるから、連続したパケットロスの発生を防ぎ、ＡＣＫの未受信によるタイムアウト処理を避けることができる。
【００９１】
また、実施例２の送信装置１によれば、ＣＷＮＤ維持及びＣＷＮＤ減少の処理を行う場合、ＲＴＴを考慮した式（６）を用いてＣＷＮＤを算出し、ＣＷＮＤ増加の処理を行う場合、ＲＴＴを考慮した式（７）を用いてＣＷＮＤを算出するから、ＲＴＴの大きさに応じてＣＷＮＤの増加速度を、基準となるＲＴＴｏｒｇの増加速度に合わせることができる。したがって、ＲＴＴの大小にかかわらず、所定時間におけるパケット送信量の平均値（所定のパケット送信量）が等しくなるように、送信レートを調節することができる。つまり、ＲＴＴの影響を受けることなく、ＲＴＴの大小にかかわらず、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。
【００９２】
以上、実施例２の送信装置１による輻輳制御方式について、図６に示したシステムのとおり、複数台の送信装置１−１，１−２が１台の受信装置２へ向けて同時にデータを伝送するシステムを想定して説明したが、この輻輳制御方式は、送信装置１−１，１−２及び受信装置２が帯域を共有し、ＲＴＴの異なるネットワーク経路３−１，３−２を介してデータを伝送する際に、ＲＴＴの影響を受けることなく、優先度に従って各装置の相対的な伝送速度を制御するものである。したがって、実施例２の送信装置１による輻輳制御方式は、図６に示したシステム以外に、複数台の受信装置２を備えて構成されるシステムにおいても適用がある。
【実施例３】
【００９３】
次に、実施例３について詳細に説明する。実施例３は、１台の送信装置から複数台の受信装置へデータをダウンロードするシステムを想定しており、実施例１に対応し、外部から直接入力した優先度に従って送信レートを調節する例である。
【００９４】
図７は、実施例３の送信装置を含む全体システムの構成を示す図である。実施例３のシステムは、１台の送信装置１（例えば、１台のサーバ）と、複数台の受信装置２−１，２−２，２−３，・・・（例えば、複数台のクライアント）とを備えて構成され、１台の送信装置１が複数台の受信装置２−１，２−２，２−３，・・・へ向けて同時に伝送するデータのダウンロードを想定したシステムである。送信装置１と受信装置２−１，２−２，２−３，・・・とはネットワーク経路３により接続される。
【００９５】
送信装置１は、共有するネットワーク経路３を介して受信装置２−１，２−２，２−３，・・・へ向けてデータを伝送する。このため、データを同時に伝送するには、帯域を分け合う必要がある。従来のＴＣＰによるデータ伝送では、送信装置に備えた輻輳制御機能により、送信装置が公平に帯域を使用するように送信レートが制御される。
【００９６】
しかしながら、それぞれの伝送内容により、重要性または緊急度の高いファイルのデータを、より高速に受信装置２−１，２−２，２−３，・・・へ伝送したいという利用者の要求があっても、優先度を付けてデータを伝送することができなかった。そこで、実施例３では、利用者の所望する優先度に従ったデータ伝送を実現する。
【００９７】
（送信装置の構成、送信レート決定部の構成、送信装置の処理）
図７に示した実施例３による送信装置１の構成、送信装置１に備えた送信レート決定部１５の構成、及び送信装置１の処理は、図２に示した実施例１による送信装置１の構成、図３に示した送信レート決定部１５の構成、及び図４に示した送信装置１の処理とそれぞれ同様である。
【００９８】
以上のように、実施例３の送信装置１によれば、１台の送信装置１から複数台の受信装置２−１，２−２，２−３，・・・へデータをダウンロードする場合においても、実施例１による送信装置１と同様の構成及び処理により、実施例１と同様に、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。
【００９９】
尚、実施例３の変形例として、実施例１の変形例と同様に、送信装置１は、ＲＴＴ計測部１２を備えていなくてもよい。すなわち、送信レート決定部１５は、図４のステップＳ４０３において、パケットロスが発生したことを判定した場合（ステップＳ４０３：Ｙ）、ステップＳ４０４の処理を行わないで、ＣＷＮＤ増加の処理を行う（ステップＳ４０６）。
【実施例４】
【０１００】
次に、実施例４について詳細に説明する。実施例４は、１台の送信装置から複数台の受信装置へデータをダウンロードするシステムを想定しており、実施例２に対応し、優先度に従うことに加え、ＲＴＴの影響を受けることがないように送信レートを調節する例である。
【０１０１】
図８は、実施例４の送信装置を含む全体システムの構成を示す図である。実施例４のシステムは、１台の送信装置１（例えば、１台のサーバ）と、複数台の受信装置２−１，２−２（例えば、複数台のクライアント）とを備えて構成され、１台の送信装置１が複数台の受信装置２−１，２−２へ向けて同時に伝送するデータのダウンロードを想定したシステムである。送信装置１と受信装置２−１とは、ＲＴＴ＝５０ｍｓｅｃのネットワーク経路３−１及びＲＴＴ＝５０ｍｓｅｃのネットワーク経路３−２により接続される。また、送信装置１と受信装置２−２とは、ＲＴＴ＝５０ｍｓｅｃのネットワーク経路３−１及びＲＴＴ＝１５０ｍｓｅｃのネットワーク経路３−３により接続される。
【０１０２】
送信装置１は、ネットワーク経路３−１を共有しながら、受信装置２へ向けてデータを伝送する際に、実施例３に示した輻輳制御手法により、利用者の所望する優先度に従ったデータ伝送を実現することができる。
【０１０３】
しかしながら、図８に示すように、ＲＴＴ送信装置１から受信装置２−１へ向けてデータを伝送する際のＲＴＴの合計は１００ｍｓｅｃであり、送信装置１から受信装置２−２へ向けてデータを伝送する際のＲＴＴの合計は２００ｍｓｅｃである。このため、送信装置１が受信装置２−２へ向けて送信したパケットに対するＡＣＫを受信するまでの時間は、送信装置１が受信装置２−１へ向けて送信したパケットに対するＡＣＫを受信するまでの時間に比べて２倍となる。ＣＷＮＤは、送信したパケットに対するＡＣＫを受信したときに増加するから、ＲＴＴが大きいほど、送信レートの増加速度は遅くなってしまい、同じ優先度が設定されていたとしても、ＲＴＴの大小の違いによって、異なる送信レートになってしまう。
【０１０４】
ここで、それぞれの伝送内容により、伝送内容の重要性や緊急度によっては、ＲＴＴが大きい送信装置１から受信装置２−２へのデータ伝送は、他のデータ伝送よりも高速に行いたい場合がある。また、ＲＴＴが小さい送信装置１から受信装置２−１へのデータ伝送は、他のデータ伝送より低速に行っても構わない場合もある。
【０１０５】
そこで、実施例４では、ＲＴＴの影響を受けることなく、ＲＴＴの大小にかかわらず、利用者の所望する優先度に従ったデータ伝送を実現する。
【０１０６】
（送信装置の構成、送信レート決定部の構成、送信装置の処理）
図８に示した実施例４による送信装置１の構成、送信装置１に備えた送信レート決定部１５の構成、及び送信装置１の処理は、実施例２による送信装置１の構成、実施例２による送信レート決定部１５の構成、及び実施例２による送信装置１の処理とそれぞれ同様である。
【０１０７】
以上のように、実施例４の送信装置１によれば、１台の送信装置１から複数台の受信装置２−１，２−２へデータをダウンロードする場合においても、実施例２による送信装置１と同様の構成及び処理により、実施例２と同様に、ＲＴＴの影響を受けることなく、ＲＴＴの大小にかかわらず、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。
【実施例５】
【０１０８】
次に、実施例５について詳細に説明する。実施例５は、実施例１〜４及び実施例１，３の変形例のいずれのシステムにも適用し、データをアップロードまたはダウンロードするシステムを想定しており、優先度を外部から直接入力するのではなく、受信装置を示す宛先アドレスに基づいて優先度を生成する例である。
【０１０９】
図９は、実施例５の送信装置１に含まれる構成部を示す図である。実施例５の送信装置１は、図２に示した構成に加え、送信レート決定部１５の前段に、優先度保持部１６及び優先度生成部１７を備えている。優先度保持部１６は、宛先アドレスに対応した優先度の情報を保持している。優先度生成部１７は、外部から宛先アドレスを入力し、宛先アドレスに対応する優先度を優先度保持部１６から読み出すことにより優先度を生成し、宛先アドレスに対応する優先度を送信レート決定部１５に出力する。送信部１０、受信部１１、ＲＴＴ計測部１２、パケットロス検出部１３、ＲＷＮＤ検出部１４及び送信レート決定部１５は、図２に示した構成部と同様である。また、送信装置１の処理についても、前述した実施例１〜４の処理と同様である。
【０１１０】
以上のように、実施例５の送信装置１によれば、優先度生成部１７において、例えば、従来のＮｅｗＲｅｎｏ方式と同様の優先度になるように、優先度を生成することができ、外部から優先度の入力がない場合であっても、従来の方式と同程度の送信レートにてデータ伝送を行うことができる。また、外部から優先度の入力がなくても、受信装置を示す宛先アドレス毎の優先度に従ったデータ伝送を、簡易な手法により実現することができる。
【０１１１】
尚、送信装置は、送信装置からデータ伝送を開始する場合に、外部から宛先アドレスを入力し、優先度を生成するようにしたが、本発明はこれに限定されることはない。例えば、送信装置は、受信装置から送信開始要求を受信した場合に、受信装置からの開始セッションにて宛先アドレスを取得し、優先度を生成するようにしてもよい。
【実施例６】
【０１１２】
次に、実施例６について詳細に説明する。実施例６は、図６に示した実施例２のシステムまたは図８に示した実施例４のシステムが適用され、データをアップロードまたはダウンロードするシステムを想定している。また、実施例６は、優先度が設定されない場合、または複数の送信装置において同一の優先度が設定されている場合、ＲＴＴの大小にかかわらず同じ送信レートになるように、送信レートを調節する例である。例えば、送信装置と受信装置との間の距離が長い場合、その距離が短い場合に比べてＲＴＴが大きくなる。しかしながら、利用者の意図に従った送信量によりデータ伝送を行うためには、ＲＴＴの大小にかかわらず、同じ送信レートにてデータを伝送することが必要になる。そこで、実施例６は、既存のネットワークを変更することなく、ＲＴＴの大小にかかわらず、利用者の意図に従ったデータ伝送を、簡易な手法にて実現することを目的とする。以下、優先度が設定されていない場合を例にして説明する。
【０１１３】
（送信装置の構成、送信レート決定部の構成、送信装置の処理）
実施例６による送信装置１の構成は、図２に示した構成と基本的には同様であるが、送信レート決定部１５は優先度を入力しない。また、実施例６による送信装置１に備えた送信レート決定部１５は、図３に示したパラメータ設定手段２１を備えておらず、経路状態判定手段２０、ＣＷＮＤ算出手段２２及びパケット送信量決定手段２３を備えている。また、実施例６による送信装置１の処理は、図４に示した処理と基本的には同様であるが、ステップＳ４０５のＣＷＮＤ維持及びＣＷＮＤ減少の処理、並びにステップＳ４０６のＣＷＮＤ増加の処理が実施例１〜５と異なっている。
【０１１４】
図３を参照して、実施例６のＣＷＮＤ算出手段２２は、経路状態判定手段２０から判定結果（ＣＷＮＤ維持、ＣＷＮＤ減少またはＣＷＮＤ増加）を入力すると共に、ＲＴＴ計測部１２からＲＴＴを入力し、以下の式によりＣＷＮＤを算出し、ＣＷＮＤをパケット送信量決定手段２３に出力する。
【０１１５】
ＣＷＮＤ算出手段２２は、判定結果がＣＷＮＤ維持またはＣＷＮＤ減少の場合、以下の式によりＣＷＮＤを算出する（図４のステップＳ４０５）。
ＣＷＮＤ＝（ＲＴＴ／ＲＴＴｏｒｇ）×ＣＷＮＤ      ・・・（８）
ここで、ＲＴＴｏｒｇは、予め設定された、ＲＴＴの基準となる値である。
【０１１６】
ここで、ＣＷＮＤはＡＣＫを受信するＲＴＴ毎に算出されるから、ＲＴＴが大きい場合はＣＷＮＤの更新速度が遅くなり、ＲＴＴが小さい場合はＣＷＮＤの更新速度は速くなる。実施例６によれば、ＲＴＴを考慮した式（８）を用いてＣＷＮＤを算出するから、ＲＴＴが大きい場合は、ＣＷＮＤの減少量を抑えて大きい値にすることができる。また、ＲＴＴが小さい場合は、ＣＷＮＤの減少量を大きくし、ＲＴＴが大きい場合のＣＷＮＤよりもＣＷＮＤを小さい値にすることができる。したがって、ＣＷＮＤを減少させた後に増加させることを考慮すると、ＲＴＴが大きい場合はＲＴＴが小さい場合に比べ、ＣＷＮＤを増加させる際の更新頻度が少なくなり、増加量が小さくなるから、ＣＷＮＤを減少させる際の減少量を抑えることにより、ＣＷＮＤを増加させる際にＲＴＴが小さい場合と同様のＣＷＮＤを早期に得ることができる。
【０１１７】
一方、ＣＷＮＤ算出手段２２は、判定結果がＣＷＮＤ増加の場合、以下の式によりＣＷＮＤを算出する（図４のステップＳ４０６）。
ＣＷＮＤ＝ＣＷＮＤ＋（ＲＴＴ／ＲＴＴｏｒｇ）×（１／ＣＷＮＤ）
・・・（９）
【０１１８】
前述のとおり、ＣＷＮＤはＡＣＫを受信するＲＴＴ毎に算出されるから、ＲＴＴが大きい場合はＣＷＮＤの更新速度が遅くなり、ＲＴＴが小さい場合はＣＷＮＤの更新速度は速くなる。したがって、判定結果がＣＷＮＤ増加の場合、ＣＷＮＤ算出手段２２により、ＲＴＴに関わらず基準とするＲＴＴｏｒｇのときのＣＷＮＤ増加速度と同等の増加速度とすることができる。これは、所定期間Ｔにおいて、ＣＷＮＤは（Ｔ／ＲＴＴ）回更新されるから、優先度が同じ場合、ＣＷＮＤの増加量は、（ＲＴＴ／ＲＴＴｏｒｇ）×（１／ＣＷＮＤ）×（Ｔ／ＲＴＴ）＝（１／ＲＴＴｏｒｇ）×（１／ＣＷＮＤ）×Ｔとなり、ＲＴＴの値に依存することなくＣＷＮＤの増加量は一定になるからである。すなわち、図１１に示したように、ＲＴＴが大きい場合、従来はＣＷＮＤの更新速度が遅いからＣＷＮＤの増加速度が遅かった。また、ＲＴＴが小さい場合、従来はＣＷＮＤの更新速度が速いからＣＷＮＤの増加速度が速かった。実施例６によれば、ＲＴＴを考慮した式（９）を用いてＣＷＮＤを算出するから、ＲＴＴの大きさに応じてＣＷＮＤの増加速度をＲＴＴｏｒｇの増加速度に合わせることができる。
【０１１９】
以上のように、実施例６の送信装置１によれば、ＣＷＮＤ維持及びＣＷＮＤ減少の処理を行う場合、ＲＴＴを考慮した式（８）を用いてＣＷＮＤを算出し、ＣＷＮＤ増加の処理を行う場合、ＲＴＴを考慮した式（９）を用いてＣＷＮＤを算出するから、ＲＴＴの大きさに応じてＣＷＮＤの増加速度を、基準となるＲＴＴｏｒｇの増加速度に合わせることができる。したがって、ＲＴＴの大小にかかわらず、所定時間におけるパケット送信量の平均値（所定のパケット送信量）が等しくなるように、送信レートを調節することができる。つまり、ＲＴＴの影響を受けることなく、ＲＴＴの大小にかかわらず、利用者の意図に従ったデータ伝送を、簡易な手法により実現することができる。
【０１２０】
本発明の実施例１〜６による送信装置１のハード構成としては、通常のコンピュータを使用することができる。送信装置１は、ＣＰＵ、ＲＡＭ等の揮発性の記憶媒体、ＲＯＭ等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。実施例１〜４，６の送信装置１に備えた送信部１０、受信部１１、ＲＴＴ計測部１２、パケットロス検出部１３、ＲＷＮＤ検出部１４及び送信レート決定部１５の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。また、実施例５の送信装置１に備えた、送信部１０、受信部１１、ＲＴＴ計測部１２、パケットロス検出部１３、ＲＷＮＤ検出部１４、送信レート決定部１５、優先度保持部１６及び優先度生成部１７の各機能も、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。これらのプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記憶媒体に格納して頒布することもできる。
【０１２１】
以上、実施例を挙げて本発明を説明したが、本発明は前記実施例に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、前記実施例では、ＮｅｗＲｅｎｏ方式を例に挙げて説明したが、本発明は、ＮｅｗＲｅｎｏ方式に限定されるものではなく、他の方式にも適用がある。
【符号の説明】
【０１２２】
１  送信装置
２  受信装置
３  ネットワーク経路
１０  送信部
１１  受信部
１２  ＲＴＴ計測部
１３  パケットロス検出部
１４  ＲＷＮＤ検出部
１５  送信レート決定部
１６  優先度保持部
１７  優先度生成部
２０  経路状態判定手段
２１  パラメータ設定手段
２２  ＣＷＮＤ算出手段
２３  パケット送信量決定手段
【図１】
2011155406.tif 000003
【図２】
2011155406.tif 000004
【図３】
2011155406.tif 000005
【図４】
2011155406.tif 000006
【図５】
2011155406.tif 000007
【図６】
2011155406.tif 000008
【図７】
2011155406.tif 000009
【図８】
2011155406.tif 000010
【図９】
2011155406.tif 000011
【図１０】
2011155406.tif 000012
【図１１】
2011155406.tif 000013