(57)【要約】【課題】データ伝送路の状態に応じたデータ伝送レート制御を行う。【解決手段】Ｈｏｌｄ状態において、一定時間Ｔ以上平均相対遅延増加率Ｄ≦閾値Ｈ１かつパケットロス率Ｌ≦閾値Ｈ２であれば、状態はＵＰ状態に遷移され、平均相対遅延増加率Ｄ＞閾値Ｈ１またはパケットロス率Ｌ＞閾値Ｈ２であれば、状態はＤｏｗｎ状態に遷移される。ＵＰ状態において、平均相対遅延増加率Ｄ≦閾値Ｈ１かつパケットロス率Ｌ≦閾値Ｈ２であれば、状態はＵＰ状態で保持され、平均相対遅延増加率Ｄ＞閾値Ｈ１またはパケットロス率Ｌ＞閾値Ｈ２であれば、状態はＤｏｗｎ状態に遷移される。Ｄｏｗｎ状態において、平均相対遅延増加率Ｄ≦閾値Ｈ１かつパケットロス率Ｌ≦閾値Ｈ２であれば、状態はＨｏｌｄ状態に遷移され、平均相対遅延増加率Ｄ＞閾値Ｈ１またはパケットロス率Ｌ＞閾値Ｈ２であれば、状態はＤｏｗｎ状態で保持される。本発明は、データ受信装置に適用できる。【選択図】      図８
2004254258.tif 000002
【特許請求の範囲】
【請求項１】
他の情報処理装置から、ネットワークを介して、データを受信する情報処理装置において、
前記他の情報処理装置から送信された、前記データの伝送状況を含む所定の情報を受信する第１の受信手段と、
前記第１の受信手段により受信された前記所定の情報を基に、前記ネットワークの輻輳を予測する輻輳予測手段と、
前記輻輳予測手段により前記輻輳が予測されるか否かを基に、前記他の情報処理装置のデータ伝送レートを制御する第１の制御信号を生成する制御信号生成手段と、
前記制御信号生成手段により生成された前記第１の制御信号を、前記他の情報処理装置へ送信する第１の送信手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記輻輳予測手段は、前記第１の受信手段により受信された前記所定の情報を基に、前記ネットワークにおけるデータ伝送の遅延を検出する遅延検出手段を備え、
前記制御信号生成手段は、前記遅延検出手段により検出された、前記データ伝送の遅延に基づいて、前記他の情報処理装置のデータ伝送レートを制御する前記第１の制御信号を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記遅延検出手段は、前記所定の情報に記載されている前記他の情報処理装置における前記データの送信処理のためのクロックと、自分自身の前記データ受信処理のためのクロックとが一致する場合、この第１の基準クロックを用いてデータ伝送の遅延を検出し、前記所定の情報に記載されている前記他の情報処理装置における前記クロックと、自分自身における前記クロックとが異なる場合、前記第１の基準クロックとは異なる第２の基準クロックを用いて、前記データ伝送の遅延を検出することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記データは、ＲＦＣ１８８９に準拠するＲＴＰパケットであり、
前記第１の基準クロックは、ＮＴＰであり、
前記第２の基準クロックは、自分自身が内部に有する、前記第１の基準クロックとは異なるクロックであることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１の受信手段により前記所定の情報が受信された時刻を計測する受信時刻計測手段を更に備え、
前記遅延検出手段は、前記所定の情報に記載されている前記他の情報処理装置における前記データの送信処理のためのクロックと、自分自身の前記データ受信処理のためのクロックとが異なり、かつ、前記第２の基準クロックと前記第１の基準クロックとの写像関数を算出することができなかった場合、前記受信時刻計測手段により計測された複数の前記所定の情報の受信時刻を基に、相対的な前記データ伝送の遅延を検出することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記データは、所定の大きさのパケットにより構成され、
前記所定の情報は、前記パケットの受信数およびパケットロス数の情報を含む
ことを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記輻輳予測手段は、前記第１の受信手段により受信された前記所定の情報を基に、前記他の情報処理装置から送信された前記パケットのパケットロス率を検出するパケットロス率検出手段を更に備え、
前記制御信号生成手段は、前記遅延検出手段により検出された前記データ伝送の遅延に加えて、前記パケットロス率検出手段により検出された前記パケットロス率に基づいて、前記他の情報処理装置の前記データ伝送レートを制御する前記第１の制御信号を生成することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記制御信号生成手段は、前記遅延検出手段により、第１の所定量以上の前記データ伝送の遅延の増加が検出されたか、または、前記パケットロス率検出手段により第２の所定量以上の前記パケットロス率が検出された場合、前記他の情報処理装置のデータ伝送レートを下げるように制御する前記第１の制御信号を生成することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記制御信号生成手段は、所定の時間、前記遅延検出手段により第１の所定量以上の前記データ伝送の遅延の増加が検出されず、かつ、前記パケットロス率検出手段により第２の所定量以上の前記パケットロス率が検出されなかった場合、前記他の情報処理装置のデータ伝送レートを上げるように制御する前記第１の制御信号を生成することを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
前記輻輳予測手段は、
前記所定の情報を基に、第１の時間を基準とした前記ネットワークの輻輳を
予測するための第１の条件を検出する第１の輻輳条件検出手段と、
前記所定の情報を基に、第２の時間を基準とした前記ネットワークの輻輳を
予測するための第２の条件を検出する第２の輻輳条件検出手段と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項１１】
前記制御信号生成手段は、前記第１の輻輳条件検出手段および前記第２の輻輳条件検出手段により、前記第１の条件または前記第２の条件のうちの少なくとも一方が検出された場合、前記他の情報処理装置のデータ伝送レートを下げるように制御する前記第１の制御信号を生成することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記制御信号生成手段は、所定の時間、前記第１の輻輳条件検出手段および前記第２の輻輳条件検出手段により、前記第１の条件および前記第２の条件が検出されなかった場合、前記他の情報処理装置のデータ伝送レートを上げるように制御する前記第１の制御信号を生成することを特徴とする請求項１０に記載の情報処理装置。
【請求項１３】
前記他の情報処理装置に、前記データを送信する第２の送信手段と、
前記他の情報処理装置から、前記第２の送信手段による前記データの伝送レートを制御する第２の制御信号を受信する第２の受信手段と、
前記第２の受信手段により受信された前記第２の制御信号に基づいて、前記第２の送信手段により送信される前記データの伝送レートを制御する制御手段とを更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項１４】
前記データは、ＲＦＣ１８８９に準拠するＲＴＰパケットであることを特徴とする請求項１に記載の情報処理装置。
【請求項１５】
他の情報処理装置から、ネットワークを介して、データを受信する情報処理装置の情報処理方法において、
前記他の情報処理装置から送信された、前記データの伝送状況を含む所定の情報の受信を制御する受信制御ステップと、
前記受信制御ステップの処理により受信が制御された前記所定の情報を基に、前記ネットワークの輻輳を予測する輻輳予測ステップと、
前記輻輳予測ステップの処理により前記輻輳が予測されるか否かを基に、前記他の情報処理装置のデータ伝送レートを制御する制御信号を生成する制御信号生成ステップとを含むことを特徴とする情報処理方法。
【請求項１６】
他の情報処理装置から、ネットワークを介して、データを受信する処理をコンピュータに実行させるプログラムであって、
前記他の情報処理装置から送信された、前記データの伝送状況を含む所定の情報の受信を制御する受信制御ステップと、
前記受信制御ステップの処理により受信が制御された前記所定の情報を基に、前記ネットワークの輻輳を予測する輻輳予測ステップと、
前記輻輳予測ステップの処理により前記輻輳が予測されるか否かを基に、前記他の情報処理装置のデータ伝送レートを制御する制御信号を生成する制御信号生成ステップとを含むことを特徴とするプログラム。
【請求項１７】
ネットワークを介して、他の情報処理装置にデータを送信する処理を実行する情報処理装置において、
前記他の情報処理装置に、前記データを送信する送信手段と、
前記他の情報処理装置から、前記送信手段によるデータ伝送レートを制御する制御信号を受信する受信手段と、
前記受信手段により受信された前記制御信号に基づいて、前記送信手段により送信される前記データの前記データ伝送レートを制御する制御手段とを備えることを特徴とする情報処理装置。
【請求項１８】
ネットワークを介して、他の情報処理装置にデータを送信する送信手段を有する情報処理装置の情報処理方法において、
前記他の情報処理装置から、前記送信手段によるデータ伝送レートを制御する制御信号の受信を制御する受信制御ステップと、
前記受信制御ステップの処理により受信が制御された前記制御信号に基づいて、前記送信手段による前記データの送信におけるデータ伝送レートを制御する制御ステップとを含むことを特徴とする情報処理方法。
【請求項１９】
送信手段を用いて、ネットワークを介して、他の情報処理装置にデータを送信する処理をコンピュータに実行させるプログラムであって、前記他の情報処理装置から、前記送信手段によるデータ伝送レートを制御する制御信号の受信を制御する受信制御ステップと、
前記受信制御ステップの処理により受信が制御された前記制御信号に基づいて、前記送信手段による前記データの送信におけるデータ伝送レートを制御する制御ステップとを含むことを特徴とするプログラム。
【請求項２０】
他の情報処理装置から、ネットワークを介して、データを受信する第１の情報処理装置と、
ネットワークを介して、他の情報処理装置にデータを送信する第２の情報処理装置とで構成されるデータ通信システムにおいて、
前記第１の情報処理装置は、
前記第２の情報処理装置から送信された、前記データの伝送状況を含む所定
の情報を受信する第１の受信手段と、
前記第１の受信手段により受信された前記所定の情報を基に、前記ネットワークの輻輳を予測する輻輳予測手段と、
前記輻輳予測手段により前記輻輳が予測されるか否かを基に、前記第２の情報処理装置のデータ伝送レートを制御する制御信号を生成する制御信号生成手
段と、
前記制御信号生成手段により生成された前記制御信号を、前記第２の情報処
理装置へ送信する第１の送信手段とを備え、
前記第２の情報処理装置は、
前記第１の情報処理装置に、前記所定の情報および前記データを送信する第
２の送信手段と、
前記第１の情報処理装置から、前記第２の送信手段によるデータ伝送レート
を制御する前記制御信号を受信する第２の受信手段と、
前記第２の受信手段により受信された前記制御信号に基づいて、前記第２の送信手段により送信される前記データの前記データ伝送レートを制御する制御
手段とを備えることを特徴とするデータ通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および情報処理方法、データ通信システム、並びに、プログラムに関し、特に、ネットワークの状況に応じて、最適なデータ伝送レートでデータの伝送ができる情報処理装置および情報処理方法、データ通信システム、並びに、プログラムに関する。
【０００２】
【従来の技術】
ＲＴＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）／ＲＴＣＰ（ＲＴＰ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を用いたデータの送受信における適応的レート制御方法としては、例えば、データ受信側の装置が、データ送信側の装置に対してパケット損失率やジッタなどを通知するＲＴＣＰのＲＲ（Ｒｅｃｅｉｖｅｒ  Ｒｅｐｏｒｔ）パケットに記載されている情報を基に、送信側の装置でデータの伝送状態を推定し、送信レートを制御するという方法が提案されている（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開平２００２−２０４２７８号公報
【０００４】
この方法によると、ＲＲパケットに含まれるパケット損失率やジッタなどの値を用いて、パケットが損失したときや、ネットワークの輻輳によりジッタが大きくなったときにデータ伝送レートを下げたりすることが可能となる。
【０００５】
また、データ送信側の装置が、パケットの到着遅延からネットワークの輻輳を検出し、検出結果を基に、データ送信レートを制御するという方法が提案されている（例えば、特許文献２参照）。
【０００６】
【特許文献２】
特開平１１−３０８２７１号公報
【０００７】
図１は、従来のデータ通信システムについて説明するための図である。図１においては、送信側端末１が送信するデータが、ネットワーク３を介して、受信側端末２に受信される。
【０００８】
送信側端末１のデータ生成部１１は、受信側端末２に送信するデータを生成して、データ送信部１２に出力する。データ送信部１２は、供給されたデータを適当な大きさに分割し、分割されたデータ毎に、シーケンス番号およびデータを送信する時刻の情報を付加して、ネットワーク３を介して、受信側端末２に送出する。この時、データ送信部１２は、送信レート変更部１３によって指定された送信レートにしたがって、分割するデータの大きさや分割したデータを送り出す間隔を調整することにより、送信レートを調整する。
【０００９】
受信レポート受信部１５は、受信側端末２から送信された受信レポートを受信し、そのレポートの内容を、ネットワークバッファデータ量計算部１４に供給する。ネットワークバッファデータ量計算部１４は、レポートの内容を基に、データの往復時間を計算し、計算された往復時間に基づいて、ネットワークバッファデータ量を求める。送信レート変更部１３は、ネットワークバッファデータ量計算部１４から、ネットワークバッファデータ量の情報を受け、予め定められている目標ネットワークバッファ量に近づくように、送信レートを決定し、データ送信部１２に送信レートを指定する。
【００１０】
一方、受信側端末２のデータ受信部２１は、ネットワーク３を介して、シーケンス番号および送信時刻情報が付加されたデータを受信し、データ処理部２２に供給する。データ処理部２２は、供給されたデータに対して、例えば、復号または表示処理などを実行する。
【００１１】
また、データ受信部２１は、データに付加されていたシーケンス番号および送信時刻情報を基に、データを受け取った時刻、受け取ったデータ量などについての情報を計測し、計測結果を定期的に受信レポート生成部２３に供給する。受信レポート生成部２３は、供給された情報を基に、受信レポートの生成に必要な受信レートを計算し、受信シーケンス番号、データ送信時刻、データ受信時刻および受信レポート送信時刻の情報を付与して、受信レポート送信部２４に出力する。受信レポート送信部２４は、ネットワーク３を介して、供給された受信レポートを、送信側端末１の受信レポート受信部１４に送信する。
【００１２】
図１の送信端末１および受信側端末２によるデータの授受が、ＲＴＰを用いて行われる場合、ＲＴＣＰ受信者報告パケット、すなわち、ＲＲパケットを受信した送信端末１において、ＲＴＣＰのＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）が測定されることにより、データ転送の遅延が測定される。この方法は、ＲＴＣＰの標準の枠組みを使って実現可能であり、送信端末１と受信側端末２との内部時刻がずれていてもＲＴＴを計測できるという利点がある。
【００１３】
図１の送信端末１と受信側端末２とにおいては、予め目標ネットワークバッファ量が設定され、受信レートに含まれる受信ビットレートとＲＴＴを基に、送信端末１でネットワークバッファ量が求められることにより、レート制御が行われている。
【００１４】
また、送信側のレートを上下させながら、最適なレートを探し出すという方法が提案されている（例えば、特許文献３参照）。
【００１５】
【特許文献３】
特開平１１−３４１０６４号公報
【００１６】
この方法も、基本的には特許文献２に示される場合と同じく、ＲＴＣＰのＳＲパケットおよびＲＲパケットを用いて、受信端末からの情報を基に、送信側でパケットの伝送遅延（ＲＴＴを基準とした遅延）を検出することにより、送信レートを制御するものである。
【００１７】
更に、データ受信側で、ネットワークの伝送帯域を推定し、これに基づいて、データ受信側がデータ送信側に対して、伝送制御指示を送信することにより、データ伝送レートを制御することができる技術がある（例えば、特許文献４参照）。
【００１８】
【特許文献４】
特開２０００−１１５２４５号公報
【００１９】
この方法によれば、例えば、テストパケットを送信することなどにより、ネットワークの伝送帯域を求めることができる。
【００２０】
【発明が解決しようとする課題】
しかしながら、一般に、ＲＲパケットに含まれるパケット損失率やジッタなどの値を用いて、ネットワークの輻輳状態を推測することは困難である。
【００２１】
また、予め目標ネットワークバッファ量を設定して、受信レートに含まれる受信ビットレートとＲＴＴを基に、送信側でネットワークバッファ量を求めて、目標ネットワークバッファ量となるようにレート制御を行うようにした場合、ネットワークのトポロジやルータの種類が特定できない状態においては、最適な目標ネットワークバッファデータ量を予め決めるのは困難である。
【００２２】
更に、ＲＴＴを測定するためには、ＲＴＣＰのＳＲ（Ｓｅｎｄｅｒ  Ｒｅｐｏｒｔ）パケットと、ＲＲパケットを利用する必要があるため、受信側から送信側へのデータ伝送経路で輻輳が発生した場合、ＲＴＴは、受信側から送信側へのデータ伝送経路における輻輳を含んだ値として計測されてしまう。また、ＲＴＣＰの送信間隔は実装依存（５秒おき以上であることが推奨されている）であるため、特に、無線回線のようにネットワークの状況が刻々と変化するような状況にいては、定期的にＲＴＴを計測することにより伝送レートを制御することは困難であった。
【００２３】
また、ＳＲパケットおよびＲＲパケットの送受信を実装したとしても、送信側における伝送レート設定方法は、送信側で実装されているアルゴリズムに依存するものであり、受信側から通知されるＲＲパケットの内容に基づいて、輻輳が回避されるとは限らない。
【００２４】
また、データ受信側で、ネットワークの伝送帯域を推定し、これに基づいて、データ受信側が伝送制御指示を行うようにした場合において、ネットワークの伝送帯域、いわゆる、ボトルネックリンクの速度を求めるためには、少なくとも２つのパケットサイズのパケットデータを用いる必要がある。したがって、この方法は、例えば、ＭＰＥＧ２−ＴＳを、ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔ）２２５０に基づいてＲＴＰパケット化して伝送する場合のように、固定長でパケット化されることにより実行されるデータの送受信においては、適用することができない。
【００２５】
更に、データ受信側で推定されるネットワークの伝送帯域は、いわゆるボトルネックリンクの帯域であるため、例えば、クロストラフィックなどにより、実際に利用可能な帯域がボトルネックリンクの帯域より少なくなっている場合においても、ボトルネックリンクの帯域を基に、データ伝送経路が制御されてしまうため、実際のネットワークの状況に即さないデータ伝送レートで、データが送信されてしまう恐れがある。
【００２６】
本発明はこのような状況に鑑みてなされたものであり、ネットワークのトポロジやルータの種類が特定できない場合や、クロストラフィックなどにより、ネットワークにおいて利用可能な帯域が変化する場合であっても、ネットワークの状況に応じて、データ伝送レートを制御することができるようにするものである。
【００２７】
【課題を解決するための手段】
本発明の第１の情報処理装置は、他の情報処理装置から送信された、データの伝送状況を含む所定の情報を受信する第１の受信手段と、第１の受信手段により受信された所定の情報を基に、ネットワークの輻輳を予測する輻輳予測手段と、輻輳予測手段により輻輳が予測されるか否かを基に、他の情報処理装置のデータ伝送レートを制御する第１の制御信号を生成する制御信号生成手段と、制御信号生成手段により生成された第１の制御信号を、他の情報処理装置へ送信する第１の送信手段とを備えることを特徴とする。
【００２８】
輻輳予測手段には、第１の受信手段により受信された所定の情報を基に、ネットワークにおけるデータ伝送の遅延を検出する遅延検出手段を備えさせるようにすることができ、制御信号生成手段には、遅延検出手段により検出された、データ伝送の遅延に基づいて、他の情報処理装置のデータ伝送レートを制御する第１の制御信号を生成させるようにすることができる。
【００２９】
遅延検出手段には、所定の情報に記載されている他の情報処理装置におけるデータの送信処理のためのクロックと、自分自身のデータ受信処理のためのクロックとが一致する場合、この第１の基準クロックを用いてデータ伝送の遅延を検出させるようにすることができ、所定の情報に記載されている他の情報処理装置におけるクロックと、自分自身におけるクロックとが異なる場合、第１の基準クロックとは異なる第２の基準クロックを用いて、データ伝送の遅延を検出させるようにすることができる。
【００３０】
データは、ＲＦＣ１８８９に準拠するＲＴＰパケットであるものとすることができ、第１の基準クロックは、ＮＴＰであるものとすることができ、第２の基準クロックは、自分自身が内部に有する、前記第１の基準クロックとは異なるクロックであるものとすることができる。
【００３１】
第１の受信手段により所定の情報が受信された時刻を計測する受信時刻計測手段を更に備えさせるようにすることができ、遅延検出手段には、所定の情報に記載されている他の情報処理装置におけるデータの送信処理のためのクロックと、自分自身のデータ受信処理のためのクロックとが異なり、かつ、第２の基準クロックと第１の基準クロックとの写像関数を算出することができなかった場合、受信時刻計測手段により計測された複数の所定の情報の受信時刻を基に、相対的なデータ伝送の遅延を検出させるようにすることができる。
【００３２】
データは、所定の大きさのパケットにより構成されるものとすることができ、所定の情報は、パケットの受信数およびパケットロス数の情報を含むものとすることができる。
【００３３】
輻輳予測手段には、第１の受信手段により受信された所定の情報を基に、他の情報処理装置から送信されたパケットのパケットロス率を検出するパケットロス率検出手段を更に備えさせるようにすることができ、制御信号生成手段には、遅延検出手段により検出されたデータ伝送の遅延に加えて、パケットロス率検出手段により検出されたパケットロス率に基づいて、他の情報処理装置のデータ伝送レートを制御する第１の制御信号を生成させるようにすることができる。
【００３４】
制御信号生成手段には、遅延検出手段により第１の所定量以上のデータ伝送の遅延の増加が検出されたか、または、パケットロス率検出手段により第２の所定量以上のパケットロス率が検出された場合、他の情報処理装置のデータ伝送レートを下げるように制御する第１の制御信号を生成させるようにすることができる。
【００３５】
制御信号生成手段には、所定の時間、遅延検出手段により第１の所定量以上のデータ伝送の遅延の増加が検出されず、かつ、パケットロス率検出手段により第２の所定量以上のパケットロス率が検出されなかった場合、他の情報処理装置のデータ伝送レートを上げるように制御する第１の制御信号を生成させるようにすることができる。
【００３６】
輻輳予測手段には、所定の情報を基に、第１の時間を基準としたネットワークの輻輳を予測するための第１の条件を検出する第１の輻輳条件検出手段と、所定の情報を基に、第２の時間を基準としたネットワークの輻輳を予測するための第２の条件を検出する第２の輻輳条件検出手段とを備えさせるようにすることができる。
【００３７】
制御信号生成手段には、第１の輻輳条件検出手段および第２の輻輳条件検出手段により、第１の条件または第２の条件のうちの少なくとも一方が検出された場合、他の情報処理装置のデータ伝送レートを下げるように制御する第１の制御信号を生成させるようにすることができる。
【００３８】
制御信号生成手段には、所定の時間、第１の輻輳条件検出手段および第２の輻輳条件検出手段により、第１の条件および第２の条件が検出されなかった場合、他の情報処理装置のデータ伝送レートを上げるように制御する第１の制御信号を生成させるようにすることができる。
【００３９】
他の情報処理装置に、データを送信する第２の送信手段と、他の情報処理装置から、第２の送信手段によるデータの伝送レートを制御する第２の制御信号を受信する第２の受信手段と、第２の受信手段により受信された第２の制御信号に基づいて、第２の送信手段により送信されるデータの伝送レートを制御する制御手段とを更に備えさせるようにすることができる。
【００４０】
データは、ＲＦＣ１８８９に準拠するＲＴＰパケットであるものとすることができる。
【００４１】
本発明の第１の情報処理方法は、他の情報処理装置から送信された、データの伝送状況を含む所定の情報の受信を制御する受信制御ステップと、受信制御ステップの処理により受信が制御された所定の情報を基に、ネットワークの輻輳を予測する輻輳予測ステップと、輻輳予測ステップの処理により輻輳が予測されるか否かを基に、他の情報処理装置のデータ伝送レートを制御する制御信号を生成する制御信号生成ステップとを含むことを特徴とする。
【００４２】
本発明の第１のプログラムは、他の情報処理装置から送信された、データの伝送状況を含む所定の情報の受信を制御する受信制御ステップと、受信制御ステップの処理により受信が制御された所定の情報を基に、ネットワークの輻輳を予測する輻輳予測ステップと、輻輳予測ステップの処理により輻輳が予測されるか否かを基に、他の情報処理装置のデータ伝送レートを制御する制御信号を生成する制御信号生成ステップとを含むことを特徴とする。
【００４３】
本発明の第１の情報処理装置および情報処理方法、並びにプログラムにおいては、他の情報処理装置から送信された、データの伝送状況を含む所定の情報が受信され、受信された情報を基に、ネットワークの輻輳が予測され、輻輳が予測されるか否かを基に、他の情報処理装置のデータ伝送レートを制御する制御信号が生成される。
【００４４】
本発明の第２の情報処理装置は、他の情報処理装置に、データを送信する送信手段と、他の情報処理装置から、送信手段によるデータ伝送レートを制御する制御信号を受信する受信手段と、受信手段により受信された制御信号に基づいて、送信手段により送信されるデータのデータ伝送レートを制御する制御手段とを備えることを特徴とする。
【００４５】
本発明の第２の情報処理方法は、他の情報処理装置から、送信手段によるデータ伝送レートを制御する制御信号の受信を制御する受信制御ステップと、受信制御ステップの処理により受信が制御された制御信号に基づいて、送信手段によるデータの送信におけるデータ伝送レートを制御する制御ステップとを含むことを特徴とする。
【００４６】
本発明の第２のプログラムは、他の情報処理装置から、送信手段によるデータ伝送レートを制御する制御信号の受信を制御する受信制御ステップと、受信制御ステップの処理により受信が制御された制御信号に基づいて、送信手段によるデータの送信におけるデータ伝送レートを制御する制御ステップとを含むことを特徴とする。
【００４７】
本発明の第２の情報処理装置および情報処理方法、並びにプログラムにおいては、他の情報処理装置から送信された、送信手段によるデータ伝送レートを制御する制御信号が受信され、受信された制御信号に基づいて、データの送信におけるデータ伝送レートが制御される。
【００４８】
本発明のデータ通信システムは、第１の情報処理装置が、第２の情報処理装置から送信された、データの伝送状況を含む所定の情報を受信する第１の受信手段と、第１の受信手段により受信された所定の情報を基に、ネットワークの輻輳を予測する輻輳予測手段と、輻輳予測手段により輻輳が予測されるか否かを基に、第２の情報処理装置のデータ伝送レートを制御する制御信号を生成する制御信号生成手段と、制御信号生成手段により生成された制御信号を、第２の情報処理装置へ送信する第１の送信手段とを備え、第２の情報処理装置が、第１の情報処理装置に、所定の情報およびデータを送信する第２の送信手段と、第１の情報処理装置から、第２の送信手段によるデータ伝送レートを制御する制御信号を受信する第２の受信手段と、第２の受信手段により受信された制御信号に基づいて、第２の送信手段により送信されるデータのデータ伝送レートを制御する制御手段とを備えることを特徴とする。
【００４９】
本発明のデータ通信システムにおいては、第１の情報処理装置で、第２の情報処理装置から送信された、データの伝送状況を含む所定の情報が受信され、受信された所定の情報を基に、ネットワークの輻輳が予測され、輻輳が予測されるか否かを基に、第２の情報処理装置のデータ伝送レートを制御する制御信号が生成され、生成された制御信号が、第２の情報処理装置へ送信され、第２の情報処理装置で、第１の情報処理装置に、所定の情報およびデータが送信され、第１の情報処理装置から送信されたデータ伝送レートを制御する制御信号が受信され、受信された制御信号に基づいてデータ伝送レートが制御される。
【００５０】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【００５１】
図２は、本発明を適用したデータ通信システムにおける、データ送信装置３１およびデータ受信装置３２の構成を示すブロック図である。
【００５２】
データ送信装置３１およびデータ受信装置３２は、リアルタイム・データ転送プロトコルであるＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）にしたがって、データの授受を行う。ＲＴＰは、例えば、映像と音声データを利用して遠隔会議を行うアプリケーションなどで利用されることを想定し、映像や音声データをリアルタイムに適した形で転送することを目的に設計されている。ＲＴＰにおいては、データが時間単位でパケットに分割されて送信される。また、ＲＴＰは、パケットロス対策や伝送時間保証などは行われていないＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）タイプのプロトコルで、通常は、ＲＴＣＰ（ＲＴＰ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）による通信状態レポートとセットで用いられる。
【００５３】
また、ネットワーク３３は、例えば、組織内で運営されているＬＡＮ（Ｌｏｃａｌ  Ａｒｉａ  Ｎｅｔｗｏｒｋ）であってもよいし、いわゆるインターネットのような不特定多数のネットワークが結合した、大規模なネットワークであってもよいし、または、所定の送信装置と受信装置を接続する専用回線であっても良い。
【００５４】
データ送信装置３１のデータ生成部４１は、例えば、音声、画像、映像、テキストデータ、または、これらの混合したデータを生成し、データ送信部４２に供給する。このとき生成されるデータ量は、送信レート制御部４５によって制御される。
【００５５】
データ送信部４２は、データ生成部４１から供給されたデータをＲＴＰパケットとして送信する場合、例えば、５秒間などの所定の時間ごとに、ＲＴＣＰのＳＲ（Ｓｅｎｄｅｒ  Ｒｅｐｏｒｔ）パケットを付加して、ネットワーク３３を介して、データ受信装置３２に送信する。ＳＲパケットとは、データ送信側の送受信統計のためのレポートであり、データ伝送の状況を示す情報が記載されている。
【００５６】
図３にＳＲパケットのフォーマットを示す。
【００５７】
ヘッダは、ＲＴＰのバージョンを識別するための２ビットの情報であるバージョン情報（Ｖ）、このパケットが１以上のパディングオクテットを含んでいるか否かを示す情報である１ビットのパディングビット（Ｐ）、このパケットに含まれるレセプションレポートブロックの数を示す５ビットのレセプションレポートカウント（ＲＣ（ｒｅｃｅｐｔｉｏｎ  ｒｅｐｏｒｔ  ｃｏｕｎｔ））、ＳＲパケットとＲＲパケットを識別するために、ＳＲパケットであることを示す定数２００が記載されている８ビットのパケットタイプ（ＰＴ（ｐａｃｋｅｔ  ｔｙｐｅ））、このＲＴＣＰパケットの長さを示す１６ビットの情報であるパケット長（ｌｅｎｇｔｈ）、および、送信元ＳＳＲＣ識別子（ＳＳＲＣ  ｏｆ  ｓｅｎｄｅｒ）で構成されている。
【００５８】
そして、送信者情報（Ｓｅｎｄｅｒ  Ｉｎｆｏ）は、６４ビットのＮＴＰタイムスタンプ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ  ｔｉｍｅｓｔａｍｐ）、３２ビットのＲＴＰタイムスタンプ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ  ｔｉｍｅｓｔａｍｐ）、３２ビットの送出パケット数情報（ｓｅｎｄｅｒ’ｓ  ｐａｃｋｅｔ  ｃｏｕｎｔ）、および、３２ビットの送出データ量情報（ｓｅｎｄｅｒ’ｓ  ｏｃｔｅｔ  ｃｏｕｎｔ）で構成されている。
【００５９】
レポートブロックは、３２ビットのＳＳＲＣ識別子番号（ＳＳＲＣ＿ｎ  （ｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ））、パケットロス率を示すフラクションロスト（ｆｒａｃｔｉｏｎ  ｌｏｓｔ）、累積パケットロス数（ｃｕｍｕｌａｔｉｖｅ  ｎｕｍｂｅｒ  ｏｆ  ｐａｃｋｅｔｓ  ｌｏｓｔ）、シーケンスナンバーの最大値（ｅｘｔｅｎｄｅｄ  ｈｉｇｈｅｓｔ  ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ  ｒｅｃｅｉｖｅｄ）、ＲＴＰパケットの到着時間間隔の変動を示すインターアライバルジッタ（ｉｎｔｅｒａｒｒｉｖａｌ  ｊｉｔｔｅｒ）、最新のＳＲパケット受信時のタイムスタンプの情報であるＬＳＲ（ｌａｓｔ  ＳＲ）、および、ＬＳＲからの遅延を示すＤＬＳＲ（ｄｅｌａｙ  ｓｉｎｃｅ  ｌａｓｔ  ＳＲ（ＤＬＳＲ））で構成されている。
【００６０】
また、ＳＲパケットには、更に、特別拡張領域（ｐｒｏｆｉｌｅ−ｓｐｅｃｉｆｉｃ  ｅｘｔｅｎｓｉｏｎｓ）が設けられている。
【００６１】
このように、ＳＲパケットには、ＮＴＰタイムスタンプ、および、ＲＴＰタイムスタンプが含まれている。
【００６２】
データ受信部４３は、データ受信装置３２から送信される、ＲＴＣＰにおけるＲＲ（Ｒｅｃｅｉｖｅｒ  Ｒｅｐｏｒｔ）パケットを受信する。ＲＲパケットは、データ送信側からの受信統計のためのレポートである。
【００６３】
図４に、ＲＲパケットのフォーマットを示す。
【００６４】
ＲＲパケットのフォーマットは、パケットタイプ（ＰＴ（ｐａｃｋｅｔ  ｔｙｐｅ））に、ＲＲパケットであることを示す定数２０１が記載され、送信元ＳＳＲＣ識別子（ＳＳＲＣ  ｏｆ  ｓｅｎｄｅｒ）に代わって、受信したＲＴＰパケットの送信元ＳＳＲＣ識別子（ＳＳＲＣ  ｏｆ  ｐａｃｋｅｔ  ｓｅｎｄｅｒ）が記載されている以外は、ＳＲパケットと同一のヘッダ構造を有しており、ＳＲパケットに含まれていた送信者情報を含んでいないが、ＳＲパケットと同様のレポートブロックと、特別拡張領域を有している。
【００６５】
レート制御命令受信部４４は、ネットワーク３３を介して、データ受信装置３２から、レート制御命令を受信し、送信レート制御部４５に供給する。
【００６６】
送信レート制御部４５は、レート制御命令受信部４４から供給されたレート制御命令を基に、送信レート制御信号を生成し、データ生成部４１に供給する。
【００６７】
データ受信装置３２のデータ受信部５１は、ネットワーク３３を介して、データ送信装置３１から、ＳＲパケットおよびＲＴＰパケットを受信し、ＲＴＰパケットの、例えば、映像、音声、テキストなどのデータを、データ処理部５２に供給するとともに、ＲＴＰパケットの受信時刻、タイムスタンプ、パケットサイズ、シーケンス番号など、輻輳の予測に必要な情報を、輻輳予測部５３に供給する。
【００６８】
データ処理部５２は、データ受信部５１から供給されたデータに対する処理を実行する。具体的には、データ処理部５２は、供給されたデータに対して、例えば、復号処理、デスクランブル処理、表示処理、または、音声再生処理などを実行する。
【００６９】
データ送信部５４は、データ送信装置３１から送信されたＲＴＰパケットに対して、図４を用いて説明したＲＲパケットを生成し、ネットワーク３３を介して、データ送信装置３１に送信する。
【００７０】
輻輳予測部５３は、データ受信部５１から供給された情報を基に、データ伝送路の輻輳を予測し、その結果を基に、必要に応じて、データ受信レート（すなわち、データ受信装置３２が受信するデータのデータ伝送レート）を設定して、レート制御命令を生成し、レート制御命令送信部５５に供給する。
【００７１】
レート制御命令送信部５５は、輻輳予測部５３から供給されたレート制御命令を、ＲＴＣＰのＡＰＰ（Ａｐｐｌｉｃａｔｉｏｎ  ｄｅｆｉｎｅｄ  ＲＴＣＰ  ｐａｃｋｅｔ）として、ネットワーク３３を介して、データ送信装置３１に送信する。ＡＰＰとは、アプリケーション拡張用のパケットである。
【００７２】
図５にＡＰＰのフォーマットを示す。
【００７３】
ＡＰＰは、ＲＴＰのバージョンを識別するための２ビットの情報であるバージョン情報（Ｖ）、このパケットが１以上のパディングオクテットを含んでいるか否かを示す情報である１ビットのパディングビット（Ｐ）、このパケットの定義を識別するためのサブタイプ（ｓｕｂｔｙｐｅ）、このパケットがＡＰＰであることを示す定数２０４が記載されている８ビットのパケットタイプ（ＰＴ（ｐａｃｋｅｔ  ｔｙｐｅ））、このＲＴＣＰパケットの長さを示す１６ビットの情報であるパケット長（ｌｅｎｇｔｈ）、ＳＳＲＣ識別子、または、送信関係者（ミキサーによってミックスされた場合の元の送信者ＩＤ）であるＣＳＲＣ（Ｃｏｎｔｒｉｂｕｔｉｎｇ  ｓｏｕｒｃｅ）識別子、ＡＳＣＩＩコードで記載されるＡＰＰに固有に付けられた名称（ｎａｍｅ）、および、アプリケーションに依存する情報（ａｐｐｌｉｃａｔｉｏｎ  ｄｅｐｅｎｄｅｎｔ  ｄａｔａ）で構成される。
【００７４】
図２のデータ送信装置３１およびデータ受信装置３２においては、データの送受信を、複数のブロックにおいて実行するものとして説明したが、データ送信装置３１は、データ送信部４２、データ受信部４３、および、レート制御命令受信部４４が実行する処理を、１つ、または２つの送受信機能により実行することができるようにしても良いし、データ受信装置３２は、データ受信部５１、データ送信部５４、および、レート制御命令送信部５５が実行する処理を、１つ、または２つの送受信機能により実行することができるようにしても良い。
【００７５】
次に、データ送信装置３１およびデータ受信装置３２の動作について説明する。
【００７６】
データ送信装置３１のデータ生成部４１は、図示しない操作入力部から、ユーザの操作入力を受け、例えば、音声、画像、映像、テキストデータ、または、これらの混合したデータを生成し、データ送信部４２に供給する。このとき生成されるデータ量は、送信レート制御部４５によって制御される。
【００７７】
データ送信部４２は、データ生成部４１から供給されたデータを時間単位でパケットに分割し、所定の時間ごとにＳＲパケットを付加して、ネットワーク３３を介して、データ受信装置３２に送信する。
【００７８】
データ受信装置３２のデータ受信部５１は、ネットワーク３３を介して、データ送信装置３１から、ＲＴＰパケットおよびＲＴＣＰ  ＳＲパケットを受信する。データ受信部５１は、データ処理部５２に、例えば、映像、音声、テキストなどのデータを供給するとともに、ＲＴＰパケットの受信時刻、タイムスタンプ、シーケンス番号、ＳＲパケットに含まれている時間情報などを、輻輳予測部５３に供給する。
【００７９】
また、データ受信部５１は、受信したパケットに、例えば、アクセスラインのビット誤りによるフレームの破棄や、ボトルネックリンクにおけるパケットの破棄などのパケットロスが発生した場合、パケットロスに関する情報を、輻輳予測部５３に供給する。
【００８０】
輻輳予測部５３は、データ受信部５１から供給された情報を基に、データの遅延やパケットロス率を求め、必要に応じて、レート制御命令を生成する。
【００８１】
図６に、輻輳予測部５３の機能ブロック図を示す。
【００８２】
データ取得部８１は、データ受信部５１から、ＳＲパケットに含まれている時間情報や、ＲＴＰパケットの受信時刻、タイムスタンプ、パケットサイズ、シーケンス番号などの、データの遅延やパケットロス率を求めるために必要な情報を取得し、データ演算部８２に供給する。
【００８３】
データ演算部８２は、タイマ８３から供給される時間情報を参照し、例えば、５秒間や１０秒間などの所定時間において、データ送信装置３１からデータ受信装置３２へのデータ伝送における片方向遅延、パケットロス数、受信パケット数、および受信データのバイト数の総和を演算し、統計情報を生成する。
【００８４】
データ送信装置３１およびデータ受信装置３２の、ＮＴＰによる時刻が合致している場合、ＲＴＣＰのＳＲパケットに含まれるＲＴＰのタイムスタンプからＮＴＰへのマッピングを行うことにより、絶対遅延時間をＮＴＰの時間精度で求めることが可能である。しかしながら、実際には、ＮＴＰを使えない環境も多い。
【００８５】
次に、ＮＴＰが使えない場合、すなわち、データ送信装置３１およびデータ受信装置３２の、ＮＴＰによる時刻が合致していない場合の遅延の測定方法について説明する。
【００８６】
まず、パケット毎の絶対遅延は、次の式（１）で求めることができる。
【００８７】
ＲＴＰパケットの遅延
＝ＲＴＰパケットの到着時刻［ＮＴＰ］−ＲＴＰパケットの送信時刻［ＮＴＰ］・・・（１）
【００８８】
ここで、括弧［］内は、その時刻が、どの時計を参照しているかを示すものである（以下、同様）。
【００８９】
データ送信装置３１およびデータ受信装置３２のＮＴＰによる時刻が同期しており、ＲＴＣＰのＳＲパケットにＮＴＰ情報が正しく入っている場合、次の式（２）が成立する。
【００９０】
ＲＴＰパケットの遅延
＝ＲＴＰパケットの到着時刻［ＮＴＰ］−ＲＴＰタイムスタンプ・・・（２）
【００９１】
そして、ＳＲパケット内のタイムスタンプとＮＴＰのマッピング情報より、式（３）に示されるように、ＲＴＰパケットの送信時刻とタイムスタンプを関連付けるＮＴＰからＲＴＰタイムスタンプへの写像関数ｆ１を求め、式（２）のＲＴＰタイムスタンプと置き換えた式（４）により、ＲＴＰパケットの遅延を求めることが可能となる。
【００９２】
ＲＴＰタイムスタンプ＝ｆ１［ＮＴＰ］・・・（３）
ＲＴＰパケットの遅延＝ＲＴＰパケットの到着時刻［ＮＴＰ］−ｆ１［ＮＴＰ］・・・（４）
【００９３】
これに対して、例えば、ＳＲパケットのＮＴＰが明らかにずれていたり、ＳＲパケットを受信することができなかったなどの理由により、ＲＴＰのタイムスタンプからＮＴＰへのマッピングができず、式（３）が得られない場合、データ受信装置３２内部の時計で遅延を計測する必要がある。この場合、実際には、あるＲＴＰパケットの到着時刻を基点として、相対的な遅延を測定することにより、ＲＴＰパケットの遅延が求められる。
【００９４】
例えば、第１のＲＴＰパケットのタイムスタンプをＴＳ１、第１のＲＴＰパケットの受信時刻（単位は、ｍｓ）をＴＲ１とする。第１のＲＴＰパケットのタイムスタンプも、第１のＲＴＰパケットの受信時刻も、ＮＴＰとは異なる基準で計測される時刻である。ここで、第１のＲＴＰパケットのタイムスタンプと第１のＲＴＰパケットの受信時刻との時刻の単位をあわせるために、受信時刻にＲＴＰのリファレンスクロックを乗じることにする。ＲＴＰ  Ｐａｙｌｏａｄ  ｆｏｒｍａｔ  ｆｏｒ  ＭＰＥＧ４  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ（ＲＦＣ３０１６）によるデータ通信においては、リファレンスクロックとして、９０ＫＨｚのクロックが用いられている。したがって、受信時刻の単位がｍｓであった場合、タイムスタンプのリファレンスクロックに変換するためには、次の式（５）を用いればよい。
【００９５】
受信時刻［リファレンスクロック］＝ＴＲ１（ｍｓ）×９０・・・（５）
【００９６】
ここで、第１のＲＴＰパケット乃至第ｎのＲＴＰパケットを、ＲＴＰ１乃至ＲＴＰｎとし、それぞれのタイムスタンプをＴＳ１乃至ＴＳｎとした場合、ネットワーク中の輻輳やパケットロスがなかったとすると、次の式（６）は、ほぼ定数となる。
【００９７】
2004254258.tif 000003
【００９８】
式（６）で示されるＴＳｎ−（ＴＲｎ×９０）が、データ受信装置３２の内部に有する時計を用いて、ＲＴＰのリファレンスクロックで計測した場合の、データ送信装置３１とデータ受信装置３２との時間差である。ただし、ジッタ、および、送受信間のクロックずれは、式（６）においては無視されている。
【００９９】
しかしながら、この時間差が、絶対時刻において、どの程度の時間差に相当するのかはわからない。つまり、式（６）の値が０だったとしても、パケットの遅延の大きさを求めることができない。したがって、データ演算部８２は、ある時刻におけるパケットの遅延を含むデータ送信装置３１とデータ受信装置３２との時間差を、初期端末間時間差とし、これを基に、式（７）によって、相対的な遅延を測定する。
【０１００】
2004254258.tif 000004
【０１０１】
ただし、ＴＲはＲＴＰパケットの受信時刻（単位はｍｓ）、ＴＳはＲＴＰのタイムスタンプである。
【０１０２】
ところで、上述したように、式（６）において、ジッタ、および、送受信間のクロックずれは無視され、式（６）から求められる送受信間タイムスタンプの差は一定であると仮定されているが、実際には、式（６）に示される端末間の時間差とパケットの遅延との和は、データ送信装置３１とデータ受信装置３２との基本クロックのずれにより、ゆっくりと単調減少するか、もしくは、単調増加するかのいずれか一方の傾向を示す。例えば、図７に示されるように、受信時刻に対して、遅延がゆっくりと減少していく状況が発生する。
【０１０３】
このような場合、式（７）を用いて算出された初期時間差を、初期の値のまま使い続けると、得られる相対遅延も、単調減少、もしくは単調増加してしまう。そこで、式（７）を用いて算出される初期時間差は、定期的に更新する必要がある。
【０１０４】
また、データ演算部８２は、更に、パケットロス数、受信パケット数、および受信データ量（受信バイト数）の供給を受けるので、タイマ８３を参照し、例えば、５秒や１０秒などの所定の時間における、ＲＴＰパケットの相対遅延の総和、パケットロス数、受信パケット数、および受信データ量（受信バイト数）の総和を求める。
【０１０５】
次に、相対遅延増加率演算部８４は、データ演算部８２から供給された、所定時間内の受信パケット数およびＲＴＰパケットの相対遅延の総和を基に、次の式（８）を用いて、所定の期間（時刻ｔ１から時刻ｔ２の間）のＲＴＰパケットの平均相対遅延を演算する。
【０１０６】
【数１】
2004254258.tif 000005
【０１０７】
更に、相対遅延増加率演算部８４は、式（８）を用いて算出した、ＲＴＰパケットの平均相対遅延と、１つ前の区間の平均相対遅延とを比較し、平均相対遅延増加率Ｄを算出する。
【０１０８】
そして、パケットロス率演算部８５は、データ演算部８２から供給された情報から、パケットロス率Ｌを求める。
【０１０９】
一般的に、ＲＴＰパケットのパケットロスは、アクセスラインのビット誤りによるフレームの破棄、または、ボトルネックリンクにおけるパケットの破棄により発生する。アクセスラインのビット誤りに関しては、誤り訂正や、リンクレイヤーでの再送（特に無線リンクの場合）などにより、ある程度防ぐことが可能ではあるが、実際の無線リンクにおいては、電波の状況により、ある程度のパケットロスが発生してしまう。また、ボトルネックリンクにおけるパケットの破棄が発生した場合、ボトルネックリンクのＱｕｅｕｅがあふれていることによりパケットロスが発生するので、例えば、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）型のＱｕｅｕｅを用いている状況では、あふれた分だけパケットロスが発生することになる。
【０１１０】
つまり、アクセスラインのビット誤りによるパケットロスは、ある程度の確率で発生することが想定されるので、送信側のレートを下ることにより、パケットロス率が低くなるとは限らない。しかしながら、ボトルネックリンクにおけるパケットの破棄が発生した場合は、送信側のレートを下げない限り、パケットロスが発生しつづけることになる。
【０１１１】
ここで、パケットロス率演算部８５は、次の式（９）より、パケットロス率を演算する。
【０１１２】
パケットロス率Ｌ＝パケットロス数／（受信パケット数＋パケットロス数）・・・（９）
【０１１３】
状態遷移制御部８６は、相対遅延増加率演算部８４およびパケットロス率演算部８５から供給された、ＲＴＰパケットの平均相対遅延増加率、および、パケットロス率を基に、受信レートの制御状態を遷移するか否かを判断する。
【０１１４】
状態遷移制御部８６は、式（１０）を用いて、平均相対遅延増加率と所定の閾値Ｈ１とを定期的に比較し、平均相対遅延増加率が閾値Ｈ１より大きい場合、受信レートを下げるように制御状態を遷移する。
【０１１５】
平均相対遅延増加率Ｄ＞閾値Ｈ１  ・・・（１０）
【０１１６】
更に、状態遷移制御部８６は、式（１１）を用いて、所定の短い時間（例えば、数１００ｍｓｅｃ乃至１ｓｅｃの、平均相対遅延増加率を求める場合よりも充分短い時間）内のパケットロス率と、所定の閾値Ｈ２とを定期的に比較し、パケットロス率が閾値Ｈ２より大きい場合、受信レートを下げるように制御状態を遷移する。
【０１１７】
パケットロス率Ｌ＞閾値Ｈ２・・・（１１）
【０１１８】
データ送信装置３１とデータ受信装置３２とのデータ伝送経路の伝送帯域がある程度の大きさを有するときは、ネットワーク中のＱｕｅｕｅの長さが相対的に短くなるため、データ伝送経路の状態が不安定になることにより、パケットロス率が増加しやすくなるので、式（１０）と式（１１）とにおいて、式（１１）が成立しやすい。それに対して、データ送信装置３１とデータ受信装置３２とのデータ伝送経路の伝送帯域がある比較的小さいとき、ネットワーク中のＱｕｅｕｅの長さが相対的に長くなるため、データ伝送経路の状態が不安定になることにより、平均相対遅延増加率Ｄが増加しやすくなるので、式（１０）と式（１１）とにおいて、式（１０）が成立しやすい。
【０１１９】
このように、式（１０）と式（１１）との２つの評価式により、受信レートを下げる必要があるか否かを判断するようにすることにより、データ伝送帯域が大きな場合においても、小さな場合においても、データ伝送路の状態に最適なデータ受信レートの制御が可能となる。
【０１２０】
また、状態遷移制御部８６は、式（１０）および式（１１）による比較結果を基に、データ伝送状態が安定している場合、受信レートを一定に保ったり、受信レートを上げるように状態を遷移する場合がある。
【０１２１】
状態遷移制御部８６による状態遷移図を図８に示す。
【０１２２】
状態には、データ受信レートを上げるように制御するＵＰ状態、データ受信レートを下げるように制御するＤｏｗｎ状態、および、データ受信レートを変更しないように制御するＨｏｌｄの３状態がある。
【０１２３】
制御のはじめにおいて、状態はＨｏｌｄ状態である。状態遷移制御部８６は、Ｈｏｌｄ状態を一定時間Ｔだけ保っている間の、式（１０）および式（１１）による比較結果を基に、平均相対遅延増加率Ｄ≦閾値Ｈ１かつパケットロス率Ｌ≦閾値Ｈ２である場合、状態をＵＰ状態に遷移し、平均相対遅延増加率Ｄ＞閾値Ｈ１、または、パケットロス率Ｌ＞閾値Ｈ２である場合、状態をＤｏｗｎ状態に遷移する。
【０１２４】
ＵＰ状態において、状態遷移制御部８６は、式（１０）および式（１１）による比較結果を基に、平均相対遅延増加率Ｄ≦閾値Ｈ１かつパケットロス率Ｌ≦閾値Ｈ２である場合、状態をＵＰ状態のまま保持し、平均相対遅延増加率Ｄ＞閾値Ｈ１、または、パケットロス率Ｌ＞閾値Ｈ２である場合、状態をＤｏｗｎ状態に遷移する。
【０１２５】
また、Ｄｏｗｎ状態において、状態遷移制御部８６は、式（１０）および式（１１）による比較結果を基に、平均相対遅延増加率Ｄ≦閾値Ｈ１かつパケットロス率Ｌ≦閾値Ｈ２である場合、状態をＨｏｌｄ状態に遷移し、平均相対遅延増加率Ｄ＞閾値Ｈ１、または、パケットロス率Ｌ＞閾値Ｈ２である場合、状態をＤｏｗｎ状態のまま保持する。
【０１２６】
状態遷移制御部８６は、現在の状態を示す状態遷信号を、受信レート設定部８７に出力する。
【０１２７】
受信レート設定部８７は、状態遷移制御部から供給された状態遷移信号に基づいて、受信レートを設定し、レート制御命令を生成する。
【０１２８】
状態がＤｏｗｎ状態である場合、受信レート設定部８７は、次の式（１２）により、再設定レートＲを算出する。
【０１２９】
再設定レートＲ＝受信レート×Ｃ１・・・（１２）
【０１３０】
ここで、式（１２）のＣ１は、予め定められている１以下の定数か、もしくは、別途、平均相対遅延増加率の逆数を演算することなどにより求められた１以下の値である。
【０１３１】
そして、状態がＵＰ状態である場合、受信レート設定部８７は、次の式（１３）により、再設定レートＲを算出する。
【０１３２】
再設定レートＲ＝受信レート×Ｃ２・・・（１３）
【０１３３】
ただし、Ｃ２は、予め定められている１以上の定数か、パケットロス率Ｌの逆数を求めることなどより算出される１以上の値である。
【０１３４】
なお、受信レートの上限に関しては、予め、ＨＴＴＰやパケットペアなどを用いてボトルネックリンクのリンクスピード（パケットロスや、遅延の増加が発生しないネットワーク状況におけるデータ伝送スピード）を測定しておき、これを上限としてもよいし、上限を設けないようにしてもよい。
【０１３５】
このようにして、図８の状態遷移図に示される状態に基づいて、データ受信レートが制御されることにより、データ受信レートは、そのときのデータ伝送路の条件により、最適に制御される。図９は、図８の状態遷移図に示される状態とデータ受信レートの関係を示す図である。
【０１３６】
データ伝送路の状態は、その時刻によって変動する場合がある。本発明を適応したデータ受信装置３２によるデータ受信レート制御によると、データ受信レートは一定の値に収束するように制御されるのではなく、データ伝送路の状況が良好で、遅延やパケットロスが発生しない状態においては、状態がＵＰ状態となり、データ転送レートは増加するように制御される。
【０１３７】
このようにして、輻輳予測部５３は、必要に応じて、レート制御命令を生成する。輻輳予測部５３は、生成したレート制御命令を、レート制御命令送信部５５に出力する。
【０１３８】
レート制御命令送信部５５は、レート制御命令を、ＲＴＣＰのＡＰＰとして、データ送信装置３１に送信する。
【０１３９】
データ送信装置３１のレート制御命令受信部４４は、レート制御命令を受信し、送信レート制御部４５に供給する。
【０１４０】
送信レート制御部４５は、レート制御命令受信部４４から供給されたレート制御命令を基に、送信レート制御信号を生成し、データ生成部４１に供給する。
【０１４１】
データ生成部４１は、送信レート制御部４５の制御に基づいて、データの生成量を必要に応じて変更する。したがって、データ送信部４２により送信されるデータのデータレートが制御される。
【０１４２】
このようにして、データ送信装置３１は、ネットワークの状態に応じた、最適な送信レートで、パケットデータを送信することができる。
【０１４３】
次に、図１０のフローチャートを参照して、データ受信装置３２で実行される統計情報生成処理について説明する。
【０１４４】
ステップＳ１１において、データ受信部５１は、ネットワーク３３を介して、データ送信装置３１から送信されたパケットが受信されたか否かを判断する。ステップＳ１１において、パケットが受信されていないと判断された場合、パケットが受信されたと判断されるまで、ステップＳ１１の処理が繰り返される。
【０１４５】
ステップＳ１１において、パケットが受信されたと判断された場合、データ受信部５１は、受信したＲＴＰパケットの受信時刻、タイムスタンプ、パケットサイズ、シーケンス番号、および、受信したＲＴＣＰのＳＲパケットのＮＴＰ情報など、データの遅延やパケットロス率を求めるために必要な情報を輻輳予測部５３に供給し、ステップＳ１２において、輻輳予測部５３のデータ演算部８２は、受信したＲＴＰパケットの受信時刻を内部のメモリに記録する。
【０１４６】
輻輳予測部５３のデータ演算部８２は、ステップＳ１３において、上述したように、データ送信装置３１からデータ受信装置３２へのデータ伝送における片方向遅延時間、パケットロス数、受信パケット数、および、受信バイト数を計算し、ステップＳ１４において、片方向遅延時間、パケットロス数、受信パケット数、および、受信バイト数のそれぞれの総和を更新する。ステップＳ１４の処理の終了後、処理は、ステップＳ１１に戻り、それ以降の処理が繰り返される。
【０１４７】
このような処理により、輻輳予測部５３のデータ演算部８２において、統計情報が生成される。
【０１４８】
次に、図１１のフローチャートを参照して、図１０を用いて説明した統計情報生成処理において生成された統計情報を基に実行されるレート制御処理について説明する。
【０１４９】
ステップＳ３１において、状態遷移制御部８６は、制御の状態を、Ｈｏｌｄ状態にセットする。
【０１５０】
ステップＳ３２において、パケットロス率演算部８５は、データ演算部８２から、統計情報のうち、パケットロス数および受信パケット数を取得し、式（９）を用いて、パケットロス率Ｌを算出する。
【０１５１】
ステップＳ３３において、相対遅延増加率演算部８４は、データ演算部８２から、統計情報のうち、ＲＴＰパケットの相対遅延の所定時間内の総和を取得し、式（８）を用いてＲＴＰパケットの平均相対遅延を算出し、ＲＴＰパケットの平均相対遅延と、１つ前の区間の平均相対遅延とを比較して、平均相対遅延増加率Ｄを算出する。
【０１５２】
ステップＳ３４において、状態遷移制御部８６は、同一状態で一定時間が経過したか否かを判断する。ステップＳ３４において、同一状態で一定時間が経過していないと判断された場合、処理は、ステップＳ３２に戻り、それ以降の処理が繰り返される。
【０１５３】
ステップＳ３４において、同一状態で一定時間が経過したと判断された場合、ステップＳ３５において、状態遷移制御部８６は、ステップＳ３２において算出されたパケットロス率ＬおよびステップＳ３３において算出された平均相対遅延増加率Ｄを基に、図８を用いて説明したように、必要に応じて、制御状態を遷移し、受信レート設定部８７に、状態遷移信号を供給する。
【０１５４】
ステップＳ３６において、受信レート設定部８７は、状態遷移制御部８６から供給される状態遷移信号に基づいて、受信ビットレートを変更するか否かを判断する。状態遷移信号がＨｏｌｄ状態を示し、ステップＳ３６において、受信ビットレートを変更しないと判断された場合、処理は、ステップＳ３２に戻り、それ以降の処理が繰り返される。
【０１５５】
状態遷移信号がＵＰ状態、または、Ｄｏｗｎ状態を示し、ステップＳ３６において、受信ビットレートを変更すると判断された場合、ステップＳ３７において、受信レート設定部８７は、上述した式（１２）または式（１３）を用いて、ビットレートを演算し、レート制御命令を生成して、レート制御命令送信部５５に供給する。レート制御命令送信部５５は、ネットワーク３３を介して、レート制御命令をデータ送信装置３１に送信する。
【０１５６】
ステップＳ３７の処理の終了後、処理は、ステップＳ３２に戻り、それ以降の処理が繰り返される。
【０１５７】
このような処理により、データ受信装置３２において、データ伝送路（ネットワーク３３）の状態に応じたレート制御命令が生成されて、データ送信装置３１に送信される。
【０１５８】
次に、図１２のフローチャートを参照して、データ送信装置３１が実行する送信レート変更処理について説明する。
【０１５９】
ステップＳ５１において、データ送信装置３１のレート制御命令受信部４４は、レート制御命令を受信したか否かを判断する。ステップＳ５１において、レート制御命令を受信していないと判断された場合、レート制御命令を受信したと判断されるまで、ステップＳ５１の処理が繰り返される。
【０１６０】
ステップＳ５１において、レート制御命令を受信したと判断された場合、レート制御命令受信部４４は、受信したレート制御命令を、送信レート制御部４５に供給するので、ステップＳ５２において、送信レート制御部４５は、レート制御命令に基づいて、送信レートを制御するために、データ生成部４１が生成するデータのデータ量を制御する。生成されるデータのデータ量が制御されることにより、最終的には、送信レートが制御される。
【０１６１】
ステップＳ５２の処理の終了後、処理は、ステップＳ５１に戻り、それ以降の処理が繰り返される。
【０１６２】
このような処理により、データ送信装置３１は、受信したレート制御命令に基づいた送信レートで、データ受信装置３２にデータを送信する。
【０１６３】
以上においては、パケットデータを送信するデータ送信装置３１と、パケットデータを受信するデータ受信装置３２における場合について説明したが、パケットデータの送受信が可能なデータ送受信装置間で、パケットデータを送受信する場合においても、本発明は適用可能である。
【０１６４】
図１３は、本発明を適用したデータ通信システムの他の例における、パケットデータの送受信が可能なデータ送受信装置９１−１およびデータ送受信装置９１−２の構成を示すブロック図である。
【０１６５】
なお、図２における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０１６６】
すなわち、送受信が可能なデータ送受信装置９１−１およびデータ送受信装置９１−２には、図２を用いて説明したデータ送信装置３１と同様の、データ生成部４１、送信レート制御部４５、および、レート制御命令受信部４４が備えられ、データ受信装置３２と同様の、データ処理部５２、輻輳予測部５３、および、レート制御命令送信部５５が設けられている。
【０１６７】
そして、データ送受信装置９１−１およびデータ送受信装置９１−２には、更に、データ生成部４１から供給されたデータをＲＴＰパケットに分割するとともに、所定の時間間隔でＳＲパケットを付加して、送信レート制御部４５により制御される送信レートで送信したり、パケットデータを受信した場合（すなわち、自分自身が受信側の装置となった場合）、ＲＲパケットを生成して、ネットワーク３３を介して送信するデータ送信部１０１、および、パケットデータの送信先から送信される、ＲＣＴＰにおけるＲＲパケットを受信したり、ネットワーク３３を介して、他の装置から、ＲＴＰパケットおよびＳＲパケットを受信し、ＳＲパケットとＲＴＰパケットに含まれているデータとを分離して、例えば、映像、音声、テキストなどのデータを、データ処理部５２に供給し、ＲＴＰパケットに含まれている情報のうち、輻輳の予測に必要な情報を、輻輳予測部５３に供給するデータ受信部１０２が設けられている。
【０１６８】
なお、図１３を用いて説明したデータ送受信装置９１−１およびデータ送受信装置９１−２と、図２を用いて説明したデータ送信装置３１またはデータ受信装置３２とのデータ授受においても、本発明が適用可能であることは言うまでもない。
【０１６９】
このようにして、データ受信側の装置が、データ送信側の装置に対して、ＲＴＣＰ  ＡＰＰを用いて、レート制御命令を送信するようにしたことにより、ＲＴＣＰ  ＲＲパケットを用いたり、ＲＲパケットを拡張するよりも、簡単な構成で、レート制御を実現することが可能であり、更に、データ受信側の装置における輻輳の予測が高度化した場合においても、データ送信側の構成を変更する必要がない。
【０１７０】
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１７１】
この記録媒体は、図１４に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク１５１（フレキシブルディスクを含む）、光ディスク１５２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）を含む）、光磁気ディスク１５３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）（商標）を含む）、もしくは半導体メモリ１５４などよりなるパッケージメディアなどにより構成される。
【０１７２】
図１４は、上記処理を実行するパーソナルコンピュータ１３１の構成例を表している。パーソナルコンピュータ１３１のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１４１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１４２に記憶されているプログラム、またはＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）１４８から、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１４３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ１４３にはまた、ＣＰＵ１４１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１７３】
ＣＰＵ１４１、ＲＯＭ１４２、およびＲＡＭ１４３は、内部バス１４４を介して相互に接続されている。この内部バス１４４にはまた、入出力インタフェース１４５も接続されている。
【０１７４】
入出力インタフェース１４５には、キーボード、マウスなどよりなる入力部１４６、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、およびＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などよりなるディスプレイ、並びにスピーカなどよりなる出力部１４７、ハードディスクにより構成されるＨＤＤ１４８、モデム、ターミナルアダプタなどより構成されるネットワークインターフェース１５０が接続されている。ネットワークインターフェース１５０は、例えば、インターネットなどのネットワーク３３を介しての通信処理を行う。
【０１７５】
入出力インタフェース１４５にはまた、必要に応じてドライブ１４９が接続され、磁気ディスク１５１、光ディスク１５２、光磁気ディスク１５３、または、半導体メモリ１５４などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じてＨＤＤ１４８にインストールされる。
【０１７６】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１７７】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１７８】
【発明の効果】
このように、本発明によれば、データを受信することができる。特に、ネットワークの状況に応じて、データ伝送レートを制御する信号を生成し、送信側の装置に送信することができる。
【０１７９】
また、他の本発明によれば、データを送信することができる他、データ受信側の装置から受信したデータ伝送レートを制御する信号に基づいて、データ伝送レートを制御することができる。
【０１８０】
更に、他の本発明によれば、２つの装置において、データを送受信することができる他、データ受信側の装置が、ネットワークの状況に応じて、データ伝送レートを制御する信号を生成し、送信側の装置に送信し、データ送信側の装置は、データ伝送レートを制御する信号に基づいて、データ伝送レートを制御することができる。
【図面の簡単な説明】
【図１】従来のデータ通信システムについて説明するための図である。
【図２】本発明を適用したデータ通信システムのデータ送信装置およびデータ受信装置の構成を示すブロック図である。
【図３】ＳＲパケットについて説明する図である。
【図４】ＲＲパケットについて説明する図である。
【図５】ＡＰＰについて説明する図である。
【図６】図２の輻輳予測部の構成を示すブロック図である。
【図７】受信時刻による、遅延の単純減少について説明する図である。
【図８】状態遷移について説明する図である。
【図９】状態遷移とデータ送信レートについて説明する図である。
【図１０】統計情報生成処理について説明するフローチャートである。
【図１１】レート制御処理について説明するフローチャートである。
【図１２】送信レート変更処理について説明するフローチャートである。
【図１３】本発明を適用した、他のデータ通信システム例におけるデータ送受信装置の構成を示すブロック図である。
【図１４】パーソナルコンピュータの構成を示すブロック図である。
【符号の説明】
３１  データ送信装置，  ３２  データ受信装置，  ３３  ネットワーク，  ４１  データ生成部，  ４２  データ送信部，  ４３  データ受信部，  ４４  レート制御命令受信部，  ４５  送信レート制御部，  ５１  データ受信部，  ５２  データ処理部，  ５３  輻輳予測部，  ５４  データ送信部，  ５５  レート制御命令送信部，  ８１  データ取得部，  ８２  データ演算部，  ８３  タイマ，  ８４  相対遅延増加率演算部，  ８５  パケットロス率演算部，  ８６  状態遷移制御部，  ８７  受信レート設定部，  ９１  データ送受信装置，１０１  データ送信部，  １０２  データ受信部
【図１】
2004254258.tif 000006
【図２】
2004254258.tif 000007
【図３】
2004254258.tif 000008
【図４】
2004254258.tif 000009
【図５】
2004254258.tif 000010
【図６】
2004254258.tif 000011
【図７】
2004254258.tif 000012
【図８】
2004254258.tif 000013
【図９】
2004254258.tif 000014
【図１０】
2004254258.tif 000015
【図１１】
2004254258.tif 000016
【図１２】
2004254258.tif 000017
【図１３】
2004254258.tif 000018
【図１４】
2004254258.tif 000019