(57)【要約】  受信部（１１０）は、通信相手の受信レートを示すパケットを送信する。推定部（１２０）は、利用可能帯域を各時刻に推定する。決定部（１３０）は、受信レートと利用可能帯域の前回の推定値と利用可能帯域の今回の推定値とに基づいて、優先度の高い順に、各通信フローの保証帯域を決定する。送信部（１４０）は、利用可能帯域の今回の推定値をシェーピングレートとして使用し、各通信フローの保証帯域を各通信フローに割り当て、各通信フローにおける通信パケットを通信相手へ送信する。
2020031288.tif 000002
【特許請求の範囲】
【請求項１】
１つの通信相手との間に発生する複数の通信フローを処理する通信装置であって、
前記複数の通信フローのそれぞれに優先度が与えられ、
前記通信装置は、
前記通信相手との通信における前記通信相手の受信レートを示すパケットを前記通信相手から受信する受信部と、
前記通信相手との通信で利用することが可能な通信帯域である利用可能帯域を各時刻に推定する推定部と、
前記利用可能帯域が新たに推定されたときに、受信されたパケットが示す受信レートと前記利用可能帯域の前回の推定値と前記利用可能帯域の今回の推定値とに基づいて、優先度の高い順に、各通信フローに割り当てる通信帯域である保証帯域を決定する決定部と、
前記利用可能帯域の今回の推定値をシェーピングレートとして使用し、各通信フローの保証帯域を各通信フローに割り当て、各通信フローにおける通信パケットを前記通信相手へ送信する送信部と
を備える通信装置。
【請求項２】
前記複数の通信フローのそれぞれが、再送制御を行うプロトコルを使用する通信フローであり、
前記複数の通信フローのそれぞれに、通信に必要な通信帯域である必要帯域が設定され、
前記決定部は、
優先度の高い順に１つずつ通信フローを選択し、
前記通信相手との通信における前記通信相手の前記受信レートを前記利用可能帯域の前回の推定値と比較し、比較結果と選択された通信フローに割り当てられている保証帯域とに基づいて、選択された通信フローの想定スループットを決定し、
選択された通信フローの想定スループットと、選択された通信フローの必要帯域と、前記利用可能帯域の前回の推定時刻から前記利用可能帯域の今回の推定時刻までの経過時間とに基づいて、選択された通信フローにおける通信帯域の過不足の積算値を算出し、
選択された通信フローにおける通信帯域の過不足の積算値に基づいて、選択された通信フローにおける通信帯域の過不足を判定し、判定結果と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定し、
選択された通信フローの保証帯域に基づいて、前記残りの利用可能帯域を更新する
請求項１に記載の通信装置。
【請求項３】
前記複数の通信フローのそれぞれに、通信に必要な通信帯域である必要帯域が設定され、
前記決定部は、
前記通信相手との通信における前記通信相手の前記受信レートに対する前記利用可能帯域の前回の推定値の大きさを表す比較値を値集合に追加し、
前記値集合に含まれる１つ以上の比較値に基づいて、前記通信相手との通信における前記通信相手の受信レートに対する前記利用可能帯域の想定倍率を決定し、
優先度の高い順に１つずつ通信フローを選択し、
選択した通信フローが再送制御を行うプロトコルを使用する通信フローである場合、再送制御用の決定処理によって、選択された通信フローの保証帯域を決定し、
選択した通信フローが再送制御を行わないプロトコルを使用する通信フローである場合、前記想定倍率と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定し、
前記再送制御用の決定処理は、
前記通信相手との通信における前記通信相手の前記受信レートを前記利用可能帯域の前回の推定値と比較し、比較結果と選択された通信フローに割り当てられている保証帯域とに基づいて、選択された通信フローの想定スループットを決定し、
選択された通信フローの想定スループットと、選択された通信フローの必要帯域と、前記利用可能帯域の前回の推定時刻から前記利用可能帯域の今回の推定時刻までの経過時間とに基づいて、選択された通信フローにおける通信帯域の過不足の積算値を算出し、
選択された通信フローにおける通信帯域の過不足の積算値に基づいて、選択された通信フローにおける通信帯域の過不足を判定し、判定結果と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定する処理である
請求項１に記載の通信装置。
【請求項４】
前記複数の通信フローのそれぞれが、再送制御を行うプロトコルを使用する通信フローであり、
前記複数の通信フローのそれぞれに、通信に必要な通信帯域である必要帯域が設定され、
前記受信部は、さらに、それぞれの通信フローにおける前記通信相手の受信レートを示すパケットを前記通信相手から受信し、
前記決定部は、
優先度の高い順に１つずつ通信フローを選択し、
選択された通信フローにおける前記通信相手の前記受信レートに基づいて、選択された通信フローの想定スループットを決定し、
選択された通信フローの想定スループットと、選択された通信フローの必要帯域と、前記利用可能帯域の前回の推定時刻から前記利用可能帯域の今回の推定時刻までの経過時間とに基づいて、選択された通信フローにおける通信帯域の過不足の積算値を算出し、
選択された通信フローにおける通信帯域の過不足の積算値に基づいて、選択された通信フローにおける通信帯域の過不足を判定し、判定結果と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定し、
選択された通信フローの保証帯域に基づいて、前記残りの利用可能帯域を更新する
請求項１に記載の通信装置。
【請求項５】
前記複数の通信フローのそれぞれに、通信に必要な通信帯域である必要帯域が設定され、
前記受信部は、さらに、それぞれの通信フローにおける前記通信相手の受信レートを示すパケットを前記通信相手から受信し、
前記決定部は、
前記通信相手との通信における前記通信相手の前記受信レートに対する前記利用可能帯域の前回の推定値の大きさを表す比較値を値集合に追加し、
前記値集合に含まれる１つ以上の比較値に基づいて、前記通信相手との通信における前記通信相手の受信レートに対する前記利用可能帯域の想定倍率を決定し、
優先度の高い順に１つずつ通信フローを選択し、
選択した通信フローが再送制御を行うプロトコルを使用する通信フローである場合、再送制御用の決定処理によって、選択された通信フローの保証帯域を決定し、
選択した通信フローが再送制御を行わないプロトコルを使用する通信フローである場合、前記想定倍率と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定し、
前記再送制御用の決定処理は、
選択された通信フローにおける前記通信相手の前記受信レートに基づいて、選択された通信フローの想定スループットを決定し、
選択された通信フローの想定スループットと、選択された通信フローの必要帯域と、前記利用可能帯域の前回の推定時刻から前記利用可能帯域の今回の推定時刻までの経過時間とに基づいて、選択された通信フローにおける通信帯域の過不足の積算値を算出し、
選択された通信フローにおける通信帯域の過不足の積算値に基づいて、選択された通信フローにおける通信帯域の過不足を判定し、判定結果と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定する処理である
請求項１に記載の通信装置。
【請求項６】
選択された通信フローが再送制御を行うプロトコルを使用する通信フローであり、前記比較結果が、前記通信相手との通信における前記通信相手の前記受信レートが前記利用可能帯域の前回の推定値より小さい、という結果である場合、前記決定部は、選択された通信フローに割り当てられている保証帯域と再送制御を行う通信フローに割り当てられている保証帯域の平均とのうちの小さい方の値を選択し、前記通信相手との通信における前記通信相手の前記受信レートを前記利用可能帯域の前回の推定値で除算し、除算によって算出された値に選択された値を乗算し、乗算によって算出された値を選択された通信フローの想定スループットに決定し、
選択された通信フローが再送制御を行うプロトコルを使用する通信フローであり、前記比較結果が、前記通信相手との通信における前記通信相手の前記受信レートが前記利用可能帯域の前回の推定値以上、という結果である場合、前記決定部は、選択された通信フローに割り当てられている保証帯域を選択された通信フローの想定スループットに決定する
請求項２または請求項３に記載の通信装置。
【請求項７】
選択された通信フローが再送制御を行うプロトコルを使用する通信フローであり、前記比較結果が、前記通信相手との通信における前記通信相手の前記受信レートが前記利用可能帯域の前回の推定値より小さい、という結果である場合、前記決定部は、選択された通信フローに割り当てられている保証帯域に０より大きく１より小さい調整係数を乗算し、算出された値を選択された通信フローの想定スループットに決定し、
選択された通信フローが再送制御を行うプロトコルを使用する通信フローであり、前記比較結果が、前記通信相手との通信における前記通信相手の前記受信レートが前記利用可能帯域の前回の推定値以上、という結果である場合、選択された通信フローに割り当てられている保証帯域を選択された通信フローの想定スループットに決定する
請求項２または請求項３に記載の通信装置。
【請求項８】
選択された通信フローが再送制御を行うプロトコルを使用する通信フローである場合、前記判定結果が、選択された通信フローにおける通信帯域が不足している、という結果である場合、前記決定部は、選択された通信フローの必要帯域と前記積算値との合計を算出し、算出した合計と前記残りの利用可能帯域とのうちの小さい方の値を変更上限として選択し、選択された通信フローの必要帯域に調整値を加算し、加算によって算出された値と前記変更上限とのうちの小さい方の値を選択された通信フローの保証帯域に決定する
請求項２から請求項５のいずれか１項に記載の通信装置。
【請求項９】
選択された通信フローが再送制御を行うプロトコルを使用する通信フローである場合、前記判定結果が、選択された通信フローにおける通信帯域が不足している、という結果である場合、前記決定部は、選択された通信フローの必要帯域と前記積算値との合計を算出し、算出した合計と前記残りの利用可能帯域とのうちの小さい方の値を選択された通信フローの保証帯域に決定する
請求項２から請求項５のいずれか１項に記載の通信装置。
【請求項１０】
前記複数の通信フローのそれぞれが、再送制御を行わないプロトコルを使用する通信フローであり、
前記複数の通信フローのそれぞれに、通信に必要な通信帯域である必要帯域が設定され、
前記決定部は、
前記通信相手との通信における前記通信相手の前記受信レートに対する前記利用可能帯域の前回の推定値の大きさを表す比較値を値集合に追加し、
前記値集合に含まれる１つ以上の比較値に基づいて、前記通信相手との通信における前記通信相手の受信レートに対する前記利用可能帯域の想定倍率を決定し、
優先度の高い順に１つずつ通信フローを選択し、
前記想定倍率と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定し、
選択された通信フローの保証帯域に基づいて、前記残りの利用可能帯域を更新する
請求項１に記載の通信装置。
【請求項１１】
前記決定部は、前記１つ以上の比較値から最大の比較値を選択し、選択した比較値を前記想定倍率に決定する
請求項３、請求項５または請求項１０に記載の通信装置。
【請求項１２】
前記決定部は、前記１つ以上の比較値の平均を算出し、算出した平均を前記想定倍率に決定する
請求項３、請求項５または請求項１０に記載の通信装置。
【請求項１３】
前記決定部は、前記１つ以上の比較値に自己回帰和分移動平均モデルを適用することによって次回の比較値を予測し、予測された値を前記想定倍率に決定する
請求項３、請求項５または請求項１０に記載の通信装置。
【請求項１４】
１つの通信相手との間に発生する複数の通信フローを処理する通信方法であって、
前記複数の通信フローのそれぞれに優先度が与えられ、
受信部が、前記通信相手との通信における前記通信相手の受信レートを示すパケットを前記通信相手から受信する受信処理と、
推定部が、前記通信相手との通信で利用することが可能な通信帯域である利用可能帯域を各時刻に推定する推定処理と、
決定部が、前記利用可能帯域が新たに推定されたときに、受信されたパケットが示す受信レートと前記利用可能帯域の前回の推定値と前記利用可能帯域の今回の推定値とに基づいて、優先度の高い順に、各通信フローに割り当てる通信帯域である保証帯域を決定する決定処理と、
送信部が、前記利用可能帯域の今回の推定値をシェーピングレートとして使用し、各通信フローの保証帯域を各通信フローに割り当て、各通信フローにおける通信パケットを前記通信相手へ送信する送信処理と
を備える通信方法。
【請求項１５】
１つの通信相手との間に発生する複数の通信フローを処理する通信プログラムであって、
前記複数の通信フローのそれぞれに優先度が与えられ、
前記通信相手との通信における前記通信相手の受信レートを示すパケットを前記通信相手から受信する受信処理と、
前記通信相手との通信で利用することが可能な通信帯域である利用可能帯域を各時刻に推定する推定処理と、
前記利用可能帯域が新たに推定されたときに、受信されたパケットが示す受信レートと前記利用可能帯域の前回の推定値と前記利用可能帯域の今回の推定値とに基づいて、優先度の高い順に、各通信フローに割り当てる通信帯域である保証帯域を決定する決定処理と、
前記利用可能帯域の今回の推定値をシェーピングレートとして使用し、各通信フローの保証帯域を各通信フローに割り当て、各通信フローにおける通信パケットを前記通信相手へ送信する送信処理と
をコンピュータに実行させるための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信フローの送信帯域を制御する技術に関するものである。
【背景技術】
【０００２】
パケット通信において高優先通信帯域不足問題が存在する。
高優先通信帯域不足問題について以下に説明する。【０００３】
２拠点間で複数のアプリケーション（以下、ＡＰＬ）が同時に通信を行う場合を考える。
２拠点は、ゲートウェイ装置（以下、ＧＷ）を介して、ベストエフォートサービスネットワークで接続される。
各ＡＰＬの通信フローが必要とする通信帯域（以下、必要帯域）、および、各ＡＰＬの優先度が、予め与えられている。【０００４】
優先度が高いＡＰＬ（以下、高優先ＡＰＬ）の通信フローに関して受信レートが必要帯域以上の値となる様に制御するために、送信パケットのスケジューリングにおいて各通信フローの送信帯域として必要帯域を設定する方法が存在する。【０００５】
送信パケットのスケジューリングを行うためには、ＧＷが、ベストエフォートサービスネットワークに対するトラフィック全体の送信レート（以下、シェーピングレート）を決める必要がある。シェーピングレートとして、２拠点間の利用可能帯域を使用することが適切である。しかし、２拠点間の利用可能帯域の測定は困難であるため、利用可能帯域を推定する必要があり、推定誤差が避けられない。また、２拠点間の利用可能帯域は変動するため利用可能帯域の推定値を更新する必要があり、更新が間に合わないと利用可能帯域の推定値の誤差が増大する可能性がある。【０００６】
送信側ＧＷが送信パケットのスケジューリングを行う際に利用可能帯域の推定値がシェーピングレートとして使用される場合、利用可能帯域の推定値の誤差が原因で次のような問題が起き得る。
起き得る問題は、真の利用可能帯域が高優先ＡＰＬの必要帯域より大きいにも関わらず、高優先ＡＰＬの通信フローの受信レートが必要帯域より小さくなる、という問題である。
このような問題を高優先通信帯域不足問題と呼ぶ。【０００７】
通信フローの種類がＴＣＰである場合について、高優先通信帯域不足問題の具体例を説明する。ＴＣＰは、Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌの略称である。
高優先ＡＰＬが映像ストリームデータをサーバに送信すると仮定する。この映像ストリームデータの必要帯域は１Ｍｂｐｓである。
低優先ＡＰＬがセンサデータストリームをサーバに送信すると仮定する。このセンサデータストリームの必要帯域は５００ｋｂｐｓである。
そして、ボトルネックリンクにおいて、短期間のクロストラフィックが繰り返し発生する状況を仮定する。
この状況において、利用可能帯域の推定値が真の利用可能帯域よりも大きくなる時間帯が生じる。この場合、ＴＣＰの輻輳制御アルゴリズムにより、２つの通信フローが真の利用可能帯域を２等分することとなる。このため、送信側ＧＷが高優先ＡＰＬの通信フローに必要帯域分の送信帯域を割り当てても、受信側ＧＷでの高優先ＡＰＬの受信レートが必要帯域未満になる時間帯が生じる。【０００８】
通信フローの種類がＵＤＰである場合について、高優先通信帯域不足問題の具体例を説明する。ＵＤＰは、Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌの略称である。
高優先ＡＰＬがストリームデータをサーバに送信すると仮定する。このストリームデータの必要帯域は５００ｋｂｐｓである。
低優先ＡＰＬがストリームデータをサーバに送信すると仮定する。このストリームデータの必要帯域は３００ｋｂｐｓである。
ベストエフォートサービスネットワークの利用可能帯域が６００ｋｂｐｓであり、利用可能帯域の推定値が７００ｋｂｐｓである、と仮定する。
この場合、ＧＷは、高優先ＡＰＬの必要帯域を確保するため、最低帯域保証型パケットスケジューリングを行う。その際に、ＧＷは、送信するパケットのトラフィック全体を利用可能帯域の推定値（７００ｋｂｐｓ）でシェーピングする。また、ＧＷは、高優先ＡＰＬの通信フローに最低保証帯域として５００ｋｂｐｓを割り当て、低優先ＡＰＬの通信フローに最低保証帯域として２００ｋｂｐを割り当てる。
真の利用可能帯域は６００ｋｂｐｓであるので、真の利用可能帯域はＧＷのシェーピングレート（７００ｋｂｐｓ）より小さい。そのため、ボトルネックリンクにおいて、通信フローの優先度に関係なく、パケットロスが発生する。その結果、高優先ＡＰＬの通信フローの受信レートが必要帯域未満となる。
具体的には、高優先ＡＰＬの通信フローの受信レートは、４２８．６ｋｂｐｓ（＝６００ｋｂｐｓ×（５００ｋｂｐｓ／７００ｋｂｐｓ））となる。つまり、高優先ＡＰＬの通信フローの受信レート（４２８．６ｋｂｐｓ）は必要帯域（５００ｋｂｐｓ）よりも小さい。【０００９】
高優先通信帯域不足問題の解決に関係する従来技術について説明する。
特許文献１には、次のような方法が開示されている。再送データ量を考慮して各通信フローに送信帯域を割り当てる。または、再送データ量を考慮して各通信フローに送信帯域を割り当てた上で、再送データを優先して転送する。これにより、データ通信量が少ない通信フローでもデータの再送が滞るという事象を防止することが可能となる。
特許文献２には、次のような方法が開示されている。アプリケーションが業務実行時に送信するデータ量と、業務に対して指定される優先度の情報とを用いる。具体的には、複数アプリケーションが送信する全データ量がネットワークの通信帯域を越えた場合、優先度の高い業務のコネクションにおいて最大限にデータを送信できるように、優先度の低い業務のコネクションにおけるデータの送信量を制限する。これにより、アプリケーションが実行する各業務の優先度に基づいて通信の優先制御を実現することが可能となる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１４−０４９９０５号公報
【特許文献２】特開２０１０−２４５６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１の方法では、通信フローに対して優先度と必要帯域とが指定されない。そのため、優先度が高い通信フローにおいて受信レートが必要帯域以上になる確率を高くすることができない。したがって、高優先通信帯域不足問題を解決することができない。
特許文献２の方法では、通信フローに対して必要帯域が指定されない。また、受信側で受信されたデータの量が考慮されずに、通信帯域の割り当てが行われる。そのため、優先度が高い通信フローにおいて受信レートが必要帯域以上になる確率を高くすることができない。したがって、高優先通信帯域不足問題を解決することができない。【００１２】
本発明は、高優先通信帯域不足問題を解決できるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明の通信装置は、１つの通信相手との間に発生する複数の通信フローを処理する通信装置である。
前記複数の通信フローのそれぞれに優先度が与えられる。
前記通信装置は、
前記通信相手との通信における前記通信相手の受信レートを示すパケットを前記通信相手から受信する受信部と、
前記通信相手との通信で利用することが可能な通信帯域である利用可能帯域を各時刻に推定する推定部と、
前記利用可能帯域が新たに推定されたときに、受信されたパケットが示す受信レートと前記利用可能帯域の前回の推定値と前記利用可能帯域の今回の推定値とに基づいて、優先度の高い順に、各通信フローに割り当てる通信帯域である保証帯域を決定する決定部と、
前記利用可能帯域の今回の推定値をシェーピングレートとして使用し、各通信フローの保証帯域を各通信フローに割り当て、各通信フローにおける通信パケットを前記通信相手へ送信する送信部とを備える。
【発明の効果】
【００１４】
本発明によれば、高優先通信帯域不足問題を解決することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１における通信装置１００の構成図。
【図２】実施の形態１における通信システム２００の構成図。
【図３】実施の形態１における通信方法のフローチャート。
【図４】実施の形態１における通知処理のフローチャート。
【図５】実施の形態１における記録処理のフローチャート。
【図６】実施の形態１における推定処理のフローチャート。
【図７】実施の形態１における設定処理のフローチャート。
【図８】実施の形態２における設定処理のフローチャート。
【図９】実施の形態３における設定処理のフローチャート。
【図１０】実施の形態４における通知処理のフローチャート。
【図１１】実施の形態４における通知処理のフローチャート。
【図１２】実施の形態４における記録処理のフローチャート。
【図１３】実施の形態４における設定処理のフローチャート。
【図１４】実施の形態４における設定処理の別例のフローチャート。
【図１５】各実施の形態における通信装置１００のハードウェア構成図。
【発明を実施するための形態】
【００１６】
実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１７】
実施の形態１．
再送制御を行うプロトコルを使用する通信フローを扱う形態について、図１から図７に基づいて説明する。
再送制御を行うプロトコルの一例はＴＣＰである。
【００１８】
＊＊＊構成の説明＊＊＊
図１に基づいて、通信装置１００の構成を説明する。
通信装置１００は、プロセッサ１０１とメモリ１０２と補助記憶装置１０３とレシーバ１０４とトランスミッタ１０５といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００１９】
プロセッサ１０１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ１０２は揮発性の記憶装置である。メモリ１０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ１０２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ１０２に記憶されたデータは必要に応じて補助記憶装置１０３に保存される。
補助記憶装置１０３は不揮発性の記憶装置である。例えば、補助記憶装置１０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、またはフラッシュメモリである。補助記憶装置１０３に記憶されたデータは必要に応じてメモリ１０２にロードされる。
レシーバ１０４およびトランスミッタ１０５は、例えば、通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）で実現される。
【００２０】
通信装置１００は、受信部１１０と推定部１２０と決定部１３０と送信部１４０といった要素を備える。これらの要素はソフトウェアで実現される。
受信部１１０は、受信レート計測部１１１と受信処理部１１２とを含む。
送信部１４０は、送信処理部１４１とスケジューリング部１４２とを含む。スケジューリング部１４２は、送信パケットスケジューラとして機能する。
【００２１】
補助記憶装置１０３には、受信部１１０と推定部１２０と決定部１３０と送信部１４０としてコンピュータを機能させるための通信プログラムが記憶されている。通信プログラムは、メモリ１０２にロードされて、プロセッサ１０１によって実行される。
さらに、補助記憶装置１０３にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ１０２にロードされて、プロセッサ１０１によって実行される。
つまり、プロセッサ１０１は、ＯＳを実行しながら、通信プログラムを実行する。
通信プログラムを実行して得られるデータは、メモリ１０２、補助記憶装置１０３、プロセッサ１０１内のレジスタ、または、プロセッサ１０１内のキャッシュメモリといった記憶装置に記憶される。
【００２２】
メモリ１０２は、各種データを記憶する記憶部１９０として機能する。但し、他の記憶装置が、メモリ１０２の代わりに、又は、メモリ１０２と共に、記憶部１９０として機能してもよい。
【００２３】
通信装置１００は、プロセッサ１０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ１０１の役割を分担する。
【００２４】
通信プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
【００２５】
図２に基づいて、通信システム２００の構成を説明する。
通信システム２００は、通信装置１００Ｍと通信装置１００Ｐとネットワーク２０１とを備える。
【００２６】
通信装置１００Ｍは、パケットを送信する側の通信装置１００である。パケットの送信には、パケットを転送するという意味も含まれる。
受信レート計測部１１１Ｍは、通信装置１００Ｍに備わる受信レート計測部１１１である。
受信処理部１１２Ｍは、通信装置１００Ｍに備わる受信処理部１１２である。
推定部１２０Ｍは、通信装置１００Ｍに備わる推定部１２０である。
決定部１３０Ｍは、通信装置１００Ｍに備わる決定部１３０である。
送信処理部１４１Ｍは、通信装置１００Ｍに備わる送信処理部１４１である。
スケジューリング部１４２Ｍは、通信装置１００Ｍに備わるスケジューリング部１４２である。
【００２７】
通信装置１００Ｐは、パケットを受信する側の通信装置１００である。つまり、通信装置１００Ｐは、通信装置１００Ｍの通信相手である。
受信レート計測部１１１Ｐは、通信装置１００Ｐに備わる受信レート計測部１１１である。
受信処理部１１２Ｐは、通信装置１００Ｐに備わる受信処理部１１２である。
推定部１２０Ｐは、通信装置１００Ｐに備わる推定部１２０である。
決定部１３０Ｐは、通信装置１００Ｐに備わる決定部１３０である。
送信処理部１４１Ｐは、通信装置１００Ｐに備わる送信処理部１４１である。
スケジューリング部１４２Ｐは、通信装置１００Ｐに備わるスケジューリング部１４２である。
【００２８】
ネットワーク２０１は、ベストエフォートサービスネットワークである。
【００２９】
図２において、白抜き矢印はパケットの流れを示し、線矢印はデータの流れ及び制御の流れを示す。
【００３０】
＊＊＊動作の説明＊＊＊
通信装置１００の動作は通信方法に相当する。また、通信方法の手順は通信プログラムの手順に相当する。
【００３１】
通信システム２００において、通信装置１００Ｍは、１つの通信相手（通信装置１００Ｐ）との間に発生する複数の通信フローを処理する。
複数の通信フローのそれぞれには優先度が与えられる。
また、複数の通信フローのそれぞれには必要帯域が設定される。必要帯域は、通信に必要な通信帯域である
【００３２】
通信フローは、２つのアプリケーションプログラム間で行われる一連のデータ通信である。例えば、一方のアプリケーションプログラムは通信装置１００Ｍにおいて実行され、他方のアプリケーションプログラムは通信装置１００Ｐにおいて実行される。
【００３３】
図３に基づいて、通信方法の概要を説明する。
通信装置１００Ｍに備わる受信部１１０を受信部１１０Ｍと称する。
通信装置１００Ｍに備わる送信部１４０を送信部１４０Ｍと称する。
【００３４】
ステップＳ１０１において、受信部１１０Ｍは、受信レートパケットを通信相手から受信する。
受信レートパケットは、通信相手との通信で通信相手によって受信された１つ以上のパケットについての受信レートを示すパケットである。
【００３５】
ステップＳ１０２において、推定部１２０Ｍは、利用可能帯域を各時刻に推定する。つまり、推定部１２０Ｍは、各時刻における利用可能帯域を推定する。
利用可能帯域は、通信相手との通信で利用することが可能な通信帯域である。
【００３６】
ステップＳ１０３において、決定部１３０Ｍは、利用可能帯域が新たに推定されたときに、以下の（１）から（３）のデータに基づいて、優先度の高い順に、各通信フローの保証帯域を決定する。
通信フローの保証帯域は、通信フローに割り当てる通信帯域である。言い換えると、通信フローの保証帯域は、通信フローにおいて保証される通信帯域である。つまり、通信フローの保証帯域は、通信フローにおける最低保証帯域を意味する。
（１）通信相手から受信されたパケットが示す受信レート。
（２）利用可能帯域の前回の推定値。
（３）利用可能帯域の今回の推定値。
【００３７】
ステップＳ１０４において、送信部１４０Ｍは、利用可能帯域の今回の推定値をシェーピングレートとして使用する。
また、送信部１４０Ｍは、各通信フローの保証帯域を各通信フローに割り当てる。
そして、送信部１４０Ｍは、各通信フローにおける通信パケットを通信相手へ送信する。通信フローにおける通信パケットは、通信フローにおいて通信されるパケットである。
【００３８】
以下に、通信方法の詳細を説明する。
図４に基づいて、通知処理を説明する。
通知処理は、通信装置１００Ｍと通信装置１００Ｐとの通信における通信装置１００Ｐの受信レートを通信装置１００Ｍに通知するための処理である。通知処理は、通信装置１００Ｐによって実行される。
通信装置１００Ｐは、通信相手となる通信装置１００別に、受信カウンタと通知契機履歴とを記憶部１９０Ｐに保持する。記憶部１９０Ｐは通信装置１００Ｐの記憶部１９０である。
受信カウンタは、受信パケットのサイズの積算値を示すデータである。
通知契機履歴は、通知契機毎に時刻と受信カウンタの値とを示すデータである。
【００３９】
ステップＳ１１１において、通信装置１００Ｐにパケットが到達した場合、受信レート計測部１１１Ｐは、到達したパケットを検出する。
パケットが検出された場合、処理はステップＳ１１２に進む。
パケットが検出されなかった場合、処理はステップＳ１１５に進む。
【００４０】
ステップＳ１１２において、受信レート計測部１１１Ｐは、検出したパケットを受信する。受信されたパケットを受信パケットという。
【００４１】
ステップＳ１１３において、受信レート計測部１１１Ｐは、受信パケットに含まれる情報に基づいて、受信パケットの送信元を判定する。
例えば、受信レート計測部１１１Ｐは、受信パケットに設定されている送信元アドレスに基づいて、受信パケットの送信元を判定する。
【００４２】
ステップＳ１１４において、受信レート計測部１１１Ｐは、受信パケットの送信元用の受信カウンタに受信パケットのサイズを加算する。
【００４３】
ステップＳ１１５において、受信レート計測部１１１Ｐは、いずれかの通信相手に対する通知契機であるか判定する。
例えば、通信装置１００Ｍに対する前回の通知契機から一定周期が経過している場合、受信レート計測部１１１Ｐは、通信装置１００Ｍに対する通信契機であると判定する。
いずれかの通信相手に対する通知契機である場合、処理はステップＳ１１６に進む。
いずれの通信相手に対する通知契機でもない場合、処理はステップＳ１１１に進む。
【００４４】
ステップＳ１１６において、通信装置１００Ｍに対する通知契機であると仮定する。
受信レート計測部１１１Ｐは、通信装置１００Ｍ用の通知契機履歴を更新する。
具体的には、受信レート計測部１１１Ｐは、通信装置１００Ｍ用の通知契機履歴に、現在時刻と通信装置１００Ｍ用の受信カウンタの現在値との組を追加する。
【００４５】
ステップＳ１１７において、受信レート計測部１１１Ｐは、通信装置１００Ｍ用の通知契機履歴に基づいて、通信装置１００Ｍに対する受信レートを算出する。
【００４６】
具体的には、受信レート計測部１１１Ｐは、通信装置１００Ｍに対する受信レートを以下のように算出する。
まず、受信レート計測部１１１Ｐは、通信装置１００Ｍ用の通知契機履歴から、前回の通知契機の時刻と前回の通知契機における受信カウンタの値とを取得する。取得される時刻を前回時刻という。また、取得される値を前回カウンタ値という。
さらに、受信レート計測部１１１Ｐは、通信装置１００Ｍ用の通知契機履歴から、今回の通知契機の時刻と今回の通知契機における受信カウンタの値とを取得する。取得される時刻を今回時刻という。また、取得される値を今回カウンタ値という。
次に、受信レート計測部１１１Ｐは、前回時刻から今回時刻までの経過時間を算出する。また、受信レート計測部１１１Ｐは、今回カウンタ値から前回カウンタ値を減算する。算出される値を差分サイズという。
そして、受信レート計測部１１１Ｐは、差分サイズを経過時間で除算する。算出される値が通信装置１００Ｍに対する受信レートである。
【００４７】
ステップＳ１１８において、受信レート計測部１１１Ｐは、通信装置１００Ｍに対する受信レートを送信処理部１４１Ｐに渡す。
送信処理部１４１Ｐは、通信プロトコル処理を行うことによって、通信装置１００Ｍに対する受信レートを示すメッセージを含んだパケットを生成する。生成されるパケットを受信レートパケットという。
【００４８】
ステップＳ１１９において、送信処理部１４１Ｐは、受信レートパケットをスケジューリング部１４２Ｐに渡す。
スケジューリング部１４２Ｐは、受信レートパケットに対するスケジューリングを行い、送信スケジュールに従って受信レートパケットを送信する。スケジューリングは、スケジューリング部１４２Ｐに設定されているシェーピングレートとスケジューリング部１４２Ｐに設定されている各通信フローの保証帯域とに基づいて行われる。
受信レートパケットは、ネットワーク２０１を介して、通信装置１００Ｍに到達する。
ステップＳ１１９の後、処理はステップＳ１１１に進む。
【００４９】
なお、受信パケットは、受信レート計測部１１１Ｐから受信処理部１１２Ｐに渡り、受信処理部１１２Ｐによって処理される。
【００５０】
図５に基づいて、記録処理を説明する。
記録処理は、通信装置１００Ｍと通信装置１００Ｐとの通信における通信装置１００Ｐの受信レートを通信装置１００Ｍに記録するための処理である。記録処理は、通信装置１００Ｍによって実行される。
通信装置１００Ｍは、通信相手となる通信装置１００別に、受信レートを記憶部１９０Ｍに保持する。記憶部１９０Ｍは通信装置１００Ｍの記憶部１９０である。
【００５１】
ステップＳ１２１において、受信レート計測部１１１Ｍは、ネットワーク２０１を介して、通信装置１００Ｐから送信された受信レートパケットを受信する。
【００５２】
ステップＳ１２２において、受信レート計測部１１１Ｍは、通信装置１００Ｐの受信レート計測部１１１Ｐと同じく、通知処理を行う（図４参照）。
【００５３】
ステップＳ１２３において、受信レート計測部１１１Ｍは、受信レートパケットを受信処理部１１２Ｍへ渡す。
受信処理部１１２Ｍは、通信プロトコル処理を行うことによって、受信レートパケットからメッセージを抽出する。抽出されるメッセージは通信装置１００Ｐの受信レートを示す。
受信処理部１１２Ｍは、抽出したメッセージを決定部１３０へ渡す。
決定部１３０は、メッセージから通信装置１００Ｐの受信レートを抽出する。
【００５４】
ステップＳ１２４において、決定部１３０は、通信装置１００Ｐの受信レートを記録する。
具体的には、決定部１３０は、通信装置１００Ｐの受信レートとして保持されている受信レートをメッセージから抽出した受信レートで更新する。
【００５５】
図６に基づいて、推定処理を説明する。
推定処理は、通信装置１００Ｍと通信装置１００Ｐとの間での通信における利用可能帯域を推定する処理であり、通信装置１００Ｍによって実行される。
通信装置１００Ｍは、通信相手となる通信装置１００別に、利用可能帯域の前回の推定値と利用可能帯域の今回の推定値とを記憶部１９０Ｍに保持する。
【００５６】
ステップＳ１３１において、推定部１２０Ｍは、いずれかの通信相手に対する推定契機であるか判定する。
例えば、通信装置１００Ｐに対する前回の推定契機から一定定周期が経過している場合、推定部１２０Ｍは、通信装置１００Ｐに対する推定契機であると判定する。
いずれかの通信相手に対する推定契機である場合、処理はステップＳ１３２に進む。
いずれかの通信相手に対する推定契機でない場合、処理はステップＳ１３１に進む。
【００５７】
ステップＳ１３２において、通信装置１００Ｐに対する推定契機であると仮定する。
推定部１２０Ｍは、通信装置１００Ｐに対する利用可能帯域を推定する。
具体的には、推定部１２０Ｍは、従来の推定方法を実行することによって、通信装置１００Ｐに対する利用可能帯域を推定する。
例えば、推定部１２０Ｍは、ＴＣＰ  Ｆｒｉｅｎｄｌｙ  Ｒａｔｅ  Ｃｏｎｔｒｏｌ（ＴＦＲＣ）を実行することによって、通信装置１００Ｐに対する利用可能帯域を推定する。
【００５８】
ステップＳ１３３において、推定部１２０Ｍは、通信装置１００Ｐに対する利用可能帯域の推定値を決定部１３０Ｍに渡す。
決定部１３０Ｍは、通信装置１００Ｐに対する利用可能帯域の推定値を記録する。
具体的には、決定部１３０Ｍは、通信装置１００Ｐに対する前回の利用可能帯域として保持されている値を通信装置１００Ｐに対する今回の利用可能帯域として保持されている値に更新する。そして、決定部１３０Ｍは、通信装置１００Ｐに対する今回の利用可能帯域として保持されている値を推定部１２０Ｍから渡された推定値に更新する。
【００５９】
図７に基づいて、設定処理を説明する。
設定処理は、シェーピングレートと各通信フローの保証帯域とを設定するための処理であり、通信装置１００Ｍによって実行される。
【００６０】
通信装置１００Ｐに対する利用可能帯域の推定値が推定部１２０Ｍから決定部１３０Ｍに通知されたものと仮定する。つまり、ステップＳ１３３（図６参照）が実行されたものと仮定する。
また、通信装置１００Ｍと通信装置１００Ｐとの間で複数の通信フローが発生しているものと仮定する。
【００６１】
設定処理（図７）で使用される変数を説明する。
「Ｗｏ」は、利用可能帯域の前回の推定値を示す。
「Ｗｎ」は、利用可能帯域の今回の推定値のうちの残りの利用可能帯域を示す。初期値は、利用可能帯域の今回の推定値である。
「Ｆｉ」は、優先度がｉ番目に高い通信フローを表す。「ｉ」は１以上の整数である。
「Ｂｉ」は、通信フローＦｉに設定される必要帯域を示す。
「Ｓｉ」は、通信フローＦｉに対する保証帯域を示す。
「Ｒａ」は、直近に通信装置１００Ｐから通知された受信レートを示す。
【００６２】
「Ｄｉ」は、通信フローＦｉにおける通信帯域の過不足についての直近の過去Ｎ回の設定処理（図７）における積算値を示す。「Ｎ」は、予め決められた１以上の整数である。
【００６３】
「Ｒｉ」は、通信フローＦｉの想定スループットを示す。想定スループットは、通信フローＦｉの受信スループットとして設定処理（図７）で使用される値である。
【００６４】
ステップＳ１４１において、決定部１３０Ｍは、優先度の高い順に、未選択の通信フローを１つ選択する。
【００６５】
ステップＳ１４２からステップＳ１４７は、ステップＳ１４１で選択された通信フローＦｉのために実行される。
【００６６】
ステップＳ１４２において、決定部１３０Ｍは、受信レートＲａを利用可能帯域の前回の推定値Ｗｏと比較する。
【００６７】
ステップＳ１４３において、決定部１３０Ｍは、比較結果と現在の保証帯域Ｓｉとに基づいて、通信フローＦｉの想定スループットＲｉを決定する。
現在の保証帯域Ｓｉは、通信フローＦｉに割り当てられている通信帯域を意味する。
【００６８】
具体的には、決定部１３０Ｍは、通信フローＦｉの想定スループットＲｉを以下のように決定する。
受信レートＲａが利用可能帯域の前回の推定値Ｗｏより小さい場合、決定部１３０Ｍは、現在の保証帯域Ｓｉより小さい値を想定スループットＲｉに設定する。現在の保証帯域Ｓｉより小さい値について後述する。
受信レートＲａが利用可能帯域の前回の推定値Ｗｏ以上である場合、決定部１３０Ｍは、現在の保証帯域Ｓｉを想定スループットＲｉに設定する。
【００６９】
現在の保証帯域Ｓｉより小さい値の第１の具体例を説明する。
受信レートＲａが利用可能帯域の前回の推定値Ｗｏより小さい場合、決定部１３０Ｍは、現在の保証帯域Ｓｉより小さい値を以下のように算出する。
決定部１３０Ｍは、現在の保証帯域Ｓｉと複数の通信フローにおける現在の保証帯域の平均とのうちの小さい方の値を選択する。
決定部１３０Ｍは、受信レートＲａを利用可能帯域の前回の推定値Ｗｏで除算する。
そして、決定部１３０Ｍは、除算によって算出された値に選択された値を乗算する。乗算によって算出される値が、現在の保証帯域Ｓｉより小さい値である。
現在の保証帯域Ｓｉより小さい値が想定スループットＲｉに設定される。想定スループットＲｉは、次の式で表すことができる。ｍｉｎ（Ｘ，Ｙ）は値Ｘと値Ｙとのうちの小さい方の値を意味する。
Ｒｉ  ＝  （Ｒａ／Ｗｏ）＊ｍｉｎ（現在のＳｉ，（現在のＳｉの合計／通信フロー数））
【００７０】
現在の保証帯域Ｓｉより小さい値の第２の具体例を説明する。
決定部１３０Ｍは、調整係数Ｆａを現在の保証帯域Ｓｉに乗算する。算出される値が、現在の保証帯域Ｓｉより小さい値である。調整係数Ｆａは、予め指定されるパラメータであり、０より大きく１より小さい。
現在の保証帯域Ｓｉより小さい値が想定スループットＲｉに設定される。想定スループットＲ１は、次の式で表すことができる。
Ｒｉ  ＝  Ｆａ＊現在のＳｉ
０  ＜  Ｆａ  ＜  １
【００７１】
ステップＳ１４４において、決定部１３０Ｍは、通信フローＦｉの想定スループットＲｉと、通信フローＦｉの必要帯域Ｂｉと、経過時間Ｔｗとに基づいて、通信フローＦｉにおける通信帯域の過不足の積算値Ｄｉを算出する。
経過時間Ｔｗは、利用可能帯域の前回の推定時刻から利用可能帯域の今回の推定時刻までの時間である。
【００７２】
具体的には、決定部１３０Ｍは、積算値Ｄｉを以下のように算出する。
決定部１３０Ｍは、想定スループットＲｉを必要帯域Ｂｉと比較する。
想定スループットＲｉが必要帯域Ｂｉより小さい場合、決定部１３０Ｍは、通信フローＦｉについて経過時間Ｔｗにおける通信帯域の不足量Ｓｈを算出し、積算値Ｄｉに不足量Ｓｈを加算する。
不足量Ｓｈは、必要帯域Ｂｉから想定スループットＲｉを減算して算出される値に経過時間Ｔｗを乗算することによって算出される。
不足量Ｓｈは、次の式で表すことができる。
Ｓｈ  ＝  （Ｂｉ−Ｒｉ）＊Ｔｗ
積算値Ｄｉは、次の式で表すことができる。
Ｄｉ  ＝  Ｄｉ＋Ｓｈ
想定スループットＲｉが必要帯域Ｂｉ以上である場合、決定部１３０Ｍは、通信フローＦｉについて経過時間Ｔｗおける通信帯域の超過量Ｏｖを算出し、積算値Ｄｉから超過量Ｏｖを減算する。
超過量Ｏｖは、想定スループットＲｉから必要帯域Ｂｉを減算して得られる値に経過時間Ｔｗを乗算することによって算出される。
超過量Ｏｖは、次の式で表すことができる。
Ｏｖ  ＝  （Ｒｉ−Ｂｉ）＊Ｔｗ
積算値Ｄｉは、次の式で表すことができる。
Ｄｉ  ＝  Ｄｉ−Ｏｖ
【００７３】
ステップＳ１４５において、決定部１３０Ｍは、通信フローＦｉにおける通信帯域の過不足の積算値Ｄｉに基づいて、通信フローＦｉにおける通信帯域の過不足を判定する。
【００７４】
具体的には、決定部１３０Ｍは、通信フローＦｉにおける通信帯域の過不足を以下のように判定する。
積算値Ｄｉが０より大きい場合、つまり、積算値Ｄｉが正の値である場合、決定部１３０Ｍは、通信フローＦｉにおける通信帯域が不足していると判定する。
積算値Ｄｉが０以下である場合、つまり、積算値Ｄｉが０または負の値である場合、決定部１３０Ｍは、通信フローＦｉにおける通信帯域が超過していると判定する。
【００７５】
ステップＳ１４６において、決定部１３０Ｍは、判定結果と通信フローＦｉの必要帯域Ｂｉと残りの利用可能帯域Ｗｎとに基づいて、通信フローＦｉの保証帯域Ｓｉを決定する。また、決定部１３０Ｍは、通信フローＦｉの積算値Ｄｉを０に初期化する。
【００７６】
具体的には、決定部１３０Ｍは、保証帯域Ｓｉを以下のように決定する。
まず、通信フローＦｉにおける通信帯域が不足している場合、つまり、積算値Ｄｉが０より大きい場合について説明する。
決定部１３０Ｍは、必要帯域Ｂｉと積算値Ｄｉとの合計を算出し、算出した合計と残りの利用可能帯域Ｗｎとのうちの小さい方の値を選択する。選択される値を変更上限Ｍａという。
そして、決定部１３０Ｍは、必要帯域Ｂｉ以上で且つ変更上限Ｍａ以下の範囲から保証帯域Ｓｉを選択する。
変更上限Ｍａは、次の式で表すことができる。
Ｍａ  ＝  ｍｉｎ（Ｗｎ，（Ｂｉ＋Ｄｉ））
保障帯域Ｓｉは、次の式で表すことができる。
Ｂｉ  ≦  Ｓｉ  ≦  Ｍａ
【００７７】
選択される保証帯域Ｓｉの第１の具体例を説明する。
決定部１３０Ｍは、必要帯域Ｂｉに調整値Ｑを加算する。調整値Ｑは、あらかじめ指定されるパラメータである。算出される値を調整帯域という。
そして、決定部１３０Ｍは、調整帯域と変更上限Ｍａとのうちの小さい方の値を保証帯域Ｓｉとして選択する。
保証帯域Ｓｉは、次の式で表すことができる。
Ｓｉ  ＝  ｍｉｎ（（Ｂｉ＋Ｑ），ｍｉｎ（Ｗｎ，（Ｂｉ＋Ｄｉ）））
【００７８】
選択される保証帯域Ｓｉの第２の具体例を説明する。
決定部１３０Ｍは、変更上限Ｍａを保証帯域Ｓｉに決定する。
保証帯域Ｓｉは、次の式で表すことができる。
Ｓｉ  ＝  ｍｉｎ（Ｗｎ，（Ｂｉ＋Ｄｉ））
【００７９】
次に、通信フローＦｉにおける通信帯域が超過している場合、つまり、積算値Ｄｉが０以下である場合について説明する。
決定部１３０Ｍは、残りの利用可能帯域Ｗｎと必要帯域Ｂｉとのうちの小さい方の値を保証帯域Ｓｉに決定する。
保障帯域Ｓｉは、次の式で表すことができる。
Ｓｉ  ＝  ｍｉｎ（Ｗｎ，Ｂｉ）
【００８０】
ステップＳ１４７において、決定部１３０Ｍは、通信フローＦｉの保証帯域Ｓｉに基づいて、残りの利用可能帯域Ｗｎを更新する。
具体的には、決定部１３０Ｍは、残りの利用可能帯域Ｗｎから保証帯域Ｓｉを減算することによって、残りの利用可能帯域Ｗｎを更新する。但し、残りの利用可能帯域Ｗｎの下限を０とする。
残りの利用可能帯域Ｗｎは、次の式で表すことができる。ｍａｘ（Ｘ，Ｙ）は、値Ｘと値Ｙとのうちの大きい方の値を意味する。
Ｗｎ  ＝  ｍａｘ（０，（Ｗｎ−Ｓｉ））
【００８１】
ステップＳ１４８において、決定部１３０Ｍは、未選択の通信フローがあるか判定する。図７において、未選択の通信フローを未選択フローと記す。
未選択の通信フローがある場合、処理はステップＳ１４１に進む。
未選択の通信フローがない場合、処理はステップＳ１４９に進む。
【００８２】
ステップＳ１４９において、決定部１３０Ｍは、利用可能帯域の今回の推定値をシェーピングレートとしてスケジューリング部１４２に設定する。
さらに、決定部１３０Ｍは、各通信フローＦｉの保証帯域Ｓｉをスケジューリング部１４２に設定する。
【００８３】
＊＊＊実施の形態１の効果＊＊＊
受信レートが必要帯域を下回る事象が発生した場合に、当該通信フローの受信レートの必要帯域に対する不足分の推定値を積算することができる。
高優先度の通信フローについて、受信レートの必要帯域に対する不足分の推定値の積算値が正の場合に、低優先度の通信フローよりも優先的に最低保証帯域値を必要帯域より大きい値に設定することができる。また、不足分の推定値の積算値を０に減らすことができる。
これらの動作により、優先度が高い通信フローほど、受信レートの必要帯域に対する不足分の推定値の積算値が正になる期間を短くすることが可能となる。また、優先度が高い通信フローが使用する送信帯域が必要帯域より大きくなる分量を必要十分な値に抑制することが可能となる。さらに、優先度が低い通信フローに割り当てる送信帯域を必要以上に低くしないことも可能となる。
つまり、高優先通信フローの受信レートが必要帯域より小さくなる高優先通信帯域不足問題の発生頻度を減らすことが可能となる。
【００８４】
実施の形態２．
再送制御を行わないプロトコルを使用する通信フローを扱う形態について、主に実施の形態１と異なる点を図８に基づいて説明する。
再送制御を行わないプロトコルの一例はＵＤＰである。
【００８５】
＊＊＊構成の説明＊＊＊
通信装置１００の構成は、実施の形態１における構成と同じである（図１参照）。
通信システム２００の構成は、実施の形態１における構成と同じである（図２参照）。
【００８６】
＊＊＊動作の説明＊＊＊
通信方法の概要は、実施の形態１における概要と同じである（図３参照）。
【００８７】
以下に通信方法の詳細を説明する。
通知処理は、実施の形態１における処理と同じである（図４参照）。
記録処理は、実施の形態１における処理と同じである（図５参照）。
推定処理は、実施の形態１における処理と同じである（図６参照）。
【００８８】
図８に基づいて、設定処理を説明する。
設定処理（図８）で使用される変数を説明する。
「Ｗｏ」は、利用可能帯域の前回の推定値を示す。
「Ｗｎ」は、利用可能帯域の今回の推定値のうちの残りの利用可能帯域を示す。初期値は、利用可能帯域の今回の推定値である。
「Ｆｉ」は、優先度がｉ番目に高い通信フローを表す。「ｉ」は１以上の整数である。
「Ｂｉ」は、通信フローＦｉに設定される必要帯域を示す。
「Ｓｉ」は、通信フローＦｉに対する保証帯域を示す。
「Ｒａ」は、直近に通信装置１００Ｐから通知された受信レートを示す。
【００８９】
「Ｐ」は、比較値Ｐｖの集合であり、今回までのＭ回の設定処理におけるＭ個の比較値Ｐｖを含む。「Ｍ」は、１以上の整数である。
比較値Ｐｖは、通信装置１００Ｍと通信装置１００Ｐとの通信における通信装置１００Ｐの受信レートに対する利用可能帯域の前回の推定値の大きさを表す値である。
利用可能帯域の前回の推定値が受信レートより大きい場合、比較値Ｐｖは、利用可能帯域の前回の推定値を受信レートで除算することによって算出される値である。
利用可能帯域の前回の推定値が受信レート以下である場合、比較値Ｐｖは１である。
【００９０】
「Ｃ」は、通信装置１００Ｍと通信装置１００Ｐとの通信における通信装置１００Ｐの受信レートに対する利用可能帯域の想定倍率である。想定倍率Ｃは、利用可能帯域の推定値が通信装置１００Ｐの受信レートの何倍まで大きくなる可能性があるかを表す。想定倍率Ｃは、集合Ｐを入力として求められる。
【００９１】
ステップＳ２４１において、決定部１３０Ｍは、利用可能帯域の前回の推定値Ｗｏと受信レートＲａとに基づいて、比較値Ｐｖの集合Ｐを更新する。
【００９２】
具体的には、決定部１３０Ｍは、比較値の集合Ｐを以下のように更新する。
決定部１３０Ｍは、前回の推定値Ｗｏを受信レートＲａで除算して算出される値と１とのうちの大きい方の値を今回の比較値Ｐｖとして集合Ｐに追加する。
集合ＰにＭ個以上の比較値Ｐｖが含まれる場合、決定部１３０Ｍは、集合Ｐから最も古い比較値Ｐｖを削除する。
【００９３】
ステップＳ２４２において、決定部１３０Ｍは、比較値の集合Ｐに基づいて、想定倍率Ｃを決定する。
【００９４】
想定倍率Ｃの第１の具体例を説明する。
決定部１３０Ｍは、集合Ｐから最大の比較値Ｐｖを選択し、選択した比較値Ｐｖを想定倍率Ｃに設定する。つまり、決定部１３０Ｍは、選択した比較値Ｐｖの値を想定倍率に決定する。
【００９５】
想定倍率Ｃの第２の具体例を説明する。
決定部１３０Ｍは、集合Ｐにおける比較値Ｐｖの平均を算出し、算出した平均を想定倍率Ｃに設定する。つまり、決定部１３０Ｍは、算出した平均を想定倍率に決定する。
【００９６】
想定倍率Ｃの第３の具体例を説明する。
決定部１３０Ｍは、集合Ｐに含まれるＭ個の比較値Ｐｖを時系列データとして扱い、その時系列データに自己回帰和分移動平均モデル（ＡＲＩＭＡモデル）を適用する。これにより、決定部１３０Ｍは、次回の比較値Ｐｖを予測する。
そして、決定部１３０Ｍは、予測された値を想定倍率Ｃに設定する。つまり、決定部１３０Ｍは、予測された値を想定倍率に決定する。
【００９７】
ステップＳ２４３において、決定部１３０Ｍは、優先度の高い順に、未選択の通信フローを１つ選択する。
【００９８】
ステップＳ２４４およびステップＳ２４５は、ステップＳ２４３で選択された通信フローＦｉのために実行される。
【００９９】
ステップＳ２４４において、決定部１３０Ｍは、想定倍率Ｃと通信フローＦｉの必要帯域Ｂｉと残りの利用可能帯域Ｗｎとに基づいて、通信フローＦｉの保証帯域Ｓｉを決定する。
具体的には、決定部１３０Ｍは、想定倍率Ｃを必要帯域Ｂｉに乗算して算出される値と残りの利用可能帯域Ｗｎとのうちの小さい方の値を保証帯域Ｓｉに決定する。
保証帯域Ｓｉは、次の式で表すことができる。
Ｓｉ  ＝  ｍｉｎ（Ｗｎ，（Ｃ＊Ｂｉ））
【０１００】
ステップＳ２４５において、決定部１３０Ｍは、通信フローＦｉの保証帯域Ｓｉに基づいて、残りの利用可能帯域Ｗｎを更新する。
ステップＳ２４５は、実施の形態１におけるステップＳ１４７と同じである（図７参照）。
【０１０１】
ステップＳ２４６において、決定部１３０Ｍは、未選択の通信フローがあるか判定する。図８において、未選択の通信フローを未選択フローと記す。
未選択の通信フローがある場合、処理はステップＳ２４３に進む。
未選択の通信フローがない場合、処理はステップＳ２４７に進む。
【０１０２】
ステップＳ２４７において、決定部１３０Ｍは、利用可能帯域の今回の推定値をシェーピングレートとしてスケジューリング部１４２に設定する。
さらに、決定部１３０Ｍは、各通信フローＦｉの保証帯域Ｓｉをスケジューリング部１４２に設定する。
【０１０３】
＊＊＊実施の形態２の効果＊＊＊
利用可能帯域の推定値が受信レートの何倍（以下、Ｘ倍）になるかを推定することができる。
利用可能帯域の推定値が受信レートのＸ倍になった場合、高優先度の通信フローに必要帯域のＸ倍の送信帯域を割り当てることができる。つまり、通信フローの受信レートが送信帯域の１／Ｘ倍になるという前提の下、高優先度の通信フローに対して、低優先度の通信フローよりも優先的に、必要帯域のＸ倍の送信帯域を割り当てることができる。
これらの動作により、優先度が高い通信フローほど、受信レートが必要帯域を下回る頻度を減らすことが可能となる。また、優先度が高い通信フローが使用する送信帯域が必要帯域より大きくなる分量を必要十分な値に抑制することが可能となる。さらに、優先度が低い通信フローに割り当てる送信帯域を必要以上に低くしないことも可能となる。
つまり、高優先通信フローの受信レートが必要帯域より小さくなる高優先通信帯域不足問題の発生頻度を減らすことが可能となる。
【０１０４】
実施の形態３．
再送制御を行うプロトコルを使用する通信フローと再送制御を行わないプロトコルを使用する通信フローとの両方を処理する形態について、実施の形態１および実施の形態２と異なる点を図９に基づいて主に説明する。
【０１０５】
＊＊＊構成の説明＊＊＊
通信装置１００の構成は、実施の形態１における構成と同じである（図１参照）。
通信システム２００の構成は、実施の形態１における構成と同じである（図２参照）。
【０１０６】
＊＊＊動作の説明＊＊＊
通信方法の概要は、実施の形態１における概要と同じである（図３参照）。
【０１０７】
以下に通信方法の詳細を説明する。
通知処理は、実施の形態１における処理と同じである（図４参照）。
記録処理は、実施の形態１における処理と同じである（図５参照）。
推定処理は、実施の形態１における処理と同じである（図６参照）。
【０１０８】
図９に基づいて、設定処理を説明する。
ステップＳ３４１において、決定部１３０Ｍは、利用可能帯域の前回の推定値Ｗｏと受信レートＲａとに基づいて、比較値の集合Ｐを更新する。
ステップＳ３４２において、決定部１３０Ｍは、比較値の集合Ｐに基づいて、想定比Ｃを更新する。
ステップＳ３４１およびステップＳ３４２は、実施の形態２におけるステップＳ２４１およびステップＳ２４２と同じである（図８参照）。
【０１０９】
ステップＳ３４３において、決定部１３０Ｍは、優先度の高い順に、未選択の通信フローを１つ選択する。
【０１１０】
ステップＳ３４４からステップＳ３４６は、ステップＳ３４３で選択された通信フローＦｉのために実行される。
【０１１１】
ステップＳ３４４において、決定部１３０Ｍは、通信フローＦｉの種類を判定する。
具体的には、決定部１３０Ｍは、通信フローＦｉが再送制御用の通信フローと非再送制御用の通信フローとのいずれであるかを判定する。
再送制御用の通信フローは、再送制御を行うプロトコルを使用する通信フローである。つまり、再送制御用の通信フローは、実施の形態１において処理される通信フローである。
非再送制御用の通信フローは、再送制御を行わないプロトコルを使用する通信フローである。つまり、非再送制御用の通信フローは、実施の形態２において処理される通信フローである。
通信フローＦｉが再送制御用の通信フローである場合、処理はステップＳ３４５に進む。
通信フローＦｉが非再送制御用の通信フローである場合、処理はステップＳ３４６に進む。
【０１１２】
ステップＳ３４５において、決定部１３０Ｍは、通信フローＦｉに対して再送制御用の決定処理を行う。
再送制御用の決定処理は、通信フローＦｉの保証帯域Ｓｉを決定するための処理である。
具体的には、決定部１３０Ｍは、実施の形態１における決定処理（ステップＳ１４２からステップＳ１４６）を実行する。
【０１１３】
ステップＳ３４６において、決定部１３０Ｍは、通信フローＦｉに対して非再送制御用の決定処理を行う。
再送制御用の決定処理は、通信フローＦｉの保証帯域Ｓｉを決定するための処理である。
具体的には、決定部１３０Ｍは、実施の形態２における決定処理（ステップＳ２４４）を実行する。
【０１１４】
ステップＳ３４７において、決定部１３０Ｍは、通信フローＦｉの保証帯域Ｓｉに基づいて、残りの利用可能帯域Ｗｎを更新する。
ステップＳ３４７は、実施の形態１におけるステップＳ１４７と同じである（図７参照）。
【０１１５】
ステップＳ３４８において、決定部１３０Ｍは、未選択の通信フローがあるか判定する。図９において、未選択の通信フローを未選択フローと記す。
未選択の通信フローがある場合、処理はステップＳ３４３に進む。
未選択の通信フローがない場合、処理はステップＳ３４９に進む。
【０１１６】
ステップＳ３４９において、決定部１３０Ｍは、利用可能帯域の今回の推定値をシェーピングレートとしてスケジューリング部１４２に設定する。
さらに、決定部１３０Ｍは、各通信フローＦｉの保証帯域Ｓｉをスケジューリング部１４２に設定する。
【０１１７】
＊＊＊実施の形態３の効果＊＊＊
【０１１８】
再送制御を行うプロトコルを使用する通信フローと再送制御を行わないプロトコルを使用する通信フローとのいずれについても、実施の形態１または実施の形態２の効果を奏することができる。
つまり、高優先通信フローの受信レートが必要帯域より小さくなる高優先通信帯域不足問題の発生頻度を減らす効果が得られる。さらに、優先度が低い通信フローに割り当てる送信帯域を必要以上に低くしない効果が得られる。
【０１１９】
実施の形態４．
通信フローにおける通信相手の受信レートに基づいて通信フローの想定スループットを決定する形態について、実施の形態１および実施の形態３と異なる点を図１０から図１４に基づいて主に説明する。
【０１２０】
＊＊＊構成の説明＊＊＊
通信装置１００の構成は、実施の形態１における構成と同じである（図１参照）。
通信システム２００の構成は、実施の形態１における構成と同じである（図２参照）。
【０１２１】
＊＊＊動作の説明＊＊＊
通信方法の概要は、実施の形態１における概要と同じである（図３参照）。
【０１２２】
以下に通信方法の詳細を説明する。
図１０および図１１に基づいて、通知処理を説明する。
通知処理は、通信装置１００Ｍと通信装置１００Ｐとの通信における通信装置１００Ｐの受信レートを通信装置１００Ｍに通知するための処理である。さらに、通知処理は、各通信フローにおける通信装置１００Ｐの受信レートを通信装置１００Ｍに通知するための処理である。通知処理は、通信装置１００Ｐによって実行される。
通信装置１００Ｐは、通信相手となる通信装置１００別に、受信カウンタと通知契機履歴とを記憶部１９０Ｐに保持する。さらに、通信装置１００Ｐは、通信フロー別に、受信カウンタと通知契機履歴とを記憶部１９０Ｐに保持する。
受信カウンタは、受信パケットのサイズの積算値を示すデータである。
通知契機履歴は、通知契機毎に時刻と受信カウンタの値とを示すデータである。
【０１２３】
ステップＳ４１１１からステップＳ４１１４は、実施の形態１におけるステップＳ１１１からステップＳ１１４と同じである（図４参照）。
【０１２４】
ステップＳ４１１１において、通信装置１００Ｐにパケットが到達した場合、受信レート計測部１１１Ｐは、到達したパケットを検出する。
パケットが検出された場合、処理はステップＳ４１１２に進む。
パケットが検出されなかった場合、処理はステップＳ４１２１に進む。
【０１２５】
ステップＳ４１１２において、受信レート計測部１１１Ｐは、検出したパケットを受信する。受信されたパケットを受信パケットという。
【０１２６】
ステップＳ４１１３において、受信レート計測部１１１Ｐは、受信パケットに含まれる情報に基づいて、受信パケットの送信元を判定する。
例えば、受信レート計測部１１１Ｐは、受信パケットに設定されている送信元アドレスに基づいて、受信パケットの送信元を判定する。
【０１２７】
ステップＳ４１１４において、受信レート計測部１１１Ｐは、受信パケットの送信元用の受信カウンタに受信パケットのサイズを加算する。
【０１２８】
ステップＳ４１１５において、受信レート計測部１１１Ｐは、受信パケットに含まれる情報に基づいて、受信パケットの通信フローを判定する。
例えば、受信レート計測部１１１Ｐは、送信元アドレスとプロトコル種別と宛先ポート番号と送信元ポート番号といった情報に基づいて、受信パケットの通信フローを判定する。
【０１２９】
ステップＳ４１１６において、受信レート計測部１１１Ｐは、受信パケットの通信フロー用の受信カウンタに受信パケットのサイズを加算する。
ステップＳ４１１６の後、処理はステップＳ４１２１に進む。
【０１３０】
ステップＳ４１２１からステップＳ４１２５において、通信装置１００Ｍ（通信相手）に対する第１通知契機である場合、受信レート計測部１１１Ｐは、第１受信レートパケットを通信装置１００Ｍへ送信する。
第１通知契機は、通信相手に対する受信レートを通知する契機である。
ステップＳ４１２１からステップＳ４１２５は、実施の形態１におけるステップＳ１１５からステップＳ１１９と同じである（図４参照）。
【０１３１】
ステップＳ４１３１において、受信レート計測部１１１Ｐは、いずれかの通信フローについての第２通知契機であるか判定する。
第２通知契機は、通信フローにおける受信レートを通知する契機である。
例えば、通信フローＦについての前回の通知契機から一定周期が経過している場合、受信レート計測部１１１Ｐは、通信フローＦについての第２通知契機であると判定する。
いずれかの通信フローについての第２通知契機である場合、処理はステップＳ４１３２に進む。
いずれかの通信フローについての第２通知契機である場合、処理はステップＳ４１３２に進む。
いずれの通信フローについての第２通知契機でもない場合、処理はステップＳ４１１１に進む。
【０１３２】
ステップＳ４１３２において、通信フローＦについての第２通知契機であると仮定する。また、通信フローＦにおいて、通信装置１００Ｐの通信相手が通信装置１００Ｍであると仮定する。
受信レート計測部１１１Ｐは、通信フローＦ用の通知契機履歴を更新する。
具体的には、受信レート計測部１１１Ｐは、通信フローＦ用の通知契機履歴に、現在時刻と通信フローＦ用の受信カウンタの現在値との組を追加する。
【０１３３】
ステップＳ４１３３において、受信レート計測部１１１Ｐは、通信フローＦ用の通知契機履歴に基づいて、通信フローＦにおける受信レートを算出する。
【０１３４】
具体的には、受信レート計測部１１１Ｐは、通信フローＦにおける受信レートを以下のように算出する。
まず、受信レート計測部１１１Ｐは、通信フローＦ用の通知契機履歴から、前回の通知契機の時刻と前回の通知契機における受信カウンタの値とを取得する。取得される時刻を前回時刻という。また、取得される値を前回カウンタ値という。
さらに、受信レート計測部１１１Ｐは、通信フローＦ用の通知契機履歴から、今回の通知契機の時刻と今回の通知契機における受信カウンタの値とを取得する。取得される時刻を今回時刻という。また、取得される値を今回カウンタ値という。
次に、受信レート計測部１１１Ｐは、前回時刻から今回時刻までの経過時間を算出する。また、受信レート計測部１１１Ｐは、今回カウンタ値から前回カウンタ値を減算する。算出される値を差分サイズという。
そして、受信レート計測部１１１Ｐは、差分サイズを経過時間で除算する。算出される値が通信フローＦにおける受信レートである。
【０１３５】
ステップＳ４１３４において、受信レート計測部１１１Ｐは、通信フローＦにおける受信レートを送信処理部１４１Ｐに渡す。
送信処理部１４１Ｐは、通信プロトコル処理を行うことによって、通信フローＦにおける受信レートを示すメッセージを含んだパケットを生成する。生成されるパケットを通信フローＦにおける受信レートパケットという。
【０１３６】
ステップＳ４１３５において、送信処理部１４１Ｐは、通信フローＦにおける受信レートパケットをスケジューリング部１４２Ｐに渡す。
スケジューリング部１４２Ｐは、通信フローＦにおける受信レートパケットに対するスケジューリングを行い、送信スケジュールに従って通信フローＦにおける受信レートパケットを送信する。スケジューリングは、スケジューリング部１４２Ｐに設定されているシェーピングレートとスケジューリング部１４２Ｐに設定されている各通信フローの保証帯域とに基づいて行われる。
通信フローＦにおける受信レートパケットは、ネットワーク２０１を介して、通信装置１００Ｍに到達する。
ステップＳ４１３５の後、処理はステップＳ４１１１に進む。
【０１３７】
なお、受信パケットは、受信レート計測部１１１Ｐから受信処理部１１２Ｐに渡り、受信処理部１１２Ｐによって処理される。
【０１３８】
図１２に基づいて、記録処理を説明する。
記録処理は、通信装置１００Ｍと通信装置１００Ｐとの通信における通信装置１００Ｐの受信レートを通信装置１００Ｍに記録するための処理である。さらに、記録処理は、各通信フローにおける通信装置１００Ｐの受信レートを通信装置１００Ｍに記録するための処理である。
通信装置１００Ｍは、通信相手となる通信装置１００別に、受信レートを記憶部１９０Ｍに保持する。さらに、通信装置１００Ｍは、通信フロー別に、受信レートを記憶部１９０Ｍに保持する。
【０１３９】
ステップＳ４２１において、受信レート計測部１１１Ｍは、ネットワーク２０１を介して、通信装置１００Ｐから送信された受信レートパケットを受信する。
受信される受信レートパケットは、ステップＳ４１２５で送信される受信レートパケットまたはステップＳ４１３５で送信される受信レートパケットである（図１１参照）。
ステップＳ４１２５で送信される受信レートパケットは、通信装置１００Ｍと通信装置１００Ｐとの通信における通信装置１００Ｐの受信レートを示す。
ステップＳ４１３５で送信される受信レートパケットは、通信フローＦにおける通信装置１００Ｐの受信レートを示す。
【０１４０】
ステップＳ４２２において、受信レート計測部１１１Ｍは、通信装置１００Ｐの受信レート計測部１１１Ｐと同じく、通知処理を行う（図１０および図１１を参照）。
【０１４１】
ステップＳ４２３において、受信レート計測部１１１Ｍは、受信レートパケットに示される受信レートの種類を判定する。
例えば、受信レート計測部１１１Ｍは、受信レートパケットに設定される受信レート種別に基づいて、受信レートの種類を判定する。
受信レートパケットに示される受信レートが通信装置１００Ｍと通信装置１００Ｐとの通信における通信装置１００Ｐの受信レートである場合、処理はステップＳ４２４に進む。
受信レートパケットに示される受信レートが通信フローＦにおける通信装置１００Ｐの受信レートである場合、処理はステップＳ４２６に進む。
【０１４２】
ステップＳ４２４およびステップＳ４２５において、決定部１３０は、通信装置１００Ｍと通信装置１００Ｐとの通信における通信装置１００Ｐの受信レートを記録する。
ステップＳ４２４およびステップＳ４２５は、実施の形態１におけるステップＳ１２３およびステップＳ１２４と同じである（図５参照）。
【０１４３】
ステップＳ４２６において、受信レート計測部１１１Ｍは、受信レートパケットを受信処理部１１２Ｍへ渡す。
受信処理部１１２Ｍは、通信プロトコル処理を行うことによって、受信レートパケットからメッセージを抽出する。抽出されるメッセージは通信フローＦにおける通信装置１００Ｐの受信レートを示す。
受信処理部１１２Ｍは、抽出したメッセージを決定部１３０へ渡す。
決定部１３０は、メッセージから通信フローＦにおける通信装置１００Ｐの受信レートを抽出する。
【０１４４】
ステップＳ４２７において、決定部１３０は、通信フローＦにおける通信装置１００Ｐの受信レートを記録する。
具体的には、決定部１３０は、通信フローＦにおける通信装置１００Ｐの受信レートとして保持されている受信レートをメッセージから抽出した受信レートに更新する。
【０１４５】
推定処理は、実施の形態１における処理と同じである（図６参照）。
【０１４６】
図１３に基づいて、設定処理を説明する。
設定処理は、シェーピングレートと各通信フローの保証帯域とを設定するための処理であり、通信装置１００Ｍによって実行される。
【０１４７】
ステップＳ４４１において、決定部１３０Ｍは、優先度の高い順に、未選択の通信フローを１つ選択する。
ステップＳ４４１は、実施の形態１におけるステップＳ１４１と同じである。
【０１４８】
ステップＳ４４２からステップＳ４４６は、ステップＳ４４１で選択された通信フローＦｉのために実行される。
【０１４９】
ステップＳ４４２において、決定部１３０Ｍは、通信フローＦｉにおける通信装置１００Ｐの受信レートに基づいて、通信フローＦｉの想定スループットＲｉを決定する。
具体的には、決定部１３０Ｍは、通信フローＦｉにおける通信装置１００Ｐの直近の受信レートとして保持されている受信レートを通信フローＦｉの想定スループットＲｉに決定する。
【０１５０】
ステップＳ４４３からステップＳ４４８は、実施の形態１におけるステップＳ１４４からステップＳ１４９と同じである（図７参照）。
【０１５１】
＊＊＊実施の形態４の効果＊＊＊
受信レートの必要帯域に対する不足分の積算値の精度を高くすることが可能となる。そのため、高優先通信フローの受信レートが必要帯域より小さくなる高優先通信帯域不足問題の発生頻度を減らす効果の精度を高めることが可能となる。さらに、優先度が低い通信フローに割り当てる送信帯域を必要以上に低くしない効果の精度を高めることが可能となる。
【０１５２】
＊＊＊他の構成＊＊＊
実施の形態４は実施の形態３と組み合わせて実施されてもよい。
具体的には、実施の形態４において、実施の形態３における設定処理と同様の処理が行われてもよい。つまり、実施の形態４において、図１４に示す設定処理が行われてもよい。
図１４に示す設定処理において、ステップＳ３４５Ｂ以外の処理は、実施の形態３で説明した通りである（図９参照）。
ステップＳ３４５Ｂにおいて、決定部１３０Ｍは、通信フローＦｉに対して再送制御用の決定処理を行う。
具体的には、決定部１３０Ｍは、実施の形態４における決定処理（ステップＳ４４２からステップＳ４４５）を実行する。
【０１５３】
＊＊＊実施の形態の補足＊＊＊
通信装置１００Ｍが受信側の通信装置１００としての役割を果たす場合、通信装置１００Ｍは、各実施の形態における通信装置１００Ｐと同様に動作する。
通信装置１００Ｐが送信側の通信装置１００としての役割を果たす場合、通信装置１００Ｐは、各実施の形態における通信装置１００Ｍと同様に動作する。
【０１５４】
図１５に基づいて、通信装置１００のハードウェア構成を説明する。
通信装置１００は処理回路１０９を備える。
処理回路１０９は、受信部１１０と推定部１２０と決定部１３０と送信部１４０と記憶部１９０とを実現するハードウェアである。
処理回路１０９は、専用のハードウェアであってもよいし、メモリ１０２に格納されるプログラムを実行するプロセッサ１０１であってもよい。
【０１５５】
処理回路１０９が専用のハードウェアである場合、処理回路１０９は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
通信装置１００は、処理回路１０９を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路１０９の役割を分担する。
【０１５６】
処理回路１０９において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【０１５７】
このように、処理回路１０９はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０１５８】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【０１５９】
１００  通信装置、１０１  プロセッサ、１０２  メモリ、１０３  補助記憶装置、１０４  レシーバ、１０５  トランスミッタ、１０９  処理回路、１１０  受信部、１１１  受信レート計測部、１１２  受信処理部、１２０  推定部、１３０  決定部、１４０  送信部、１４１  送信処理部、１４２  スケジューリング部、１９０  記憶部、２００  通信システム、２０１  ネットワーク。
【図１】
2020031288.tif 000003
【図２】
2020031288.tif 000004
【図３】
2020031288.tif 000005
【図４】
2020031288.tif 000006
【図５】
2020031288.tif 000007
【図６】
2020031288.tif 000008
【図７】
2020031288.tif 000009
【図８】
2020031288.tif 000010
【図９】
2020031288.tif 000011
【図１０】
2020031288.tif 000012
【図１１】
2020031288.tif 000013
【図１２】
2020031288.tif 000014
【図１３】
2020031288.tif 000015
【図１４】
2020031288.tif 000016
【図１５】
2020031288.tif 000017
【国際調査報告】
2020031288.tif 000018
2020031288.tif 000019