説明

高信頼マルチキャストデータ配信システム,高信頼マルチキャストデータ配信方法および高信頼マルチキャストデータ配信プログラム

【課題】高信頼マルチキャストデータ配信システムにおいて,受信が良好な端末のデータ受信完了時間をできるだけ短くする。
【解決手段】送信端末10は,受信端末のいずれかからパケットロスが生じたことを示す応答パケットを受信したときに,そのパケットロス情報を記憶しておき,送信部15により,他の送信すべきデータの送信を継続し,他の送信すべきデータの送信が終了した後に,記憶しておいたパケットロス情報に基づいてロスしたパケットを受信端末に再送する。パケットロスが生じた受信端末は,ロスしたパケットを全受信データの最後に受け取ることになるが,受信が良好な受信端末は,時間的にロスすることなく,通常の場合と同様にデータを受け取ることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,送信端末から複数の受信端末にマルチキャストでデータパケットを高信頼に配信するシステムにおいて,送信端末がどのようにしてロスしたパケットを再送するかに関する技術,および送信端末がどのように送信速度を制御するかに関する技術に係わり,特に,受信が良好な端末のデータ受信完了時間をできるだけ短くするための技術に関するものである。
【背景技術】
【0002】
一つの送信端末から複数の受信端末に対して同じデータを配信する方法として,高信頼マルチキャスト(reliable multicast)通信方式を用いたデータ配信システムがある。マルチキャスト通信方式においては,送信端末から送出されたデータパケットがネットワーク上でコピーされることにより,複数の受信先に対してデータを同時に配信することが可能となる。
【0003】
高信頼データ配信システムにおいては,データを誤りなく配信することは必須である。そのため,受信端末は自身が正しくパケットを受け取ったか,あるいはそうでないかを送信端末に伝え,送信端末は正しく受信できなかったパケットを再送する必要がある。
【0004】
受信端末が自身の状態を送信端末に通知する方法として,図7に示すように,受信端末が,パケットを正しく受信する毎にACKパケットを送信端末に返答し,送信端末は,パケットを送信してからある一定時間内にそのパケットに対するACKパケットを受信しなければ,そのパケットはロスしたと判断して,そのパケットを再送する方式がある(非特許文献1参照)。
【0005】
しかしながら,この方式は受信端末の数が多い場合には,ACKパケットの数が膨大となるため,送信端末とネットワークに対して大きな負荷を与えるという問題がある。またある受信端末でロスが発生すると,他の受信端末は,ロスを経験した受信端末にパケットを再送している間,次のパケットを受信することができないという問題もある。
【0006】
この問題を解決する方法として,図8に示すように,送信すべきデータを複数のブロックに分割し,ブロック内に発生した複数のパケットロス情報を1つのパケットにまとめて返答し,送信端末は返答を受け取り,ロスしたパケットがあるならば,直ぐにそれらを再送する方式が提案されている(非特許文献1参照)。
【0007】
この方式は応答パケットの数を少なく保つことはできるが,ある受信端末でロスが発生すると,他の受信端末は,ロスを経験した受信端末にパケットを再送している間,次のパケットを受信することができないという問題は残る。つまり,従来の高信頼マルチキャスト配信システムでは,一つでも受信状態の悪い端末が存在すると,他の受信が良好な端末のデータ受信完了時間までもそれにつられて遅くなるという問題がある。
【0008】
また,従来の高信頼マルチキャスト配信システムにおいて,送信端末からの送信速度は,常に一定の速度を保つか,もしくはパケットロスが発生したならば速度を下げるという制御を行っていた。常に一定の速度で送信する方法は,何らかの原因で負荷が高くなり,処理速度が低下した受信端末では,大量のパケットの取りこぼしが発生するという問題がある。そこで,パケットロスが発生したならば速度を下げる方式が提案されているが,一つでも処理速度が低下した受信端末が存在すると,他の受信が良好な端末のデータ受信完了時間までもそれにつられて遅くなるという問題がある。
【非特許文献1】B. N. Levine et al. ,“A Comparison of Reliable Multicast Protocols”,ACM Multimedia Systems Journal,vol.6 ,no.5,August 1998
【発明の開示】
【発明が解決しようとする課題】
【0009】
本発明は,送信すべきデータを複数のブロックに分割し,ブロック内に発生した複数のパケットロス情報を1つの応答パケットにまとめて返答することで応答パケットの数を少なく保つことができる高信頼マルチキャストデータ配信システムにおいて,受信が良好な端末のデータ受信完了時間をできるだけ短くすることを主要な目的としている。
【0010】
詳しくは,本発明は,ロスしたパケットをすぐに再送するのではなく,全てのデータパケットの送信が終了してからロスしたパケットを再送することによって,受信が良好な端末のデータ受信完了時間をできるだけ短くすることを目的としている。
【0011】
また,ロス情報を含んだ応答パケットが返答されたとき,ロスを経験した受信端末の数が一定数を超えた場合にデータ送信速度を低下させる制御を行うことにより,受信が良好な端末のデータ受信完了時間をできるだけ短くすることを目的としている。
【0012】
また,既に送信したデータ量を送るべき全データ量で割った値がある一定数を超えた場合,レートを減少させないようにすること,すなわち,既にデータの大部分を転送し終わっている場合には,レートを減少させないことにより,受信が良好な端末のデータ受信完了時間をできるだけ短くすることを目的としている。
【課題を解決するための手段】
【0013】
上述した課題を解決するための本発明の第1の特徴は,受信端末からロス情報を含んだ応答パケットが返答されたとき,送信端末はロスの発生位置を記録するだけで直ちにパケットの再送を行わず,全データの配信が終了した時点でロスしたパケットのみをその位置情報とともに再送することである。
【0014】
また,本発明の第2の特徴は,ロス情報が含まれる応答パケットが返答された場合,ロスを経験した受信端末の数が一定数を超えたときに,データ送信速度を低下させる制御を行うことである。
【0015】
また,本発明の第3の特徴は,ロス情報が含まれる応答パケットが返答された場合,既に送信したデータ量を送るべき全データ量で割った値がある値以下のときに,データ送信速度を低下させる制御を行うことである。
【0016】
本発明と従来の技術との差異は,以下の通りである。
【0017】
・本発明では,パケットロスを検出したとき,ロスの発生位置を記録するだけで直ちにパケットの再送を行わず,全データの配信が終了した時点でロスしたパケットのみをその位置情報とともに再送する。しかし,従来の方式では,パケットロスを検出した時点,もしくはロスしたパケットが含まれるブロックの最後のパケットを転送し終わった後にロスしたパケットを再送している。
【0018】
・本発明では,ロス情報が含まれる応答パケットが返答された場合,ロスを経験した受信端末の数が一定数を超えたときに,データ送信速度を低下させる。しかし,従来の方式では,常に一定の速度で送信をする,あるいはパケットロスが発生したならば速度を下げる。
【0019】
・本発明では,ロス情報が含まれる応答パケットが返答された場合,既に送信したデータ量を送るべき全データ量で割った値が一定数を超えたときに,データ送信速度を低下させる。しかし,従来の方式では,常に一定の速度で送信をするか,あるいはパケットロスが発生したならば速度を下げる。
【発明の効果】
【0020】
従来の高信頼マルチキャスト配信システムでは,(1)ある受信端末でロスが発生すると,該受信端末にパケットを再送している間,他の受信端末が次のパケットを受信することができない,(2)送信端末からの送信速度を常に一定の速度に保つため,一つでも処理速度が低下した受信端末が存在すると,他の受信が良好な端末のデータ受信完了時間までも遅くなってしまう,という問題があったのに対し,本発明を用いれば,このような場合でも,受信が良好な端末のデータ受信完了時間をできるだけ短くすることができる。
【発明を実施するための最良の形態】
【0021】
以下,本発明の実施形態について,図面を用いながら詳細に説明する。
【0022】
〔実施例1〕
実施例1における送信端末の構成図を図1に,受信端末の構成図を図2に示す。図1の送信端末10において,データ格納部11は送るべきデータを格納しており,そのデータをブロック分割&位置情報付与部12に送る。ブロック分割&位置情報付与部12は,送るべきデータをブロックに分割し,ブロックに対して位置情報を付与する。そして,ブロックをパケット分割&位置情報付与部13に送る。パケット分割&位置情報付与部13は,送られたデータをパケットに分割し,パケットに対して位置情報を付与する。そのパケットをパケット記憶部14に送る。パケット記憶部14では,送られたパケットを記憶する。
【0023】
送信部15は,パケット記憶部14から現在の送信速度でパケットを読み出し,読み出したパケットをネットワークに対して送信する。受信部16は,ネットワークから送られてきた応答パケットを受信し,ロス情報計算部17に送る。ロス情報計算部17は,応答パケットに含まれているロスの情報を調べ,その情報をパケット記憶部14とレート制御部18に通知する。パケット記憶部14に対しては,ブロックの位置情報とロスしたパケットの位置情報を通知する。レート制御部18に対しては,ロスを経験した端末の数を通知する。
【0024】
情報を受け取ったパケット記憶部14は,ロスしたパケットのみを記録し続け,正しく受信されたパケットは記憶媒体から削除する。また,情報を受け取ったレート制御部18は,図3に示すフローチャートに従ってレートを変更するよう送信部15に通知する。つまり,ロスを経験した端末数が予め定めた値X以上かどうかを判定し(ステップS10)予め定めた値X以上ならば,レート減少を送信部15に通知する(ステップS11)。そうでなければ,レート増加を送信部15に通知する(ステップS12)。
【0025】
送信部15は,レート制御部18からレート変更通知を受信すると,図4に示すフローチャートに従って送信速度を変更する。つまり,レート減少を受信したかどうかを判定し(ステップS20),レート減少を受信したならば,送信速度を減少する(ステップS21)。そうでなければ,送信速度を増加させ(ステップS22),送信速度が予め定めた最大速度maxRate以上になれば(ステップS23),送信速度をmaxRateに設定する(ステップS24)。
【0026】
また,送信部15は,データパケットを全て送り終えた後,パケット記憶部14にロスしたパケットがあるかを調べる。ロスしたパケットがあるならば,そのパケットを現在の送信速度で読み出し,読み出したパケットをネットワークに対して送信する。ロスしたパケットがなければ,送信部15は送信を終える。
【0027】
図2の受信端末20において,受信部21は,ネットワークから送られてきたデータパケットを受信し,ロス確認部22に送る。ロス確認部22は,ブロック内でロスしたパケットを確認し,その情報を送信部23に送る。送信部23は,ロスしたパケットの情報を応答パケットとして送信端末10に送る。
【0028】
以下,図5に示す例を用いて,本実施形態の動作を説明する。図5では,1台の送信端末10から3台の受信端末T1,T2,T3にマルチキャストでデータを送信する例を示している。送るべきデータは,2個のブロックB1,B2に分割され,それぞれのブロックは3つのパケットP1,P2,P3に分割されるとする。
【0029】
図3の値Xは2,図4の最大速度maxRateは100Mbpsで,速度を減少させるときは速度を半分に,速度を増加させるときは最大速度maxRateの10%を現在の速度に加算して増加させるとする。また,送信端末10の初期送信速度は,最大速度maxRateとする。網内においては,受信端末T1に届く予定のブロックB1のパケットP2と,受信端末T1および受信端末T2に届く予定のブロックB2のパケットP2がロスを経験するとする。
【0030】
送信端末10におけるブロック分割&位置情報付与部12は,データを受け取るとデータを2個のブロックに分割し,それぞれにB1,B2という位置情報を付与する。以下では,この2つのブロックをブロックB1,ブロックB2として説明する。そして,2個のブロックB1,B2をパケット分割&位置情報付与部13に送る。
【0031】
パケット分割&位置情報付与部13では,それぞれのブロックを3個のパケットに分割し,それぞれにブロックB1のパケットP1,ブロックB1のパケットP2,ブロックB1のパケットP3,ブロックB2のパケットP1,ブロックB2のパケットP2,ブロックB2のパケットP3という位置情報を付与する。そして,それぞれのパケットをパケット記憶部14に送る。パケット記憶部14では,送られてきたパケットをメモリなどの記憶媒体に記憶する。送信部15は,パケット記憶部14から現在の送信速度でパケットを読み出し,読み出したパケットを受信端末T1,T2,T3宛にマルチキャストで送信する。
【0032】
受信端末T1では,図2における受信部21は,ブロックB1のパケットP2が網内でロスしたので,ブロックB1のパケットP1とパケットP3を受信し,ロス確認部22に送る。ロス確認部22は,ブロックB1のパケットP2がロスしたことを確認し,その情報を送信部23に送る。送信部23は,ブロックB1のパケットP2がロスしたという情報を応答パケットとして送信端末10に送る。
【0033】
受信端末T2と受信端末T3では,図2における受信部21は,網内でロスしたパケットがないので,ブロックB1のパケットP1,P2,P3を受信し,ロス確認部22に送る。ロス確認部22は,ロスしたパケットがないことを確認し,その情報を送信部23に送る。送信部23は,ロスしたパケットがないという情報を応答パケットとして送信端末10に送る。
【0034】
送信端末10における受信部16は,ネットワークから送られてきた応答パケットを受信し,ロス情報計算部17に送る。ロス情報計算部17は,応答パケットに含まれているロスの情報を調べ,受信端末T1がブロックB1のパケットP2をロスしたことを確認し,その情報をパケット記憶部14とレート制御部18に通知する。パケット記憶部14に対しては,受信端末T1がブロックB1のパケットP2をロスしたことを通知する。レート制御部18に対しては,受信端末T1〜T3の中の一つがロスを経験したことを通知する。
【0035】
情報を受け取ったパケット記憶部14は,ブロックB1のパケットP2のみを記録し続け,正しく受信されたブロックB1のパケットP1とパケットP3は記憶媒体から削除する。情報を受け取ったレート制御部18は,ロスを経験した端末数が一つであり,予め定めたXの値2以下なので,レート増加を送信部15に通知する。送信部15は,レート制御部18からレート増加を受信したので,現在の送信速度を,
100M+100M×10%=110M(bps)
に増加させるが,送信速度が予め定めた最大速度100Mbps以上なので,送信速度を100Mbpsに設定する。
【0036】
受信端末T1と受信端末T2では,図2における受信部21は,ブロックB2のパケットP2が網内でロスしたので,ブロックB2のパケットP1とパケットP3を受信し,ロス確認部22に送る。ロス確認部22は,ブロックB2でパケットP2がロスしたことを確認し,その情報を送信部23に送る。送信部23は,ブロックB2のパケットP2がロスしたという情報を応答パケットとして送信端末10に送る。
【0037】
受信端末T3では,図2における受信部21は,網内でロスしたパケットがないので,ブロックB2のパケットP1,P2,P3を受信し,ロス確認部22に送る。ロス確認部22は,ロスしたパケットがないことを確認し,その情報を送信部23に送る。送信部23は,ロスしたパケットがないという情報を応答パケットとして送信端末10に送る。この時点では,受信端末T3は,全てのデータパケットの受信を終了している。
【0038】
送信端末10における受信部16は,ネットワークから送られてきた応答パケットを受信し,ロス情報計算部17に送る。ロス情報計算部17は,応答パケットに含まれているロスの情報を調べ,受信端末T1と受信端末T2は,ブロックB2のパケットP2をロスしたことを確認し,その情報をパケット記憶部14とレート制御部18に通知する。パケット記憶部14に対しては,受信端末T1と受信端末T2がブロックB2のパケットP2がロスしたことを通知する。レート制御部18に対しては,受信端末T1〜T3の中の二つがロスを経験したことを通知する。
【0039】
情報を受け取ったパケット記憶部14は,ブロックB2のパケットP2のみを記録し続け,正しく受信されたブロックB2のパケットP1とパケットP3は,記憶媒体から削除する。また,情報を受け取ったレート制御部18は,ロスを経験した端末数が二つであり,予め定めたXの値2以上なので,レート減少を送信部15に通知する。送信部15は,レート減少を受信したので,送信速度を100Mbpsの半分である50Mbpsに減少させる。
【0040】
送信端末10における送信部15は,データパケットを全て送り終えた後,パケット記憶部14にロスしたパケットがあるかを調べる。パケット記憶部14では,受信端末T1がブロックB1のパケットP2,受信端末T1と受信端末T2がブロックB2のパケットP2をロスしていることを記憶しているので,送信部15は,それらを現在の送信速度で読み取り,ブロックB1のパケットP2を受信端末T1宛に送信する。また,ブロックB2のパケットP2を受信端末T1と受信端末T2宛に送信する。
【0041】
受信端末T1では,図2における受信部21は,ブロックB1のパケットP2を受信し,ロス確認部22に送る。ロス確認部22は,ロスしたパケットがないことを確認し,その情報を送信部23に送る。送信部23は,ロスしたパケットがないという情報を応答パケットとして送信端末10に送る。
【0042】
送信端末10における受信部16は,ネットワークから送られてきた応答パケットを受信し,ロス情報計算部17に送る。ロス情報計算部17は,応答パケットに含まれているロスの情報を調べ,ブロックB1の再送パケットでは,ロスしたパケットがないことを確認し,その情報をパケット記憶部14とレート制御部18に通知する。パケット記憶部14に対しては,ブロックB1の再送パケットでは,ロスしたパケットがないことを通知する。レート制御部18に対しては,ロスを経験した受信端末がないことを通知する。
【0043】
情報を受け取ったパケット記憶部14は,正しく受信されたブロックB1のパケットP2を記憶媒体から削除する。情報を受け取ったレート制御部18は,ロスを経験した端末数がゼロであり,予め定めたXの値2以下なので,レート増加を送信部15に通知する。送信部15は,レート制御部18からレート増加を受信したので,現在の送信速度を,
50M+100M×10%=60M(bps)
に増加させる。
【0044】
受信端末T1と受信端末T2では,図2における受信部21は,ブロックB2のパケットP2を受信し,ロス確認部22に送る。ロス確認部22は,ロスしたパケットがないことを確認し,その情報を送信部23に送る。送信部23は,ロスしたパケットがないという情報を応答パケットとして送信端末10に送る。
【0045】
送信端末10における受信部16は,ネットワークから送られてきた応答パケットを受信し,ロス情報計算部17に送る。ロス情報計算部17は,応答パケットに含まれているロスの情報を調べ,ブロックB2の再送パケットでは,ロスしたパケットがないことを確認し,その情報をパケット記憶部14とレート制御部18に通知する。パケット記憶部14に対しては,ブロックB2の再送パケットでは,ロスしたパケットがないことを通知する。レート制御部18に対しては,ロスを経験した受信端末がないことを通知する。
【0046】
情報を受け取ったパケット記憶部14は,正しく受信されたブロックB2のパケットP2を記憶媒体から削除する。情報を受け取ったレート制御部18は,ロスを経験した端末数がゼロであり,予め定めたXの値2以下なので,レート増加を送信部15に通知する。送信部15は,レート制御部18からレート増加を受信したので,現在の送信速度を,
60M+100M×10%=70M(bps)
に増加させる。
【0047】
送信端末10における送信部15は,再送の必要があるデータパケットを全て送り終えた後,パケット記憶部14にロスしたパケットがあるかを調べる。パケット記憶部14には,ロスしたパケットがないので,送信部15は送信を終える。
【0048】
〔実施例2〕
実施例2についても,図1に示す送信端末10の構成図と,図2に示す受信端末20の構成図を用いて説明する。
【0049】
送信端末10において,データ格納部11は,送るべきデータを格納しており,そのデータをブロック分割&位置情報付与部12に送る。ブロック分割&位置情報付与部12は,送るべきデータをブロックに分割し,ブロックに対して位置情報を付与する。そして,ブロックをパケット分割&位置情報付与部13に送る。パケット分割&位置情報付与部13は,送られたデータをパケットに分割し,パケットに対して位置情報を付与する。そのパケットをパケット記憶部14に送る。パケット記憶部14では,送られたパケットを記憶する。
【0050】
送信部15は,パケット記憶部14から現在の送信速度でパケットを読み出し,読み出したパケットをネットワークに対して送信する。受信部16は,ネットワークから送られてきた応答パケットを受信し,ロス情報計算部17に送る。ロス情報計算部17は,応答パケットに含まれているロスの情報を調べ,その情報をパケット記憶部14とレート制御部18に通知する。パケット記憶部14に対しては,ブロックの位置情報とロスしたパケットの位置情報を通知する。レート制御部18に対しては,ロスを経験した端末の数を通知する。
【0051】
情報を受け取ったパケット記憶部14は,ロスしたパケットのみを記録し続け,正しく受信されたパケットは記憶媒体から削除する。また,情報を受け取ったレート制御部18は,パケット記憶部14から既に送信したデータ量と送るべき全データ量の情報を得て,図6に示すフローチャートに従ってレートを変更するよう送信部15に通知する。つまり,ロスを経験した端末数がなければ(ステップS30),レート増加を送信部15に通知(ステップS31),そうでなければ,既に送信したデータ量を送るべき全データ量で割った値が予め定めた値Xより大きいかを調べる(ステップS32)。小さければレート減少を送信部15に通知し(ステップS33),大きければ何も通知しない(ステップS34)。
【0052】
送信部15は,レート制御部18からレート変更通知を受信すると,図4に示すフローチャートに従って送信速度を変更する。つまり,レート減少を受信したならば,送信速度を減少する。そうでなければ,送信速度を増加させ,送信速度が予め定めた最大速度maxRate以上になれば,送信速度をmaxRateに設定する。
【0053】
また,送信部15は,データパケットを全て送り終えた後,パケット記憶部14にロスしたパケットがあるかを調べる。ロスしたパケットがあるならば,そのパケットを現在の送信速度で読み出し,読み出したパケットをネットワークに対して送信する。ロスしたパケットがなければ,送信部15は送信を終える。
【0054】
受信端末20において,受信部21は,ネットワークから送られてきたデータパケットを受信し,ロス確認部22に送る。ロス確認部22は,ブロック内でロスしたパケットを確認し,その情報を送信部23に送る。送信部23は,ロスしたパケットの情報を応答パケットとして送信端末10に送る。
【0055】
以下,図5に示す例を用いて,本実施形態の動作を説明する。図5では,1台の送信端末10から3台の受信端末T1,T2,T3にマルチキャストでデータを送信する。送るべきデータは,2個のブロックB1,B2に分割され,それぞれのブロックは3つのパケットP1,P2,P3に分割されるとする。図6の値Xは0.8,図4の最大速度maxRateは100Mbpsで,速度を減少させるときは速度を半分に,速度を増加させるときは最大速度maxRateの10%を現在の速度に加算して増加させるとする。また,送信端末10の初期送信速度は,最大速度maxRateとする。網内においては,受信端末T1宛のブロックB1のパケットP2と受信端末T1と受信端末T2宛のブロックB2のパケットP2がロスを経験するとする。
【0056】
送信端末10におけるブロック分割&位置情報付与部12は,データを受け取るとデータを2個のブロックに分割し,それぞれにB1,B2という位置情報を付与する。そして2個のブロックB1,B2をパケット分割&位置情報付与部13に送る。パケット分割&位置情報付与部13では,それぞれのブロックB1,B2を3個のパケットP1,P2,P3に分割し,それぞれにブロックB1のパケットP1,ブロックB1のパケットP2,ブロックB1のパケットP3,ブロックB2のパケットP1,ブロックB2のパケットP2,ブロックB2のパケットP3という位置情報を付与する。そしてそれぞれのパケットをパケット記憶部14に送る。
【0057】
パケット記憶部14では,送られてきたパケットをメモリなどの記憶媒体に記憶する。送信部15は,パケット記憶部14から現在の送信速度でパケットを読み出し,読み出したパケットを受信端末T1,T2,T3宛にマルチキャストで送信する。
【0058】
受信端末T1では,図2における受信部21は,ブロックB1のパケットP2が網内でロスしたので,ブロックB1のパケットP1とパケットP3を受信し,ロス確認部22に送る。ロス確認部22は,ブロックB1でパケットP2がロスしたことを確認し,その情報を送信部23に送る。送信部23は,ブロックB1のパケットP2がロスしたという情報を応答パケットとして送信端末10に送る。
【0059】
受信端末T2と受信端末T3では,図2における受信部21は,網内でロスしたパケットがないので,ブロックB1のパケットP1,P2,P3を受信し,ロス確認部22に送る。ロス確認部22は,ロスしたパケットがないことを確認し,その情報を送信部23に送る。送信部23は,ロスしたパケットがないという情報を応答パケットとして送信端末10に送る。
【0060】
送信端末10における受信部16は,ネットワークから送られてきた応答パケットを受信し,ロス情報計算部17に送る。ロス情報計算部17は,応答パケットに含まれているロスの情報を調べ,受信端末T1がブロックB1のパケットP2をロスしたことを確認し,その情報をパケット記憶部14とレート制御部18に通知する。パケット記憶部14に対しては,受信端末T1がブロックB1のパケットP2をロスしたことを通知する。レート制御部18に対しては,受信端末T1〜T3の中の一つがロスを経験したことを通知する。
【0061】
情報を受け取ったパケット記憶部14は,ブロックB1のパケットP2のみを記録し続け,正しく受信されたブロックB1のパケットP1とパケットP3は,記憶媒体から削除する。また,情報を受け取ったレート制御部18は,ロスを経験した端末数があるので,既に送信したデータ量を送るべき全データ量で割った値を計算する。この値は,
〔既に送信したデータ量〕÷〔送るべき全データ量〕
=3パケット÷6パケット=0.5
であり,予め定めたXの値は0.8なので,レート減少を送信部15に通知する。送信部15は,レート制御部18からレート減少の通知を受信したので,現在の送信速度を,
100M×0.5=50M(bps)
に減少させる。
【0062】
受信端末T1と受信端末T2では,図2における受信部21は,ブロックB2のパケットP2が網内でロスしたので,ブロックB2のパケットP1とパケットP3を受信し,ロス確認部22に送る。ロス確認部22は,ブロックB2でパケットP2がロスしたことを確認し,その情報を送信部23に送る。送信部23は,ブロックB2のパケットP2がロスしたという情報を応答パケットとして送信端末10に送る。
【0063】
受信端末T3では,図2における受信部21は,網内でロスしたパケットがないので,ブロックB2のパケットP1,P2,P3を受信し,ロス確認部22に送る。ロス確認部22は,ロスしたパケットがないことを確認し,その情報を送信部23に送る。送信部23は,ロスしたパケットがないという情報を応答パケットとして送信端末10に送る。この時点では,受信端末T3は,全てのデータパケットの受信を終了している。
【0064】
送信端末10における受信部16は,ネットワークから送られてきた応答パケットを受信し,ロス情報計算部17に送る。ロス情報計算部17は,応答パケットに含まれているロスの情報を調べ,受信端末T1と受信端末T2がブロックB2のパケットP2をロスしたことを確認し,その情報をパケット記憶部14とレート制御部18に通知する。
【0065】
パケット記憶部14に対しては,受信端末T1と受信端末T2がブロックB2のパケットP2をロスしたことを通知する。レート制御部18に対しては,受信端末T1〜T3の中の二つがロスを経験したことを通知する。
【0066】
情報を受け取ったパケット記憶部14は,ブロックB2のパケットP2のみを記録し続け,正しく受信されたブロックB2のパケットP1とパケットP3は,記憶媒体から削除する。情報を受け取ったレート制御部18は,ロスを経験した端末数があるので,既に送信したデータ量を送るべき全データ量で割った値を計算する。この値は,
〔既に送信したデータ量〕÷〔送るべき全データ量〕
=6パケット÷6パケット=1.0
であり,予め定めたXの値は0.8なので,送信部15に何も通知しない。
【0067】
送信端末10における送信部15は,データパケットを全て送り終えた後,パケット記憶部14にロスしたパケットがあるかを調べる。パケット記憶部14では,受信端末T1がブロックB1のパケットP2,受信端末T1と受信端末T2がブロックB2のパケットP2をロスしているので,送信部15は,それらを現在の送信速度で読み取り,ブロックB1のパケットP2を受信端末T1宛に送信し,ブロックB2のパケットP2を受信端末T1と受信端末T2宛に送信する。
【0068】
受信端末T1では,図2における受信部21は,ブロックB1のパケットP2を受信し,ロス確認部22に送る。ロス確認部22は,ロスしたパケットがないことを確認し,その情報を送信部23に送る。送信部23は,ロスしたパケットがないという情報を応答パケットとして送信端末10に送る。
【0069】
送信端末10における受信部16は,ネットワークから送られてきた応答パケットを受信し,ロス情報計算部17に送る。ロス情報計算部17は,応答パケットに含まれているロスの情報を調べ,ブロックB1の再送パケットでは,ロスしたパケットがないことを確認し,その情報をパケット記憶部14とレート制御部18に通知する。パケット記憶部14に対しては,ブロックB1の再送パケットでは,ロスしたパケットがないことを通知する。レート制御部18に対しては,ロスを経験した受信端末がないことを通知する。
【0070】
情報を受け取ったパケット記憶部14は,正しく受信されたブロックB1のパケットP2を記憶媒体から削除する。情報を受け取ったレート制御部18は,ロスを経験した端末数がゼロなので,レート増加を送信部15に通知する。送信部15は,レート制御部18からレート増加を受信したので,現在の送信速度を,
50M+100M×10%=60M(bps)
に増加させる。
【0071】
受信端末T1と受信端末T2では,図2における受信部21は,ブロックB2のパケットP2を受信し,ロス確認部22に送る。ロス確認部22は,ロスしたパケットがないことを確認し,その情報を送信部23に送る。送信部23は,ロスしたパケットがないという情報を応答パケットとして送信端末10に送る。
【0072】
送信端末10における受信部16は,ネットワークから送られてきた応答パケットを受信し,ロス情報計算部17に送る。ロス情報計算部17は,応答パケットに含まれているロスの情報を調べ,ブロックB2の再送パケットでは,ロスしたパケットがないことを確認し,その情報をパケット記憶部14とレート制御部18に通知する。パケット記憶部14に対しては,ブロックB2の再送パケットでは,ロスしたパケットがないことを通知する。レート制御部18に対しては,ロスを経験した受信端末がないことを通知する。
【0073】
情報を受け取ったパケット記憶部14は,正しく受信されたブロックB2のパケットP2を記憶媒体から削除する。情報を受け取ったレート制御部18は,ロスを経験した端末数がゼロなので,レート増加を送信部15に通知する。送信部15は,レート制御部18からレート増加を受信したので,現在の送信速度を,
60M+100M×10%=70M(bps)
に増加させる。
【0074】
送信端末10における送信部15は,再送の必要があるデータパケットを全て送り終えた後,パケット記憶部14にロスしたパケットがあるかを調べる。パケット記憶部14には,ロスしたパケットがないので,送信部15は送信を終える。
【0075】
以上の送信端末10および受信端末20における処理は,コンピュータとソフトウェアプログラムとによっても実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することも,ネットワークを通して提供することも可能である。
【図面の簡単な説明】
【0076】
【図1】送信端末の構成例を示すブロック図である。
【図2】受信端末の構成例を示すブロック図である。
【図3】実施例1のレート制御部におけるレート増加・減少を決定するフローチャートである。
【図4】送信部におけるレート増加・減少制御を示すフローチャートである。
【図5】本実施形態を説明するための図である。
【図6】実施例2のレート制御部におけるレート増加・減少を決定するフローチャートである。
【図7】パケットを正しく受信する毎にACKパケットを送信端末に返答する従来技術を示す図である。
【図8】送信すべきデータを複数のブロックに分割し,ブロック内に発生した複数のパケットロス情報を1つのパケットにまとめて返答する従来技術を示す図である。
【符号の説明】
【0077】
10 送信端末
11 データ格納部
12 ブロック分割&位置情報付与部
13 パケット分割&位置情報付与部
14 パケット記憶部
15 送信部
16 受信部
17 ロス情報計算部
18 レート制御部
20 受信端末
21 受信部
22 ロス確認部
23 送信部

【特許請求の範囲】
【請求項1】
データを送信する送信装置と,前記送信装置から送られたデータを受信する複数の受信装置とからなり,前記送信装置は,送信すべきデータを複数のブロックに分割し,前記受信装置は,ブロック内に発生した複数のパケットロス情報を1つの応答パケットにまとめて前記送信装置に返信する高信頼マルチキャストデータ配信システムにおいて,
前記送信装置は,
前記受信装置のいずれかからパケットロスが生じたことを示す応答パケットを受信したときに,そのパケットロス情報を記憶し,他の送信すべきデータの送信を継続する手段と,
前記他の送信すべきデータの送信が終了した後に,前記記憶したパケットロス情報に基づきロスしたパケットを再送する手段を備える
ことを特徴とする高信頼マルチキャストデータ配信システム。
【請求項2】
請求項1記載の高信頼マルチキャストデータ配信システムにおいて,
前記送信装置は,
前記受信装置からロス情報を含んだ応答パケットが返答されたとき,ロスを経験した受信装置の数が所定の数以上かどうかを判定するロス情報計算手段と,
ロスを経験した受信装置の数が所定の数以上の場合に,データ送信速度を低下させる制御を行うレート制御手段とを備える
ことを特徴とする高信頼マルチキャストデータ配信システム。
【請求項3】
請求項1の高信頼マルチキャストデータ配信システムにおいて,
前記送信装置は,
前記受信装置からロス情報を含んだ応答パケットが返答されたとき,既に送信したデータ量を送るべき全データ量で割った値が所定の値以下かどうかを判定するロス情報計算手段と,
既に送信したデータ量を送るべき全データ量で割った値が所定の値以下の場合に,データ送信速度を低下させる制御を行うレート制御手段とを備える
ことを特徴とする高信頼マルチキャストデータ配信システム。
【請求項4】
データを送信する送信装置と,前記送信装置から送られたデータを受信する複数の受信装置とからなり,前記送信装置は,送信すべきデータを複数のブロックに分割し,前記受信装置は,ブロック内に発生した複数のパケットロス情報を1つの応答パケットにまとめて前記送信装置に返信するシステムにおける高信頼マルチキャストデータ配信方法において,
前記送信装置は,
前記受信装置のいずれかからパケットロスが生じたことを示す応答パケットを受信したときに,そのパケットロス情報を記憶し,他の送信すべきデータの送信を継続し,
前記他の送信すべきデータの送信が終了した後に,前記記憶したパケットロス情報に基づきロスしたパケットを再送する
ことを特徴とする高信頼マルチキャストデータ配信方法。
【請求項5】
請求項4記載の高信頼マルチキャストデータ配信方法において,
前記送信装置は,
前記受信装置からロス情報を含んだ応答パケットが返答されたとき,ロスを経験した受信装置の数が所定の数以上かどうかを判定し,
ロスを経験した受信装置の数が所定の数以上の場合に,データ送信速度を低下させる制御を行う
ことを特徴とする高信頼マルチキャストデータ配信方法。
【請求項6】
請求項4の高信頼マルチキャストデータ配信方法において,
前記送信装置は,
前記受信装置からロス情報を含んだ応答パケットが返答されたとき,既に送信したデータ量を送るべき全データ量で割った値が所定の値以下かどうかを判定し,
既に送信したデータ量を送るべき全データ量で割った値が所定の値以下の場合に,データ送信速度を低下させる制御を行う
ことを特徴とする高信頼マルチキャストデータ配信方法。
【請求項7】
請求項4,請求項5または請求項6記載の高信頼マルチキャストデータ配信方法を,コンピュータに実行させるための高信頼マルチキャストデータ配信プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate