(57)【要約】【課題】ネットワーク上で受信応答がロストした場合でも受信応答の検出に時間が掛かる時間の増大を抑制すること。【解決手段】配信サーバがマルチキャスト方式で送信したデータを受信するデータ受信モジュール１０１と、マルチキャスト方式によって他のデータ受信装置が送信した、受信応答フレーム中に基づいて、他のデータ受信装置中の既にデータを受信している受信データ受信装置を検出する受信応答フレーム解析モジュール１０３と、データ受信モジュール１０１がデータを受信した場合に、受信応答フレーム解析モジュール１０３が検出したデータ受信装置および自機の情報を含む受信応答フレームを配信サーバおよび他のデータ受信装置に送信する受信応答送信フレーム送信モジュール１０５とを具備する。【選択図】    図３
2010130498.tif 000002
【特許請求の範囲】
【請求項１】
配信サーバから同報通信によって配信されたデータを受信するデータ受信装置であって、
前記配信サーバから第１データ受信装置を含む１台以上の他のデータ受信装置および前記データ受信装置に同報通信によって配信した前記データを受信するデータ受信手段と、
前記第１データ受信装置が前記データを受信した場合に、前記第１データ受信装置から、前記１台以上の他のデータ受信装置から前記第１データ受信装置を除いた他のデータ受信装置、前記配信サーバ、および前記データ受信装置に同報通信によって送信される、前記他のデータ受信装置中の既に前記データを受信している他のデータ受信装置を示すデータ受信装置情報を含む受信応答情報を受信する受信応答情報受信手段と、
前記受信応答情報受信手段が受信した前記受信応答情報中のデータ受信装置情報に基づいて、前記１台以上の他のデータ受信装置中の既に前記データを受信している他のデータ受信装置を検出する検出手段と、
前記データ受信手段が前記データを受信した場合に、前記検出手段が検出した前記他のデータ受信装置および前記データ受信装置を示すデータ受信装置情報を含む受信応答情報を、前記配信サーバおよび前記他のデータ受信装置に同報通信によって送信する受信応答送信手段と
を具備することを特徴とするデータ受信装置。
【請求項２】
前記データはマルチキャスト方式またはブロードキャスト方式で送信されていることを特徴とする請求項１に記載のデータ受信装置。
【請求項３】
前記受信応答送信手段は、前記受信応答情報をマルチキャスト方式またはブロードキャスト方式で送信することを特徴とする請求項１に記載のデータ受信装置。
【請求項４】
同報通信によってデータを送信するデータ送信装置であって、
第１データ受信装置を含む複数のデータ受信装置に同報通信によって前記データを送信するデータ送信手段と、
前記第１データ受信装置が前記データを受信した場合に、前記第１データ受信装置から、前記配信サーバおよび前記複数のデータ受信装置から前記第１データ受信装置を除いたデータ受信装置に同報通信によって送信される、前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置を示す第１データ受信装置情報を有する受信応答情報を受信する受信応答情報受信手段と、
前記受信応答情報受信手段が受信応答情報を受信する度に、前記受信応答情報に含まれる第１データ受信装置情報に基づいて、前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置を検出する検出手段と、
前記検出手段が前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置を検出する度に、前記検出手段が検出した前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置の情報に基づいて、前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置を示す第２データ受信装置を更新する第２データ受信装置更新手段と、
前記第２データ受信装置更新手段が前記第２データ受信装置情報を更新する度に、前記第２データ受信装置情報に基づいて前記データ送信手段が送信したデータを前記複数のデータ受信装置の全てが受信したか否かを判別する判別手段と
を具備することを特徴とするデータ送信装置。
【請求項５】
前記データ送信手段は、前記データをマルチキャスト方式またはブロードキャスト方式で送信することを特徴とする請求項４に記載のデータ送信装置。
【請求項６】
前記データは、データファイルを複数のデータブロックに分割したデータであり、
前記判別手段が前記複数のデータ受信装置の全てが受信したと判断した場合に、前記データ送信手段は、送信していないデータブロックを送信することを特徴とする請求項４に記載のデータ送信装置。
【請求項７】
データ送信装置から第１データ受信装置および第２受信装置を含む複数のデータ受信装置に同報通信によってデータを送信し、
前記第１データ受信装置が前記データを受信した場合に、前記第１データ受信装置から、前記複数のデータ受信装置から前記第１データ受信装置を除いたデータ受信装置、および前記配信サーバに送信した、前記複数のデータ受信装置中の既に前記データを受信している受信データ受信装置を示す第１データ受信装置情報を有する受信応答情報を前記第２データ受信装置によって受信し、
前記第２データ受信装置によって、前記第１受信応答情報に基づいて、前記複数のデータ処理装置中で既に前記データを受信しているデータ受信装置を検出し、
前記第２データ受信装置が前記データを受信した場合に、前記第２受信装置から、前記検出手段が検出したデータ受信装置および前記第２受信装置を示す第１データ受信装置情報を含む受信応答情報を前記配信サーバおよび前記第２受信装置を除く前記複数のデータ受信装置に送信し、
前記データ送信装置によって、前記複数のデータ受信装置の１台のデータ受信装置が送信した受信応答情報を受信し、
前記データ送信装置が前記受信応答情報を受信する度に、当該受信応答情報に含まれる第１データ受信装置情報に基づいて、前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置を検出し、
前記データ送信装置によって、前記データを受信しているデータ受信装置を検出する度に、前記検出手段が検出した前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置の情報に基づいて、前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置を示す第２データ受信装置情報を更新し、
前記データ送信装置によって、前記第２データ受信装置情報が更新される度に、前記第２データ受信装置情報に基づいて前記データ送信手段が送信したデータを前記複数のデータ受信装置の全てが受信したか否かを判別する
ことを特徴とするデータ配信方法。
【請求項８】
前記データ送信装置は、前記データをマルチキャスト方式またはブロードキャスト方式で送信することを特徴とする請求項７に記載のデータ配信方法。
【請求項９】
前記データ受信装置は、前記受信応答情報をマルチキャスト方式またはブロードキャスト方式で送信することを特徴とする請求項７に記載のデータ受信装置。
【請求項１０】
前記データは、データファイルを複数のデータブロックに分割したデータであり、
前記複数のデータ受信装置の全てが受信したと判断した場合に、前記データ送信装置は、送信していないデータブロックを送信することを特徴とする請求項７に記載のデータ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の宛先に送信されたデータファイルを受信するデータ受信装置、データファイルを複数の宛先に送信するデータ送信装置、および複数の宛先に送信されたデータファイルを受信するデータ配信方法に関する。
【背景技術】
【０００２】
複数のコンピュータにサーバからファイル配信する方式は種々あるが、その中にマルチキャスト方式がある。マルチキャスト方式は、同じファイルを必要とするコンピュータが複数存在する場合に用いられる。
【０００３】
マルチキャストアドレスに参加しているノードにおいて、機器固有情報の要求パケットに対して、自身の固有情報を含む受信応答パケットをマルチキャストにより送信する技術が開示されている（特許文献１参照）
【特許文献１】特開２００６−２１１６９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
通常、マルチキャスト方式では、配信したいデータファイルが大きいために、複数のデータブロックに分割して送信する。この時、データブロックを受信したコンピュータ（クライアント）ユニキャストで受信応答をサーバに応答していた。
【０００５】
この時の問題として、配信クライアントからの応答はＵＤＰを用いたユニキャストであるために、ネットワーク上で受信応答がロストした場合に受信応答の検出に時間が掛かり、データファイルの配信能力に大幅に低下することである。
【０００６】
ネットワーク上で受信応答がロストした場合の検出に時間が掛るのは、ＵＤＰであるが故の問題ではない。もし、配信をＵＤＰ（マルチキャスト）にして、受信応答だけをＴＣＰ（ユニキャスト）にすれば問題が解決するかと云えば、そうではなく、検出までに要する時間には大差がなく、得られるのはロスト検出処理をＴＣＰに任せられると云うことである。むしろ、配信サーバは全て配信クライアントとの間にＴＣＰコネクションを確立して管理する為に処理が複雑に、そして大変になるだけである。
【０００７】
本発明の目的は、ネットワーク上で受信応答がロストした場合でも受信応答の検出に時間が掛かる時間の増大を抑制することが可能なデータ受信装置、データ送信装置、およびデータ配信方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一例に係わるデータ受信装置は、配信サーバから同報通信によって配信されたデータを受信するデータ受信装置であって、前記配信サーバから第１データ受信装置を含む１台以上の他のデータ受信装置および前記データ受信装置に同報通信によって配信した前記データを受信するデータ受信手段と、前記第１データ受信装置が前記データを受信した場合に、前記第１データ受信装置から、前記１台以上の他のデータ受信装置から前記第１データ受信装置を除いた他のデータ受信装置、前記配信サーバ、および前記データ受信装置に同報通信によって送信される、前記他のデータ受信装置中の既に前記データを受信している他のデータ受信装置を示すデータ受信装置情報を含む受信応答情報を受信する受信応答情報受信手段と、前記受信応答情報受信手段が受信した前記受信応答情報中のデータ受信装置情報に基づいて、前記１台以上の他のデータ受信装置中の既に前記データを受信している他のデータ受信装置を検出する検出手段と、前記データ受信手段が前記データを受信した場合に、前記検出手段が検出した前記他のデータ受信装置および前記データ受信装置を示すデータ受信装置情報を含む受信応答情報を、前記配信サーバおよび前記他のデータ受信装置に同報通信によって送信する受信応答送信手段とを具備することを特徴とする。
【０００９】
本発明の一例に係わるデータ送信装置は、同報通信によってデータを送信するデータ送信装置であって、第１データ受信装置を含む複数のデータ受信装置に同報通信によって前記データを送信するデータ送信手段と、前記第１データ受信装置が前記データを受信した場合に、前記第１データ受信装置から、前記配信サーバおよび前記複数のデータ受信装置から前記第１データ受信装置を除いたデータ受信装置に同報通信によって送信される、前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置を示す第１データ受信装置情報を有する受信応答情報を受信する受信応答情報受信手段と、前記受信応答情報受信手段が受信応答情報を受信する度に、前記受信応答情報に含まれる第１データ受信装置情報に基づいて、前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置を検出する検出手段と、前記検出手段が前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置を検出する度に、前記検出手段が検出した前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置の情報に基づいて、前記複数のデータ受信装置中の既に前記データを受信しているデータ受信装置を示す第２データ受信装置を更新する第２データ受信装置更新手段と、前記第２データ受信装置更新手段が前記第２データ受信装置情報を更新する度に、前記第２データ受信装置情報に基づいて前記データ送信手段が送信したデータを前記複数のデータ受信装置の全てが受信したか否かを判別する判別手段と具備することを特徴とするデータ送信装置。
【発明の効果】
【００１０】
本発明によれば、ネットワーク上で受信応答がロストした場合でも受信応答の検出に時間が掛かる時間の増大を抑制することが可能になる。
【発明を実施するための最良の形態】
【００１１】
本発明の実施の形態を以下に図面を参照して説明する。
【００１２】
図１は、本発明の一実施形態に係わる配信システムの構成を示す図である。  
図１に示すように、配信システムは、第１サブネットＡと第２サブネットＢから構成されている。第１サブネットＡは、配信サーバ１、３台の第１１配信クライアントＡ１、第１２配信クライアントＡ１および第１３配信クライアントＡ３を備えている。第１サブネットＡと第２サブネットＢとの間はルータ３０によって相互に通信が可能である。第２サブネットＢは、４台の第２１配信クライアントＢ１、第２２配信クライアントＢ２、第２３配信クライアントＢ３、および第２４配信クライアントＢ４を備えている。
【００１３】
配信サーバ１は、データファイルを複数のデータブロックに分割して、各ブロックを同報通信であるマルチキャスト通信で複数のクライアントＡ１〜Ａ３，Ｂ１〜Ｂ４に配信する。配信サーバ１は、あるデータブロックを配信した後、データブロックを配信した全クライアントから応答を受信した場合に、次のブロックを配信する。
【００１４】
配信クライアントＡ１〜Ａ３，Ｂ１〜Ｂ４は、配信サーバ１が配信したデータブロックを受け取るクライアントである。配信クライアントＡ１〜Ａ３，Ｂ１〜Ｂ４は、配信サーバが配信したデータブロックを受け取ると、自機がデータブロックを受け取ったことを示す受信応答フレームを配信サーバに送信する。
【００１５】
従来、配信クライアントからの応答はＵＤＰ（User Datagram Protocol）を用いたユニキャスト通信であるために、ネットワーク上でロストした場合に応答の検出に時間が掛かり、配信性能が大幅に低下することがあった。本実施形態の配信システムは、応答の検出にかかる時間の短縮化を図っている。
【００１６】
本配信システムでは、配信クライアントＡ１〜Ａ３，Ｂ１〜Ｂ４が配信サーバ１からデータブロックを受信すると、受信応答フレームをマルチキャスト通信によって配信サーバ１および他の全ての配信クライアントに対して送信する。配信クライアントが送信する応答フレームの送信がマルチキャスト通信であるので、配信サーバは勿論のこと、他の配信クライアントもその応答を受信することになる。この時に、配信クライアントは、他の配信クライアントが受信した受信応答フレームに含まれる受信済みの他の配信クライアントの情報も含めた受信応答フレームを配信サーバに送信する。
【００１７】
図２にマルチキャスト配信マルチキャスト応答のプロトコルシーケンス例を示す。  
図２に示すように、配信クライアントＡ１〜Ａ３，Ｂ１〜Ｂ４がネットワークに接続すると、“CONNECT_REQ”を配信サーバ１に送信し、配信サーバ１に配信クライアントがネットワークに接続したことを通知する。配信サーバは、“CONNECT_REQ”を送信した配信クライアントに“CONNECT_REPLY”を送信し、“CONNECT_REQ”を受信したことを通知する。
【００１８】
その後、配信サーバ１は、データファイルの最初のブロックであるブロックデータ（block=0）を配信クライアントＡ１〜Ａ３，Ｂ１〜Ｂ４に配信する。
【００１９】
第１１配信クライアントＡ１がブロックデータブロックデータ（block=0）を受信すると、受信応答フレームを配信サーバ１、第１２配信クライアントＡ２、第１３配信クライアントＡ３、第２１配信クライアントＢ１、第２２配信クライアントＢ２、第２３配信クライアントＢ３、および第２４配信クライアントＢ４に対して送信する。第１１配信クライアントＡ１が送信した受信応答フレームに含まれるブロックデータ（block=0）を受信したクライアントの情報は、第１１配信クライアントＡ１のみである。
【００２０】
第１２配信クライアントＡ２がブロックデータブロックデータ（block=0）を受信すると、受信応答フレームを配信サーバ１、第１１配信クライアントＡ１、第１３配信クライアントＡ３、第２１配信クライアントＢ１、第２２配信クライアントＢ２、第２３配信クライアントＢ３、および第２４配信クライアントＢ４に対して送信する。第１１配信クライアントＡ１が送信した受信応答フレームに含まれるブロックデータ（block=0）を受信したクライアントの情報は、第１１配信クライアントＡ１および第１２配信クライアントＡ２である。
【００２１】
第１３配信クライアントＡ３がブロックデータブロックデータ（block=0）を受信すると、受信応答フレームを配信サーバ１、第１１配信クライアントＡ１、第１２配信クライアントＡ２、第２１配信クライアントＢ１、第２２配信クライアントＢ２、第２３配信クライアントＢ３、および第２４配信クライアントＢ４に対して送信する。第１１配信クライアントＡ１が送信した受信応答フレームに含まれるブロックデータ（block=0）を受信したクライアントの情報は、第１１配信クライアントＡ１、第１２配信クライアントＡ２、および第１３配信クライアントＡ３である。
【００２２】
第２１配信クライアントＢ１がブロックデータブロックデータ（block=0）を受信すると、受信応答フレームを配信サーバ１、第１１配信クライアントＡ１、第１２配信クライアントＡ２、第１３配信クライアントＡ３、第２２配信クライアントＢ２、第２３配信クライアントＢ３、および第２４配信クライアントＢ４に対して送信する。第１１配信クライアントＡ１が送信した受信応答フレームに含まれるブロックデータ（block=0）を受信したクライアントの情報は、第１１配信クライアントＡ１、第１２配信クライアントＡ２、第１３配信クライアントＡ３、および第２１配信クライアントＢ１である。
【００２３】
第２２配信クライアントＢ２がブロックデータブロックデータ（block=0）を受信すると、受信応答フレームを配信サーバ１、第１１配信クライアントＡ１、第１２配信クライアントＡ２、第１３配信クライアントＡ３、第２１配信クライアントＢ１、第２３配信クライアントＢ３、および第２４配信クライアントＢ４に対して送信する。第１１配信クライアントＡ１が送信した受信応答フレームに含まれるブロックデータ（block=0）を受信したクライアントの情報は、第１１配信クライアントＡ１、第１２配信クライアントＡ２、第１３配信クライアントＡ３、第２１配信クライアントＢ１、および第２２配信クライアントＢ２である。
【００２４】
第２３配信クライアントＢ３がブロックデータブロックデータ（block=0）を受信すると、受信応答フレームを配信サーバ１、第１１配信クライアントＡ１、第１２配信クライアントＡ２、第１３配信クライアントＡ３、第２１配信クライアントＢ１、第２２配信クライアントＢ２、および第２４配信クライアントＢ４に対して送信する。第１１配信クライアントＡ１が送信した受信応答フレームに含まれるブロックデータ（block=0）を受信したクライアントの情報は、第１１配信クライアントＡ１、第１２配信クライアントＡ２、第１３配信クライアントＡ３、第２１配信クライアントＢ１、第２２配信クライアントＢ２、および第２３配信クライアントＢ３である。
【００２５】
第２４配信クライアントＢ４がブロックデータブロックデータ（block=0）を受信すると、受信応答フレームを配信サーバ１、第１１配信クライアントＡ１、第１２配信クライアントＡ２、第１３配信クライアントＡ３、第２１配信クライアントＢ１、第２２配信クライアントＢ２、および第２３配信クライアントＢ３に対して送信する。第１１配信クライアントＡ１が送信した受信応答フレームに含まれるブロックデータ（block=0）を受信したクライアントの情報は、第１１配信クライアントＡ１、第１２配信クライアントＡ２、第１３配信クライアントＡ３、第２１配信クライアントＢ１、第２２配信クライアントＢ２、第２３配信クライアントＢ３、および第２４配信クライアントＢ４である。
【００２６】
以下に、応答の検出にかかる時間の短縮化を図った配信クライアントおよび配信サーバの構成を説明する。  
先ず、図３を参照して配信クライアントの構成を説明する。図３は、配信クライアントＡ１，Ａ２，Ａ３，Ｂ１，Ｂ２，Ｂ３，Ｂ４の構成を示すブロック図である。  
配信クライアントは、データ振分モジュール１００、データ受信モジュール１０１、受信応答フレーム解析モジュール１０３、受信応答フレーム生成モジュール１０４および受信応答フレーム送信モジュール１０５等を備えている。
【００２７】
データ振分モジュール１００は、受信したデータの種類を判別する。データブロックの場合、受信したデータをデータ受信モジュール１０１に渡し、受信応答フレーム生成モジュール１０４にデータブロックを受信した旨を通知する。また、受信応答フレームの場合、受信したデータを受信応答フレーム解析モジュール１０３に渡す。
【００２８】
データ受信モジュール１０１は、配信サーバが配信したデータブロックを結合し、元のデータファイルを復元する。
【００２９】
受信応答フレーム解析モジュール１０３は、データ振分モジュール１００から渡された受信応答フレームを解析して、データブロックを受信している配信クライアントを検出する。受信応答フレームには、応答を送信した配信クライアントが他の配信クライアントから応答を受信している場合に、応答を送信した配信クライアントが応答を受け取った他の配信クライアントの情報を含んでいる。
【００３０】
例えば、第２３配信クライアントＢ３が送信し、第２４配信クライアントＢ４が受信した受信応答フレームの例を図４に示す。この例は、第２４配信クライアントＢ４が、第１１配信クライアントＡ１，第１３配信クライアントＡ３，第２１配信クライアントＢ１，および第２３配信クライアントＢ３から応答フレームを受け取っている場合である。
【００３１】
図４に示すように、受信応答フレームは、ＤＡ（Destination Address、マルチキャストアドレス）、ＳＡ（Sender Address、送信元アドレス）、ＩＰヘッダ、ＵＤＰヘッダ、第１１配信クライアントＡ１のレスポンス、第１３配信クライアントＡ３のレスポンス、第２１配信クライアントＢ１のレスポンス、および第２３配信クライアントＢ３のレスポンスを有する。レスポンスとはクライアントがデータブロックを受信していることを示す情報である。つまり、この受信応答フレームは、第１１配信クライアントＡ１、第１３配信クライアントＡ３、第２１配信クライアントＢ１、および第２３配信クライアントＢ３が配信サーバ１が配信したデータブロックを受信していることを示している。
【００３２】
例えば、図４に示す受信応答フレームの場合、第１１配信クライアントＡ１、第１３配信クライアントＡ３、第２１配信クライアントＢ１、および第２３配信クライアントＢ３がデータブロックを受信していることを検出する。
【００３３】
受信応答フレーム解析モジュール１０３は、検出した配信クライアントを示すデータ受信クライアント情報を有する。データ受信クライアント情報は、図５に示すように、自機を除く全てのクライアントに対応するレジスタＣＲA1、ＣＲA2、ＣＲA3、ＣＲB1、ＣＲB2、ＣＲB3によって構成されている。なお、図５は、第２４配信クライアントＢ４の受信応答フレーム解析モジュール１０３が有するデータ受信クライアント情報であり、自機に対応するレジスタはない。
【００３４】
図５に示すように、各レジスタのデフォルトの値は、受信していないことを示す“０”である。受信応答フレーム解析モジュール１０３が、あるクライアントがデータブロックが受信していることを検出した場合、受信応答フレーム解析モジュール１０３は、データブロックを受信したクライアントに対応するレジスタの値と受信済みで有ることを示す“１”との論理和を演算し、レジスタの値を演算結果に更新する。この処理は、自機が受信応答フレームを配信サーバ１に送信するまで行われる。受信応答フレーム解析モジュール１０３は、自機が受信応答フレームを配信サーバ１に送信すると、各レジスタＣＲA1、ＣＲA2、ＣＲA3、ＣＲB1、ＣＲB2、ＣＲB3の値をリセットして“０”にする。
【００３５】
例えば、図４に示す受信応答フレームを第２４配信クライアントＢ４が受信した場合、データ受信クライアント情報は、図６に示すように、第１１配信クライアントＡ１、第１３配信クライアントＡ３、第２１配信クライアントＢ１、および第２３配信クライアントＢ３に対応するレジスタＣＲA1、ＣＲA3、ＣＲB1、ＣＲB3の値が１になる。
【００３６】
受信応答フレーム生成モジュール１０４は、自機のデータ受信モジュール１０１が配信サーバ１からデータブロックを受信すると、受信応答フレーム解析モジュール１０３が有する受信クライアント情報に示されているデータを受信しているクライアントの情報に基づいて、配信サーバ１に送信するための受信応答フレームを生成する。すなわち、例えば、第２４配信クライアントＢ４が、図４に示す受信応答フレームを受け取っていると、図７に示すように、図４に示す応答フレームに対して自機（第２４配信クライアント）のレスポンスを付加した受信応答フレームを生成する。
【００３７】
受信応答フレーム送信モジュール１０５は、受信応答フレーム生成モジュール１０４が生成した受信応答フレームを、マルチキャスト通信によって配信サーバ１および他の配信クライアントに対して送信する。例えば、第２４配信クライアントＢ４が図７に示す受信応答フレームをマルチキャスト通信によって送信する場合、第１サーバ１、第１１配信クライアントＡ１、第１２配信クライアントＡ２、第１３配信クライアントＡ３、第２１配信クライアントＢ１、第２２配信クライアントＢ２、および第２３配信クライアントＢ３に対して送信する。
【００３８】
次に、配信サーバの構成を図８を参照して説明する。図５は、配信サーバの構成を示すブロック図である。  
配信サーバは、記憶装置２０１、データ配信モジュール２０２、受信応答フレーム受信モジュール２０３、受信応答フレーム解析モジュール２０４、およびデータブロック受信判別モジュール２０５等を備えている。
【００３９】
記憶装置２０１は、各配信クライアントに配信するデータファイルを格納している。データ配信モジュール２０２は、記憶装置２０１に格納されているデータファイルを複数のデータブロックに分割し、分割されたデータブロックを順にマルチキャスト通信によって全配信クライアントに対して配信する。受信応答フレーム受信モジュール２０３は、各クライアントから送信された受信応答フレームを受信する。受信応答フレーム解析モジュール２０４は、受信応答フレーム受信モジュール２０３が受信した応答フレームを解析して、データ配信モジュール２０２が配信したデータブロックを受信した配信クライアントを検出する。
【００４０】
受信応答フレーム解析モジュール２０４は、検出した配信クライアントを示すデータ受信クライアント情報を有する。データ受信クライアント情報は、図９に示すように、全てのクライアントに対応するレジスタＳＲA1、ＳＲA2、ＳＲA3、ＳＲB1、ＳＲB2、ＳＲB3、ＳＲB4によって構成されている。
【００４１】
各レジスタのデフォルトの値は、図９に示すように、受信していないことを示す“０”である。受信応答フレーム解析モジュール２０４が、あるクライアントがデータブロックが受信していることを検出した場合、受信応答フレーム解析モジュール２０４は、データブロックを受信したクライアントに対応するレジスタの値と受信済みで有ることを示す“１”との論理和を演算し、レジスタの値を演算結果に更新する。
【００４２】
例えば、配信サーバ１が図４に示す受信応答フレームを受信した場合、データ受信クライアント情報は図１０に示すように、第１１配信クライアントＡ１に対応するレジスタＳＲA1の値、第１３配信クライアントＡ３に対応するレジスタＳＲA3の値、第２１配信クライアントＢ１に対応するレジスタＳＲB1の値、および第２３配信クライアントＢ３に対応するレジスタＳＲB3の値が“１”である。この状態で配信サーバ１が図７に示す受信応答フレームを受信すると、データ受信クライアント情報は図１１に示すように、第１１配信クライアントＡ１に対応するレジスタＳＲA1の値、第１３配信クライアントＡ３に対応するレジスタＳＲA3の値、第２１配信クライアントＢ１に対応するレジスタＳＲB1の値、第２３配信クライアントＢ３に対応するレジスタＳＲB3の値、および第２４配信クライアントＢ４に対応するレジスタＳＲB4の値が“１”である。
【００４３】
データブロック受信判別モジュール２０５は、データ受信クライアント情報から、データブロックを配信した全てのクライアントがデータブロックを受け取っているか否かを判別する。
【００４４】
データブロック受信判別モジュール２０５は、受信応答フレーム生成モジュール１０４がデータ受信クライアント情報を更新した後、全てのレジスタの値の論理積を演算する。そして、論理積の演算結果が“１”であれば、全てのクライアントがデータブロックを受信していると判断し、データブロック配信モジュールに次のデータブロックの配信を指示し、全レジスタの値をリセットして“０”にする。
【００４５】
データブロック受信判別モジュール２０５は、全てのクライアントがデータブロックを受信していると判断すると、データ配信モジュール２０２に次のデータブロックを配信するように指示する。また、データ配信モジュール２０２は、受信応答フレーム解析モジュール２０４にデータ受信クライアント情報の各レジスタの値をリセットして“０”にするように指示する。
【００４６】
次に、配信クライアントが配信中に行う処理の手順を図１２を参照して説明する。  
配信クライアントがデータを受信すると、データ振分モジュール１００がデータの種類を検出し、受信したデータがデータブロックであるか否かを判別する(ステップＳ１１)。データブロックであると判断した場合（ステップＳ１１のＹｅｓ）、データ振分モジュール１００は、受信したデータをデータ受信モジュール１０１に渡すと共に、受信応答フレーム生成モジュール１０４に受信応答フレームの生成を指示する。受信応答フレーム生成モジュール１０４は、データ受信クライアント情報を取得する（ステップＳ１３）。受信応答フレーム生成モジュール１０４は、データ受信クライアント情報に記録されているデータブロックを受信しているクライアントおよび自機の情報を有する受信応答フレームを生成する（ステップＳ１４）。受信応答フレーム生成モジュール１０４は、受信応答フレーム解析モジュール１０３にデータ受信クライアント情報のリセットを指示する。受信応答フレーム解析モジュール１０３はデータ受信クライアント情報をリセットして、各レジスタ値を“０”にする（ステップＳ１５）。また、受信応答フレーム生成モジュール１０４は、生成した受信応答フレームを受信応答フレーム送信モジュール１０５に渡す。受信応答フレーム送信モジュール１０５は、受信応答フレームをマルチキャスト通信によって配信サーバ１および他の配信クライアントに対して送信する（ステップＳ１６）。
【００４７】
また、ステップＳ１１においてデータブロックではないと判断した場合（ステップＳ１１のＮｏ）、データ振分モジュール１００は、データが受信応答フレームであるか否かを判別する(ステップＳ２１)。受信応答フレームではないと判断した場合(ステップＳ２１のＮｏ)、データ振分モジュール１００は受信したデータに対応する処理を行う。受信応答フレームであると判断した場合(ステップＳ２１のＹｅｓ)、データ振分モジュール１００は受信したデータを受信応答フレーム解析モジュール１０３に渡す。受信応答フレーム解析モジュール１０３は、受信応答フレームを解析して、既にデータブロックを検出している配信クライアントを検出する。そして、検出したクライアントに基づいて、データ授受シンクライアント情報を更新する（ステップＳ２２）。
【００４８】
次に、配信サーバ１が配信中に行う処理の手順を図１３を参照して説明する。  
先ず、データ配信モジュール２０２はｎを０とする(ステップＳ３１)。データ配信モジュール２０２は、データファイル中のｎ番目のデータブロックをマルチキャストによって配信クライアントＡ１，Ａ２，Ａ３，Ｂ１，Ｂ２，Ｂ３，Ｂ４に送信する（ステップＳ３２）。送信後、受信応答フレーム受信モジュール２０３が、配信クライアントＡ１，Ａ２，Ａ３，Ｂ１，Ｂ２，Ｂ３，Ｂ４の何れかの受信応答フレーム受信モジュール２０３から受信応答フレームを受信する（Ｓ３３）。受信応答フレーム受信モジュール２０３は、受信した受信応答フレームを受信応答フレーム解析モジュール２０４に渡す。受信応答フレーム解析モジュール２０４は、受信応答フレームを解析して既にｎ番目のデータブロックを受信している配信クライアントを検出し、データ受信クライアント情報を更新する（ステップＳ３４）。受信応答フレーム解析モジュール２０４はデータ受信クライアント情報を更新したことをデータブロック受信判別モジュール２０５に通知する。データブロック受信判別モジュール２０５は、データ受信クライアント情報に基づいてｎ番目のデータブロックを送信した全ての配信クライアントがデータを受け取っているか否かを判別する（ステップＳ３５）。全ての配信クライアントがデータを受け取っていないと判断した場合（ステップＳ３５のＮｏ）、ステップＳ３３〜ステップＳ３５の処理が順次実行される。全ての配信クライアントがデータを受け取っていると判断した場合（ステップＳ３５のＹｅｓ）、データブロック受信判別モジュール２０５は受信応答フレーム解析モジュール２０４にデータ受信クライアント情報のリセットを指示する。受信応答フレーム解析モジュール２０４は、全レジスタＳＲA1，ＳＲA3，ＳＲB1，ＳＲB2，ＳＲB3，ＳＲB4の値を“0”にしてデータ受信クライアント情報をリセットする（ステップＳ３６）。また、データブロック受信判別モジュール２０５は、全データファイルの送信が終了したか否かを判別する（ステップＳ３７）。終了していないと判断した場合（ステップＳ３７のＮｏ）、データブロック受信判別モジュール２０５はデータ配信モジュール２０２に次のデータブロックの配信を指示する。データ廃止のジュールはｎ＋１を演算し、演算された値を新たなｎの値とする（ステップＳ３８）。終了した判断した場合（ステップＳ３７のＹｅｓ）、データファイルの送信に係わる処理が終了する。
【００４９】
上述した処理を行うと、配信クライアントの情報がネットワーク上でロストして配信サーバに届かない場合でも救済され、高品質高性能な配信システムが構築できる。例えば、第１１配信クライアントＡ１が送信した応答フレームを配信サーバが何らかの理由で受信しなかった場合でも、第２４配信クライアントＢ４が受信していれば、第２４配信クライアントＢ４の応答フレームに第１１配信クライアントＡ１の応答フレームが含まれるので、これを配信サーバが受信することで、配信クライアントＡ１の送達確認がなされる。
【００５０】
なお、上述した実施形態では、配信クライアントはそれまでに既に受信している全ての他のマルチキャスト応答を自分の応答フレームに含める動作仕様であったが、性能向上／負荷軽減などの理由で、受信応答フレームを送信する配信クライアントは受信済みの他の配信クライアントの情報も含めて配信サーバに通知するか、それとも自分の受信応答だけで他の配信クライアントの情報は含めないで配信サーバに通知するかを選択しても良い。
【００５１】
この機能を利用することで、代替受信応答が可能になる。例えば、第１２配信クライアントＡ２は常に自分の応答に第１１配信クライアントＡ１の応答を含めてしまうような動作である。
【００５２】
配信クライアントは他の配信クライアントの受信応答フレーム情報から配信サーバが送信したパケットがどこでロストしたかを推測するなどが可能になり、ネットワーク負荷などを考慮した最適な配信システムを構築することが可能になる。
【００５３】
配信サーバが利用するマルチキャストアドレスと、配信クライアントが利用するマルチキャストアドレスは同一であっても、異なっても、どちらでも良い。
【００５４】
配信サーバの送信と配信クライアントの応答は、マルチキャストでなくブロードキャストでも良い。
【００５５】
受信応答フレームを送信する配信クライアントは受信済みの他の配信クライアントの情報も含めて配信サーバに通知するか、それとも自分の受信応答だけで他の配信クライアントの情報は含めないで配信サーバに通知するかを選択できるようにしても良い。
【００５６】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施形態に係わる配信システムの構成を示す図。
【図２】本発明の一実施形態に係わるマルチキャスト配信マルチキャスト応答のプロトコルシーケンス例を示す図。
【図３】本発明の一実施形態に係わる、配信クライアントの構成を示すブロック図。
【図４】第２３配信クライアントが送信し、第２４配信クライアントが受信した受信応答フレームの例を示す図。
【図５】データ受信クライアント情報の例を示す図。
【図６】図４に示す受信応答フレームに対応するデータ受信クライアント情報の例を示す図。
【図７】第２４配信クライアントが生成する受信応答フレームの例を示す図。
【図８】本発明の一実施形態に係わる配信クライアントの構成を示すブロック図。
【図９】データ受信クライアント情報の例を示す図。
【図１０】配信サーバが図４に示す受信応答フレームを受信した場合のデータ受信クライアント情報の例を示す図。
【図１１】配信サーバが図７に示す受信応答フレームを受信した場合のデータ受信クライアント情報の例を示す図。
【図１２】配信クライアントが配信中に行う処理の手順を示す図。
【図１３】配信サーバが配信中に行う処理の手順を示す図。
【符号の説明】
【００５８】
１…配信サーバ，３０…ルータ，１００…データ振分モジュール，１０１…データ受信モジュール，１０３…受信応答フレーム解析モジュール，１０４…受信応答フレーム生成モジュール，１０５…受信応答フレーム送信モジュール，２０１…記憶装置，２０２…データ配信モジュール，２０３…受信応答フレーム受信モジュール，２０４…受信応答フレーム解析モジュール，２０５…データブロック受信判別モジュール。
【図１】
2010130498.tif 000003
【図２】
2010130498.tif 000004
【図３】
2010130498.tif 000005
【図４】
2010130498.tif 000006
【図５】
2010130498.tif 000007
【図６】
2010130498.tif 000008
【図７】
2010130498.tif 000009
【図８】
2010130498.tif 000010
【図９】
2010130498.tif 000011
【図１０】
2010130498.tif 000012
【図１１】
2010130498.tif 000013
【図１２】
2010130498.tif 000014
【図１３】
2010130498.tif 000015