(57)【要約】【課題】通信効率を向上する。【解決手段】通信装置は、計測部、決定部、通信部を備える。計測部は、通信先装置へのパケットの送信レートと、通信先装置におけるパケットの受信レートを用いて第１の送信レートを計測する。決定部は、通信先装置との間の通信で使用するプロトコルによる誤り訂正の種別と第１の送信レートに基づいて第２の送信レートを算出し、第２の送信レートを、通信先装置との通信に使用する送信レートに決定する。通信部は、決定部が決定した送信レートで、通信先装置にパケットを送信する。【選択図】図３
2018061141.tif 000002
【特許請求の範囲】
【請求項１】
通信先装置へのパケットの送信レートと、前記通信先装置におけるパケットの受信レートを用いて第１の送信レートを計測する計測部と、
前記通信先装置との間の通信で使用するプロトコルによる誤り訂正の種別と前記第１の送信レートに基づいて第２の送信レートを算出し、前記第２の送信レートを前記通信先装置との通信に使用する送信レートに決定する決定部と、
前記決定部が決定した送信レートで、前記通信先装置にパケットを送信する通信部
を備えることを特徴とする通信装置。
【請求項２】
前記計測部は、前記第１の送信レートを、パケットロスが発生しない送信レートの最大値として計測し、
前記決定部は、前記通信先装置が受信に失敗するパケットで送信されたデータを前記プロトコルによる誤り訂正によって復元可能な送信レートの上限値以下で、前記第１の送信レートよりも大きな値を、前記第２の送信レートに決定する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記プロトコルを用いた通信が所定の送信レートで行われた場合の、前記プロトコルでの誤り訂正処理後のスループットと、前記通信先装置宛のパケットの廃棄率を対応付けた情報を記憶する記憶部をさらに備え、
前記決定部は、前記情報で前記プロトコルでの誤り訂正後のスループットの低下が所定の閾値に達したときの廃棄率である限界廃棄率を求め、前記通信先装置宛のパケットの廃棄率が前記限界廃棄率となる送信レートを、前記プロトコルでの誤り訂正によって復元可能な送信レートの上限値として計算する
ことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記通信先装置に送信する計測パケットを、予め設定された設定廃棄率で廃棄してから前記通信部に出力する廃棄処理部と、
前記廃棄処理部に前記設定廃棄率の設定値を通知する特性測定部を備え、
前記通信部は、前記計測パケットの総数を、前記計測パケットの送信数として前記通信先装置に通知する制御パケットを送信するとともに、前記通信先装置への送信レートを所定の値に保って、前記廃棄処理部から出力された計測パケットの送信処理を行い、
前記特性測定部は、前記廃棄処理部での前記設定廃棄率を変更することによって、前記通信先装置から前記プロトコルでの誤り訂正後のデータのスループットを、前記設定廃棄率に設定した個々の値に対応付けて取得することにより、前記プロトコルでの誤り訂正の特性を測定し、
前記決定部は、前記特性測定部が求めた特性での誤り訂正後のスループットの低下が所定の閾値に達したときの廃棄率である限界廃棄率を求め、前記通信先装置宛のパケットの廃棄率が前記限界廃棄率となる送信レートを、前記プロトコルでの誤り訂正によって復元可能な送信レートの上限値として計算する
ことを特徴とする請求項２に記載の通信装置。
【請求項５】
通信先装置からパケットを受信する通信装置であって、
前記通信先装置から前記通信装置への計測パケットの送信レートの設定要求を前記通信先装置に通知する通信部と、
前記通信先装置に通知した送信レートと、前記計測パケットの受信レートを用いて、第１の送信レートを計測する計測部と、
前記通信先装置との間の通信で使用するプロトコルによる誤り訂正の種別と前記第１の送信レートに基づいて第２の送信レートを算出し、前記第２の送信レートを、前記通信先装置との通信に使用する送信レートに決定する決定部
を備え、
前記通信部は、前記決定部が決定した送信レートを、前記通信装置との通信に使用することを要求する制御パケットを、前記通信先装置に送信する
をことを特徴とする通信装置。
【請求項６】
通信先装置へのパケットの送信レートと、前記通信先装置におけるパケットの受信レートを用いて第１の送信レートを計測し、
前記通信先装置との間の通信で使用するプロトコルによる誤り訂正の種別と前記第１の送信レートに基づいて第２の送信レートを算出し、前記第２の送信レートを、前記通信先装置との通信に使用する送信レートに決定し、
前記決定した送信レートで、前記通信先装置にパケットを送信する
処理を通信装置が行うことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置と通信方法に関する。
【背景技術】
【０００２】
ネットワークでの通信を効率化するために、送信側の端末（送信端末）がパケットロスを発生させずに利用可能な送信レートを計測し、得られた送信レートを用いて送信処理を行うことがある。
【０００３】
図１は、送信レートの計測方法の例を説明する図である。送信端末５は、送信レートを変更させながら、ネットワーク３経由で、パケットを受信端末７に送信する。図１中のグラフＧ１は、送信端末５から送信したパケットの送信レートと、受信端末７で受信するパケットの受信レートの関係を示す。送信レートが大きくなるとともに、受信端末７での受信レートも大きくなる。この関係が成り立つ間は、受信レートは送信レートと同じ値を示す。しかし、送信レートがパケットロスを発生させずに利用可能な送信レート（最大送信レート）に達すると、これ以上送信レートを大きくしても、パケットロスによって受信端末７での受信が失敗してしまうので、受信レートは大きくならなくなる。従って、送信端末５は、パケットロスを避けて、最大送信レートで受信端末７にパケットを送信する。
【０００４】
関連する技術として、複数のフローの最低使用要求帯域を一旦割り当て、フローの優先度順に最大使用要求帯域と割り当て済みの帯域の差分か、使用可能な帯域幅から決定した帯域幅のうちの少ない帯域を追加する方法が提案されている（特許文献１など）。物理的な通信経路の各インタフェースの帯域利用率と、各通信フローの帯域利用率を監視し、各利用率に応じて通信フローに適用する制御方法を変更することでデータ転送時間を最小化するシステムも提案されている（特許文献２など）。転送先ネットワークの通信環境などに応じて転送先ネットワークに送出するパケットの最適なパケット長を計算し、転送元から受信したパケットを最適なパケット長に分割して転送先ネットワークに送出する転送装置も提案されている（特許文献３など）。さらに、網管理部が、複数のノードからトラフィック量やノード間の遅延時間などの情報の通知を受信し、受信した状況に基づいて網のスループットが最適化するように各ノード間の光パスを設定するシステムも考案されている（特許文献４など）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００６／０５７３８１号
【特許文献２】特開２０１２−１８２６０５号公報
【特許文献３】特開２００８−１５３７７８号公報
【特許文献４】特開２０００−２３２４８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
背景技術でも述べたとおり、パケットロスが発生しない最大の送信レートでパケットを送信することにより、通信に使用する送信レートをなるべく高い値に設定しようとしているが、通信速度をさらに改善して、通信を効率化できることが望ましい。しかし、送信レートを高くしすぎてパケットが廃棄されることによりデータのスループットが低下すると、結果的には、通信効率を悪化させてしまう。
【０００７】
本発明は、１つの側面では、通信効率を向上することを目的とする。
【課題を解決するための手段】
【０００８】
ある１つの態様にかかる通信装置は、計測部、決定部、通信部を備える。計測部は、通信先装置へのパケットの送信レートと、通信先装置におけるパケットの受信レートを用いて第１の送信レートを計測する。決定部は、通信先装置との間の通信で使用するプロトコルによる誤り訂正の種別と第１の送信レートに基づいて第２の送信レートを算出し、第２の送信レートを、通信先装置との通信に使用する送信レートに決定する。通信部は、決定部が決定した送信レートで、通信先装置にパケットを送信する。
【発明の効果】
【０００９】
通信効率が向上する。
【図面の簡単な説明】
【００１０】
【図１】送信レートの計測方法の例を説明する図である。
【図２】データの送受信の際に使用されるプロトコルの例を説明する図である。
【図３】実施形態にかかる通信方法の例を説明する図である。
【図４】通信装置の構成の例を説明する図である。
【図５】通信装置のハードウェア構成の例を説明する図である。
【図６】トランスポートプロトコルの廃棄率特性の例を説明する図である。
【図７】廃棄率特性テーブルの例を説明する図である。
【図８】性能限界廃棄率の決定方法の例を説明するフローチャートである。
【図９】パケットのフォーマットの例を説明する図である。
【図１０】第１の実施形態にかかる通信方法を説明するシーケンス図である。
【図１１】送信側の通信装置で行われる処理の例を説明するフローチャートである。
【図１２】受信側の通信装置で行われる処理の例を説明するフローチャートである。
【図１３】送信側の通信装置で行われる処理の例を説明するフローチャートである。
【図１４】第３の実施形態で使用される通信装置の構成の例を説明する図である。
【図１５】廃棄率特性テーブルの例を説明する図である。
【図１６】第３の実施形態にかかる通信方法を説明するシーケンス図である。
【図１７】送信側の通信装置で行われる処理の例を説明するフローチャートである。
【図１８】受信側の通信装置で行われる処理の例を説明するフローチャートである。
【図１９】第４の実施形態で使用される通信装置の構成の例を説明する図である。
【図２０】第４の実施形態にかかる通信方法を説明するシーケンス図である。
【発明を実施するための形態】
【００１１】
図２は、データの送受信の際に使用されるプロトコルの例を説明する図である。図２の例では、通信装置１０ａが通信装置１０ｂにパケットを送信する場合を例として説明する。
【００１２】
通信装置１０ａのアプリケーション２０３ａで生成された通信装置１０ｂ宛のデータは、Ｌ４トランスポートプロトコル２０２ａやＬ３ネットワークプロトコル２０１ａでの処理を経て、通信装置１０ｂ宛のパケットに含められる。ネットワークインタフェース（ＮＩＣ、Network Interface Card）１１ａは、通信装置１０ｂ宛のパケットを通信装置１０ｂに送信する。
【００１３】
一方、通信装置１０ｂでは、ネットワークインタフェース１１ｂがパケットを受信する。受信パケットは、Ｌ３ネットワークプロトコル２０１ｂやＬ４トランスポートプロトコル２０２ｂによって処理されることにより、受信パケット中のデータがアプリケーション２０３ｂに出力される。アプリケーション２０３ｂは、受信したデータを用いて、適宜処理を行う。
【００１４】
ここで、アプリケーション２０３ａからアプリケーション２０３ｂに送られるデータのスループットは、アプリケーションレイヤでのデータのスループット（アプリケーションスループット）である。同様に、Ｌ４トランスポートプロトコル２０２ａからＬ４トランスポートプロトコル２０２ｂに送られるデータのスループットは、トランスポートレイヤでのデータのスループット（トランスポートスループット）である。
【００１５】
一方、送信側の通信装置１０ａから通信装置１０ｂに送信されるパケット数の送信速度を送信レートと記載する。また、通信装置１０ｂが通信装置１０ａからパケットを受信する速度を受信レートと記載する。パケットロスが発生するまでは、通信装置１０ａでの送信レートと、通信装置１０ｂでの受信レートは同じ値となるが、パケットロスが発生すると、通信装置１０ａでの送信レートは、通信装置１０ｂでの受信レートよりも大きな値となる。なお、パケット中には、ＩＰ（Internet Protocol）ヘッダなどのヘッダが含まれているので、トランスポートスループットは、送信レートよりも小さな値となる。
【００１６】
図３は、実施形態にかかる通信方法の例を説明する図である。αは、送信側の装置からのパケットの送信レートを変化させたときに、受信側の装置で得られる受信レートを示している。図２を参照しながら説明したように、送信レートと受信レートは、いずれも、ネットワークレイヤでの転送速度を表わしている。このため、パケットロスが発生するまでは、受信レートと送信レートは同じ値をとり、送信レートを大きくすると、送信レートの変化に応じて受信レートも大きくなる。図３では、パケットロスを発生させずに利用可能な送信レートの最大値を、ＢＷａｖａと示す。また、以下の説明では、パケットロスを発生させずに利用可能な送信レートの最大値を「最大送信レート」と記載することがある。また、パケットロスを発生させずに利用可能な送信レートの最大値は、「空き帯域」と記載されても良い。
【００１７】
一方、送信側の装置からのパケットの送信レートを変化させたときに受信側の装置で得られるトランスポートスループットを求めると、βに示すようなグラフが得られる可能性がある。βに示すグラフは、パケットロスが発生しても、送信レートの増加によるデータの到達量の増加が、パケットロスによって受信側の装置が取得に失敗したデータ量を上回っている間は、トランスポートスループットが向上することを示す。例えば、トランスポートプロトコルが誤り訂正を行うことにより、パケットロスによって受信に失敗したパケット中のデータを復元できる場合、パケットロスが発生しても、受信側の装置が取得に失敗したデータはない。このため、誤り訂正によって、受信に失敗したパケット中のデータを復元できる間は、パケットロスが発生しても、トランスポートプロトコルでのスループットは改善する。トランスポートスループットが最高点に達したときの送信レートを図３ではＡとする。
【００１８】
実施形態にかかる通信装置１０は、図３のＡに示すように、トランスポートスループットが最高点に達するときの送信レートを求める。このとき、通信装置１０は、通信先の装置との通信に使用するトランスポートプロトコルについて、そのトランスポートプロトコルを用いたときのデータのスループットをパケットの廃棄率に対応付けた情報を使用する。通信装置１０は、トランスポートスループットが最高点に達するときの送信レートを用いて、通信先の装置にパケットを送信する。このため、実施形態にかかる通信方法を用いると通信が効率化される。
【００１９】
また、通信装置１０は、トランスポートスループットが最高点に達するときの送信レート以下で、パケットロスが発生しない送信レートの最大値よりも大きな値を、通信先との間の通信に使用する送信レートとしても良い。この場合も、通信先の装置では、誤り訂正で訂正可能なデータの分だけ、パケットロスが発生していないときの受信能力を超えてパケットの受信ができるので、通信が効率化される。
【００２０】
なお、トランスポートスループットはアプリケーションスループットとほぼ同じ値になる。例えば、トランスポートレイヤで誤り訂正が行われる場合であっても、誤り訂正で復元されたデータもアプリケーション２０３で処理されることから、アプリケーションスループットとトランスポートスループットはほぼ同じ値になる。従って、図３を参照しながら説明したように、トランスポートレイヤでのデータのスループットが最高点に達するときの送信レートを用いて通信を行うことにより、通信が効率化される。
【００２１】
＜第１の実施形態＞
以下、第１の実施形態を、通信装置の構成、トランスポートスループットを最大化する送信レートの求め方の例、通信装置間での通信の例に分けて説明する。
【００２２】
（１）通信装置の構成
図４は、通信装置１０の構成の例を説明する図である。図４では、通信装置１０ａがネットワーク３を介して通信装置１０ｂにパケットを送信する場合を例として示している。なお、以下の説明では、動作を行っている通信装置１０を明確にするために、符号の最後に動作を行っている通信装置１０に割り当てられているアルファベットを記載することがある。通信装置１０ａと通信装置１０ｂのいずれも、ネットワークインタフェース１１、送信処理部２０、記憶部３０、受信処理部４０、アプリケーション処理部５０を備える。
【００２３】
通信装置１０ａでは、パケットの送信に使用される送信処理部２０や記憶部３０の詳細を示している。送信処理部２０は、レート制御部２１、Ｌ３ネットワーク処理部２２、Ｌ４トランスポート処理部２３、計測部２４、送信レート決定部２５を有する。記憶部３０は、送信レートテーブル３１と廃棄率特性テーブル３２を保持する。
【００２４】
ネットワークインタフェース１１はパケットの送受信を行う。レート制御部２１は、パケットの送信レートを、送信レート決定部２５で決められた値に制御する。Ｌ３ネットワーク処理部２２は、パケットに対してネットワークレイヤでの処理を行う。Ｌ４トランスポート処理部２３は、パケット中のデータに対して、トランスポートレイヤでの処理を行う。Ｌ４トランスポート処理部２３は、適宜、トランスポートヘッダの処理を行う。また、誤り訂正を伴うトランスポートプロトコルが使用される場合、誤り訂正の際に使用される冗長化データを送信データに含める。計測部２４は、パケットロスを発生させずに利用可能な送信レートの最大値（ＢＷａｖａ）を求めるための処理を行う。計測部２４は、パケットロスを発生させずに利用可能な送信レートの最大値を、送信レートテーブル３１に格納する。送信レート決定部２５は、送信レートテーブル３１と廃棄率特性テーブル３２を用いて、トランスポートスループットが最大となる送信レートを決定する。なお、廃棄率特性テーブル３２は、通信先の装置との通信に使用するトランスポートプロトコルについて、そのトランスポートプロトコルを用いたときのデータのスループットをパケットの廃棄率に対応付けた情報である。廃棄率特性テーブル３２の例は後述する。
【００２５】
通信装置１０ｂでは、パケットの受信に使用される受信処理部４０の詳細を示している。受信処理部４０は、Ｌ３ネットワーク処理部４１、振り分け部４２、Ｌ４トランスポート処理部４３、計測部４４を有する。
【００２６】
Ｌ３ネットワーク処理部４１は、パケットに対して、ネットワークレイヤでの処理を行う。振り分け部４２は、パケット中のペイロードを用いて、送信レートの測定用のパケットを計測部４４に出力し、データパケットをＬ４トランスポート処理部４３に出力する。Ｌ４トランスポート処理部４３は、トランスポートプロトコルによる処理を行い、データをアプリケーション処理部５０に出力する。アプリケーション処理部５０は、適宜、データを処理する。計測部４４は、測定用のパケットを用いて、測定用のパケットの受信レートを計算するとともに、得られた受信レートを、測定用のパケットの送信元に通知する。
【００２７】
図５は、通信装置１０のハードウェア構成の例を説明する図である。通信装置１０は、プロセッサ１０１、メモリ１０２、記憶装置１０３、バス１０４、通信インタフェース１０５を有し、オプションとして、さらに、出力装置１０６と入力装置１０７を有する。プロセッサ１０１は、任意の処理回路であり、例えば、ＣＰＵ（Central Processing Unit）とすることができる。プロセッサ１０１は、メモリ１０２をワーキングメモリとして使用して、プログラムを実行することにより、様々な処理を実行する。メモリ１０２には、ＲＡＭ（Random Access Memory）が含まれ、さらに、ＲＯＭ（Read Only Memory）等の不揮発性のメモリも含まれる。メモリ１０２や記憶装置１０３は、プログラムやプロセッサ１０１での処理に使用されるデータの格納に使用される。通信インタフェース１０５は、ネットワークを介した他の装置との通信に使用される。バス１０４は、プロセッサ１０１、メモリ１０２、記憶装置１０３、通信インタフェース１０５を、互いにデータの入出力が可能になるように接続する。入力装置１０７は、キーボードやマウスなど、情報の入力に使用される任意の装置であり、出力装置１０６は、ディスプレイを含む表示デバイスなど、データの出力に使用される任意の装置である。
【００２８】
通信装置１０において、プロセッサ１０１は、送信処理部２０、受信処理部４０、アプリケーション処理部５０として動作する。メモリ１０２と記憶装置１０３は、記憶部３０として動作する。さらに、通信インタフェース１０５は、ネットワークインタフェース１１として動作する。
【００２９】
（２）トランスポートスループットを最大化する送信レートの求め方の例
以下、通信装置１０ａから通信装置１０ｂに向けて、誤り訂正を行うトランスポートプロトコルを用いて、データが送信される場合を例として、通信装置１０ａがトランスポートスループットを最大化する送信レートの決定方法の例を説明する。
【００３０】
図６は、トランスポートプロトコルの廃棄率特性の例を説明する図である。図６のグラフＧ２は、誤り訂正を行うトランスポートプロトコルが用いられる場合に通信装置１０ａが保持する廃棄率特性テーブル３２ａ中の情報を、スループットを縦軸、廃棄率を横軸としてグラフ化している。ここで、廃棄率Ｘは、パケットロスの発生割合であり、式（１）で表される。
Ｘ＝（ＴＲ−ＲＲ）／ＴＲ  ・・・（１）
変数ＴＲは送信レートであり、変数ＲＲは受信レートである。以下の説明では、受信に失敗しているパケット中のデータを誤り訂正によって再現できる場合の廃棄率の最大値を「性能限界廃棄率」と記載する。
【００３１】
グラフＧ２は、送信レートをある所定値に保った場合について、廃棄率に応じてトランスポートスループットがどのように変化するかを表している。グラフＧ２より、通信装置１０ａからのデータ送信に伴う廃棄率が性能限界廃棄率（Ｐｌｉｍ）に達するまでは、パケットロスが発生しても、受信側の通信装置１０ｂでの誤り訂正によって、トランスポートスループットが低下しないと予測できる。廃棄率がＰｌｉｍを超えると、誤り訂正による訂正能力を超えてパケットロスが発生するので、トランスポートスループットが低下する。従って、廃棄率がＰｌｉｍになるまで、送信レートを高くすると、パケットロスした分のパケットのデータが誤り訂正で再現されるので、トランスポートスループットを最大化できる。
【００３２】
グラフＧ３は、縦軸をレートとして、受信レートとトランスポートスループットを、それぞれ、送信レートの関数としてプロットしたグラフの例である。受信レートは、ネットワークレイヤでのスループットであり、受信側の通信装置１０ｂでの受信に成功したパケットの数に比例する。このため、グラフＧ３のＢに示すように、受信レートは、パケットロスが発生するまでは送信レートの増加とともに増加するが、送信レートがＢＷａｖａに達するとパケットロスが発生しだすため、受信レートは変化しなくなる。なお、ＢＷａｖａはパケットロスが発生しない送信レートの最大値である。グラフＧ３において、送信レートは横軸の値であるため、送信レートをプロットすると、グラフＧ３のＥに示すように傾きが１の直線になる。従って、Ｅに示す細い点線とＢに示す受信レートの太い波線の差分がパケットロスによって受信されていないパケットの量を表している。
【００３３】
一方、トランスポートスループットは、グラフＧ３のＣに示すように、パケットロスが発生しても、受信に失敗したパケット中のデータが誤り訂正によって再現されている間は、送信レートの増加に伴って増加する。従って、送信レートがＢＷａｖａに達しても、パケットロスの発生割合が性能限界廃棄率Ｐｌｉｍに達するまで、トランスポートスループットは改善する。パケットロスの発生割合が性能限界廃棄率と同じ値になったときの転送レートを、トランスポートスループット最大化レート（ＢＷｔｒａ）とする。すると、Ｃに示すように、トランスポートスループットは、送信レートがトランスポートスループット最大化レートＢＷｔｒａに達すると最大値となり、さらに送信レートが増えると低下する。このため、トランスポートスループット最大化レートでパケットを送信した場合には、グラフＧ３のＤに示す分だけのパケットの廃棄が発生していることになる。
【００３４】
トランスポートスループット最大化レートＢＷｔｒａはトランスポートスループットが最大となる送信レートなので、廃棄率＝Ｐｌｉｍのときの送信レートがＢＷｔｒａとなる。また、送信レート＝ＢＷｔｒａ≧ＢＷａｖａなので、廃棄率＝Ｐｌｉｍとなっているときの受信レート＝ＢＷａｖａとなる。従って、式（２）が成り立つ。
Ｐｌｉｍ＝（ＢＷｔｒａ−ＢＷａｖａ）／ＢＷｔｒａ  ・・・（２）
式（２）を変形すると、ＢＷｔｒａは式（３）のように表せる。
ＢＷｔｒａ＝ＢＷａｖａ／（１−Ｐｌｉｍ）  ・・・（３）
従って、送信処理を行う通信装置１０ａ中の送信レート決定部２５ａは、トランスポートスループットを最大化できる送信レートＢＷｔｒａを、性能限界廃棄率とパケットロスが発生しない送信レートの最大値ＢＷａｖａから、式（３）を用いて計算できる。
【００３５】
パケットロスが発生しない送信レートの最大値ＢＷａｖａを求める方法は、任意の既知の方法が使用され得る。一方、性能限界廃棄率は、廃棄率特性テーブル３２などを用いて求められる。
【００３６】
図７は、廃棄率特性テーブル３２の例を説明する図である。図７に示す廃棄率特性テーブル３２は、インデックス、廃棄率、スループットが対応付けられている。廃棄率とスループットは、通信に使用されるトランスポートプロトコルを用いて、トランスポートプロトコルの特性を評価するためのモデルシステムで得られたシミュレーション結果などから生成される。シミュレーション結果は、図６のグラフＧ２中のプロットと同様に、廃棄率の関数としてトランスポートプロトコルの値をプロットしたグラフであり、廃棄率特性テーブル３２は、シミュレーション結果からのサンプリングにより生成される。インデックスは、廃棄率とスループットの組み合わせに対応付けられている。図７の例では、廃棄率が０％から１０％になるまでは、トランスポートプロトコルでの誤り訂正によって、受信に失敗しているパケットのデータが再現されている。なお、図７は一例であり、例えば、廃棄率とスループットの組み合わせのサンプリングの間隔は任意である。図７に示す廃棄率特性テーブル３２を用いて、性能限界廃棄率を求める方法の例を、図８を参照しながら説明する。
【００３７】
図８は、性能限界廃棄率を決定するための処理の例を説明するフローチャートである。送信レート決定部２５は、変数ｉｎｄｅｘの値を１に設定する（ステップＳ１）。送信レート決定部２５は、変数ｔｈｒ１を廃棄率特性テーブル３２中のインデックス＝０の時のスループットに設定するとともに、変数ｔｈｒ２を廃棄率特性テーブル３２中のインデックスが変数ｉｎｄｅｘと同じ値のときのスループットに設定する（ステップＳ２）。送信レート決定部２５は、変数ｔｈｒ１から変数ｔｈｒ２を差し引いて得られる値が閾値を超えているかを判定する（ステップＳ３）。変数ｔｈｒ１から変数ｔｈｒ２を差し引いて得られる値が閾値を超えていない場合、送信レート決定部２５は、変数ｉｎｄｅｘの値を１つインクリメントしてステップＳ２に戻る（ステップＳ３でＮｏ、ステップＳ４）。一方、変数ｔｈｒ１から変数ｔｈｒ２を差し引いて得られる値が閾値を超えた場合、送信レート決定部２５は、廃棄率特性テーブル３２において、インデックスが変数ｉｎｄｅｘと同じ値となる組み合わせの廃棄率を、性能限界廃棄率に決定する（ステップＳ３でＹｅｓ、ステップＳ５）。
【００３８】
例えば、ステップＳ３で使用する閾値をスループットの１０％に設定したとする。すると、廃棄率特性テーブル３２が図７に示すテーブルである場合、ｉｎｄｅｘ＝６のときに、ｔｈｒ１＝１００Ｍｂｐｓ、ｔｈｒ２＝８０Ｍｂｐｓとなる。すると、変数ｔｈｒ１から変数ｔｈｒ２を差し引いて得られる値は、１００Ｍｂｐｓ−８０Ｍｂｐｓ＝２０Ｍｂｐｓとなるので、閾値である（１００Ｍｂｐｓ×１０％＝）１０Ｍｂｐｓを超える。そこで、送信レート決定部２５は、ｉｎｄｅｘ＝６のときの廃棄率である１０％を性能限界廃棄に決定する。従って、送信レート決定部２５は、パケットロスが発生しない送信レートＢＷａｖａと、性能限界廃棄率Ｐｌｉｍを用いて、式（３）を用いて計算される。
【００３９】
（３）通信装置１０間での通信の例
図９は、通信に使用されるパケットのフォーマットの例を説明する図である。パケットは、ＩＰ（Internet Protocol）ヘッダ、シーケンス番号、タイプ情報、ペイロードを含む。なお、ペイロード中には、トランスポートプロトコルで用いられるヘッダなどが含まれている。シーケンス番号は廃棄率や送信レートの測定に使用される値であり、送信側の通信装置１０のＬ３ネットワーク処理部２２で設定される。タイプは、パケットの種類を表す２ビットの情報である。図９の例では、タイプ情報＝０１の場合、送信レートの最大値（ＢＷａｖａ）の測定に使用される計測パケットである。タイプ情報＝１０は廃棄率の測定に使用されるパケット（廃棄率測定パケット）である。廃棄率測定パケットは、通信装置１０が廃棄率特性テーブル３２を備えていない場合に用いられる。廃棄率測定パケットを用いた処理については後述する。タイプ情報＝００はユーザデータの送受信に使用されるパケットであり、タイプ情報＝１１は制御メッセージの送受信に使用されるパケットであるとする。
【００４０】
受信側の通信装置１０ｂの振り分け部４２は、タイプ情報を用いて、パケットの振り分け処理を行うものとする。振り分け部４２の処理については後述する。
【００４１】
図１０は、第１の実施形態にかかる通信方法を説明するシーケンス図である。通信装置１０ａ中の送信レート決定部２５ａは、廃棄率特性テーブル３２ａを読み込んで、性能限界廃棄率を計算する（ステップＳ１１、Ｓ１２）。ステップＳ１２での処理は、図７、図８を用いて説明した処理と同様である。
【００４２】
次に、パケットロスが発生しない送信レートの最大値ＢＷａｖａの計測処理が行われる。パケットロスが発生しない送信レートの最大値ＢＷａｖａの計測処理はＦに示す点線で囲まれた処理である。
【００４３】
ステップＳ１３において、計測部２４ａは、パケットの宛先となる通信装置１０ｂとの通信に使用する送信レートをレート制御部２１ａに設定する。計測部２４ａは、計測パケットに含めるペイロードと、計測パケットの送信先が通信装置１０ｂであることを特定する情報をＬ３ネットワーク処理部２２ａに出力する。Ｌ３ネットワーク処理部２２ａは、計測パケットに含めるペイロードに、計測パケットの識別に使用されるタイプ情報の値（０１）とシーケンス番号を付加したうえで、ＩＰヘッダを付加することにより、計測パケットを生成する。Ｌ３ネットワーク処理部２２ａは、生成した計測パケットをレート制御部２１ａに出力する。レート制御部２１ａは、Ｌ３ネットワーク処理部２２ａから入力されたパケットを、計測部２４ａから通知された送信レートで、通信装置１０ｂに送信する（ステップＳ１４）。
【００４４】
通信装置１０ｂのネットワークインタフェース１１ｂは、計測パケットをＬ３ネットワーク処理部４１ｂに出力する。Ｌ３ネットワーク処理部４１ｂは、計測パケット中のＩＰヘッダを処理し、ＩＰヘッダ以降の情報を振り分け部４２ｂに出力する。振り分け部４２ｂは、タイプ情報を用いて、計測パケットを受信したと判定すると、計測パケットを計測部４４ｂに出力する。計測部４４ｂは、計測パケットの受信レートを計測し、得られた受信レートをネットワークインタフェース１１ｂ経由で通信装置１０ａに送信する（ステップＳ１５）。なお、受信レートの通知には、タイプ情報＝１１の制御パケットが用いられてもよい。
【００４５】
通信装置１０ａのＬ３ネットワーク処理部４１ａは、ネットワークインタフェース１１ａを介して、受信レートを通知する制御パケットを受信する。Ｌ３ネットワーク処理部４１ａは、通知パケットのＩＰヘッダを処理し、受信レートを通知する制御パケット中のデータを振り分け部４２ａに出力する。振り分け部４２ａは、タイプ情報等を用いて、得られた情報を、計測部２４ａに出力する。計測部２４ａは、得られた情報から、送信レートと受信レートが等しいかを判定する。送信レートが受信レートを超えない場合、送信レートが受信レートと等しくなる場合の送信レートの最大値を求めるために、計測部２４ａは、レート制御部２１ａに設定する送信レートを大きくして、ステップＳ１３〜Ｓ１５の処理を繰り返す。一方、送信レートと受信レートが等しい場合も、送信レートが受信レートと等しくなる場合の送信レートの最大値を求めるために、計測部２４ａは、レート制御部２１ａでの送信レートの設定値を増大させてステップＳ１３〜Ｓ１５の処理を繰り返す。ここで、送信レートが受信レートと等しくなる場合の送信レートの最大値は、パケットロスが発生しない送信レートの最大値ＢＷａｖａである。
【００４６】
図１０では、図を見やすくするために、図１０中のＦではステップＳ１３〜Ｓ１５が１回行われる場合を例として示しているが、図１０中のＦに示す処理は、送信レートＢＷａｖａが得られるまで、ステップＳ１３での設定値を変えて繰り返し行われるものとする。
【００４７】
計測部２４ａは、得られた送信レートＢＷａｖａを送信レートテーブル３１ａに記録する。すると、送信レート決定部２５ａは、送信レートテーブル３１ａにアクセスすることで、送信レートＢＷａｖａを取得できる（ステップＳ１６）。
【００４８】
送信レート決定部２５ａは、送信レートＢＷａｖａとステップＳ１２で求めた性能限界廃棄率Ｐｌｉｍを用いて、次式に従って、トランスポートスループットを最大化する送信レートＢＷｔｒａを決定する（ステップＳ１７）。
ＢＷｔｒａ＝ＢＷａｖａ／（１−Ｐｌｉｍ）
【００４９】
送信レート決定部２５ａは、送信レートＢＷｔｒａを、ユーザデータを含むパケットの送信レートとして、レート制御部２１ａに設定する（ステップＳ１８）。
【００５０】
ステップＳ１９において、アプリケーション処理部５０ａでの処理により、通信装置１０ｂ宛てのデータが生成されたとする。アプリケーション処理部５０ａは、得られたデータを宛先が通信装置１０ｂであることを示す情報とともに、Ｌ４トランスポート処理部２３ａに出力する。Ｌ４トランスポート処理部２３ａは、トランスポートレイヤでの処理を行うとともに、処理後のデータをＬ３ネットワーク処理部２２ａに出力する。Ｌ４トランスポート処理部２３ａは、入力されたデータに、適宜、シーケンス番号やユーザデータを示すタイプ情報（タイプ情報＝００）を含め、ＩＰヘッダを付加して、送信パケットを生成する。Ｌ３ネットワーク処理部２２ａは、生成したパケットをレート制御部２１ａに出力する。レート制御部２１ａは、送信レートを、送信レート決定部２５ａから指定された値であるＢＷｔｒａに制御しつつ、ネットワークインタフェース１１ａ経由で通信装置１０ｂにパケットを送信する。このため、ユーザデータを含むパケットは、ＢＷｔｒａの送信レートで通信装置１０ｂに送信される。従って、通信装置１０ａから通信装置１０ｂに送信されたパケットのうち、性能限界廃棄率Ｐｌｉｍの割合のパケットはパケットロスによって通信装置１０ｂに到達しない。
【００５１】
通信装置１０ｂのＬ３ネットワーク処理部４１ｂは、ネットワークインタフェース１１ｂ経由でパケットを受信すると、パケット中のデータを振り分け部４２ｂに出力する。振り分け部４２ｂは、入力されたデータのタイプ情報がユーザデータを示す値であるため、入力されたデータをＬ４トランスポート処理部４３ｂに出力する。Ｌ４トランスポート処理部４３ｂでは、トランスポートプロトコルでの処理が行われる。ここで、Ｌ４トランスポート処理部４３ｂで使用されるトランスポートプロトコルによって、誤り訂正が行われて、パケットロスで失われたパケット中のデータが再現される。Ｌ４トランスポート処理部４３ｂは、誤り訂正後のデータをアプリケーション処理部５０ｂに出力する。
【００５２】
なお、図１０は処理の一例であって、実装に応じて、処理のタイミングは変更され得る。例えば、ステップＳ１１〜Ｓ１２の処理とステップＳ１３〜Ｓ１５の処理の順序は変更されてもよく、また、ステップＳ１１〜Ｓ１２の処理とステップＳ１３〜Ｓ１５の処理が並行して行われても良い。
【００５３】
図１１は、送信側の通信装置１０で行われる処理の例を説明するフローチャートである。送信レート決定部２５は、廃棄率特性テーブル３２を読み込んで、性能限界廃棄率Ｐｌｉｍを算出する（ステップＳ２１、Ｓ２２）。性能限界廃棄率の算出処理は、図７、図８を参照しながら説明した処理と同様である。次に、通信装置１０は、ループ端Ｌ１とＬ２に挟まれた処理（通信処理ループ）を行う。計測部２４は、パケットロスが発生しない最大の送信レート（ＢＷａｖａ）を測定する（ステップＳ２３）。ステップＳ２３の処理は、図１０のステップＳ１３〜Ｓ１５を参照しながら説明した処理と同様である。送信レート決定部２５は、性能限界廃棄率ＰｌｉｍとＢＷａｖａを用いて、トランスポートスループットを最大化する送信レートＢＷｔｒａを決定する（ステップＳ２４）。送信レート決定部２５は、得られた送信レートＢＷｔｒａをレート制御部２１に設定する。その後、レート制御部２１は、トランスポートスループットを最大化する送信レートＢＷｔｒａで、データパケットを送信する（ステップＳ２５）。ステップＳ２３〜Ｓ２５の処理は、通信が完了するまで繰り返される。通信が完了すると、通信装置１０は、通信処理ループを抜けて、処理を終了する。
【００５４】
図１２は、受信側の通信装置１０で行われる処理の例を説明するフローチャートである。ネットワークインタフェース１１は、計測パケットを受信する（ステップＳ３１）。計測パケットは、Ｌ３ネットワーク処理部４１と振り分け部４２を経て、計測部４４に出力される。計測部４４は、計測パケットの受信レートを測定し、計測パケットの送信元に受信レートを通知する（ステップＳ３２）。その後、受信側の通信装置１０は、データパケットを受信する（ステップＳ３３）。ここで、受信側の通信装置１０へは、送信側の通信装置１０が、トランスポートスループットを最大化する送信レートＢＷｔｒａとして求めた送信レートで、データパケットが送信されるので、パケットロスが発生する。そこで、通信装置１０中のＬ４トランスポート処理部４３は、適宜、誤り訂正により、未受信のパケット中のデータを再現して、アプリケーション処理部５０に出力する。
【００５５】
図１３は、送信側の通信装置１０が、パケットロスが発生しない送信レートの最大値ＢＷａｖａの計測処理を求める際に行う処理の例を説明するフローチャートである。図１３は、図１１のステップＳ２３や図１０のＦで示す処理の例を詳しく記載したものである。
【００５６】
計測部２４は、レート制御部２１に設定されている送信レートを初期化する（ステップＳ４１）。その後、計測部２４は、レート制御部２１などを介して計測パケットを、通信先に送信する（ステップＳ４２）。ステップＳ４２において、計測パケットは、レート制御部２１を介して送信されるため、レート制御部２１に設定されている送信レートで通信先に向けて送信される。
【００５７】
ネットワークインタフェース１１は、計測パケットの宛先から、受信レートを通知する制御パケットを受信する（ステップＳ４３）。制御パケットが受信処理部４０で処理される結果、通知された受信レートが計測部２４に出力される。計測部２４は、送信レートが受信レートよりも大きいかを判定する（ステップＳ４４）。送信レートが受信レートよりも大きくない場合、計測部２４は、送信レートをインクリメントし、ステップＳ４２以降の処理を行う（ステップＳ４４でＮｏ、ステップＳ４５）。このとき、計測部２４は、レート制御部２１での送信レートの設定値も、合わせて変更する。このため、送信レートが受信レートよりも大きくなるまで、ステップＳ４２〜Ｓ４５の処理が繰り返される。
【００５８】
一方、送信レートが受信レートよりも大きくなると、計測部２４は、得られた受信レートを、パケットロスが発生しない最大の送信レート（ＢＷａｖａ）に決定する（ステップＳ４４でＹｅｓ、ステップＳ４６）。
【００５９】
以上説明したように、通信装置１０は、トランスポートスループットが最大となるように決定した送信レートで、パケットを通信先に送信する。このため、第１の実施形態にかかる通信方法を用いると通信が効率化される。
【００６０】
例えば、通信装置１０ａと通信装置１０ｂの間で、パケットロスが発生しない最大の送信レート（ＢＷａｖａ）が１００Ｍｂｐｓであるとする。また、通信装置１０ａと通信装置１０ｂの間で使用されるプロトコルでは、性能限界廃棄率Ｐｌｉｍが１０％であるとする。すると、トランスポートスループットが最大となるように決定した送信レートＢＷｔｒａを、送信レート決定部２５は、以下の計算によって求める。
ＢＷｔｒａ＝ＢＷａｖａ／（１−Ｐｌｉｍ）
＝１００／（１−０．１）＝１１１
従って、パケットロスが発生しない最大の送信レート（ＢＷａｖａ）は１００Ｍｂｐｓであるが、通信装置１０ａは、１１１Ｍｂｐｓで通信装置１０ｂにデータパケットを送信することができる。データパケットが１１１Ｍｂｐｓで送信されているため、パケットロスが発生するものの、通信装置１０ｂが受信に失敗したパケット中のデータは、Ｌ４トランスポート処理部４３ｂでの誤り訂正により復元される。従って、通信装置１０ｂは、通信装置１０ａから送信されたデータを効率的に受信することができる。
【００６１】
＜第２の実施形態＞
第１の実施形態では、廃棄率特性テーブル３２として、図７に示すテーブルを通信装置１０が備えている場合の例を説明したが、廃棄率特性テーブル３２の代わりに、プロトコルの性質に基づいて決定された数式などが通信装置１０に記憶されていてもよい。
【００６２】
例えば、通信装置１０ａと通信装置１０ｂの間の通信に使用されるトランスポートプロトコルでは、廃棄率≦１０％の場合、トランスポートスループット（Ｔｔｈｒ）の値は式（４）で表されるとする。
Ｔｔｈｒ＝１００    ・・・（４）
同様に、１０％＜廃棄率＜５０％の場合、廃棄率Ｐとトランスポートスループット（Ｔｔｈｒ）の関係が式（５）で表されるとする。
Ｔｔｈｒ＝１２０−２００×Ｐ    ・・・（５）
さらに、廃棄率≧５０％の場合、トランスポートスループット（Ｔｔｈｒ）が式（６）で表されるとする。
Ｔｔｈｒ＝２０    ・・・（６）
【００６３】
送信側の通信装置１０ａ中の送信レート決定部２５は、これらの関数から各廃棄率に対するトランスポートスループットを算出し、図７に示すような廃棄率特性テーブル３２ａを生成する。送信レート決定部２５ａは、得られた廃棄率特性テーブル３２ａを用いて、図８などを参照しながら説明した処理と同様の処理により、性能限界廃棄率Ｐｌｉｍを算出する。性能限界廃棄率Ｐｌｉｍを算出した後の処理は、第１の実施形態と同様である。このため、第２の実施形態でも、第１の実施形態と同様に、送信側の通信装置１０ａがトランスポートスループットを最大化するように決定した送信レートＢＷｔｒａを用いて、通信が行われ、通信が効率化される。
【００６４】
第２の実施形態では、通信装置１０は、廃棄率特性テーブル３２の代わりに、トランスポートプロトコルでの廃棄率とトランスポートスループットの関係を記述する関数を記憶するだけで済む。このため、第１の実施形態に比べて、通信装置１０がデータの記憶にするメモリ容量を少なくすることができる。
【００６５】
＜第３の実施形態＞
第３の実施形態では、通信装置が廃棄率特性テーブル３２を生成する場合の例を説明する。
【００６６】
図１４は、第３の実施形態で使用される通信装置６０の構成の例を説明する図である。通信装置６０は、送信処理部６５、受信処理部６８、アプリケーション処理部５０、記憶部３０、ネットワークインタフェース１１を備える。図１４では、送信処理部６５の詳細を通信装置６０ａ中に示し、受信処理部６８の詳細を通信装置６０ｂ中に示している。なお、送信処理部６５と受信処理部６８は、プロセッサ１０１によって実現される。
【００６７】
送信処理部６５は、廃棄率特性測定部６１と廃棄率制御部６２を有し、さらに、レート制御部２１、Ｌ３ネットワーク処理部２２、Ｌ４トランスポート処理部２３、計測部２４、送信レート決定部２５を有する。受信処理部６８は、Ｌ４トランスポート処理部７０、Ｌ３ネットワーク処理部４１、振り分け部４２、計測部４４を有する。Ｌ４トランスポート処理部７０は、廃棄率特性測定部７２を有する。
【００６８】
廃棄率特性測定部６１は、廃棄率特性テーブル３２を生成するために、廃棄率計測パケットに含めるデータや廃棄率計測パケットの送信数などの情報をＬ４トランスポート処理部２３に出力する。Ｌ４トランスポート処理部２３やＬ３ネットワーク処理部２２は、廃棄率特性測定部６１から入力された情報を処理することにより、廃棄率計測パケットや廃棄率計測パケットの送信数を含む制御パケットを生成する。
【００６９】
廃棄率制御部６２は、レート制御部２１から入力された廃棄率計測パケットを、ネットワークインタフェース１１を介して、廃棄率計測パケットの宛先に送信する。このとき、廃棄率制御部６２は、廃棄率計測パケットの廃棄率が送信レート決定部２５から設定された廃棄率になるように、レート制御部２１から入力された廃棄率計測パケットの一部を廃棄する。
【００７０】
廃棄率特性測定部７２は、廃棄率計測パケットを用いて受信したデータのトランスポートスループットを測定する。廃棄率特性測定部７２は、廃棄率計測パケットの廃棄率を計算するとともに、計測したトランスポートスループットに対応付ける。さらに、廃棄率特性測定部７２は得られた廃棄率とトランスポートスループットの組み合わせを、廃棄率計測パケットの送信元に通知するための処理を行う。
【００７１】
アプリケーション処理部５０、レート制御部２１、Ｌ３ネットワーク処理部２２、Ｌ４トランスポート処理部２３、計測部２４、送信レート決定部２５、Ｌ３ネットワーク処理部４１、振り分け部４２、計測部４４の処理は第１の実施形態と同様である。記憶部３０、送信レートテーブル３１と廃棄率特性テーブル３２を保持する。ここで、第３の実施形態では、廃棄率特性テーブル３２は、通信装置６０の処理によって更新され得る。
【００７２】
図１５は、廃棄率特性テーブル３２の例を説明する図である。通信に使用されるトランスポートプロトコルに応じた廃棄率特性が求められる前は、廃棄率特性テーブル３２ａ−１には、廃棄率とトランスポートスループットの対応が含められていない。通信装置６０ａが通信装置６０ｂとの間の通信を開始する際に、通信装置６０ａは、廃棄率特性測定部６１ａや廃棄率制御部６２ａなどの処理により、廃棄率計測パケットを通信装置６０ｂに送信する。通信装置６０ｂのＬ４トランスポート処理部７０ｂでの処理により得られた情報を、廃棄率特性測定部７２ｂが通信装置６０ａに通知すると、通信装置６０ａの廃棄率特性測定部６１ａが、得られた情報を廃棄率特性テーブル３２ａに記録する。このため、例えば、廃棄率特性テーブル３２ａ−１が廃棄率特性テーブル３２ａ−２に示すように更新される。以下、図１６を参照しながら、廃棄率特性テーブル３２が更新される際の処理の詳細について説明する。
【００７３】
図１６は、第３の実施形態にかかる通信方法を説明するシーケンス図である。以下、通信装置６０ａから通信装置６０ｂにパケットが送信される場合を例として説明する。送信レート決定部２５ａは、廃棄率特性測定部６１ａに、廃棄率特性の測定を指示する（ステップＳ５１）。ステップＳ５１において、送信レート決定部２５ａは、廃棄率特性測定部６１ａに対して、廃棄率特性を測定する際の通信先が通信装置６０ａであることを通知する。
【００７４】
ステップＳ５２において、廃棄率特性測定部６１ａは、１回の計測で通信装置６０ａに送信する廃棄率測定パケットの数を決定する。このとき、廃棄率特性測定部６１ａは、廃棄率制御部６２ａに設定する廃棄率に応じて決定する。例えば、廃棄率制御部６２ａに設定する廃棄率が０．０００１％であれば、１００万パケット中の１パケットが廃棄されるので、１回の測定に送信する廃棄率測定パケットの数を１億パケットなど、１００万パケット以上の値に設定する。一方、廃棄率制御部６２ａに設定する廃棄率が０％の場合、送信する廃棄率測定パケットの数は１００００パケット程度でも良い。廃棄率特性測定部６１ａは、廃棄率測定パケットの数を通知するための制御パケットに含めるデータを生成し、Ｌ４トランスポート処理部２３ａに出力する。廃棄率特性測定部６１ａで生成されたデータを用いて、Ｌ４トランスポート処理部２３ａとＬ３ネットワーク処理部２２ａは、廃棄率特性の測定を開始する通知と、使用するパケット数を含む制御パケットを生成する。制御パケットは、ネットワークインタフェース１１ａを介して、通信装置６０ｂに送信される。
【００７５】
通信装置６０ｂの振り分け部４２ｂは、ネットワークインタフェース１１ｂやＬ３ネットワーク処理部４１ｂを介して、制御パケット中のデータを取得すると、制御パケット中のデータを廃棄率特性測定部７２ｂに出力する。廃棄率特性測定部７２は、制御パケットで通知されたパケット数を記憶する。
【００７６】
一方、通信装置６０ａでは、廃棄率特性測定部６１ａは、廃棄率を廃棄率制御部６２ａに設定する（ステップＳ５３）。ステップＳ５４において、廃棄率特性測定部６１ａは、廃棄率測定パケットに含めるデータをＬ４トランスポート処理部２３ａに出力する。廃棄率特性測定部６１ａから出力されたデータを処理することにより、Ｌ４トランスポート処理部２３ａとＬ３ネットワーク処理部２２ａは、廃棄率測定パケットを生成する。なお、Ｌ３ネットワーク処理部２２ａは、廃棄率測定パケットのタイプ情報＝１０（図９参照）に設定したとする。Ｌ３ネットワーク処理部２２ａやレート制御部２１ａを介して廃棄率測定パケットは廃棄率制御部６２ａに出力される。廃棄率制御部６２ａは、廃棄率測定パケットの廃棄率が、廃棄率特性測定部６１ａから設定された値になるように、入力された廃棄率測定パケットの一部を廃棄し、残りの廃棄率測定パケットを通信装置６０ｂに送信する。
【００７７】
通信装置６０ｂでは、振り分け部４２ｂが、ネットワークインタフェース１１ｂを介して廃棄率測定パケット中のデータを取得する。取得したデータでは、タイプ情報＝１０に設定されているので、振り分け部４２ｂは、取得したデータを廃棄率特性測定部７２ｂに出力する。廃棄率特性測定部７２ｂは、廃棄率測定パケットのペイロード中に含まれているデータを用いて、トランスポートスループットを測定する。さらに、廃棄率特性測定部７２は、廃棄率測定パケット中のシーケンス番号と、あらかじめ通知されたパケット数を用いて、廃棄率を計算する（ステップＳ５５）。廃棄率特性測定部７２ｂは、得られた廃棄率とトランスポートスループットの組み合わせを、廃棄率測定パケットの送信元である通信装置６０ａに送信するための処理を行う（ステップＳ５６）。
【００７８】
通信装置６０ａの受信処理部６８ａは、ネットワークインタフェース１１ａを介して、廃棄率とトランスポートスループットの組み合わせの通知を取得する。受信処理部６８ａ中の振り分け部４２ａは、得られた通知中の情報を廃棄率特性測定部６１ａに出力する。このため、廃棄率特性測定部６１ａは、廃棄率とトランスポートスループットの組み合わせを廃棄率特性テーブル３２ａに格納することにより、廃棄率特性テーブル３２ａを更新する。その後、廃棄率特性測定部６１ａは、廃棄率特性テーブル３２中に含まれているインデックスの全てに対して、廃棄率とトランスポートスループットの組み合わせが格納されているかを判定する。全てのインデックスに対して、廃棄率とトランスポートスループットの組み合わせが格納されるまで、廃棄率特性測定部６１ａは、ステップＳ５２以降の処理を繰り返す。
【００７９】
図１６では、図を見やすくするために、図１６中のＧではステップＳ５２〜Ｓ５６の処理を１回だけ図示しているが、図１６中のＧに示す処理は、廃棄率特性テーブル３２を生成するために複数回にわたって行われる。すなわち、廃棄率特性テーブル３２の各インデックスに対応付けた廃棄率とトランスポートスループットの組み合わせが得られるまで、ステップＳ５３での廃棄率の設定値を変えて、図１６中のＧに示す処理が繰り返し行われるものとする。なお、廃棄率特性テーブル３２の更新のためにステップＳ５２〜Ｓ５６の処理を複数回繰り返すが、ステップＳ５２〜Ｓ５６の処理のいずれの回でも、送信レートは一定値に保たれているとする。
【００８０】
ステップＳ５８〜Ｓ６３の処理は、図１０のステップＳ１２〜Ｓ１９を参照しながら説明した処理と同様である。このように、第３の実施形態にかかる通信装置６０は、廃棄率特性テーブル３２中の情報を更新することができる。
【００８１】
図１７は、送信側の通信装置６０で行われる処理の例を説明するフローチャートである。廃棄率特性測定部６１は、廃棄率制御部６２での廃棄率の設定値を初期化する（ステップＳ７１）。廃棄率特性測定部６１は、廃棄率測定を行う通信先に向けて、廃棄率測定開始の通知を送信するための処理を行う（ステップＳ７２）。なお、廃棄率測定開始の通知には、１回の廃棄率の測定で送信される廃棄率測定パケットの数の情報が含められている。その後、廃棄率特性測定部６１は、廃棄率を廃棄率制御部６２に設定する（ステップＳ７３）。廃棄率特性測定部６１から廃棄率計測パケットに含めるデータを取得すると、Ｌ４トランスポート処理部２３とＬ３ネットワーク処理部２２は、廃棄率計測パケットを生成する。廃棄率制御部６２は、生成された廃棄率計測パケットの一部を、廃棄率計測パケットの廃棄率がステップＳ７３で設定された値になるように廃棄し、廃棄していない廃棄率計測パケットを、通信先に向けて送信する（ステップＳ７４）。
【００８２】
その後、廃棄率特性測定部６１は、ネットワークインタフェース１１や受信処理部６８を介して、通信先の通信装置６０での廃棄率とトランスポートスループットの通知を取得する（ステップＳ７５）。廃棄率特性測定部６１は、通知された廃棄率が前回の通知よりも減少しているかを判定する（ステップＳ７６）。廃棄率特性測定部６１は、通知された廃棄率が前回の通知よりも減少している場合、処理を終了する（ステップＳ７６でＹｅｓ）。一方、通知された廃棄率が前回の通知よりも減少していない場合、廃棄率特性測定部６１は、設定された廃棄率が廃棄率特性テーブル３２での廃棄率の最大値であるかを判定する（ステップＳ７６でＮｏ、ステップＳ７７）。設定された廃棄率が廃棄率特性テーブル３２での廃棄率の最大値である場合、廃棄率特性測定部６１は、処理を終了する（ステップＳ７７でＹｅｓ）。
【００８３】
一方、設定された廃棄率が廃棄率特性テーブル３２での廃棄率の最大値ではない場合、廃棄率特性測定部６１は、得られたデータを廃棄率特性テーブル３２に記録する（ステップＳ７７でＮｏ、ステップＳ７８）。さらに、廃棄率特性測定部６１は、廃棄率制御部６２での廃棄率の設定値を増加させて、ステップＳ７２に戻る（ステップＳ７９）。
【００８４】
なお、図１７は一例であって、実装に応じて、図１７の処理は変更され得る。例えば、ステップＳ７６やステップＳ７７でＹｅｓと判定された場合であっても、得られた廃棄率とスループットの情報を廃棄率特性テーブル３２に記録するように変形されてもよい。
【００８５】
図１８は、受信側の通信装置６０で行われる処理の例を説明するフローチャートである。廃棄率特性測定部７２は、廃棄率計測パケットの送信元から受信したパケットから、廃棄率計測パケットの送信数を取得する（ステップＳ８１）。ネットワークインタフェース１１は、廃棄率計測パケットを受信する（ステップＳ８２）。廃棄率特性測定部７２は、廃棄率計測パケット中のデータを取得する。廃棄率特性測定部７２は、廃棄率計測パケットのうちで最後に送信されたパケットを受信したかを判定する（ステップＳ８３）。廃棄率計測パケットのうちで最後に送信されたパケットを受信していない場合、廃棄率特性測定部７２は、廃棄率計測パケットを待ち合わせる期間のタイムアウトが発生しているかを判定する（ステップＳ８３でＮｏ、ステップＳ８４）。廃棄率計測パケットを待ち合わせる期間のタイムアウトが発生していない場合、廃棄率特性測定部７２は、ステップＳ８２に戻る（ステップＳ８４でＮｏ）。
【００８６】
一方、廃棄率計測パケットのうちで最後に送信されたパケットまでを受信している場合、廃棄率特性測定部７２は、受信した廃棄率計測パケットを用いて、廃棄率とトランスポートスループットを求める（ステップＳ８３でＹｅｓ、ステップＳ８５）。その後、廃棄率特性測定部７２は、廃棄率とトランスポートスループットを、廃棄率測定パケットの送信元に通知する（ステップＳ８６）。ステップＳ８４において、廃棄率計測パケットを待ち合わせる期間のタイムアウトが発生していると判定した場合（ステップＳ８４でＹｅｓ）にも、廃棄率特性測定部７２は、ステップＳ８５以降の処理を行う。
【００８７】
このように、第３の実施形態によると、廃棄率特性テーブル３２は、起動時などに、通信装置６０によって自律的に更新される。このため、実際に送受信を行う通信装置６０間での通信で得られた実測に基づいて廃棄率特性テーブル３２が得られる。従って、第３の実施形態では、予め、オペレータが他のシステム等で通信装置間での通信をシミュレーションすることによって廃棄率特性テーブル３２を生成する処理を削減することができる。
【００８８】
＜第４の実施形態＞
第４の実施形態では、データの受信側の通信装置がデータの送信レートを計算して、送信側の通信装置に通知する場合について説明する。
【００８９】
図１９は、第４の実施形態で使用される通信装置の構成の例を説明する図である。通信装置８０は、送信処理部８１、受信処理部８５、アプリケーション処理部５０、記憶部３０、ネットワークインタフェース１１を備える。図１９では、送信処理部８１の詳細を通信装置８０ａ中に示し、受信処理部８５の詳細を通信装置８０ｂ中に示している。なお、送信処理部８１と受信処理部８５は、プロセッサ１０１によって実現される。
【００９０】
送信処理部８１は、レート制御部２１、Ｌ３ネットワーク処理部２２、Ｌ４トランスポート処理部２３、計測部２４を備える。一方、受信処理部８５は、Ｌ３ネットワーク処理部４１、振り分け部４２、Ｌ４トランスポート処理部４３、計測部４４、送信レート決定部８６を有する。
【００９１】
送信レート決定部８６は、適宜、計測部４４に対して、通信先の通信装置８０との間でパケットロスを発生させずに利用可能な送信レートの最大値ＢＷａｖａの計測の開始を要求する。なお、送信レート決定部８６は、データの送信を要求する通信装置８０の情報を、通信先として予め取得しているとする。また、送信レート決定部８６は、廃棄率特性テーブル３２を用いて、性能限界廃棄率Ｐｌｉｍの算出も行う。なお、性能限界廃棄率Ｐｌｉｍの算出の手順は、図７と図８を参照しながら説明した処理と同様である。
【００９２】
計測部４４は、送信レート決定部８６からの要求に応じて、通信先の通信装置８０に対して、パケットロスを発生させずに利用可能な送信レートの最大値ＢＷａｖａの計測の開始を通知する。以下、図２０を参照しながら、通信方法の例を説明する。
【００９３】
図２０は、第４の実施形態にかかる通信方法を説明するシーケンス図である。データパケットの受信側の通信装置８０ｂに含まれている送信レート決定部８６ｂは、廃棄率特性テーブル３２ｂを読み込み、性能限界廃棄率を算出する（ステップＳ９１、Ｓ９２）。さらに、送信レート決定部８６ｂは、計測部４４ｂに対して、通信先の通信装置８０との間でパケットロスを発生させずに利用可能な送信レートの最大値ＢＷａｖａの計測の開始を要求する。
【００９４】
計測部４４ｂは、通信先の通信装置８０ａに向けて、計測パケットの送信に使用する送信レートを通知する制御パケットを送信するための処理を行う（ステップＳ９３）。計測部２４ａは、制御パケット中に含まれている送信レートをレート制御部２１ａに設定する（ステップＳ９４）。計測部２４ａは、計測パケットに含めるペイロードと、計測パケットの送信先が通信装置８０ｂであることを特定する情報をＬ３ネットワーク処理部２２ａに出力する。Ｌ３ネットワーク処理部２２ａは、計測パケットを生成し、レート制御部２１ａに出力する。レート制御部２１ａは、Ｌ３ネットワーク処理部２２ａから入力されたパケットを、計測部２４ａから通知された送信レートで、通信装置８０ｂに送信する（ステップＳ９５）。
【００９５】
通信装置８０ｂの振り分け部４２ｂは、ネットワークインタフェース１１ｂなどを介して、計測パケットを取得すると、計測パケットを計測部４４ｂに出力する。計測部４４ｂは、計測パケットの受信レートを計測し、通信装置８０ａに通知した送信レートと受信レートを比較する。計測部４４ｂは、比較処理の結果を用いて、適宜、再度の計測に使用する送信レートを決定して、ステップＳ９３以降の処理を行う。図２０中のＨに示す処理は、パケットロスを発生させずに利用可能な送信レートの最大値ＢＷａｖａが得られるまで繰り返される。
【００９６】
パケットロスを発生させずに利用可能な送信レートの最大値ＢＷａｖａが得られると、通信装置８０ｂの計測部４４ｂは、得られた値を送信レート決定部８６ｂに出力する。すると、送信レート決定部８６ｂは、制御パケット中のデータから得られたＢＷａｖａと性能限界廃棄率Ｐｌｉｍを用いて、トランスポートスループットを最大化する送信レート（ＢＷｔｒａ）を決定する（ステップＳ９７）。送信レート決定部８６ｂは、トランスポートスループットを最大化する送信レート（ＢＷｔｒａ）として求めた値を通知する制御パケットを生成し、ネットワークインタフェース１１ｂ経由で通信装置８０ａに送信する（ステップＳ９８）。
【００９７】
通信装置８０ａのレート制御部２１ａは、受信処理部８５ａなどを介して、制御パケットで通知された送信レート（ＢＷｔｒａ）を取得する。レート制御部２１ａは、取得した送信レートを通信装置８０ｂとのデータパケットの送信に用いる送信レートに設定する。その後、アプリケーション処理部５０ａが通信装置８０ｂ宛てのデータを生成する。Ｌ４トランスポート処理部２３ａやＬ３ネットワーク処理部２２ａの処理により、データパケットが生成される。Ｌ３ネットワーク処理部２２ａは、データパケットをレート制御部２１ａに出力すると、レート制御部２１ａは、設定された送信レート（ＢＷｔｒａ）でデータパケットを通信装置８０ｂに向けて送信する。
【００９８】
このように、第４の実施形態によると、データパケットの受信側の通信装置８０ｂは、データパケットの送信元の通信装置８０ａに対して、通信装置８０ｂへのデータパケットの送信レートを通知することができる。このため、送信側の通信装置８０ａは、データパケットの送信レートを通信先ごとに決定しなくてもよい。このため、第４の実施形態は、送信側の通信装置８０の負荷を軽くするために使用することができる。例えば、送信側の通信装置８０ａがサーバ装置であり、複数の端末にデータを送信する場合などでは、送信側の通信装置８０の負荷を軽くすることが望ましいので、第４の実施形態の適用に適している。
【００９９】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１００】
以上の説明で記載したテーブルやパケットのフォーマットは一例であり、実装に応じて変更され得る。
【０１０１】
第４の実施形態では、説明を分かりやすくするために、廃棄率特性テーブル３２を通信装置８０が更新しない場合の例を説明したが、第４の実施形態においても、第３の実施形態と同様に、廃棄率特性テーブル３２が通信装置８０で生成されてもよい。
【０１０２】
パケットロスを発生させない送信レートの最大値の計算方法の例を、図１３を参照しながら説明したが、図１３の処理は一例である。例えば、通信装置（１０、６０、８０）は、高い送信レートを初期値に設定し、送信レート＝受信レートとなるまで、送信レートを徐々に下げてもよい。通信装置（１０、６０、８０）は、送信レート＝受信レートとなったときの送信レートを、パケットロスが発生しない送信レートの最大値ＢＷａｖａとしても良い。さらに、通信装置（１０、６０、８０）は、計測パケットを様々なレートで送信し、二分探索でＢＷａｖａを探索してもよい。この場合、通信装置（１０、６０、８０）は、送信レート＞受信レートなら送信レートを下げて再度計測パケットを送信することで、送信レートの上限を更新する。一方、送信レート＝受信レートなら、通信装置（１０、６０、８０）は、送信レートを上げて再度計測パケットを送信することで、送信レートの下限を更新する。通信装置（１０、６０、８０）は、これらの処理を、送信レートの上限と下限の差分が所定の誤差範囲内に収束するまで行い、ＢＷａｖａを求めてもよい。
【０１０３】
上述の第１〜第４の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
通信先装置へのパケットの送信レートと、前記通信先装置におけるパケットの受信レートを用いて第１の送信レートを計測する計測部と、
前記通信先装置との間の通信で使用するプロトコルによる誤り訂正の種別と前記第１の送信レートに基づいて第２の送信レートを算出し、前記第２の送信レートを、前記通信先装置との通信に使用する送信レートに決定する決定部と、
前記決定部が決定した送信レートで、前記通信先装置にパケットを送信する通信部
を備えることを特徴とする通信装置。
（付記２）
前記計測部は、前記第１の送信レートを、パケットロスが発生しない送信レートの最大値として計測し、
前記決定部は、前記通信先装置が受信に失敗するパケットで送信されたデータを前記プロトコルによる誤り訂正によって復元可能な送信レートの上限値以下で、前記第１の送信レートよりも大きな値を、前記第２の送信レートに決定する
ことを特徴とする付記１に記載の通信装置。
（付記３）
前記プロトコルを用いた通信が所定の送信レートで行われた場合の、前記プロトコルでの誤り訂正処理後のスループットと、前記通信先装置宛のパケットの廃棄率を対応付けた情報を記憶する記憶部をさらに備え、
前記決定部は、前記情報で前記プロトコルでの誤り訂正後のスループットの低下が所定の閾値に達したときの廃棄率である限界廃棄率を求め、前記通信先装置宛のパケットの廃棄率が前記限界廃棄率となる送信レートを、前記プロトコルでの誤り訂正によって復元可能な送信レートの上限値として計算する
ことを特徴とする付記２に記載の通信装置。
（付記４）
前記通信先装置に送信する計測パケットを、予め設定された設定廃棄率で廃棄してから前記通信部に出力する廃棄処理部と、
前記廃棄処理部に前記設定廃棄率の設定値を通知する特性測定部を備え、
前記通信部は、前記計測パケットの総数を、前記計測パケットの送信数として前記通信先装置に通知する制御パケットを送信するとともに、前記通信先装置への送信レートを所定の値に保って、前記廃棄処理部から出力された計測パケットの送信処理を行い、
前記特性測定部は、前記廃棄処理部での前記設定廃棄率を変更することによって、前記通信先装置から前記プロトコルでの誤り訂正後のデータのスループットを、前記設定廃棄率に設定した個々の値に対応付けて取得することにより、前記プロトコルでの誤り訂正の特性を測定し、
前記決定部は、前記特性測定部が求めた特性での誤り訂正後のスループットの低下が所定の閾値に達したときの廃棄率である限界廃棄率を求め、前記通信先装置宛のパケットの廃棄率が前記限界廃棄率となる送信レートを、前記プロトコルでの誤り訂正によって復元可能な送信レートの上限値として計算する
ことを特徴とする付記２に記載の通信装置。
（付記５）
通信先装置からパケットを受信する通信装置であって、
前記通信先装置から前記通信装置への計測パケットの送信レートの設定要求を前記通信先装置に通知する通信部と、
前記通信先装置に通知した送信レートと、前記計測パケットの受信レートを用いて、第１の送信レートを計測する計測部と、
前記通信先装置との間の通信で使用するプロトコルによる誤り訂正の種別と前記第１の送信レートに基づいて第２の送信レートを算出し、前記第２の送信レートを、前記通信先装置との通信に使用する送信レートに決定する決定部
を備え、
前記通信部は、前記決定部が決定した送信レートを、前記通信装置との通信に使用することを要求する制御パケットを、前記通信先装置に送信する
をことを特徴とする通信装置。
（付記６）
前記計測部は、前記第１の送信レートを、パケットロスが発生しない送信レートの最大値として計測し、
前記決定部は、前記通信先装置が受信に失敗するパケットで送信されたデータを前記プロトコルによる誤り訂正によって復元可能な送信レートの上限値以下で、前記第１の送信レートよりも大きな値を、前記第２の送信レートに決定する
ことを特徴とする付記５に記載の通信装置。
（付記７）
通信先装置へのパケットの送信レートと、前記通信先装置におけるパケットの受信レートを用いて第１の送信レートを計測し、
前記通信先装置との間の通信で使用するプロトコルによる誤り訂正の種別と前記第１の送信レートに基づいて第２の送信レートを算出し、前記第２の送信レートを、前記通信先装置との通信に使用する送信レートに決定し、
前記決定した送信レートで、前記通信先装置にパケットを送信する
処理を通信装置が行うことを特徴とする通信方法。
（付記８）
前記通信装置は、
前記第１の送信レートを、パケットロスが発生しない送信レートの最大値として計測し、
前記通信先装置が受信に失敗するパケットで送信されたデータを前記プロトコルによる誤り訂正によって復元可能な送信レートの上限値以下で、前記第１の送信レートよりも大きな値を、前記第２の送信レートに決定する
ことを特徴とする付記７に記載の通信装置。
（付記９）
前記通信装置は、
前記プロトコルを用いた通信が所定の送信レートで行われた場合の、前記プロトコルでの誤り訂正処理後のスループットと、前記通信先装置宛のパケットの廃棄率を対応付けた情報を記憶する記憶部を備え、
前記情報で前記プロトコルでの誤り訂正後のスループットの低下が所定の閾値に達したときの廃棄率である限界廃棄率を求め、
前記通信先装置宛のパケットの廃棄率が前記限界廃棄率となる送信レートを、前記プロトコルでの誤り訂正によって復元可能な送信レートの上限値として計算する
ことを特徴とする付記８に記載の通信方法。
（付記１０）
前記通信先装置に送信する計測パケットを、予め設定された設定廃棄率で廃棄してから前記通信先装置に送信し、
前記計測パケットの総数を、前記計測パケットの送信数として前記通信先装置に通知する制御パケットを送信し、
前記設定廃棄率を変更することによって、前記通信先装置から前記プロトコルでの誤り訂正後のデータのスループットを、前記設定廃棄率に設定した個々の値に対応付けて取得することにより、前記プロトコルでの誤り訂正の特性を測定し、
求めた特性での誤り訂正後のスループットの低下が所定の閾値に達したときの廃棄率である限界廃棄率を求め、
前記通信先装置宛のパケットの廃棄率が前記限界廃棄率となる送信レートを、前記プロトコルでの誤り訂正によって復元可能な送信レートの上限値として計算する
処理を前記通信装置が行うことを特徴とする付記８に記載の通信方法。
【符号の説明】
【０１０４】
３  ネットワーク
５  送信端末
７  受信端末
１０、６０  通信装置
１１  ネットワークインタフェース
２０、６５、８１  送信処理部
２１  レート制御部
２２、４１  Ｌ３ネットワーク処理部
２３、４３、７０  Ｌ４トランスポート処理部
２４  計測部
２５、８６  送信レート決定部
３０  記憶部
３１  送信レートテーブル
３２  廃棄率特性テーブル
４０、６８、８５  受信処理部
４２  振り分け部
４４  計測部
５０  アプリケーション処理部
６１  廃棄率特性測定部
６２  廃棄率制御部
７２  廃棄率特性測定部
１０１  プロセッサ
１０２  メモリ
１０３  記憶装置
１０４  バス
１０５  通信インタフェース
１０６  出力装置
１０７  入力装置
２０１  Ｌ３ネットワークプロトコル
２０２  Ｌ４トランスポートプロトコル
２０３  アプリケーション
【図１】
2018061141.tif 000003
【図２】
2018061141.tif 000004
【図３】
2018061141.tif 000005
【図４】
2018061141.tif 000006
【図５】
2018061141.tif 000007
【図６】
2018061141.tif 000008
【図７】
2018061141.tif 000009
【図８】
2018061141.tif 000010
【図９】
2018061141.tif 000011
【図１０】
2018061141.tif 000012
【図１１】
2018061141.tif 000013
【図１２】
2018061141.tif 000014
【図１３】
2018061141.tif 000015
【図１４】
2018061141.tif 000016
【図１５】
2018061141.tif 000017
【図１６】
2018061141.tif 000018
【図１７】
2018061141.tif 000019
【図１８】
2018061141.tif 000020
【図１９】
2018061141.tif 000021
【図２０】
2018061141.tif 000022