(57)【要約】【課題】マルチキャストとユニキャストを組み合わせたシステムでのファイル配信に際し、マルチキャストで配信装置のピーク負荷を抑制しながら、ユニキャストでのデータ補完を抑制する。【解決手段】配信装置１０は、配信先の数：ｎを監視し、新規ファイル配信要求を受信した場合、更新後のｎの値＜規定値：Ｎのとき、新規配信先へユニキャストでの受信を指示し、ｎ≧Ｎのとき、新規配信先へマルチキャストでの受信を指示し、また、先に指示したユニキャストを全て中止する。中止対象の全受信装置２０へマルチキャストでの受信を指示し、マルチキャストを要する受信装置２０の存在中、マルチキャストを繰り返す。受信装置２０は、マルチキャストに途中参加した場合、次回マルチキャストでの補完を優先する。中止対象の受信装置２０は、中止までに受信済みのデータをユニキャストでの補完よりも優先してファイル復元に用いる。【選択図】図１
2014131156.tif 000002
【特許請求の範囲】
【請求項１】
配信装置が、マルチキャストでのデータ送信を担当するマルチキャスト配信部と、ユニキャストでのデータ送信を担当するユニキャスト配信部とを備え、マルチキャストに参加した受信装置が、マルチキャストで未受信のファイル部分をユニキャストで補完する配信システムにおいて、
前記受信装置が、ファイル全部の受信を確認すると受信完了通知を前記配信装置へ送信する処理と、マルチキャストに途中参加した場合、次回マルチキャストでの補完をユニキャストでの補完よりも優先する処理とを実行し、
前記配信装置が、配信先の数：ｎを監視し、新規のファイル配信要求又は前記受信完了通知を受信するとｎの値を更新する処理と、新規のファイル配信要求を受信した場合、更新後のｎの値と規定値：Ｎを比較する処理と、当該比較でｎ＜Ｎのとき、当該新規の配信先の前記受信装置へユニキャストでの受信を指示する処理と、当該比較でｎ≧Ｎのとき、当該新規の配信先の前記受信装置へマルチキャストでの受信を指示し、前記指示したユニキャストを全て中止する処理と、当該中止対象になった全ての前記受信装置へマルチキャストでの受信を指示する処理と、マルチキャストを要する前記受信装置の存在中、マルチキャストでのファイル送信を繰り返す処理とを実行し、
前記中止対象になった受信装置が、中止までに受信済みのデータを前記ユニキャストでの補完よりも優先してファイル復元に用いることを特徴とする配信システム。
【請求項２】
前記マルチキャスト配信部が、ファイル先頭及び末尾の一方から他方へ順次に分割データを１回ずつ送信し、前記配信装置からユニキャストでの受信を指示された前記受信装置が、ファイル先頭又は末尾の前記一方と反対の他方から順に前記ユニキャスト配信部へ要求し、前記中止対象の受信装置が、前記中止までに受信済みのデータをマルチキャストよりも優先してファイル復元に用いる請求項１に記載の配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、配信装置からネットワーク経由で受信装置へデータ送信を行う配信システムに関する。
【背景技術】
【０００２】
複数の受信装置に同じファイルを配信する方式としては、ＵＤＰ（User Datagram Protocol）によるマルチキャストと、ＴＣＰ（Transmission Control Protocol）によるユニキャストがある。
【０００３】
ユニキャストの場合、ファイルをダウンロードするタイミングは受信装置側に依存しており、配信装置と受信装置間で個々にＴＣＰセッションを確立して配信することになる。ＴＣＰによるため、ファイルを一部ロスする心配がなく、受信装置はファイル全部の受信が可能である。
【０００４】
一般に、配信装置に新しいファイルが登録された直後は、大量のアクセスが集中する。それからしばらく時間が経過すると、急激にアクセス数が減少する。ユニキャストのみを用いる配信システムの場合、どれだけ平時の負荷が低い場合でも、配信装置側はピーク時のセッション数に耐えられるだけの設計が必要であり、構築コストの増加に繋がっている。
【０００５】
一方、マルチキャストの場合、複数の受信装置に対して同時に同じデータを送信するため、配信装置の負荷軽減を図ることは可能だが、受信タイミングがずれた受信装置は、ファイル全部を受信することができない。また、マルチキャストの通信プロトコルはＵＤＰなので、信頼性に欠け、ファイルの一部ロスが起こり得る。配信するファイルが映像ファイルや音声ファイルのように不完全な受信を許容できるものの場合、一部ロスをある程度許容することは可能だが、ファームウェアのように完全な受信を要するものの場合、一部ロスは許されず、マルチキャストのみを用いる配信システムは不向きである。
【０００６】
近年では、配信装置の負荷軽減と、マルチキャストで受信できなかったデータの補完とを実現するため、マルチキャストとユニキャストを組み合わせた配信システムが提案されている。この種の配信システムでは、配信装置が、基本的にマルチキャストでファイルを配信し、受信装置が、マルチキャストで受信できなかったデータをユニキャストで補完し、マルチキャストで得たデータと、ユニキャストで得たデータを用いてファイルの復元を行えるようになっている（例えば、特許文献１〜３）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１３０２７７号公報
【特許文献２】特開２００４−１３５２３９号公報
【特許文献３】特開２００９−１７０９８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、この種の配信システムでは、マルチキャストによるダウンロードの開始タイミングを各受信装置間で一致させることができない。これは、受信装置間でファイル配信要求の時期が異なったり、配信装置と受信装置間の通信状況に依存したりするためである。また、ファームウェアのダウンロードのように受信装置の内部タイマの状態にも依存する場合、受信装置間で内部タイマの状態に差があるため、これも不一致の原因になる。
【０００９】
特許文献３のように、マルチキャストに途中参加した受信装置が当該参加回のマルチキャスト終了後、途中参加までに送信済みのデータをユニキャストで補完するシステムにすると、ユニキャストのデータ補完が大量に発生し、かえって配信装置に必要なリソースを大きくする可能性がある。
【００１０】
そこで、この発明が解決しようとする課題は、マルチキャストとユニキャストを組み合わせたシステムでのファイル配信に際し、マルチキャストで配信装置のピーク負荷を抑制しながら、ユニキャストでのデータ補完を抑制することである。
【課題を解決するための手段】
【００１１】
上記の課題を解決するこの発明は、配信装置が、マルチキャストでのデータ送信を担当するマルチキャスト配信部と、ユニキャストでのデータ送信を担当するユニキャスト配信部とを備え、マルチキャストに参加した受信装置が、マルチキャストで未受信のファイル部分をユニキャストで補完する配信システムを前提にしている。
前記受信装置は、ファイル全部の受信を確認すると受信完了通知を前記配信装置へ送信する。また、マルチキャストに途中参加した場合、次回マルチキャストでの補完をユニキャストでの補完よりも優先する。
前記配信装置は、配信先の数：ｎを監視し、新規のファイル配信要求又は前記受信完了通知を受信するとｎの値を更新する。新規のファイル配信要求を受信した場合、更新後のｎの値と規定値：Ｎを比較する。当該比較でｎ＜Ｎのとき、当該新規の配信先の前記受信装置へユニキャストでの受信を指示する。当該比較でｎ≧Ｎのとき、当該新規の配信先の前記受信装置へマルチキャストでの受信を指示し、前記指示したユニキャストを全て中止する。当該中止対象になった全ての前記受信装置へマルチキャストでの受信を指示する。マルチキャストを要する前記受信装置の存在中、マルチキャストでのファイル送信を繰り返す。
前記中止対象の受信装置は、中止までに受信済みのデータをユニキャストでの補完よりも優先してファイル復元に用いる。
ここで、配信先の数：ｎとは、配信装置が同じ配信用のファイルについてファイル配信要求に応答し、かつ受信完了通知を受信していない受信装置の総数のことをいう。また、規定値：Ｎとは、しきい値である。ｎ、Ｎは、それぞれ配信装置のメモリに保持される。配信装置の管理者は、配信装置のピーク負荷が問題にならないようにＮを予め配信装置へ入力し、新規ファイルの配信受け付けを開始することができる。
【００１２】
この発明によれば、受信装置からの新規のファイル配信要求と受信完了通知とによって、配信装置側で配信先の数：ｎを把握することができる。ピーク負荷の心配がないｎ＜Ｎのとき、配信装置が新規の配信先にユニキャストでの受信を指示するため、この配信先ではパケットロスのないファイル受信が進行する。ユニキャストのみでファイル配信を実行中の状態でｎ＝Ｎを満足すると、配信装置は、先に指示したユニキャストでのファイル配信（最大でＮ−１台分のユニキャストのセッション）を全て中止し、以後、ｎ≧Ｎを満足する限り、新規の配信先にマルチキャストでの受信を指示するため、配信先の数がＮから幾ら増えても、新規にユニキャストでのファイル送信が発生することはない。これにより、配信装置のユニキャスト配信部のピーク負荷が問題になる前、マルチキャストでピーク負荷を抑制することができる。
また、中止対象になった全ての受信装置、及びｎ≧Ｎを満足する新規の配信先の受信装置は、マルチキャストに途中参加した場合、次回マルチキャストでの補完をユニキャストでの補完よりも優先し、配信装置は、マルチキャストを要する受信装置の存在中、マルチキャストでのファイル送信を繰り返す。したがって、マルチキャストに途中参加した受信装置は、先ず、次回のマルチキャストで補完を試み、それでも未受信のファイル部分のみをユニキャストで補完することになる。これにより、マルチキャストでピーク負荷を抑えている状況下、マルチキャストへの途中参加に起因したユニキャストでのデータ補完を抑制することができる。
また、マルチキャストでピーク負荷を抑え始める最大台数（Ｎ−１台）の中止対象発生時は、中止までに受信済みのデータと、途中参加したマルチキャストで配信済みのデータとが重複することも期待できる。重複が発生した中止対象の受信装置は、ユニキャストでの補完に優先して受信済みのデータをファイル復元に用いるため、この分、マルチキャストでピーク負荷を抑えている状況下、ユニキャストでの補完を抑制することも可能である。
【００１３】
前記マルチキャスト配信部が、ファイル先頭又は末尾の一方から順に送信し、前記配信装置からユニキャストでの受信を指示された受信装置が、ファイル先頭又は末尾の前記一方と反対の他方から順に前記ユニキャスト配信部へ要求し、前記中止対象の受信装置が、前記中止までに受信済みのデータをマルチキャストよりも優先してファイル復元に用いるようにしてもよい。この場合、ユニキャストでのファイル送信と、マルチキャストでのファイル送信がファイル両端から進行する関係なので、中止対象の受信装置において、中止までにユニキャストで受信済みのデータと、マルチキャストで受信するデータとの重複を防止することができる。したがって、中止対象の受信装置では、次回のマルチキャストに最後まで参加することなく、ファイル復元を終えたり、ユニキャストの補完を始めたりすることができる。
【発明の効果】
【００１４】
上述のように、この発明は、マルチキャストとユニキャストを組み合わせたシステムでのファイル配信に際し、規定値の設定に基いたマルチキャストでピーク負荷を抑制し、この抑制状況下、繰り返されるマルチキャストでのファイル受信を優先、及びマルチキャスト開始前にユニキャストで受信済みのデータを優先したファイル復元により、マルチキャストへの途中参加に起因したユニキャストでのデータ補完を抑制することができる。
【図面の簡単な説明】
【００１５】
【図１】（ａ）は実施形態に係る配信システムのデータ送信制御部の新規配信要求受信時における動作フロー図、（ｂ）は同データ送信制御部の受信完了通知受信時における動作フロー図
【図２】実施形態に係る配信システムのネットワーク構成を示す概念図
【図３】実施形態に係る配信システムの機能ブロック図
【図４】図３の配信情報管理テーブルの概念図
【図５】図３のデータ受信制御部の新規配信要求送信時における動作フロー図
【図６】実施形態に係る配信システムのユニキャストでのファイル配信の概要を示すブロック図
【図７】（ａ）は図３のマルチキャスト受信部の動作フロー図、（ｂ）は図３のマルチキャスト配信部の動作フロー図
【図８】実施形態に係る配信システムのマルチキャストでのファイル配信の概要を示すブロック図
【図９】図３の受信データ管理部の動作フロー図
【図１０】実施形態に係る配信システムのユニキャストでの補完時における動作フロー図
【図１１】図３のデータ受信制御部のファイル受信完了時における動作フロー図
【図１２】実施形態のマルチキャストの送信順序変更例を示す概念図
【発明を実施するための形態】
【００１６】
以下、この発明に係る配信システムの実施形態（以下、単に「この配信システム」と呼ぶ）を添付図面に基づいて説明する。このシステムは、図２に示すように、配信装置１０と、複数の受信装置２０と、配信装置１０と複数の受信装置２０を接続するためのネットワーク３０とからなる。
【００１７】
配信装置１０は、受信装置２０に提供する資源を管理する１台以上のコンピュータ機器からなる。受信装置２０は、ネットワーク３０を介して配信装置１０の資源を利用するコンピュータ機器からなる。配信装置１０に対してクライアントとなる受信装置２０は、例えば、ホームゲートウェイ（ＨＧＷ）、ルータなどの中継機器、移動通信端末、エンドユーザのＰＣ端末などの通信機器が挙げられる。ネットワーク３０は、ＮＧＮ（Next Generation Network）、バックボーン通信網、ＩＳＰ網といった１又は複数のＩＰ網からなり、閉域網であるかインターネットであるかを問わない。
【００１８】
配信装置１０は、図３、図４に示すように、配信用のファイル（Ａ、Ｂ、Ｃ・・・）を配信データ蓄積部１１に記憶し、配信情報管理テーブル１２で管理する。配信用のファイルは、受信装置２０側で実行されるプログラム、受信装置２０側のプログラムで処理されるプログラム以外のもののどちらでもよい。例えば、受信装置２０側で実行されるプログラムとして、ＨＧＷに組み込むファームウェアが挙げられる。
【００１９】
配信情報管理テーブル１２は、受信装置２０からの配信要求中のファイル識別子に基いて特定されたファイルを配信するために用いるマルチキャストアドレス、ユニキャストアドレス、及びファイルサイズを管理する。ユニキャストアドレスは、ＩＰアドレス、ＩＰアドレスとポート番号の組み合わせ、ＵＲＬのいずれでもよい。また、ユニキャストアドレスやマルチキャストアドレスは、ファイル識別子に対して予め唯一指定されていてもよく、ファイルの配信要求が発生した都度、配信情報管理テーブル１２が、利用されていないアドレスを選択して割り当ててもよい。
【００２０】
配信装置１０は、マルチキャストでのデータ送信を担当するマルチキャスト配信部１３と、ユニキャストでのデータ送信を担当するユニキャスト配信部１４と、ファイル配信要求元へマルチキャスト又はユニキャストを指示するデータ送信制御部１５と、配信データ蓄積部１１に記憶されたファイルからマルチキャスト用のデータフレームを生成するマルチキャスト配信データ生成部１６とを備える。
【００２１】
受信装置２０は、マルチキャストでのデータ受信を担当するマルチキャスト受信部２１と、ユニキャストでのデータ受信を担当するユニキャスト受信部２２と、データ送信制御部１５と交信するデータ受信制御部２３と、マルチキャスト受信部２１で受信したデータを蓄積するマルチキャストデータ受信バッファ２４と、ユニキャスト受信部２２で受信したデータを蓄積するユニキャストデータ受信バッファ２５と、これらバッファ２４、２５に蓄積されたデータを用いて配信対象のファイルを復元する受信データ管理部２６とを備える。
【００２２】
配信データ蓄積部１１〜マルチキャスト配信データ生成部１６、及びマルチキャスト受信部２１〜受信データ管理部２６は、対応の配信装置１０、受信装置２０の演算処理装置でコンピュータプログラムを実行することにより、対応の配信装置１０、受信装置２０に備わる演算処理装置、記憶装置、ネットワークインターフェイスといったハードウェア資源上に構成される。
【００２３】
データ送信制御部１５は、配信装置１０の稼働中、配信先の数：ｎを監視する。データ送信制御部１５は、ｎの初期値を零として、配下の所定のメモリ領域に保持する。ｎは、データ送信制御部１５が同じファイルについてファイル配信要求に応答し、かつ受信完了通知を受信していない受信装置２０の総数である。この総数は、配信情報管理テーブル１２で管理している配信用のファイル（Ａ、Ｂ、Ｃ・・・）ごとに別個に保持される。
【００２４】
図１（ａ）、（ｂ）に示すように、データ送信制御部１５は、データ受信制御部２３から新規のファイル配信要求又はファイルの受信完了通知を受信すると（Ｓ１、Ｓ２）、ｎを更新する（Ｓ３、Ｓ４）。新規のファイル配信要求には、配信対象とするファイルの識別子が含まれている。ファイルの受信完了通知は、データ送信制御部１５にファイル配信要求を受信されて配信先となった１台の受信装置２０が配信を要求したファイル全部を受信し終えたことを示す信号になっている。
【００２５】
データ送信制御部１５は、新規のファイル配信要求を受信した場合（Ｓ１）、更新後のｎの値と規定値：Ｎの大小を比較する（Ｓ５）。Ｎは、データ送信制御部１５の配下のメモリ領域に予め保持されている。Ｎは、新規の配信用のファイルが配信データ蓄積部１１に登録されるとき、そのファイルに対応付けてＮがデータ送信制御部１５に入力される。
【００２６】
この比較でｎ＜Ｎ（ＹＥＳ）のとき、データ送信制御部１５は、当該更新のトリガとなった新規の配信先のデータ受信制御部２３へユニキャストでの受信を指示する（Ｓ６）。この指示は、新規のファイル配信要求に対する応答中に含められる。この指示中には、ユニキャスト配信部１４にアクセスするためのユニキャストアドレスが含められる。データ送信制御部１５は、そのユニキャストアドレスを配信情報管理テーブル１２から取得する。
【００２７】
一方、（Ｓ５）の比較でｎ≧Ｎ（Ｎｏ）のとき、データ送信制御部１５は、配信対象のファイルがマルチキャスト中か否かを判断する（Ｓ７）。この判断は、例えば、データ送信制御部１５が、配信対象のファイルに指定のマルチキャストアドレスを配信情報管理テーブル１２から取得し、マルチキャスト配信部１３に当該マルチキャストアドレスへの送信の有無を問い合わせ、この応答を得ることで行う。
【００２８】
（Ｓ７）でマルチキャスト中でないとき（Ｎｏ）、データ送信制御部１５は、新規の配信先のデータ受信制御部２３へマルチキャストでの受信を指示する（Ｓ８）。この指示は、新規のファイル配信要求に対する応答中に含められる。この指示中には、マルチキャスト配信部１３にアクセスするためのマルチキャストアドレスと、ユニキャスト配信部１４にアクセスするためのユニキャストアドレスと、配信対象のファイルサイズとが含められる。データ送信制御部１５は、マルチキャストアドレス等を配信情報管理テーブル１２から取得する。そのユニキャストアドレスは、受信装置２０がマルチキャストに所定の参加をした後、ユニキャストでの補完が必要な場合に使用される。
【００２９】
データ送信制御部１５は、マルチキャスト配信部１３から、（Ｓ８）で指示したマルチキャストアドレスに対するマルチキャストの開始を通知されると、同じ配信対象のファイルについて（Ｓ７）で指示した全ての受信装置２０へのユニキャストを中止する。また、データ送信制御部１５は、中止対象の受信装置２０のデータ受信制御部２３へマルチキャストでの受信を指示する（Ｓ９）。この指示中には、マルチキャスト配信部１３にアクセスするためのマルチキャストアドレスと、配信対象のファイルサイズとが含められる。データ送信制御部１５は、マルチキャストアドレス等を配信情報管理テーブル１２から取得する。この中止は、例えば、該当のユニキャストアドレスで確立している持続的セッションを全て切断することをユニキャスト配信部１４へ命令することで行う。この指示は、例えば、セッションの切断前に当該セッションを利用してユニキャスト受信部２２へ送信し、ユニキャスト受信部２２が指示をデータ受信制御部２３へ知らせることで行う。
【００３０】
一方、（Ｓ７）でマルチキャスト中のとき（Ｙｅｓ）、データ送信制御部１５は、新規の配信先のデータ受信制御部２３へ実施中のマルチキャストでの受信を指示する（Ｓ１０）。この指示は、新規のファイル配信要求に対する応答中に含められる。この指示中には、マルチキャスト配信部１３にアクセスするためのマルチキャストアドレスと、ユニキャスト配信部１４にアクセスするためのユニキャストアドレスと、配信対象のファイルサイズとが含められる。データ送信制御部１５は、マルチキャストアドレス等を配信情報管理テーブル１２から取得する。そのユニキャストアドレスは、受信装置２０がマルチキャストに所定の参加をした後、ユニキャストでの補完が必要な場合に使用される。
【００３１】
図５に示すように、データ受信制御部２３は、ファイル識別子を特定した新規のファイル配信要求を、ユーザ入力、内部タイマ作動等の受信装置依存のトリガによって生成し、データ送信制御部１５に送信する（Ｓ２１）。なお、データ受信制御部２３がネットワーク３０を介してデータ送信制御部１５にアクセスするためのアドレスは、予め配信装置１０からの通知、ユーザ入力等によってデータ受信制御部２３に与えられている。
【００３２】
データ受信制御部２３は、ファイル配信要求に対するデータ送信制御部１５からの応答中の指示を読み取る（Ｓ２２）。ここで、ユニキャストでの受信を指示されている場合、ユニキャストでのファイル受信処理を開始する（Ｓ２３）。その後、ユニキャストの中止及びマルチキャストでの受信を指示されたか否かを判断し（Ｓ２４）、Ｎｏの場合、ユニキャストでのファイル受信を継続し（Ｓ２５）、（Ｓ２４）に戻る。一方、Ｙｅｓの場合、マルチキャストでのファイル受信処理を開始する（Ｓ２６）。また、データ受信制御部２３は、（Ｓ２２）で、マルチキャストでの受信を指示されている場合、マルチキャストでのファイル受信処理を開始する（Ｓ２７）。ファイル受信処理（Ｓ２３）、（Ｓ２６）、（Ｓ２７）は受信データ管理部２６へ要求される。これを受け付けた受信データ管理部２６は、対応のアドレス、ファイルサイズ等を取得し、対応のマルチキャスト受信部２１又はユニキャスト受信部２２に受信開始を要求する。
【００３３】
ユニキャスト受信部２２は、（Ｓ２３）で受信データ管理部２６から受信開始を要求されると、ユニキャストでのファイル受信を開始する。すなわち、図６に示すように、ユニキャスト配信部１４とＨＴＴＰ１．１に従った持続的なセッションを確立する。この後、ユニキャスト受信部２２は、配信対象のファイルの識別子、ファイルの先頭から何バイト目以降を要求するかを指定するオフセット（ｏｆｆｓｅｔ）、要求するデータサイズ（ｌｅｎｇｔｈ）をユニキャスト配信部１４に送信する。ユニキャスト配信部１４は、要求されたファイルのデータを送信する。ユニキャスト受信部２２は、ファイル先頭のオフセット１、データ長１のデータ１からオフセット順にデータ受信を進め、受信したデータのオフセット、データ長、データをユニキャストデータ受信バッファ２５に書き込む。全てのオフセットのデータを受信できた場合、セッションを切断して、ユニキャストでの受信処理を終了する。
【００３４】
図７（ａ）、図８に示すように、マルチキャスト受信部２１は、前述の（Ｓ２６）、（Ｓ２７）に基いて受信データ管理部２６から受信開始を要求されると、マルチキャストでのファイル受信を開始する。すなわち、マルチキャスト受信部２１は、受信データ管理部２６からマルチキャストアドレス、配信対象のファイルの識別子、ファイルサイズを取得し（Ｓ３１）、マルチキャストアドレス及びファイルの識別子の少なくとも一方を含んだマルチキャスト受信開始要求をマルチキャスト配信部１３へ送信する（Ｓ３２）。
【００３５】
図７（ｂ）、図８に示すように、マルチキャスト配信部１３は、（Ｓ３２）のマルチキャスト受信開始要求を受信すると、このマルチキャスト要求元である受信装置２０を記憶し（Ｓ４１）、当該マルチキャストアドレスへファイル送信中か否かを確認する（Ｓ４２）。ここで、Ｎｏの場合、そのマルチキャスト受信開始要求中のマルチキャストアドレスに対応するファイル識別子を配信情報管理テーブル１２から取得し、マルチキャスト配信データ生成部１６へファイル識別子を含んだフレーム生成要求を渡す（Ｓ４３）。なお、マルチキャスト受信開始要求中にファイル識別子のみを含むようにする場合、そのファイル識別子を読み取り、フレーム生成要求を渡せばよい。
【００３６】
マルチキャスト配信データ生成部１６は、フレーム生成要求中のファイル識別子に該当するファイルを配信データ蓄積部１１から取り出し、パケット単位に分割してオフセットを付与し、生成したフレームをマルチキャスト配信部１３へ渡す（Ｓ４４）。オフセットは、配信対象のファイルの先頭から何バイト目以降のデータであるかを示す情報である。オフセット、データ長は、ユニキャストと共通化されている。
【００３７】
マルチキャスト配信部１３は、当該マルチキャスト要求元の全ての受信装置２０からマルチキャスト受信終了要求を受信したか否かを判断する（Ｓ４５）。ここで、Ｎｏの場合、マルチキャスト配信部１３は、（Ｓ４４）で入手したフレームをオフセット順に、つまりファイルの先頭から順にマルチキャストで送信し（Ｓ４６）、フレームを送信のたび、全てのオフセットを配信し終えたか判断する（Ｓ４７）。ここで、Ｎｏの場合、（Ｓ４５）に戻り、Ｙｅｓの場合、次回のマルチキャストを開始する（Ｓ４８）。これは、１回のマルチキャストが終了し、再びファイル先頭であるオフセット１のフレームからオフセット順にマルチキャストで送信することを意味する。
【００３８】
（Ｓ４８）を実行すると、（Ｓ４５）に戻る。（Ｓ４５）でＹｅｓの場合、当該マルチキャストアドレスについてのマルチキャストを終了する（Ｓ４９）。なお、マルチキャスト配信部１３は、マルチキャスト受信終了要求を受信すると、この要求元の受信装置２０を（Ｓ４１）の記憶から削除する。
【００３９】
図７（ａ）、図８に示すように、マルチキャスト受信部２１は、（Ｓ３２）の後、一定時間以上、パケット未受信か否かを判断する（Ｓ３３）。ここで、Ｎｏの場合、マルチキャストパケットの受信後（Ｓ３４）、受信したパケット中のオフセットを取得し（Ｓ３５）、データ長、データをマルチキャストデータ受信バッファ２４に書き込む（Ｓ３６）。次に、マルチキャスト受信部２１は、マルチキャストに１周参加したか否かを判断する（Ｓ３７）。１周とは、（Ｓ３２）後に最初に受信したマルチキャストパケットの（Ｓ３５）で取得したオフセット（基準オフセットと呼ぶ）と、基準オフセットの１つ手前のオフセットを含んだパケット、又は基準オフセット以上のオフセットを含んだパケットの２回目の受信が最初に発生したことに相当する。（Ｓ３７）での判断は、マルチキャストデータ受信バッファ２４に蓄積されたオフセット、受信データ管理部２６から取得したファイルサイズを適宜に活用して行うことができ、かつマルチキャストへの途中参加やパケットロスが発生した場合でも少なくとも１周参加が保障された手段であればよい。例えば、マルチキャストデータ受信バッファ２４に蓄積されたオフセットを閲覧し、前述の１つ手前のオフセット及び２回目のオフセットのいずれかの検索で判断してもよいし、オフセット、データ長及びファイルサイズを利用した計算に基いて判断してもよい。計算方法として、オフセット＋データ長≧ファイルサイズが挙げられる。（Ｓ３７）でＮｏの場合、（Ｓ３３）に戻る。また、（Ｓ３７）又は（Ｓ３３）でＹｅｓの場合、マルチキャスト受信部２１は、マルチキャスト受信終了要求をマルチキャスト配信部１３に送信し、受信データ管理部２６へマルチキャストでの受信終了を通知し（Ｓ３８）、マルチキャストでのファイル受信を終了する。
【００４０】
前述の（Ｓ２３）、（Ｓ２６）、（Ｓ２７）でデータ受信制御部２３からユニキャスト又はマルチキャストでの受信開始を要求された受信データ管理部２６は、図９に示すように、その受信に必要なアドレス、ファイルサイズ等をデータ受信制御部２３から取得する（Ｓ５１）。次に、受信データ管理部２６は、マルチキャストデータ受信バッファ２４とユニキャストデータ受信バッファ２５をクリアした後（Ｓ５２）、対応のマルチキャスト受信部２１又はユニキャスト受信部２２へ受信開始を要求する（Ｓ５３）。
【００４１】
この後、受信データ管理部２６は、マルチキャストで受信中か否かを判断する（Ｓ５４）。ここで、受信データ管理部２６は、（Ｓ５３）でマルチキャスト受信部２１へ受信開始を要求し、かつマルチキャスト受信部２１から前述の（Ｓ３８）における受信終了を通知されていない場合、Ｙｅｓと判断し、（Ｓ５４）の処理を繰り返す。一方、受信データ管理部２６は、（Ｓ５３）でユニキャスト受信部２２へ受信開始を要求している場合、又は（Ｓ５３）でマルチキャスト受信部２１へ受信開始を要求し、かつ前述の（Ｓ３８）でマルチキャスト受信部２１から受信終了を通知されている場合、Ｎｏと判断し、マルチキャストデータ受信バッファ２４とユニキャストデータ受信バッファ２５のいずれにも存在しない未受信のデータのオフセットとデータ長を検索する（Ｓ５５）。
【００４２】
次に、受信データ管理部２６は、未受信のデータの有無から、ファイル復元に必要なデータを全て受信したか否かを判断する（Ｓ５６）。ここで、Ｎｏの場合、受信データ管理部２６は、ユニキャスト受信部２２へ未受信のオフセットから指定されたデータ長のデータを受信するように要求し（Ｓ５７）、そのまま（Ｓ５５）へ戻る。一方、（Ｓ５６）でＹｅｓの場合、受信データ管理部２６は、オフセット順に結合して配信対象のファイルを復元し、データ受信制御部２３にファイルの全データ受信完了を通知して終了する（Ｓ５８）。
【００４３】
（Ｓ５７）の要求を受けたユニキャスト受信部２２は、図１０（ａ）に示すように、ユニキャストでの補完を開始し、当該要求に含まれたユニキャストアドレス、指定のオフセット、データ長を取得し（Ｓ６１）、取得したユニキャストアドレスからユニキャスト配信部１４を特定し（Ｓ６２）、そのユニキャスト配信部１４とセッションを確立し（Ｓ６３）、オフセット、データ長を指定してデータを要求する（Ｓ６４）。図１０（ｂ）に示すように、ユニキャスト配信部１４は、（Ｓ６３）のセッションを確立すると（Ｓ７１）、このセッションの宛先ユニキャストアドレスに対応するファイル識別子を配信情報管理テーブル１２から取得する（Ｓ７２）。（Ｓ６４）で要求されたオフセット、データ長のデータ要求を受信すると（Ｓ７３）、そのファイル識別子に該当するファイルのうち、先頭からオフセット以降のデータをデータ長だけ取り出し（Ｓ７４）、取り出したデータをユニキャスト受信部２２へ送信し（Ｓ７５）、そのセッションを切断する。一方、ユニキャスト受信部２２は、図１０（ａ）に示すように、（Ｓ６４）の後、要求したデータをユニキャスト配信部１４から受信すると（Ｓ６５）、そのセッションを切断し（Ｓ６６）、ユニキャストデータ受信バッファ２５へ書き込み（Ｓ６７）、１つの未受信データの補完を終了する。
【００４４】
図１１に示すように、データ受信制御部２３は、（Ｓ５８）の通知を受信すると（Ｓ８１）、受信完了通知をデータ送信制御部１５に送信する（Ｓ８２）。
【００４５】
この実施形態の配信システムによれば、受信装置２０からの新規のファイル配信要求（Ｓ２１、Ｓ１）と受信完了通知（Ｓ８２、Ｓ２）とによって、配信装置１０側で配信先の数：ｎを把握することができる（Ｓ３、Ｓ４）。ピーク負荷の心配がないｎ＜Ｎのとき（Ｓ５）、配信装置１０が新規の配信先にユニキャストでの受信を指示するため（Ｓ６）、これに従った受信装置２０ではパケットロスのないファイル受信が進行する（Ｓ２３、Ｓ２４、Ｓ２５、図６）。ユニキャストのみでファイル配信を実行中の状態でｎ＝Ｎを満足する新規のファイル配信要求を受信すると（Ｓ２１、Ｓ１、Ｓ５、Ｓ７）と、配信装置１０は、先に指示したユニキャストでのファイル配信（最大でＮ−１台分のユニキャストのセッション）を全て中止し（Ｓ９）、以後、ｎ≧Ｎを満足する限り、新規の配信先にマルチキャストでの受信を指示し（Ｓ８、Ｓ１０）、該当する全ての受信装置２０がこれに従うため（Ｓ２２、Ｓ２４、Ｓ２６、Ｓ２７）、配信先の数がＮから幾ら増えても、新規にユニキャストでのファイル送信が発生することはない。これにより、配信装置１０のユニキャスト配信部１４のピーク負荷が問題になる前、マルチキャストでピーク負荷を抑制することができる。
【００４６】
また、中止対象になった全ての受信装置２０（Ｓ９）、及びｎ≧Ｎを満足する新規の配信先の受信装置２０（Ｓ８、Ｓ１０）は、マルチキャストに途中参加した場合、必ず１周の参加を行い（Ｓ３７、Ｓ３８）、次回マルチキャストでの補完をユニキャストでの補完よりも優先し（Ｓ５４〜Ｓ５７）、配信装置１０は、マルチキャストを要する受信装置２０の存在中、マルチキャストでのファイル送信を繰り返す（Ｓ３７、Ｓ３８、Ｓ４１、Ｓ４２、Ｓ４５〜Ｓ４８）。したがって、マルチキャストに途中参加した受信装置２０は、次回のマルチキャストで補完を試みても未受信であったファイル部分（すなわち、１周のマルチキャスト中のパケットロス分）のみをユニキャストで補完することになる。これにより、マルチキャストでピーク負荷を抑えている状況下、マルチキャストへの途中参加に起因したユニキャストでのデータ補完を抑制することができる。
【００４７】
また、マルチキャストでピーク負荷を抑え始める最大台数（Ｎ−１）の中止対象発生時は、中止までに受信済みのデータと、途中参加したマルチキャストで配信済みのデータや、次回のマルチキャストで補完できなかったデータとが重複することも期待できる。重複が発生した中止対象の受信装置は、ユニキャストでの補完に優先して受信済みのデータをファイル復元に用いるため（Ｓ５５〜Ｓ５７）、この分、マルチキャストでピーク負荷を抑えている状況下、ユニキャストでの補完を抑制することも可能である。
【００４８】
例えば、この実施形態では、先のユニキャストでのファイル受信がファイル先頭から進行し（Ｓ２３、図６）、マルチキャストでのファイル送信において図１２中に送信順序（１）の矢線で示すように、ファイル先頭のデータ１から順に末尾のデータ（Ｚ）まで送信するため、途中参加までに当該参加回のマルチキャストで送信済みのデータと、ユニキャストで受信済みのデータとが重複する。したがって、途中参加時点でマルチキャストが先のユニキャストで受信済みの範囲を超えて進んでいなければ、マルチキャスト中のパケットロス分のみを補完するだけで済む（Ｓ５４〜Ｓ５７）。また、途中参加時点でマルチキャストが先のユニキャストで受信済みの範囲を超えて進んでいたとしても、先のユニキャストで受信したデータは、全て補完に使うことができ（Ｓ５４〜Ｓ５７）、この分、ユニキャストで補完せずに済む。したがって、先のユニキャストを中止された全受信装置２０について、途中参加に起因したユニキャストでの補完を抑制することができる。このことは、配信装置１０のピーク負荷を抑えるため、特に、ユニキャストでの補完の発生自体、補完のデータ量を抑制したい場合に好適である。
【００４９】
また、マルチキャストへの参加は、途中参加時であれ（Ｓ９、Ｓ２６）、当初からの参加であれ（Ｓ１０、Ｓ２７）、１周に限っているので（Ｓ３７、Ｓ３８）、最大でも次回のマルチキャストに参加するだけである。したがって、配信装置１０のピーク負荷を抑えつつ、受信装置２０がユニキャストでのパケットロス分の補完を可及的に速く開始することができるので（Ｓ５４〜Ｓ５７）、ファイル全部の受信まで不必要に時間を掛けることがない。
【００５０】
なお、マルチキャストの開始時期は、この実施形態のように最初にｎ＝Ｎとなってマルチキャストでの受信を指示した受信装置からのマルチキャスト配信要求に応じて開始してもよいし、ファイル配信の開始後、最初にｎ＝Ｎとなってマルチキャストを指示することをトリガとして開始してもよい。これらの場合は、不必要なマルチキャストの発生を防止することができる。また、ファイルを配信情報管理テーブルに登録する配信開始当初から繰り返してもよい。この場合は、マルチキャスト受信開始要求、マルチキャスト受信終了要求に関する処理を省略することができる（Ｓ３７、Ｓ３８）。
【００５１】
また、この実施形態では、ユニキャストでのファイル送信をファイル先頭（データ１）から開始し（図６）、マルチキャストでのファイル送信を図１２中の送信順序（２）の矢線で示すように、ファイル末尾（データ（Ｚ））から順にデータ１まで送信するように変更してもよい。送信順序（２）の場合、ユニキャストでのファイル送信と、マルチキャストでのファイル送信がファイル両端から進行する関係なので、中止対象の受信装置において、中止までにユニキャストで受信済みのデータと、マルチキャストで受信するデータの重複を防止することができる。したがって、中止対象の受信装置では、次回のマルチキャストに最後まで参加することなく、ファイル復元を終えたり、ユニキャストの補完を始めたりすることができる。このことは、配信装置のピーク負荷を抑えるため、特に、ユニキャストでの補完の集中を抑制したい場合に好適である。この発明の技術的範囲は、上述の実施形態に限定されず、特許請求の範囲の記載に基く技術的思想の範囲内での全ての変更を含むものである。
【符号の説明】
【００５２】
１０  配信装置
１１  配信データ蓄積部
１２  配信情報管理テーブル
１３  マルチキャスト配信部
１４  ユニキャスト配信部
１５  データ送信制御部
１６  マルチキャスト配信データ生成部
２０  受信装置
２１  マルチキャスト受信部
２２  ユニキャスト受信部
２３  データ受信制御部
２４  マルチキャストデータ受信バッファ
２５  ユニキャストデータ受信バッファ
２６  受信データ管理部
３０  ネットワーク
【図１】
2014131156.tif 000003
【図２】
2014131156.tif 000004
【図３】
2014131156.tif 000005
【図４】
2014131156.tif 000006
【図５】
2014131156.tif 000007
【図６】
2014131156.tif 000008
【図７】
2014131156.tif 000009
【図８】
2014131156.tif 000010
【図９】
2014131156.tif 000011
【図１０】
2014131156.tif 000012
【図１１】
2014131156.tif 000013
【図１２】
2014131156.tif 000014