(57)【要約】【課題】無線環境を含むネットワーク上でのストリーミング伝送において、伝送遅延およびパケットロスを抑制可能な、送信レート制御方法を提供する。【解決手段】直近の送信レートＲＳＮＤｔ−１でデータを受信装置に送信し、データの受信レートＲＲＣＶｔを含むＲＴＣＰパケットを受信装置から受信し、ネットワークが輻輳状態にある場合、またはネットワークが非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が受信レートＲＲＣＶｔより高い場合に、受信レートＲＲＣＶの長期ＥＷＭＡとして受信達成レートＲＡＲｔを算出し、ネットワークが非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が受信レートＲＲＣＶｔより低い場合、またはＲＴＣＰパケットのタイムアウトが生じている場合に、受信レートＲＲＣＶの短期ＥＷＭＡとして受信達成レートＲＡＲｔを算出し、受信達成レートＲＡＲｔに基づいて、送信レートＲＳＮＤｔを設定する。【選択図】図１
2011035442.tif 000002
【特許請求の範囲】
【請求項１】
無線環境を含むネットワーク上でのストリーミング伝送において、直近の送信レートＲＳＮＤｔ−１でデータを受信装置に送信し、前記データの受信レートＲＲＣＶｔを含むＲＴＣＰパケットを前記受信装置から受信するステップと、
前記ネットワークが輻輳状態にある場合、または前記ネットワークが非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が前記受信レートＲＲＣＶｔより高い場合に、前記受信レートＲＲＣＶの長期ＥＷＭＡ（指数加重移動平均）として受信達成レートＲＡＲｔを算出し、
前記ネットワークが非輻輳状態にあり前記直近の受信達成レートＲＡＲｔ−１が前記受信レートＲＲＣＶｔより低い場合、またはＲＴＣＰパケットのタイムアウトが生じている場合に、前記受信レートＲＲＣＶの短期ＥＷＭＡとして前記受信達成レートＲＡＲｔを算出するステップと、
前記受信達成レートＲＡＲｔに基づいて、送信レートＲＳＮＤｔを設定するステップと、
を含む送信レート制御方法。
【請求項２】
前記受信達成レートＲＡＲｔを算出するステップにおいて、次式で表される前記受信レートＲＲＣＶの長期ＥＷＭＡまたは短期ＥＷＭＡとして前記受信達成レートＲＡＲｔを算出する、請求項１に記載の送信レート制御方法。
前記受信レートＲＲＣＶの長期ＥＷＭＡとして算出する場合：
ＲＡＲｔ←αＬ・ＲＡＲｔ−１＋（１−αＬ）・ＲＲＣＶｔ
前記受信レートＲＲＣＶの短期ＥＷＭＡとして算出する場合：
ＲＡＲｔ←αＳ・ＲＡＲｔ−１＋（１−αＳ）・ＲＲＣＶｔ
ここで、０＜αＳ＜αＬ＜１
【請求項３】
前記送信レートＲＳＮＤｔを設定するステップにおいて、前記送信レートＲＳＮＤｔを次式により設定する、請求項１または２に記載の送信レート制御方法。
前記ネットワークが非輻輳状態にある場合：
ＲＳＮＤｔ←（ＲＲＣＶｔ・ＲＴＴｔ＋１）／（ＲＴＴｔ＋ΔＲＴＴ）
ＲＳＮＤｔ←β・ＲＳＮＤｔ＋（１−β）・ＲＡＲｔ
さらに、ＲＳＮＤｔ＞制限レートＲＬＲｔの場合に、ＲＳＮＤｔ←ＲＬＲｔ
前記ネットワークが輻輳状態にある場合：
ＲＳＮＤｔ←γ・ＲＡＲｔ
さらに、ＲＳＮＤｔ＞ＲＲＣＶｔの場合に、ＲＳＮＤｔ←ＲＲＣＶｔ
ＲＳＮＤｔ´←（ＲＲＣＶｔ・ＲＴＴｔ＋１）／（ＲＴＴｔ＋ΔＲＴＴ）
さらに、ＲＳＮＤｔ´＜ＲＳＮＤｔの場合に、ＲＳＮＤｔ←（ＲＳＮＤｔ´＋ＲＳＮＤｔ）／２
ここで、ＲＴＴｔおよびＲＴＴｔ−１：最新のＲＴＴおよび直近のＲＴＴ、ΔＲＴＴ：ＲＴＴの変動（ＲＴＴｔ−ＲＴＴｔ−１）、ＲＬＲｔ：ＲＳＮＤｔの上限を規定する制限レート、ＲＳＮＤｔ´：仮の送信レート、０＜β＜１、０＜γ＜１
【請求項４】
前記制限レートＲＬＲｔを次式により算出する、請求項３に記載の送信レート制御方法。
ＲＳＮＤｔ−１＜ＲＭＡＸの場合：
ＲＬＲｔ←ＲＳＮＤｔ−１＋αＬＲ・（ＲＭＡＸ−ＲＳＮＤｔ−１）＋ΔＲＭＩＮ
ＲＳＮＤｔ−１≧ＲＭＡＸの場合：
ＲＬＲｔ←ＲＳＮＤｔ−１＋ΔＲＭＩＮ
ここで、ＲＳＮＤｔ−１：直近の送信レート、ＲＭＡＸ：現在の通信接続での最大送信レート、ΔＲＭＩＮ：最小増加制限レート（定数、ΔＲＭＩＮ≧０）、０＜αＬＲ＜１
【請求項５】
ＲＴＴｔがＲＴＴＳＴＡＲＴ以下の状態からＲＴＴＳＴＡＲＴを超える状態に変化した場合、またはパケットロスが発生した場合に、前記ネットワークが輻輳状態へ移行したと判定し、
ＲＴＴｔがＲＴＴＥＮＤ以上の状態からＲＴＴＥＮＤ未満の状態に変化し、かつＳＲＴＴｔ／ＬＲＴＴｔ＜αである場合に、前記ネットワークが非輻輳状態へ移行したと判定し、
さらに、前記ネットワークが非輻輳状態へ移行したと判定した場合でも、前記ネットワークが輻輳状態へ移行した時点から次式で表される輻輳状態継続期間Δτ中は、前記ネットワークの輻輳状態が継続しているとみなすステップをさらに含む、請求項１に記載の送信レート制御方法。
Δτ←μ・（ＲＴＴＭＡＸ−ＲＴＴＭＩＮ）／（２・（１−γ））
ここで、ＲＴＴｔ：最新のＲＴＴ、ＲＴＴＳＴＡＲＴおよびＲＴＴＥＮＤ：Ｓｐｉｋｅ法により定義される輻輳状態へ移行時のＲＴＴおよび非輻輳状態へ移行時のＲＴＴ、ＳＲＴＴｔおよびＬＲＴＴｔ：ＲＴＴの短期ＥＷＭＡおよび長期ＥＷＭＡ、α＞１、０＜γ＜１、μ＜１
【請求項６】
無線環境を含むネットワーク上でのストリーミング伝送において、直近の送信レートＲＳＮＤｔ−１でデータを受信装置に送信し、前記データの受信レートＲＲＣＶｔを含むＲＴＣＰパケットを前記受信装置から受信する通信処理部と、
前記ネットワークが輻輳状態にある場合、または前記ネットワークが非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が前記受信レートＲＲＣＶｔより高い場合に、前記受信レートＲＲＣＶの長期ＥＷＭＡ（指数加重移動平均）として受信達成レートＲＡＲｔを算出し、前記ネットワークが非輻輳状態にあり前記直近の受信達成レートＲＡＲｔ−１が前記受信レートＲＲＣＶｔより低い場合、またはＲＴＣＰパケットのタイムアウトが生じている場合に、前記受信レートＲＲＣＶの短期ＥＷＭＡとして前記受信達成レートＲＡＲｔを算出する受信達成レート算出部と、
前記受信達成レートＲＡＲｔに基づいて、送信レートＲＳＮＤｔを設定する送信レート設定部と、
を備える通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信レート制御方法および通信装置に関する。
【背景技術】
【０００２】
パケット交換方式のストリーミング配信システムでは、サーバー側からクライアント側へ映像、音声等のデータをダウンロードし、バッファリングした後に再生することで、ほぼリアルタイムのストリーミング配信が実現されている。しかし、ビデオ会議システム等、リアルタイム性が重視されるシステムでは、バッファリングによる再生遅延を回避するために、ネットワーク状況に応じてサーバー側で送信レートを調整してパケットロスを防止することになる。
【０００３】
パケット交換方式のネットワーク上でエンドツーエンドの通信を行う場合に、トランスポート層で伝送レートを制御するためにＴＣＰ（Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）が利用される。しかし、ＴＣＰは、伝送レートの変動が大きく、また自動再送が半無限的に行われるので、リアルタイムのストリーミング配信には適していない。
【０００４】
このため、リアルタイムのストリーミング配信には、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）が主に利用される。ＵＤＰは、ＴＦＲＣ（ＴＣＰ  Ｆｒｉｅｎｄｌｙ  Ｒａｔｅ  Ｃｏｎｔｒｏｌ）、ＲＡＰ（Ｒａｔｅ  Ａｄａｐｔｉｖｅ  Ｐｒｏｔｏｃｏｌ）、ＤＶＲＣ（Ｄｙｎａｍｉｃ  Ｖｉｄｅｏ  Ｒａｔｅ  Ｃｏｎｔｒｏｌ）等のレート制御方法を用いる。
【０００５】
しかし、これらのレート制御方法は、ＴＣＰと同様にＡＩＭＤ（ａｄｄｉｔｉｖｅ−ｉｎｃｒｅａｓｅ  ａｎｄ  ｍｕｌｔｉｐｌｉｃａｔｉｖｅ−ｄｅｃｒｅａｓｅ）に基づいている。このため、無線環境を含むネットワークでは、ネットワーク帯域の変動に応じて、レートの変動が大きくなり、レートの急激な増加によりパケットロスが発生し易くなるという問題がある。そして、パケットロスは、映像のコマ落ちや乱れ、音声の途切れ等の原因となり、通信品質を著しく低下させてしまう。
【０００６】
一方、レートの変動が小さいレート制御方法として、例えば下記非特許文献１等に記載されているＶＴＰ（Ｖｉｄｅｏ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）が知られている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】G. Yang, M. Gerla, and M. Y. Sanadidi, “Adaptive video streaming in presence of wirelesserrors,” Proc of the IPIF/IEEE MMNS Conference, Springer Verlag,San Diego, California, 2004.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、ＶＴＰは、レートの急激な減少に対する追従性が低いので、パケットロスが発生し易くなるという問題がある。このため、レートの変動が小さいＶＴＰを基準として、無線環境を含むネットワークでも伝送遅延およびパケットロスを抑制可能なレート制御方法が望まれている。
【０００９】
そこで、本発明は、無線環境を含むネットワーク上でのストリーミング伝送において、伝送遅延およびパケットロスを抑制可能な、送信レート制御方法および通信装置を提供しようとするものである。
【課題を解決するための手段】
【００１０】
本発明のある観点によれば、無線環境を含むネットワーク上でのストリーミング伝送において、直近の送信レートＲＳＮＤｔ−１でデータを受信装置に送信し、データの受信レートＲＲＣＶｔを含むＲＴＣＰパケットを受信装置から受信するステップと、ネットワークが輻輳状態にある場合、またはネットワークが非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が受信レートＲＲＣＶｔより高い場合に、受信レートＲＲＣＶの長期ＥＷＭＡ（指数加重移動平均）として受信達成レートＲＡＲｔを算出し、ネットワークが非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が受信レートＲＲＣＶｔより低い場合、またはＲＴＣＰパケットのタイムアウトが生じている場合に、受信レートＲＲＣＶの短期ＥＷＭＡとして受信達成レートＲＡＲｔを算出するステップと、受信達成レートＲＡＲｔに基づいて、送信レートＲＳＮＤｔを設定するステップと、を含む送信レート制御方法が提供される。
【００１１】
かかる方法によれば、ネットワーク状況に応じて受信レートの長期ＥＷＭＡまたは短期ＥＷＭＡとして算出された受信達成レートに基づいて、送信レートが設定される。これにより、無線環境を含むネットワーク上でのストリーミング伝送において、ネットワーク状況に対する送信レートの追従性を高め、伝送遅延およびパケットロスを抑制することができる。
【００１２】
ここで、上記受信達成レートＲＡＲｔを算出するステップにおいて、次式で表される受信レートＲＲＣＶの長期ＥＷＭＡまたは短期ＥＷＭＡとして受信達成レートＲＡＲｔを算出してもよい。
受信レートＲＲＣＶの長期ＥＷＭＡとして算出する場合：
ＲＡＲｔ←αＬ・ＲＡＲｔ−１＋（１−αＬ）・ＲＲＣＶｔ
受信レートＲＲＣＶの短期ＥＷＭＡとして算出する場合：
ＲＡＲｔ←αＳ・ＲＡＲｔ−１＋（１−αＳ）・ＲＲＣＶｔ
ここで、０＜αＳ＜αＬ＜１
【００１３】
ここで、上記送信レートＲＳＮＤｔを設定するステップにおいて、送信レートＲＳＮＤｔを次式により設定してもよい。
ネットワークが非輻輳状態にある場合：
ＲＳＮＤｔ←（ＲＲＣＶｔ・ＲＴＴｔ＋１）／（ＲＴＴｔ＋ΔＲＴＴ）
ＲＳＮＤｔ←β・ＲＳＮＤｔ＋（１−β）・ＲＡＲｔ
さらに、ＲＳＮＤｔ＞制限レートＲＬＲｔの場合に、ＲＳＮＤｔ←ＲＬＲｔ
ネットワークが輻輳状態にある場合：
ＲＳＮＤｔ←γ・ＲＡＲｔ
さらに、ＲＳＮＤｔ＞ＲＲＣＶｔの場合に、ＲＳＮＤｔ←ＲＲＣＶｔ
ＲＳＮＤｔ´←（ＲＲＣＶｔ・ＲＴＴｔ＋１）／（ＲＴＴｔ＋ΔＲＴＴ）
さらに、ＲＳＮＤｔ´＜ＲＳＮＤｔの場合に、ＲＳＮＤｔ←（ＲＳＮＤｔ´＋ＲＳＮＤｔ）／２
ここで、ＲＴＴｔおよびＲＴＴｔ−１：最新のＲＴＴおよび直近のＲＴＴ、ΔＲＴＴ：ＲＴＴの変動（ＲＴＴｔ−ＲＴＴｔ−１）、ＲＬＲｔ：ＲＳＮＤｔの上限を規定する制限レート、ＲＳＮＤｔ´：仮の送信レート、０＜β＜１、０＜γ＜１
【００１４】
ここで、上記制限レートＲＬＲｔを次式により算出してもよい。
ＲＳＮＤｔ−１＜ＲＭＡＸの場合：
ＲＬＲｔ←ＲＳＮＤｔ−１＋αＬＲ・（ＲＭＡＸ−ＲＳＮＤｔ−１）＋ΔＲＭＩＮ
ＲＳＮＤｔ−１≧ＲＭＡＸの場合：
ＲＬＲｔ←ＲＳＮＤｔ−１＋ΔＲＭＩＮ
ここで、ＲＳＮＤｔ−１：直近の送信レート、ＲＭＡＸ：現在の通信接続での最大送信レート、ΔＲＭＩＮ：最小増加制限レート（定数、ΔＲＭＩＮ≧０）、０＜αＬＲ＜１
【００１５】
また、上記送信レート制御方法では、ＲＴＴｔがＲＴＴＳＴＡＲＴ以下の状態からＲＴＴＳＴＡＲＴを超える状態に変化した場合、またはパケットロスが発生した場合に、ネットワークが輻輳状態へ移行したと判定し、
ＲＴＴｔがＲＴＴＥＮＤ以上の状態からＲＴＴＥＮＤ未満の状態に変化し、かつＳＲＴＴｔ／ＬＲＴＴｔ＜αである場合に、ネットワークが非輻輳状態へ移行したと判定し、
さらに、ネットワークが非輻輳状態へ移行したと判定した場合でも、ネットワークが輻輳状態へ移行した時点から次式で表される輻輳状態継続期間Δτ中は、ネットワークの輻輳状態が継続しているとみなすステップをさらに含んでもよい。
Δτ←μ・（ＲＴＴＭＡＸ−ＲＴＴＭＩＮ）／（２・（１−γ））
ここで、ＲＴＴｔ：最新のＲＴＴ、ＲＴＴＳＴＡＲＴおよびＲＴＴＥＮＤ：Ｓｐｉｋｅ法により定義される輻輳状態へ移行時のＲＴＴおよび非輻輳状態へ移行時のＲＴＴ、ＳＲＴＴｔおよびＬＲＴＴｔ：ＲＴＴの短期ＥＷＭＡおよび長期ＥＷＭＡ、α＞１、０＜γ＜１、μ＜１
【００１６】
また、本発明の他の観点によれば、無線環境を含むネットワーク上でのストリーミング伝送において、直近の送信レートＲＳＮＤｔ−１でデータを受信装置に送信し、データの受信レートＲＲＣＶｔを含むＲＴＣＰパケットを受信装置から受信する通信処理部と、ネットワークが輻輳状態にある場合、またはネットワークが非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が受信レートＲＲＣＶｔより高い場合に、受信レートＲＲＣＶの長期ＥＷＭＡ（指数加重移動平均）として受信達成レートＲＡＲｔを算出し、ネットワークが非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が受信レートＲＲＣＶｔより低い場合、またはＲＴＣＰパケットのタイムアウトが生じている場合に、受信レートＲＲＣＶの短期ＥＷＭＡとして受信達成レートＲＡＲｔを算出する受信達成レート算出部と、受信達成レートＲＡＲｔに基づいて、送信レートＲＳＮＤｔを設定する送信レート設定部と、を備える通信装置が提供される。
【発明の効果】
【００１７】
以上説明したように本発明によれば、無線環境を含むネットワーク上でのストリーミング伝送において、伝送遅延およびパケットロスを抑制可能な、送信レート制御方法および通信装置を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係る通信システムの構成を示す図である。
【図２】ネットワークの輻輳状態に応じた送信レート制御を示す概念図である。
【図３】送信装置の主要な機能構成を示すブロック図である。
【図４】本発明の実施形態に係る送信レート制御方法を示すフロー図である。
【図５】Ｓｐｉｋｅ法による輻輳状態の判定方法を示す図である。
【図６】制限レートの設定方法を示す図である。
【発明を実施するための形態】
【００１９】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２０】
［１．通信システムの構成］
図１は、本発明の実施形態に係る通信システム１の構成を示す図である。通信システム１は、無線環境を含むパケット交換方式のネットワーク３０を介してデータパケットを送受信する送信装置１０および受信装置２０を含む。ネットワーク３０は、インターネット、イントラネット、エクストラネット、衛星回線等であり、少なくとも一部に無線環境を含む。送信装置１０および受信装置２０は、サーバー、パーソナルコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯電話等の情報処理装置である。
【００２１】
送信装置１０は、映像、音声等のデータを符号化し、パケット化して所定の送信レートで受信装置２０に送信する。受信装置２０は、データを復号化して再生するとともに、フィードバックパケット（ＲＴＣＰパケット）を送信装置１０に所定の周期で送信する。ＲＴＣＰパケットには、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）、受信レート、パケットロス率の情報が含まれる。送信装置１０は、ＲＴＣＰパケットに含まれる情報からネットワーク３０状況を推定し、データの符号化レートを調整し、送信レートをリアルタイムに制御する。
【００２２】
図２は、ネットワーク３０の輻輳状態に応じた送信レート制御を示す概念図である。図２には、ネットワーク帯域、ＲＴＴおよび送信レートの時系列分布が示されている。ネットワーク３０は、ネットワーク帯域の減少に応じてＲＴＴがある程度まで増加した場合に輻輳状態に移行し、ネットワーク帯域の増加に応じてＲＴＴがある程度まで減少した場合に非輻輳状態に移行する。そして、送信レートは、ネットワーク３０が輻輳状態にある場合に、ＲＴＴの減少に応じて増加し、ＲＴＴの増加に応じて減少するように制御される。また、送信レートは、ネットワーク３０が非輻輳状態にある場合に、一定時間に亘って抑制されて受信レート以下に設定され、ＲＴＴの増加に応じて減少するように制御される。
【００２３】
図３は、送信装置１０の主要な機能構成を示すブロック図である。送信装置１０は、通信制御部１１、通信処理部１３および記憶部１５を含む。通信制御部１１は、後述する送信レートの制御方法を実施するために、ハードウェアおよび／またはソフトウェアにより実現される。
【００２４】
通信制御部１１は、ＲＴＣＰパケットに含まれる情報に基づいて、ネットワーク３０の輻輳状態の判定、送信レートの設定等を行う。通信制御部１１は、輻輳状態判定部、受信達成レート算出部、制限レート算出部、送信レート設定部等として機能する。通信処理部１３は、映像、音声等のデータを符号化した上でパケット化し、ネットワーク３０を介して所定の送信レートで受信装置２０に送信するとともに、ＲＴＣＰパケットを所定の周期で受信装置２０から受信する。記憶部１５は、ＲＴＣＰパケットに含まれる情報、制御方法を実施するために用いるパラメータ、および制御方法の結果等を記憶している。
【００２５】
［２．送信レートの制御方法］
図４は、本発明の実施形態に係る送信レートの制御方法を示すフロー図である。送信装置１０は、ＲＴＣＰパケットを受信し（ステップＳ１１）、ＲＴＣＰパケットに含まれる情報を用いてネットワーク３０の輻輳状態を判定する（Ｓ１３）。ネットワーク３０が輻輳状態にある場合に、送信装置１０は、受信達成レートＲＡＲ、制限レートＲＬＲ等のパラメータを算出し（Ｓ１５）、輻輳状態の送信レートＲＳＮＤを設定するとともに（Ｓ１７）、輻輳状態継続期間Δτを設定する（Ｓ１９）。一方、ネットワーク３０が非輻輳状態にある場合に、送信装置１０は、パラメータを算出し（Ｓ２１）、非輻輳状態の送信レートＲＳＮＤを設定する（Ｓ２３）。以下では、各処理の詳細について説明する。
【００２６】
［２−１．ＲＴＣＰパケットの受信］
通信処理部１３は、パケットを受信装置２０に送信するとともに、ＲＴＣＰパケットを受信装置２０から所定の周期で受信する。ＲＴＣＰパケットには、ＲＴＴ、受信レート、パケットロス率の情報が含まれる。通信制御部１１は、ＲＴＣＰパケットに含まれる情報のうち所定の情報を記憶部１５に格納する。ＲＴＣＰパケットの周期は、通信システム１の利用環境に応じて適切に設定される。周期が短いほど、通信制御部１１によるレート制御の精度が向上するが、ネットワーク帯域や処理リソースが消費されてしまう。
【００２７】
［２−２．輻輳状態の判定］
通信制御部１１は、ＲＴＣＰパケットに含まれる情報に基づいて、ＲＴＴの変動およびパケットロスの発生を検出することで、ネットワーク３０の輻輳状態を判定する。
【００２８】
輻輳状態の判定では、ＬＤＡ（Ｌｏｓｓ  Ｄｉｓｃｒｉｍｉｎａｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ）の一種であるＳｐｉｋｅ法、およびＳｈｏｒｔＲＴＴ／ＬｏｎｇＲＴＴ（ＳＲＴＴ／ＬＲＴＴ）法が利用される。
【００２９】
Ｓｐｉｋｅ法は、ＲＴＴの最新値ＲＴＴｔ、現在の通信接続でのＲＴＴの最大値ＲＴＴＭＡＸおよび最小値ＲＴＴＭＩＮに基づいて、ネットワーク３０の輻輳状態を判定する方法である。図５に示すように、Ｓｐｉｋｅ法では、輻輳状態への移行点ＲＴＴＳＴＡＲＴおよび非輻輳状態への移行点ＲＴＴＥＮＤが次式により定義される。
【００３０】
ＲＴＴＳＴＡＲＴ←αＳＴＡＲＴ・（ＲＴＴＭＡＸ−ＲＴＴＭＩＮ）＋ＲＴＴＭＩＮ・・・（式１）
ＲＴＴＥＮＤ    ←αＥＮＤ    ・（ＲＴＴＭＡＸ−ＲＴＴＭＩＮ）＋ＲＴＴＭＩＮ・・・（式２）
ここで、ＲＴＴＳＴＡＲＴ：輻輳状態への移行点
ＲＴＴＥＮＤ：非輻輳状態への移行点
ＲＴＴｔ：ＲＴＴの最新値
ＲＴＴＭＡＸ：現在の通信接続でのＲＴＴの最大値
ＲＴＴＭＩＮ：現在の通信接続でのＲＴＴの最小値
αＳＴＡＲＴ、αＥＮＤ：パラメータ
（αＥＮＤ＜αＳＴＡＲＴ、例えば、αＥＮＤ＝０．３、αＳＴＡＲＴ＝０．５）
【００３１】
Ｓｐｉｋｅ法では、ＲＴＴｔがＲＴＴＳＴＡＲＴ以下の状態からＲＴＴＳＴＡＲＴを超える状態に変化した時点で、ネットワーク３０が輻輳状態に移行したと判定され、ＲＴＴｔがＲＴＴＥＮＤ以上の状態からＲＴＴＥＮＤ未満の状態に変化した時点で、ネットワーク３０が非輻輳状態に移行した（輻輳状態が解除された）と判定される。
【００３２】
ＳＲＴＴ／ＬＲＴＴ法は、ＲＴＴの短期ＥＷＭＡ（指数加重移動平均）であるＳＲＴＴおよび長期ＥＷＭＡであるＬＲＴＴに基づいて、ＲＴＴの変動状況を判定する方法である。
【００３３】
ＳＲＴＴ／ＬＲＴＴ法では、ＲＴＴの短期ＥＷＭＡと長期ＥＷＭＡの比であるＳＲＴＴ／ＬＲＴＴがα（α＞１：例えばα＝１．４）以上の場合に、ＲＴＴが増加傾向にあると判定され、ＳＲＴＴ／ＬＲＴＴがα未満の場合に、ＲＴＴが減少傾向にあると判定される。
【００３４】
通信制御部１１は、現在の通信接続でのＲＴＴを統計処理してＲＴＴの最大値および最小値ＲＴＴＭＡＸ、ＲＴＴＭＩＮを求め、所定のパラメータαＳＴＡＲＴ、αＥＮＤを用いて、輻輳状態および非輻輳状態への移行点ＲＴＴＳＴＡＲＴ、ＲＴＴＥＮＤを算出する。そして、通信制御部１１は、最新のＲＴＣＰパケットに含まれるＲＴＴｔをＲＴＴＳＴＡＲＴ、ＲＴＴＥＮＤと比較することで、ネットワーク３０の輻輳状態を一次的に判定する。
【００３５】
通信制御部１１は、現在の通信接続でのＲＴＴを統計処理して、短期ＥＷＭＡおよび長期ＥＷＭＡであるＳＲＴＴｔおよびＬＲＴＴｔを求め、所定のパラメータαと比較することで、ＲＴＴの変動状況を判定する。また、通信制御部１１は、最新のＲＴＣＰパケットに含まれるパケットロス率に基づいて、パケットロスの発生を判定する。
【００３６】
そして、通信制御部１１は、最新のＲＴＴｔがＲＴＴＳＴＡＲＴ以下の状態からＲＴＴＳＴＡＲＴを超える状態に変化した場合、またはパケットロスが発生した場合に、ネットワーク３０が輻輳状態へ移行したと判定する。この場合に、通信制御部１１は、輻輳状態継続期間Δτを次式により算出し、輻輳状態への移行時点を示す時間情報とともに記憶部１５に格納する。
【００３７】
Δτ←μ・（ＲＴＴＭＡＸ−ＲＴＴＭＩＮ）／（２・（１−γ））・・・（式３）
ここで、Δτ：輻輳状態継続期間
ＲＴＴＭＡＸ：現在の通信接続でのＲＴＴの最大値
ＲＴＴＭＩＮ：現在の通信接続でのＲＴＴの最小値
μ、γ：パラメータ
（μ＜１、０＜γ＜１、例えば、μ＝０．８、γ＝０．９６）
【００３８】
一方、通信制御部１１は、ＲＴＴｔがＲＴＴＥＮＤ以上の状態からＲＴＴＥＮＤ未満の状態に変化し、かつＳＲＴＴｔ／ＬＲＴＴｔ＜αである場合に、ネットワーク３０が非輻輳状態へ移行した（輻輳状態が解除された）と判定する。そして、通信制御部１１は、輻輳状態への移行時点から経過した期間Ｔを、輻輳状態継続期間Δτと比較し、Ｔ＞Δτの場合には非輻輳状態へ移行したと判定し、Ｔ≦Δτの場合には輻輳状態が継続していると判定する。
【００３９】
ＶＴＰでは、Ｓｐｉｋｅ法を用いて、ＲＴＴｔとＲＴＴＳＴＡＲＴの比較結果に応じて、輻輳状態への移行を判定し、ＲＴＴｔとＲＴＴＥＮＤの比較結果に応じて、非輻輳状態への移行を判定している。一方、本実施形態では、ＲＴＴの現在状況とともにパケットロスの発生状況も考慮しているので、ＲＴＴの現在状況から輻輳状態への移行を適切に判定できない場合でも、パケットロスの発生状況から確実に判定することができる。また、ＲＴＴの現在状況とともにＲＴＴの変動状況も考慮しているので、ＲＴＴの現在状況のみから非輻輳状態への移行を適切に判定できない場合でも、ＲＴＴの変動状況から非輻輳状態への移行を確実に判定することができる。
【００４０】
ＶＴＰでは、ネットワーク３０が輻輳状態に移行すると、ＴＣＰと同程度のレート低下が生じるように、次式により設定される輻輳状態継続期間Δτ´に亘って、送信レートを一定量減少させる。
Δτ´←μ・ＲＴＴＭＡＸ／（２・（１−γ））・・・（式３´）
【００４１】
ここで、式３´では、Δτ´がＲＴＴＭＡＸに比例するように算出される。よって、ＲＴＴＭＡＸが大きいと、ＲＴＴの変動が小さい場合でも、Δτ´が大きく算出されてしまうので、非輻輳状態への移行を遅れて判定してしまうという問題がある。このため、本実施形態では、式３に示すように、ΔτがＲＴＴの変動（ＲＴＴＭＡＸ−ＲＴＴＭＩＮ）に比例するように算出される。よって、ＲＴＴＭＡＸが大きくても、ΔτがＲＴＴの変動に応じて算出されるので、非輻輳状態への移行を適切に判定することができる。
【００４２】
なお、本実施形態に係る送信レートの制御方法は、ネットワーク３０が輻輳状態になると、ＶＴＰのように送信レートＲＳＮＤを一定量減少させるものではなく、送信レートＲＳＮＤを受信レートＲＲＣＶ未満に減少させたり、ＲＴＴの増加に応じて減少させたりするものである。このため、ΔτがＶＴＰのΔτ´より小さく設定されても問題ない。
【００４３】
［２−３．各種パラメータの算出］
通信制御部１１は、最新の送信レートＲＳＮＤｔを設定するために、ＲＴＣＰパケットに含まれる情報に基づいて、受信達成レートＲＡＲｔおよび制限レートＲＬＲｔを算出する。
【００４４】
（受信達成レートＲＡＲ）
最新の受信達成レートＲＡＲｔは、ネットワーク状況に応じて、受信レートＲＲＣＶの長期ＥＷＭＡまたは短期ＥＷＭＡとして算出される。ここで、受信達成レートＲＡＲｔは、受信装置２０がパケットを実際に受信したレートであり、送信装置１０がボトルネックに送出することのできたレートを意味している。
【００４５】
ネットワーク３０が輻輳状態にある場合、またはネットワーク３０が非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が受信レートＲＲＣＶｔより高い場合に、式４により受信レートＲＲＣＶの長期ＥＷＭＡとして最新の受信達成レートＲＡＲｔが算出される。一方、ネットワーク３０が非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が受信レートＲＲＣＶｔより低い場合、またはＲＴＣＰパケットのタイムアウトが生じている場合に、式５により受信レートＲＲＣＶの短期ＥＷＭＡとして最新の受信達成レートＲＡＲｔが算出される。
【００４６】
長期ＥＷＭＡとして算出する場合：
ＲＡＲｔ←αＬ・ＲＡＲｔ−１＋（１−αＬ）・ＲＲＣＶｔ・・・（式４）
短期ＥＷＭＡとして算出する場合：
ＲＡＲｔ←αＳ・ＲＡＲｔ−１＋（１−αＳ）・ＲＲＣＶｔ・・・（式５）
ここで、ＲＡＲｔ：最新の受信達成レート
ＲＡＲｔ−１：直近の受信達成レート
ＲＲＣＶｔ：最新の受信レート
αＳ、αＬ：パラメータ（０＜αＳ＜αＬ＜１）
【００４７】
通信制御部１１は、直近の受信達成レートＲＡＲｔ−１、最新の受信レートＲＲＣＶｔ、および所定のパラメータαＳ、αＬを用いて、最新の受信達成レートＲＡＲｔを算出して記憶部１５に格納する。
【００４８】
ネットワーク３０が輻輳状態にある場合には、送信レートＲＳＮＤｔが受信達成レートＲＡＲｔより低く抑制されるが、非輻輳状態に移行した直後は、輻輳状態に移行する前のレートまで送信レートＲＳＮＤｔを素早く増加させることが望ましい。また、送信レートＲＳＮＤｔは、受信達成レートＲＡＲｔの増加に応じて増加する。このため、輻輳状態では受信達成レートＲＡＲｔが送信レートＲＳＮＤｔ（＝受信レートＲＲＣＶｔ）に合わせて減少しないようにすることが望ましいので、最新の受信達成レートＲＡＲｔを長期ＥＷＭＡとして算出する。
【００４９】
また、ネットワーク３０が非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が受信レートＲＲＣＶｔより高い場合には、ＲＴＴが大きくならずパケットロスが発生しない一時的なレート低下が発生していると判断される。このため、一時的なレート低下に応じて受信達成レートＲＡＲｔが大きく変動しないようにすることが望ましいので、最新の受信達成レートＲＡＲｔを長期ＥＷＭＡとして算出する。
【００５０】
ネットワーク３０が非輻輳状態にあり直近の受信達成レートＲＡＲｔ−１が受信レートＲＲＣＶｔより低い場合には、レート制御された送信レートＲＳＮＤｔ−１に受信レートＲＲＣＶｔが追従し、受信レートＲＲＣＶｔが過去の受信レートＲＲＣＶより高くなっている。また、ネットワーク状況が良好であり、過去の受信レートＲＲＣＶに影響されずに送信レートＲＳＮＤｔを増加させることが望ましいので、最新の受信達成レートＲＡＲｔを短期ＥＷＭＡとして算出する。
【００５１】
また、ＲＴＣＰパケットのタイムアウトが生じている場合には、ＲＴＣＰパケットを一定時間内に受信できず、ネットワーク３０が極めて輻輳している状態にあると判断される。よって、送信レートＲＳＮＤｔを素早く減少させるとともに、受信達成レートＲＡＲを抑制するために、最新の受信達成レートＲＡＲｔを短期ＥＷＭＡとして算出する。
【００５２】
ＶＴＰでは、最新の受信達成レートＲＡＲｔを受信レートＲＲＣＶのＥＷＭＡとして一律に算出している。一方、本実施形態では、ネットワーク状況に応じて受信レートＲＲＣＶの長期ＥＷＭＡまたは短期ＥＷＭＡとして算出された最新の受信達成レートＲＡＲｔに基づいて、最新の送信レートＲＳＮＤｔが設定される。これにより、無線環境を含むネットワーク３０上でリアルタイムのストリーミング伝送を行う場合でも、ネットワーク状況に対する送信レートＲＳＮＤｔの追従性を高め、伝送遅延およびパケットロスを抑制することができる。
【００５３】
（制限レートＲＬＲｔ）
制限レートＲＬＲｔは、直近の送信レートＲＳＮＤｔ−１と現在の通信接続での最大送信レートＲＭＡＸの大小関係に応じて２通りに算出される。ここで、制限レートＲＬＲｔは、最新の送信レートＲＳＮＤｔの上限値を規定するために、次式により算出される。
【００５４】
ＲＳＮＤｔ−１＜ＲＭＡＸの場合：
ＲＬＲｔ←ＲＳＮＤｔ−１＋αＬＲ・（ＲＭＡＸ−ＲＳＮＤｔ−１）＋ΔＲＭＩＮ・・・（式６）
ＲＳＮＤｔ−１≧ＲＭＡＸの場合：
ＲＬＲｔ←ＲＳＮＤｔ−１＋ΔＲＭＩＮ・・・（式７）
ここで、ＲＬＲｔ：制限レート
ＲＳＮＤｔ−１：直近の送信レート
ＲＭＡＸ：現在の通信接続での最大送信レート
ΔＲＭＩＮ：最小増加制限レート（定数、ΔＲＭＩＮ≧０）
αＬＲ：パラメータ（０＜αＬＲ＜１）
【００５５】
通信制御部１１は、現在の通信接続での送信レートＲＳＮＤを統計処理して最大送信レートＲＭＡＸを求め、所定のパラメータΔＲＭＩＮを用いて、制限レートＲＬＲｔを算出して記憶部１５に格納する。ここで、パラメータΔＲＭＩＮは、許容可能なレートの増加を意味する。
【００５６】
図６に示すように、制限レートＲＬＲｔにより最新の送信レートＲＳＮＤｔを規定することで、直近の送信レートＲＳＮＤｔ−１が低い場合には、最大送信レートＲＭＡＸまで最新の送信レートＲＳＮＤｔを素早く増加させ、直近の送信レートＲＳＮＤｔ−１が高い場合には、ゆっくりと増加させることができる。
【００５７】
［２−４．送信レートの設定］
通信制御部１１は、先に算出された受信達成レートＲＡＲｔおよび制限レートＲＬＲｔを用いて、ネットワーク３０の輻輳状態に応じて、最新の送信レートＲＳＮＤｔを設定する。最新の送信レートＲＳＮＤｔは、次式で表される。
【００５８】
ネットワーク３０が非輻輳状態にある場合：
ＲＳＮＤｔ←（ＲＲＣＶｔ・ＲＴＴｔ＋１）／（ＲＴＴｔ＋ΔＲＴＴ）・・・（式８）
ＲＳＮＤｔ←β・ＲＳＮＤｔ＋（１−β）・ＲＡＲｔ・・・（式９）
さらに、ＲＳＮＤｔ＞ＲＬＲｔの場合に、
ＲＳＮＤｔ←ＲＬＲｔ・・・（式１０）
ネットワーク３０が輻輳状態にある場合：
ＲＳＮＤｔ←γ・ＲＡＲｔ・・・（式１１）
さらに、ＲＳＮＤｔ＞ＲＲＣＶｔの場合に、
ＲＳＮＤｔ←ＲＲＣＶｔ・・・（式１２）
ＲＳＮＤｔ´←（ＲＲＣＶｔ・ＲＴＴｔ＋１）／（ＲＴＴｔ＋ΔＲＴＴ）・・・（式１３）
さらに、ＲＳＮＤｔ´＜ＲＳＮＤｔの場合に、
ＲＳＮＤｔ←（ＲＳＮＤｔ´＋ＲＳＮＤｔ）／２・・・（式１４）
ここで、ＲＳＮＤｔ：最新の送信レート
ＲＲＣＶｔ：最新の受信レート
ＲＴＴｔ：最新のＲＴＴ
ＲＴＴｔ−１：直近のＲＴＴ
ΔＲＴＴ：ＲＴＴの変動（＝ＲＴＴｔ−ＲＴＴｔ−１）
ＲＡＲｔ：最新の受信達成レート
ＲＬＲｔ：制限レート
ＲＳＮＤｔ´：仮の送信レート
β、γ：パラメータ
（０＜β＜１、０＜γ＜１、例えば、β＝０．７）
【００５９】
通信制御部１１は、ＲＴＴを統計処理してΔＲＴＴを求め、所定のパラメータβ、γを用いて、最新の送信レートＲＳＮＤｔを設定して記憶部１５に格納する。
【００６０】
ネットワーク３０が非輻輳状態にある場合に、通信制御部１１は、最新の送信レートＲＳＮＤｔを式８により設定する。式８によって、ＲＴＴが増加傾向にある場合に送信レートＲＳＮＤｔが減少し、ＲＴＴが減少傾向にある場合に送信レートＲＳＮＤｔが増加する。そして、通信制御部１１は、送信レートＲＳＮＤｔを式９により再設定し、再設定された送信レートＲＳＮＤｔが制限レートＲＬＲｔを超える場合に、式１０により最新の送信レートＲＳＮＤｔを上限値（制限レートＲＬＲｔ）に規定する。
【００６１】
一方、ネットワーク３０が輻輳状態にある場合に、通信制御部１１は、式１１により最新の送信レートＲＳＮＤｔを、輻輳状態に移行する前の受信達成レートＲＡＲから一定量減少させたレートに設定する。そして、通信制御部１１は、設定された送信レートＲＳＮＤｔが最新の受信レートＲＲＣＶｔを超える場合に、式１２により最新の送信レートＲＳＮＤｔを最新の受信レートＲＲＣＶｔに設定する。さらに、通信制御部１１は、式１３により仮の送信レートＲＳＮＤｔ´を算出し、仮の送信レートＲＳＮＤｔ´が式１１または式１２により設定された送信レートＲＳＮＤｔを超える場合に、式１４により最新の送信レートＲＳＮＤｔを再設定する。
【００６２】
式８、１２では、最新の受信レートＲＲＣＶｔを用いて、最新の送信レートＲＳＮＤｔを設定している。一方、ＶＴＰでは、最新の受信レートＲＲＣＶｔの代わりに直近の送信レートＲＳＮＤｔ−１を用いて、最新の送信レートＲＳＮＤｔを設定している。このため、本実施形態では、受信レートＲＲＣＶｔの減少に、送信レートＲＳＮＤｔを素早く追従させることで、パケットロスの発生やＲＴＴの増加を回避することができる。
【００６３】
また、通信制御部１１は、通信処理部１３がＲＴＣＰパケットを受信装置２０から所定の周期内（例えば４周期）に受信できない場合に、送信レートＲＳＮＤｔを指数関数的に減少させる。
【００６４】
［３．まとめ］
以上説明したように本実施形態に係る送信レート制御方法によれば、ネットワーク状況に応じて受信レートＲＲＣＶの長期ＥＷＭＡまたは短期ＥＷＭＡとして算出された最新の受信達成レートＲＡＲに基づいて、最新の送信レートＲＳＮＤが設定される。これにより、無線環境を含むネットワーク３０上でのストリーミング伝送において、ネットワーク状況に対する送信レートＲＳＮＤの追従性を高め、伝送遅延およびパケットロスを抑制することができる。
【００６５】
また、本実施形態に係る送信レート制御方法によれば、トランスポート層より下位の情報を利用せずに、受信装置２０から送信装置１０にエンドツーエンドでフィードバックを行うことで、ハードウェアに対する依存性の少ない送信レート制御を実現することができる。
【００６６】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００６７】
１    通信システム
１０    送信装置
２０    受信装置
３０    ネットワーク
１１    通信制御部
１３    通信処理部
１５    記憶部
【図１】
2011035442.tif 000003
【図２】
2011035442.tif 000004
【図３】
2011035442.tif 000005
【図４】
2011035442.tif 000006
【図５】
2011035442.tif 000007
【図６】
2011035442.tif 000008