(57)【要約】【課題】高信頼マルチキャストデータ配信システムにおいて，受信が良好な端末のデータ受信完了時間をできるだけ短くする。【解決手段】送信端末１０は，受信端末のいずれかからパケットロスが生じたことを示す応答パケットを受信したときに，そのパケットロス情報を記憶しておき，送信部１５により，他の送信すべきデータの送信を継続し，他の送信すべきデータの送信が終了した後に，記憶しておいたパケットロス情報に基づいてロスしたパケットを受信端末に再送する。パケットロスが生じた受信端末は，ロスしたパケットを全受信データの最後に受け取ることになるが，受信が良好な受信端末は，時間的にロスすることなく，通常の場合と同様にデータを受け取ることができる。【選択図】図１
2009094863.tif 000002
【特許請求の範囲】
【請求項１】
データを送信する送信装置と，前記送信装置から送られたデータを受信する複数の受信装置とからなり，前記送信装置は，送信すべきデータを複数のブロックに分割し，前記受信装置は，ブロック内に発生した複数のパケットロス情報を１つの応答パケットにまとめて前記送信装置に返信する高信頼マルチキャストデータ配信システムにおいて，
前記送信装置は，
前記受信装置のいずれかからパケットロスが生じたことを示す応答パケットを受信したときに，そのパケットロス情報を記憶し，他の送信すべきデータの送信を継続する手段と，
前記他の送信すべきデータの送信が終了した後に，前記記憶したパケットロス情報に基づきロスしたパケットを再送する手段を備える
ことを特徴とする高信頼マルチキャストデータ配信システム。
【請求項２】
請求項１記載の高信頼マルチキャストデータ配信システムにおいて，
前記送信装置は，
前記受信装置からロス情報を含んだ応答パケットが返答されたとき，ロスを経験した受信装置の数が所定の数以上かどうかを判定するロス情報計算手段と，
ロスを経験した受信装置の数が所定の数以上の場合に，データ送信速度を低下させる制御を行うレート制御手段とを備える
ことを特徴とする高信頼マルチキャストデータ配信システム。
【請求項３】
請求項１の高信頼マルチキャストデータ配信システムにおいて，
前記送信装置は，
前記受信装置からロス情報を含んだ応答パケットが返答されたとき，既に送信したデータ量を送るべき全データ量で割った値が所定の値以下かどうかを判定するロス情報計算手段と，
既に送信したデータ量を送るべき全データ量で割った値が所定の値以下の場合に，データ送信速度を低下させる制御を行うレート制御手段とを備える
ことを特徴とする高信頼マルチキャストデータ配信システム。
【請求項４】
データを送信する送信装置と，前記送信装置から送られたデータを受信する複数の受信装置とからなり，前記送信装置は，送信すべきデータを複数のブロックに分割し，前記受信装置は，ブロック内に発生した複数のパケットロス情報を１つの応答パケットにまとめて前記送信装置に返信するシステムにおける高信頼マルチキャストデータ配信方法において，
前記送信装置は，
前記受信装置のいずれかからパケットロスが生じたことを示す応答パケットを受信したときに，そのパケットロス情報を記憶し，他の送信すべきデータの送信を継続し，
前記他の送信すべきデータの送信が終了した後に，前記記憶したパケットロス情報に基づきロスしたパケットを再送する
ことを特徴とする高信頼マルチキャストデータ配信方法。
【請求項５】
請求項４記載の高信頼マルチキャストデータ配信方法において，
前記送信装置は，
前記受信装置からロス情報を含んだ応答パケットが返答されたとき，ロスを経験した受信装置の数が所定の数以上かどうかを判定し，
ロスを経験した受信装置の数が所定の数以上の場合に，データ送信速度を低下させる制御を行う
ことを特徴とする高信頼マルチキャストデータ配信方法。
【請求項６】
請求項４の高信頼マルチキャストデータ配信方法において，
前記送信装置は，
前記受信装置からロス情報を含んだ応答パケットが返答されたとき，既に送信したデータ量を送るべき全データ量で割った値が所定の値以下かどうかを判定し，
既に送信したデータ量を送るべき全データ量で割った値が所定の値以下の場合に，データ送信速度を低下させる制御を行う
ことを特徴とする高信頼マルチキャストデータ配信方法。
【請求項７】
請求項４，請求項５または請求項６記載の高信頼マルチキャストデータ配信方法を，コンピュータに実行させるための高信頼マルチキャストデータ配信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，送信端末から複数の受信端末にマルチキャストでデータパケットを高信頼に配信するシステムにおいて，送信端末がどのようにしてロスしたパケットを再送するかに関する技術，および送信端末がどのように送信速度を制御するかに関する技術に係わり，特に，受信が良好な端末のデータ受信完了時間をできるだけ短くするための技術に関するものである。
【背景技術】
【０００２】
一つの送信端末から複数の受信端末に対して同じデータを配信する方法として，高信頼マルチキャスト（reliable multicast）通信方式を用いたデータ配信システムがある。マルチキャスト通信方式においては，送信端末から送出されたデータパケットがネットワーク上でコピーされることにより，複数の受信先に対してデータを同時に配信することが可能となる。
【０００３】
高信頼データ配信システムにおいては，データを誤りなく配信することは必須である。そのため，受信端末は自身が正しくパケットを受け取ったか，あるいはそうでないかを送信端末に伝え，送信端末は正しく受信できなかったパケットを再送する必要がある。
【０００４】
受信端末が自身の状態を送信端末に通知する方法として，図７に示すように，受信端末が，パケットを正しく受信する毎にＡＣＫパケットを送信端末に返答し，送信端末は，パケットを送信してからある一定時間内にそのパケットに対するＡＣＫパケットを受信しなければ，そのパケットはロスしたと判断して，そのパケットを再送する方式がある（非特許文献１参照）。
【０００５】
しかしながら，この方式は受信端末の数が多い場合には，ＡＣＫパケットの数が膨大となるため，送信端末とネットワークに対して大きな負荷を与えるという問題がある。またある受信端末でロスが発生すると，他の受信端末は，ロスを経験した受信端末にパケットを再送している間，次のパケットを受信することができないという問題もある。
【０００６】
この問題を解決する方法として，図８に示すように，送信すべきデータを複数のブロックに分割し，ブロック内に発生した複数のパケットロス情報を１つのパケットにまとめて返答し，送信端末は返答を受け取り，ロスしたパケットがあるならば，直ぐにそれらを再送する方式が提案されている（非特許文献１参照）。
【０００７】
この方式は応答パケットの数を少なく保つことはできるが，ある受信端末でロスが発生すると，他の受信端末は，ロスを経験した受信端末にパケットを再送している間，次のパケットを受信することができないという問題は残る。つまり，従来の高信頼マルチキャスト配信システムでは，一つでも受信状態の悪い端末が存在すると，他の受信が良好な端末のデータ受信完了時間までもそれにつられて遅くなるという問題がある。
【０００８】
また，従来の高信頼マルチキャスト配信システムにおいて，送信端末からの送信速度は，常に一定の速度を保つか，もしくはパケットロスが発生したならば速度を下げるという制御を行っていた。常に一定の速度で送信する方法は，何らかの原因で負荷が高くなり，処理速度が低下した受信端末では，大量のパケットの取りこぼしが発生するという問題がある。そこで，パケットロスが発生したならば速度を下げる方式が提案されているが，一つでも処理速度が低下した受信端末が存在すると，他の受信が良好な端末のデータ受信完了時間までもそれにつられて遅くなるという問題がある。
【非特許文献１】B. N. Levine et al. ，“A Comparison of Reliable Multicast Protocols”，ACM Multimedia Systems Journal，vol.6 ，no.5，August 1998
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は，送信すべきデータを複数のブロックに分割し，ブロック内に発生した複数のパケットロス情報を１つの応答パケットにまとめて返答することで応答パケットの数を少なく保つことができる高信頼マルチキャストデータ配信システムにおいて，受信が良好な端末のデータ受信完了時間をできるだけ短くすることを主要な目的としている。
【００１０】
詳しくは，本発明は，ロスしたパケットをすぐに再送するのではなく，全てのデータパケットの送信が終了してからロスしたパケットを再送することによって，受信が良好な端末のデータ受信完了時間をできるだけ短くすることを目的としている。
【００１１】
また，ロス情報を含んだ応答パケットが返答されたとき，ロスを経験した受信端末の数が一定数を超えた場合にデータ送信速度を低下させる制御を行うことにより，受信が良好な端末のデータ受信完了時間をできるだけ短くすることを目的としている。
【００１２】
また，既に送信したデータ量を送るべき全データ量で割った値がある一定数を超えた場合，レートを減少させないようにすること，すなわち，既にデータの大部分を転送し終わっている場合には，レートを減少させないことにより，受信が良好な端末のデータ受信完了時間をできるだけ短くすることを目的としている。
【課題を解決するための手段】
【００１３】
上述した課題を解決するための本発明の第１の特徴は，受信端末からロス情報を含んだ応答パケットが返答されたとき，送信端末はロスの発生位置を記録するだけで直ちにパケットの再送を行わず，全データの配信が終了した時点でロスしたパケットのみをその位置情報とともに再送することである。
【００１４】
また，本発明の第２の特徴は，ロス情報が含まれる応答パケットが返答された場合，ロスを経験した受信端末の数が一定数を超えたときに，データ送信速度を低下させる制御を行うことである。
【００１５】
また，本発明の第３の特徴は，ロス情報が含まれる応答パケットが返答された場合，既に送信したデータ量を送るべき全データ量で割った値がある値以下のときに，データ送信速度を低下させる制御を行うことである。
【００１６】
本発明と従来の技術との差異は，以下の通りである。
【００１７】
・本発明では，パケットロスを検出したとき，ロスの発生位置を記録するだけで直ちにパケットの再送を行わず，全データの配信が終了した時点でロスしたパケットのみをその位置情報とともに再送する。しかし，従来の方式では，パケットロスを検出した時点，もしくはロスしたパケットが含まれるブロックの最後のパケットを転送し終わった後にロスしたパケットを再送している。
【００１８】
・本発明では，ロス情報が含まれる応答パケットが返答された場合，ロスを経験した受信端末の数が一定数を超えたときに，データ送信速度を低下させる。しかし，従来の方式では，常に一定の速度で送信をする，あるいはパケットロスが発生したならば速度を下げる。
【００１９】
・本発明では，ロス情報が含まれる応答パケットが返答された場合，既に送信したデータ量を送るべき全データ量で割った値が一定数を超えたときに，データ送信速度を低下させる。しかし，従来の方式では，常に一定の速度で送信をするか，あるいはパケットロスが発生したならば速度を下げる。
【発明の効果】
【００２０】
従来の高信頼マルチキャスト配信システムでは，（１）ある受信端末でロスが発生すると，該受信端末にパケットを再送している間，他の受信端末が次のパケットを受信することができない，（２）送信端末からの送信速度を常に一定の速度に保つため，一つでも処理速度が低下した受信端末が存在すると，他の受信が良好な端末のデータ受信完了時間までも遅くなってしまう，という問題があったのに対し，本発明を用いれば，このような場合でも，受信が良好な端末のデータ受信完了時間をできるだけ短くすることができる。
【発明を実施するための最良の形態】
【００２１】
以下，本発明の実施形態について，図面を用いながら詳細に説明する。
【００２２】
〔実施例１〕
実施例１における送信端末の構成図を図１に，受信端末の構成図を図２に示す。図１の送信端末１０において，データ格納部１１は送るべきデータを格納しており，そのデータをブロック分割＆位置情報付与部１２に送る。ブロック分割＆位置情報付与部１２は，送るべきデータをブロックに分割し，ブロックに対して位置情報を付与する。そして，ブロックをパケット分割＆位置情報付与部１３に送る。パケット分割＆位置情報付与部１３は，送られたデータをパケットに分割し，パケットに対して位置情報を付与する。そのパケットをパケット記憶部１４に送る。パケット記憶部１４では，送られたパケットを記憶する。
【００２３】
送信部１５は，パケット記憶部１４から現在の送信速度でパケットを読み出し，読み出したパケットをネットワークに対して送信する。受信部１６は，ネットワークから送られてきた応答パケットを受信し，ロス情報計算部１７に送る。ロス情報計算部１７は，応答パケットに含まれているロスの情報を調べ，その情報をパケット記憶部１４とレート制御部１８に通知する。パケット記憶部１４に対しては，ブロックの位置情報とロスしたパケットの位置情報を通知する。レート制御部１８に対しては，ロスを経験した端末の数を通知する。
【００２４】
情報を受け取ったパケット記憶部１４は，ロスしたパケットのみを記録し続け，正しく受信されたパケットは記憶媒体から削除する。また，情報を受け取ったレート制御部１８は，図３に示すフローチャートに従ってレートを変更するよう送信部１５に通知する。つまり，ロスを経験した端末数が予め定めた値Ｘ以上かどうかを判定し（ステップＳ１０）予め定めた値Ｘ以上ならば，レート減少を送信部１５に通知する（ステップＳ１１）。そうでなければ，レート増加を送信部１５に通知する（ステップＳ１２）。
【００２５】
送信部１５は，レート制御部１８からレート変更通知を受信すると，図４に示すフローチャートに従って送信速度を変更する。つまり，レート減少を受信したかどうかを判定し（ステップＳ２０），レート減少を受信したならば，送信速度を減少する（ステップＳ２１）。そうでなければ，送信速度を増加させ（ステップＳ２２），送信速度が予め定めた最大速度ｍａｘＲａｔｅ以上になれば（ステップＳ２３），送信速度をｍａｘＲａｔｅに設定する（ステップＳ２４）。
【００２６】
また，送信部１５は，データパケットを全て送り終えた後，パケット記憶部１４にロスしたパケットがあるかを調べる。ロスしたパケットがあるならば，そのパケットを現在の送信速度で読み出し，読み出したパケットをネットワークに対して送信する。ロスしたパケットがなければ，送信部１５は送信を終える。
【００２７】
図２の受信端末２０において，受信部２１は，ネットワークから送られてきたデータパケットを受信し，ロス確認部２２に送る。ロス確認部２２は，ブロック内でロスしたパケットを確認し，その情報を送信部２３に送る。送信部２３は，ロスしたパケットの情報を応答パケットとして送信端末１０に送る。
【００２８】
以下，図５に示す例を用いて，本実施形態の動作を説明する。図５では，１台の送信端末１０から３台の受信端末Ｔ１，Ｔ２，Ｔ３にマルチキャストでデータを送信する例を示している。送るべきデータは，２個のブロックＢ１，Ｂ２に分割され，それぞれのブロックは３つのパケットＰ１，Ｐ２，Ｐ３に分割されるとする。
【００２９】
図３の値Ｘは２，図４の最大速度ｍａｘＲａｔｅは１００Ｍｂｐｓで，速度を減少させるときは速度を半分に，速度を増加させるときは最大速度ｍａｘＲａｔｅの１０％を現在の速度に加算して増加させるとする。また，送信端末１０の初期送信速度は，最大速度ｍａｘＲａｔｅとする。網内においては，受信端末Ｔ１に届く予定のブロックＢ１のパケットＰ２と，受信端末Ｔ１および受信端末Ｔ２に届く予定のブロックＢ２のパケットＰ２がロスを経験するとする。
【００３０】
送信端末１０におけるブロック分割＆位置情報付与部１２は，データを受け取るとデータを２個のブロックに分割し，それぞれにＢ１，Ｂ２という位置情報を付与する。以下では，この２つのブロックをブロックＢ１，ブロックＢ２として説明する。そして，２個のブロックＢ１，Ｂ２をパケット分割＆位置情報付与部１３に送る。
【００３１】
パケット分割＆位置情報付与部１３では，それぞれのブロックを３個のパケットに分割し，それぞれにブロックＢ１のパケットＰ１，ブロックＢ１のパケットＰ２，ブロックＢ１のパケットＰ３，ブロックＢ２のパケットＰ１，ブロックＢ２のパケットＰ２，ブロックＢ２のパケットＰ３という位置情報を付与する。そして，それぞれのパケットをパケット記憶部１４に送る。パケット記憶部１４では，送られてきたパケットをメモリなどの記憶媒体に記憶する。送信部１５は，パケット記憶部１４から現在の送信速度でパケットを読み出し，読み出したパケットを受信端末Ｔ１，Ｔ２，Ｔ３宛にマルチキャストで送信する。
【００３２】
受信端末Ｔ１では，図２における受信部２１は，ブロックＢ１のパケットＰ２が網内でロスしたので，ブロックＢ１のパケットＰ１とパケットＰ３を受信し，ロス確認部２２に送る。ロス確認部２２は，ブロックＢ１のパケットＰ２がロスしたことを確認し，その情報を送信部２３に送る。送信部２３は，ブロックＢ１のパケットＰ２がロスしたという情報を応答パケットとして送信端末１０に送る。
【００３３】
受信端末Ｔ２と受信端末Ｔ３では，図２における受信部２１は，網内でロスしたパケットがないので，ブロックＢ１のパケットＰ１，Ｐ２，Ｐ３を受信し，ロス確認部２２に送る。ロス確認部２２は，ロスしたパケットがないことを確認し，その情報を送信部２３に送る。送信部２３は，ロスしたパケットがないという情報を応答パケットとして送信端末１０に送る。
【００３４】
送信端末１０における受信部１６は，ネットワークから送られてきた応答パケットを受信し，ロス情報計算部１７に送る。ロス情報計算部１７は，応答パケットに含まれているロスの情報を調べ，受信端末Ｔ１がブロックＢ１のパケットＰ２をロスしたことを確認し，その情報をパケット記憶部１４とレート制御部１８に通知する。パケット記憶部１４に対しては，受信端末Ｔ１がブロックＢ１のパケットＰ２をロスしたことを通知する。レート制御部１８に対しては，受信端末Ｔ１〜Ｔ３の中の一つがロスを経験したことを通知する。
【００３５】
情報を受け取ったパケット記憶部１４は，ブロックＢ１のパケットＰ２のみを記録し続け，正しく受信されたブロックＢ１のパケットＰ１とパケットＰ３は記憶媒体から削除する。情報を受け取ったレート制御部１８は，ロスを経験した端末数が一つであり，予め定めたＸの値２以下なので，レート増加を送信部１５に通知する。送信部１５は，レート制御部１８からレート増加を受信したので，現在の送信速度を，
１００Ｍ＋１００Ｍ×１０％＝１１０Ｍ（ｂｐｓ）
に増加させるが，送信速度が予め定めた最大速度１００Ｍｂｐｓ以上なので，送信速度を１００Ｍｂｐｓに設定する。
【００３６】
受信端末Ｔ１と受信端末Ｔ２では，図２における受信部２１は，ブロックＢ２のパケットＰ２が網内でロスしたので，ブロックＢ２のパケットＰ１とパケットＰ３を受信し，ロス確認部２２に送る。ロス確認部２２は，ブロックＢ２でパケットＰ２がロスしたことを確認し，その情報を送信部２３に送る。送信部２３は，ブロックＢ２のパケットＰ２がロスしたという情報を応答パケットとして送信端末１０に送る。
【００３７】
受信端末Ｔ３では，図２における受信部２１は，網内でロスしたパケットがないので，ブロックＢ２のパケットＰ１，Ｐ２，Ｐ３を受信し，ロス確認部２２に送る。ロス確認部２２は，ロスしたパケットがないことを確認し，その情報を送信部２３に送る。送信部２３は，ロスしたパケットがないという情報を応答パケットとして送信端末１０に送る。この時点では，受信端末Ｔ３は，全てのデータパケットの受信を終了している。
【００３８】
送信端末１０における受信部１６は，ネットワークから送られてきた応答パケットを受信し，ロス情報計算部１７に送る。ロス情報計算部１７は，応答パケットに含まれているロスの情報を調べ，受信端末Ｔ１と受信端末Ｔ２は，ブロックＢ２のパケットＰ２をロスしたことを確認し，その情報をパケット記憶部１４とレート制御部１８に通知する。パケット記憶部１４に対しては，受信端末Ｔ１と受信端末Ｔ２がブロックＢ２のパケットＰ２がロスしたことを通知する。レート制御部１８に対しては，受信端末Ｔ１〜Ｔ３の中の二つがロスを経験したことを通知する。
【００３９】
情報を受け取ったパケット記憶部１４は，ブロックＢ２のパケットＰ２のみを記録し続け，正しく受信されたブロックＢ２のパケットＰ１とパケットＰ３は，記憶媒体から削除する。また，情報を受け取ったレート制御部１８は，ロスを経験した端末数が二つであり，予め定めたＸの値２以上なので，レート減少を送信部１５に通知する。送信部１５は，レート減少を受信したので，送信速度を１００Ｍｂｐｓの半分である５０Ｍｂｐｓに減少させる。
【００４０】
送信端末１０における送信部１５は，データパケットを全て送り終えた後，パケット記憶部１４にロスしたパケットがあるかを調べる。パケット記憶部１４では，受信端末Ｔ１がブロックＢ１のパケットＰ２，受信端末Ｔ１と受信端末Ｔ２がブロックＢ２のパケットＰ２をロスしていることを記憶しているので，送信部１５は，それらを現在の送信速度で読み取り，ブロックＢ１のパケットＰ２を受信端末Ｔ１宛に送信する。また，ブロックＢ２のパケットＰ２を受信端末Ｔ１と受信端末Ｔ２宛に送信する。
【００４１】
受信端末Ｔ１では，図２における受信部２１は，ブロックＢ１のパケットＰ２を受信し，ロス確認部２２に送る。ロス確認部２２は，ロスしたパケットがないことを確認し，その情報を送信部２３に送る。送信部２３は，ロスしたパケットがないという情報を応答パケットとして送信端末１０に送る。
【００４２】
送信端末１０における受信部１６は，ネットワークから送られてきた応答パケットを受信し，ロス情報計算部１７に送る。ロス情報計算部１７は，応答パケットに含まれているロスの情報を調べ，ブロックＢ１の再送パケットでは，ロスしたパケットがないことを確認し，その情報をパケット記憶部１４とレート制御部１８に通知する。パケット記憶部１４に対しては，ブロックＢ１の再送パケットでは，ロスしたパケットがないことを通知する。レート制御部１８に対しては，ロスを経験した受信端末がないことを通知する。
【００４３】
情報を受け取ったパケット記憶部１４は，正しく受信されたブロックＢ１のパケットＰ２を記憶媒体から削除する。情報を受け取ったレート制御部１８は，ロスを経験した端末数がゼロであり，予め定めたＸの値２以下なので，レート増加を送信部１５に通知する。送信部１５は，レート制御部１８からレート増加を受信したので，現在の送信速度を，
５０Ｍ＋１００Ｍ×１０％＝６０Ｍ（ｂｐｓ）
に増加させる。
【００４４】
受信端末Ｔ１と受信端末Ｔ２では，図２における受信部２１は，ブロックＢ２のパケットＰ２を受信し，ロス確認部２２に送る。ロス確認部２２は，ロスしたパケットがないことを確認し，その情報を送信部２３に送る。送信部２３は，ロスしたパケットがないという情報を応答パケットとして送信端末１０に送る。
【００４５】
送信端末１０における受信部１６は，ネットワークから送られてきた応答パケットを受信し，ロス情報計算部１７に送る。ロス情報計算部１７は，応答パケットに含まれているロスの情報を調べ，ブロックＢ２の再送パケットでは，ロスしたパケットがないことを確認し，その情報をパケット記憶部１４とレート制御部１８に通知する。パケット記憶部１４に対しては，ブロックＢ２の再送パケットでは，ロスしたパケットがないことを通知する。レート制御部１８に対しては，ロスを経験した受信端末がないことを通知する。
【００４６】
情報を受け取ったパケット記憶部１４は，正しく受信されたブロックＢ２のパケットＰ２を記憶媒体から削除する。情報を受け取ったレート制御部１８は，ロスを経験した端末数がゼロであり，予め定めたＸの値２以下なので，レート増加を送信部１５に通知する。送信部１５は，レート制御部１８からレート増加を受信したので，現在の送信速度を，
６０Ｍ＋１００Ｍ×１０％＝７０Ｍ（ｂｐｓ）
に増加させる。
【００４７】
送信端末１０における送信部１５は，再送の必要があるデータパケットを全て送り終えた後，パケット記憶部１４にロスしたパケットがあるかを調べる。パケット記憶部１４には，ロスしたパケットがないので，送信部１５は送信を終える。
【００４８】
〔実施例２〕
実施例２についても，図１に示す送信端末１０の構成図と，図２に示す受信端末２０の構成図を用いて説明する。
【００４９】
送信端末１０において，データ格納部１１は，送るべきデータを格納しており，そのデータをブロック分割＆位置情報付与部１２に送る。ブロック分割＆位置情報付与部１２は，送るべきデータをブロックに分割し，ブロックに対して位置情報を付与する。そして，ブロックをパケット分割＆位置情報付与部１３に送る。パケット分割＆位置情報付与部１３は，送られたデータをパケットに分割し，パケットに対して位置情報を付与する。そのパケットをパケット記憶部１４に送る。パケット記憶部１４では，送られたパケットを記憶する。
【００５０】
送信部１５は，パケット記憶部１４から現在の送信速度でパケットを読み出し，読み出したパケットをネットワークに対して送信する。受信部１６は，ネットワークから送られてきた応答パケットを受信し，ロス情報計算部１７に送る。ロス情報計算部１７は，応答パケットに含まれているロスの情報を調べ，その情報をパケット記憶部１４とレート制御部１８に通知する。パケット記憶部１４に対しては，ブロックの位置情報とロスしたパケットの位置情報を通知する。レート制御部１８に対しては，ロスを経験した端末の数を通知する。
【００５１】
情報を受け取ったパケット記憶部１４は，ロスしたパケットのみを記録し続け，正しく受信されたパケットは記憶媒体から削除する。また，情報を受け取ったレート制御部１８は，パケット記憶部１４から既に送信したデータ量と送るべき全データ量の情報を得て，図６に示すフローチャートに従ってレートを変更するよう送信部１５に通知する。つまり，ロスを経験した端末数がなければ（ステップＳ３０），レート増加を送信部１５に通知（ステップＳ３１），そうでなければ，既に送信したデータ量を送るべき全データ量で割った値が予め定めた値Ｘより大きいかを調べる（ステップＳ３２）。小さければレート減少を送信部１５に通知し（ステップＳ３３），大きければ何も通知しない（ステップＳ３４）。
【００５２】
送信部１５は，レート制御部１８からレート変更通知を受信すると，図４に示すフローチャートに従って送信速度を変更する。つまり，レート減少を受信したならば，送信速度を減少する。そうでなければ，送信速度を増加させ，送信速度が予め定めた最大速度ｍａｘＲａｔｅ以上になれば，送信速度をｍａｘＲａｔｅに設定する。
【００５３】
また，送信部１５は，データパケットを全て送り終えた後，パケット記憶部１４にロスしたパケットがあるかを調べる。ロスしたパケットがあるならば，そのパケットを現在の送信速度で読み出し，読み出したパケットをネットワークに対して送信する。ロスしたパケットがなければ，送信部１５は送信を終える。
【００５４】
受信端末２０において，受信部２１は，ネットワークから送られてきたデータパケットを受信し，ロス確認部２２に送る。ロス確認部２２は，ブロック内でロスしたパケットを確認し，その情報を送信部２３に送る。送信部２３は，ロスしたパケットの情報を応答パケットとして送信端末１０に送る。
【００５５】
以下，図５に示す例を用いて，本実施形態の動作を説明する。図５では，１台の送信端末１０から３台の受信端末Ｔ１，Ｔ２，Ｔ３にマルチキャストでデータを送信する。送るべきデータは，２個のブロックＢ１，Ｂ２に分割され，それぞれのブロックは３つのパケットＰ１，Ｐ２，Ｐ３に分割されるとする。図６の値Ｘは０．８，図４の最大速度ｍａｘＲａｔｅは１００Ｍｂｐｓで，速度を減少させるときは速度を半分に，速度を増加させるときは最大速度ｍａｘＲａｔｅの１０％を現在の速度に加算して増加させるとする。また，送信端末１０の初期送信速度は，最大速度ｍａｘＲａｔｅとする。網内においては，受信端末Ｔ１宛のブロックＢ１のパケットＰ２と受信端末Ｔ１と受信端末Ｔ２宛のブロックＢ２のパケットＰ２がロスを経験するとする。
【００５６】
送信端末１０におけるブロック分割＆位置情報付与部１２は，データを受け取るとデータを２個のブロックに分割し，それぞれにＢ１，Ｂ２という位置情報を付与する。そして２個のブロックＢ１，Ｂ２をパケット分割＆位置情報付与部１３に送る。パケット分割＆位置情報付与部１３では，それぞれのブロックＢ１，Ｂ２を３個のパケットＰ１，Ｐ２，Ｐ３に分割し，それぞれにブロックＢ１のパケットＰ１，ブロックＢ１のパケットＰ２，ブロックＢ１のパケットＰ３，ブロックＢ２のパケットＰ１，ブロックＢ２のパケットＰ２，ブロックＢ２のパケットＰ３という位置情報を付与する。そしてそれぞれのパケットをパケット記憶部１４に送る。
【００５７】
パケット記憶部１４では，送られてきたパケットをメモリなどの記憶媒体に記憶する。送信部１５は，パケット記憶部１４から現在の送信速度でパケットを読み出し，読み出したパケットを受信端末Ｔ１，Ｔ２，Ｔ３宛にマルチキャストで送信する。
【００５８】
受信端末Ｔ１では，図２における受信部２１は，ブロックＢ１のパケットＰ２が網内でロスしたので，ブロックＢ１のパケットＰ１とパケットＰ３を受信し，ロス確認部２２に送る。ロス確認部２２は，ブロックＢ１でパケットＰ２がロスしたことを確認し，その情報を送信部２３に送る。送信部２３は，ブロックＢ１のパケットＰ２がロスしたという情報を応答パケットとして送信端末１０に送る。
【００５９】
受信端末Ｔ２と受信端末Ｔ３では，図２における受信部２１は，網内でロスしたパケットがないので，ブロックＢ１のパケットＰ１，Ｐ２，Ｐ３を受信し，ロス確認部２２に送る。ロス確認部２２は，ロスしたパケットがないことを確認し，その情報を送信部２３に送る。送信部２３は，ロスしたパケットがないという情報を応答パケットとして送信端末１０に送る。
【００６０】
送信端末１０における受信部１６は，ネットワークから送られてきた応答パケットを受信し，ロス情報計算部１７に送る。ロス情報計算部１７は，応答パケットに含まれているロスの情報を調べ，受信端末Ｔ１がブロックＢ１のパケットＰ２をロスしたことを確認し，その情報をパケット記憶部１４とレート制御部１８に通知する。パケット記憶部１４に対しては，受信端末Ｔ１がブロックＢ１のパケットＰ２をロスしたことを通知する。レート制御部１８に対しては，受信端末Ｔ１〜Ｔ３の中の一つがロスを経験したことを通知する。
【００６１】
情報を受け取ったパケット記憶部１４は，ブロックＢ１のパケットＰ２のみを記録し続け，正しく受信されたブロックＢ１のパケットＰ１とパケットＰ３は，記憶媒体から削除する。また，情報を受け取ったレート制御部１８は，ロスを経験した端末数があるので，既に送信したデータ量を送るべき全データ量で割った値を計算する。この値は，
〔既に送信したデータ量〕÷〔送るべき全データ量〕
＝３パケット÷６パケット＝０．５
であり，予め定めたＸの値は０．８なので，レート減少を送信部１５に通知する。送信部１５は，レート制御部１８からレート減少の通知を受信したので，現在の送信速度を，
１００Ｍ×０．５＝５０Ｍ（ｂｐｓ）
に減少させる。
【００６２】
受信端末Ｔ１と受信端末Ｔ２では，図２における受信部２１は，ブロックＢ２のパケットＰ２が網内でロスしたので，ブロックＢ２のパケットＰ１とパケットＰ３を受信し，ロス確認部２２に送る。ロス確認部２２は，ブロックＢ２でパケットＰ２がロスしたことを確認し，その情報を送信部２３に送る。送信部２３は，ブロックＢ２のパケットＰ２がロスしたという情報を応答パケットとして送信端末１０に送る。
【００６３】
受信端末Ｔ３では，図２における受信部２１は，網内でロスしたパケットがないので，ブロックＢ２のパケットＰ１，Ｐ２，Ｐ３を受信し，ロス確認部２２に送る。ロス確認部２２は，ロスしたパケットがないことを確認し，その情報を送信部２３に送る。送信部２３は，ロスしたパケットがないという情報を応答パケットとして送信端末１０に送る。この時点では，受信端末Ｔ３は，全てのデータパケットの受信を終了している。
【００６４】
送信端末１０における受信部１６は，ネットワークから送られてきた応答パケットを受信し，ロス情報計算部１７に送る。ロス情報計算部１７は，応答パケットに含まれているロスの情報を調べ，受信端末Ｔ１と受信端末Ｔ２がブロックＢ２のパケットＰ２をロスしたことを確認し，その情報をパケット記憶部１４とレート制御部１８に通知する。
【００６５】
パケット記憶部１４に対しては，受信端末Ｔ１と受信端末Ｔ２がブロックＢ２のパケットＰ２をロスしたことを通知する。レート制御部１８に対しては，受信端末Ｔ１〜Ｔ３の中の二つがロスを経験したことを通知する。
【００６６】
情報を受け取ったパケット記憶部１４は，ブロックＢ２のパケットＰ２のみを記録し続け，正しく受信されたブロックＢ２のパケットＰ１とパケットＰ３は，記憶媒体から削除する。情報を受け取ったレート制御部１８は，ロスを経験した端末数があるので，既に送信したデータ量を送るべき全データ量で割った値を計算する。この値は，
〔既に送信したデータ量〕÷〔送るべき全データ量〕
＝６パケット÷６パケット＝１．０
であり，予め定めたＸの値は０．８なので，送信部１５に何も通知しない。
【００６７】
送信端末１０における送信部１５は，データパケットを全て送り終えた後，パケット記憶部１４にロスしたパケットがあるかを調べる。パケット記憶部１４では，受信端末Ｔ１がブロックＢ１のパケットＰ２，受信端末Ｔ１と受信端末Ｔ２がブロックＢ２のパケットＰ２をロスしているので，送信部１５は，それらを現在の送信速度で読み取り，ブロックＢ１のパケットＰ２を受信端末Ｔ１宛に送信し，ブロックＢ２のパケットＰ２を受信端末Ｔ１と受信端末Ｔ２宛に送信する。
【００６８】
受信端末Ｔ１では，図２における受信部２１は，ブロックＢ１のパケットＰ２を受信し，ロス確認部２２に送る。ロス確認部２２は，ロスしたパケットがないことを確認し，その情報を送信部２３に送る。送信部２３は，ロスしたパケットがないという情報を応答パケットとして送信端末１０に送る。
【００６９】
送信端末１０における受信部１６は，ネットワークから送られてきた応答パケットを受信し，ロス情報計算部１７に送る。ロス情報計算部１７は，応答パケットに含まれているロスの情報を調べ，ブロックＢ１の再送パケットでは，ロスしたパケットがないことを確認し，その情報をパケット記憶部１４とレート制御部１８に通知する。パケット記憶部１４に対しては，ブロックＢ１の再送パケットでは，ロスしたパケットがないことを通知する。レート制御部１８に対しては，ロスを経験した受信端末がないことを通知する。
【００７０】
情報を受け取ったパケット記憶部１４は，正しく受信されたブロックＢ１のパケットＰ２を記憶媒体から削除する。情報を受け取ったレート制御部１８は，ロスを経験した端末数がゼロなので，レート増加を送信部１５に通知する。送信部１５は，レート制御部１８からレート増加を受信したので，現在の送信速度を，
５０Ｍ＋１００Ｍ×１０％＝６０Ｍ（ｂｐｓ）
に増加させる。
【００７１】
受信端末Ｔ１と受信端末Ｔ２では，図２における受信部２１は，ブロックＢ２のパケットＰ２を受信し，ロス確認部２２に送る。ロス確認部２２は，ロスしたパケットがないことを確認し，その情報を送信部２３に送る。送信部２３は，ロスしたパケットがないという情報を応答パケットとして送信端末１０に送る。
【００７２】
送信端末１０における受信部１６は，ネットワークから送られてきた応答パケットを受信し，ロス情報計算部１７に送る。ロス情報計算部１７は，応答パケットに含まれているロスの情報を調べ，ブロックＢ２の再送パケットでは，ロスしたパケットがないことを確認し，その情報をパケット記憶部１４とレート制御部１８に通知する。パケット記憶部１４に対しては，ブロックＢ２の再送パケットでは，ロスしたパケットがないことを通知する。レート制御部１８に対しては，ロスを経験した受信端末がないことを通知する。
【００７３】
情報を受け取ったパケット記憶部１４は，正しく受信されたブロックＢ２のパケットＰ２を記憶媒体から削除する。情報を受け取ったレート制御部１８は，ロスを経験した端末数がゼロなので，レート増加を送信部１５に通知する。送信部１５は，レート制御部１８からレート増加を受信したので，現在の送信速度を，
６０Ｍ＋１００Ｍ×１０％＝７０Ｍ（ｂｐｓ）
に増加させる。
【００７４】
送信端末１０における送信部１５は，再送の必要があるデータパケットを全て送り終えた後，パケット記憶部１４にロスしたパケットがあるかを調べる。パケット記憶部１４には，ロスしたパケットがないので，送信部１５は送信を終える。
【００７５】
以上の送信端末１０および受信端末２０における処理は，コンピュータとソフトウェアプログラムとによっても実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することも，ネットワークを通して提供することも可能である。
【図面の簡単な説明】
【００７６】
【図１】送信端末の構成例を示すブロック図である。
【図２】受信端末の構成例を示すブロック図である。
【図３】実施例１のレート制御部におけるレート増加・減少を決定するフローチャートである。
【図４】送信部におけるレート増加・減少制御を示すフローチャートである。
【図５】本実施形態を説明するための図である。
【図６】実施例２のレート制御部におけるレート増加・減少を決定するフローチャートである。
【図７】パケットを正しく受信する毎にＡＣＫパケットを送信端末に返答する従来技術を示す図である。
【図８】送信すべきデータを複数のブロックに分割し，ブロック内に発生した複数のパケットロス情報を１つのパケットにまとめて返答する従来技術を示す図である。
【符号の説明】
【００７７】
１０  送信端末
１１  データ格納部
１２  ブロック分割＆位置情報付与部
１３  パケット分割＆位置情報付与部
１４  パケット記憶部
１５  送信部
１６  受信部
１７  ロス情報計算部
１８  レート制御部
２０  受信端末
２１  受信部
２２  ロス確認部
２３  送信部
【図１】
2009094863.tif 000003
【図２】
2009094863.tif 000004
【図３】
2009094863.tif 000005
【図４】
2009094863.tif 000006
【図５】
2009094863.tif 000007
【図６】
2009094863.tif 000008
【図７】
2009094863.tif 000009
【図８】
2009094863.tif 000010