(57)【要約】ディジタル・コンテンツ配信システム、ディジタル・コンテンツ配信方法、該方法を実行するためのプログラムおよび該プログラムを記憶したコンピュータ可読な記録媒体、およびそのためのサーバおよびクライアントを提供する。本発明のディジタル・コンテンツ配信システムは、第１のネットワーク１２と第２のネットワーク２２とを介してディジタル・コンテンツを配信し、サーバ１４は、第１のネットワーク１２に接続され、第２のネットワーク２２には、ディジタル・コンテンツを受信して表示または再生するためのクライアント２０が接続されている。サーバ１４は、保持したディジタル・コンテンツを複数のパケットに分割し、第２のネットワーク２２に対してディジタル・コンテンツを構成するための最小単位のパケットを送信し、クライアント２０は、クライアント２０がサーバ１４から受信した最小単位のパケットと、第２のネットワークを構成する他のクライアントから受信したパケットとを使用して、クライアント２０に対してディジタル・コンテンツを保持させるための手段を含む。
2003105421.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを配信するためのシステムであって、前記第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される前記第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記サーバは、保持したディジタル・コンテンツを複数のパケットに分割して前記第２のネットワークに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信する手段を含み、前記第２のネットワークを構成する前記クライアントは、前記クライアントが前記サーバから受信した前記最小単位のパケットと、前記第２のネットワークを構成する他のクライアントから受信したパケットとを使用して、前記第２のネットワーク内に接続されたすべての前記クライアントに対して前記ディジタル・コンテンツを保持させるための手段を含む
ディジタル・コンテンツ配信システム。
【請求項２】
前記サーバは、前記最小単位のパケットを、前記第２のネットワークの複数のクライアントに動的に割り当てる手段を含む、請求項１に記載のディジタル・コンテンツ配信システム。
【請求項３】
前記最小単位のパケットを前記第２のネットワークの複数のクライアントに割り当てる手段は、前記クライアントのオーバーヘッドを決定するための手段と、前記オーバーヘッドに関連して前記クライアントの少なくとも１つを中間ノードとして動的に選択し、当該中間ノードに宛てて前記パケットを割り当てる手段とを含む、請求項３に記載のディジタル・コンテンツ配信システム。
【請求項４】
前記クライアントのオーバーヘッドを決定するための手段は、前記サーバが前記最小単位のパケットを所定のクライアントに宛てて送信した時刻と、前記所定のクライアントが前記最小単位のパケットの受信通知を発行した時刻との時間差を決定するための手段を含む、請求項３に記載のディジタル・コンテンツ配信システム。
【請求項５】
第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記クライアントに配信するための方法であって、ディジタル・コンテンツを複数のパケットに分割して前記サーバから前記クライアントに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信するステップと、前記第２のネットワークを構成するクライアントが前記サーバから前記最小単位のパケットを受信するステップと、前記第２のネットワークを構成する他のクライアントから前記ディジタル・コンテンツを再構成するためのパケットを受信するステップと、前記サーバから送信された前記最小単位のパケットと、前記他のクライアントから受信したパケットとを使用して、前記第２のネットワーク内に接続されたすべての前記クライアントに対して前記ディジタル・コンテンツを保持させるステップとを含むディジタル・コンテンツ配信方法。
【請求項６】
前記最小単位のパケットを送信するステップは、前記サーバから前記最小単位のパケットを、前記第２のネットワークの複数のクライアントに動的に割り当てるステップを含む、請求項５に記載のディジタル・コンテンツ配信方法。
【請求項７】
前記最小単位のパケットを前記第２のネットワークの複数のクライアントに割り当てるステップは、前記クライアントのオーバーヘッドを決定するステップと、前記オーバーヘッドを前記サーバに保持させるステップと、前記保持されたオーバーヘッドに関連して中間ノードとなるクライアントを選択するステップと、前記中間ノードとして選択されたクライアントに宛てて前記最小単位のパケットを割り当てるステップとを含む、請求項５に記載のディジタル・コンテンツ配信方法。
【請求項８】
前記クライアントのオーバーヘッドを決定するステップは、前記サーバが前記最小単位のパケットを所定のクライアントに宛てて送信した時刻を前記サーバに登録するステップと、前記所定のクライアントが前記パケットの受信通知を発行した時刻を前記サーバに登録するステップと、前記送信した時刻と前記発行した時刻との時間差を算出するステップとを含む、請求項７に記載のディジタル・コンテンツ配信方法。
【請求項９】
第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するための宛先が指定されたクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記宛先に宛てて配信する方法を実行するためのサーバ・プロセスを実行するプログラムであって、前記プログラムは、ディジタル・コンテンツを複数のパケットに分割するステップと、最小単位のパケットを、前記サーバから前記第２のネットワークの複数の宛先に動的に割り当てるステップと、前記サーバから前記第１のネットワークを介して前記第２のネットワークに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信するステップと、を含み、前記割り当てステップは、前記宛先からの受信通知を受信するステップと、前記受信通知を前記サーバに保持させるステップと、前記保持された受信通知を使用して関連して中間ノードとなる宛先を選択するステップと、前記中間ノードとして選択された宛先に宛てて前記最小単位のパケットを割り当てるステップとを実行させるプログラム。
【請求項１０】
前記宛先を選択するステップは、前記サーバが前記最小単位のパケットを所定の宛先に宛てて送信した時刻をサーバに登録するステップと、前記最小単位のパケットの前記受信通知が発行された時刻を前記サーバに登録するステップと、前記送信した時刻と前記受信した時刻との時間差を算出するステップとを含む、請求項９に記載のプログラム。
【請求項１１】
第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するための宛先が指定されたクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記宛先に宛てて配信する方法を実行するためのサーバ・プロセスを実行するプログラムが記録されたコンピュータ可読な記録媒体であって、前記プログラムは、ディジタル・コンテンツを複数のパケットに分割するステップと、前記サーバから最小単位のパケットを、前記第２のネットワークの複数の宛先に動的に割り当てるステップと、前記サーバから前記第１のネットワークを介して前記第２のネットワークに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信するステップと、を含み、前記割り当てステップは、前記宛先からの受信通知を受信するステップと、前記受信通知を前記サーバに保持させるステップと、前記保持された受信通知を使用して関連して中間ノードとなる宛先を選択するステップと、前記中間ノードとして選択された宛先に宛てて前記最小単位のパケットを割り当てるステップとを実行させる記録媒体。
【請求項１２】
前記宛先を選択するステップは、前記サーバが前記最小単位のパケットを所定の宛先に宛てて送信した時刻をサーバに登録するステップと、前記最小単位のパケットの前記受信通知が発行された時刻を前記サーバに登録するステップと、前記送信した時刻と前記受信した時刻との時間差を算出するステップとを含む、請求項１１に記載のプログラム。
【請求項１３】
さらに、前記宛先を選択するステップは、前記サーバに宛先リストを保持させるステップと、前記宛先リストと前記受信通知の発行された時刻とを使用して宛先を選択するステップと、前記宛先リストを定期的に更新するステップとを含む請求項１２に記載のプログラム。
【請求項１４】
第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記クライアントに配信するための方法を実行するクライアント・プロセスを実行させるためのプログラムであって、該プログラムは、前記クライアントに対し、前記第１のネットワークを介して複数のパケットに分割されたディジタル・コンテンツを構成する最小単位のパケットを受信するステップと、前記第２のネットワークを構成する他のクライアントから前記ディジタル・コンテンツを再構成するためのパケットを受信するステップと、前記第１のネットワークを介して受信した前記最小単位のパケットと、前記他のクライアントから受信したパケットとを使用して前記第２のネットワークに含まれる前記クライアントに対して前記ディジタル・コンテンツを保持させるステップとを実行させるプログラム。
【請求項１５】
前記最小単位のパケットを受信したクライアントに対してさらに、前記最小単位のパケットを受信した時刻を含む受信通知を生成するステップを実行させる、請求項１４に記載のプログラム。
【請求項１６】
さらに、前記クライアントに対して、前記最小単位のパケットと、前記他のクライアントから受信したパケットとを識別するステップを実行させる、請求項１４に記載のプログラム。
【請求項１７】
さらに、前記第２のネットワークを構成するメンバーのリストを生成するステップと、前記リストを、前記第２のネットワークにクライアントが追加または削除された場合に更新するステップとを含む、請求項１４に記載のプログラム。
【請求項１８】
第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記クライアントに配信するための方法を実行するクライアント・プロセスを実行させるためのプログラムが記録されたコンピュータ可読な記録媒体であって、該プログラムは、前記クライアントに対し、前記第１のネットワークを介して複数のパケットに分割されたディジタル・コンテンツを構成する最小単位のパケットを受信するステップと、前記第２のネットワークを構成する他のクライアントから前記ディジタル・コンテンツを再構成するためのパケットを受信するステップと、前記第１のネットワークを介して受信した前記最小単位のパケットと、前記他のクライアントから受信したパケットとを使用して前記第２のネットワークに含まれる前記クライアントに対して前記ディジタル・コンテンツを保持させるステップとを実行させる記録媒体。
【請求項１９】
前記最小単位のパケットを受信したクライアントに対してさらに、前記最小単位のパケットを受信した時刻を含む受信通知を生成するステップを実行させる、請求項１８に記載の記録媒体。
【請求項２０】
さらに、前記クライアントに対して、前記最小単位のパケットと、前記他のクライアントから受信したパケットとを識別するステップを実行させる、請求項１８に記載の記録媒体。
【請求項２１】
さらに、前記第２のネットワークを構成するメンバーのリストを生成するステップと、前記リストを、前記第２のネットワークにクライアントが追加または削除された場合に更新するステップとを含む、請求項１８に記載の記録媒体。
【請求項２２】
第１のネットワークに接続され、ディジタル・コンテンツを前記第１のネットワークに接続される第２のネットワークに対して提供するためのサーバであって、該サーバは、ディジタル・コンテンツを複数のパケットに分割するための手段と、前記第２のネットワークに含まれる宛先を含むリストを記憶する手段と、前記サーバから前記第１のネットワークを介して前記第２のネットワークに対して、前記ディジタル・コンテンツを構成するための最小単位のパケットを送信する手段と、前記リストを使用して前記最小単位のパケットを送信する前記第２のネットワークに対する宛先を動的に割り当てる動的割り当て手段と、前記宛先からの受信通知を受信する手段と、前記受信通知を使用して中間ノードとなる宛先を選択する手段と、前記中間ノードとして選択された宛先を使用して前記最小単位のパケットを送信する手段とを含むディジタル・コンテンツ配信サーバ。
【請求項２３】
前記動的割り当て手段は、前記最小単位のパケットを所定の宛先に宛てて送信した時刻を前記サーバに登録する手段と、前記所定のクライアントが前記最小単位のパケットの前記受信通知を発行した時刻を前記サーバに登録する手段と、前記送信した時刻と前記受信した時刻との時間差を算出する手段とを含む、請求項２２に記載のサーバ。
【請求項２４】
前記サーバは、宛先リストを含み、さらに前記宛先リストを、前記第２のネットワークの構成の変更に関連して動的に更新する手段を含む、請求項２２に記載のサーバ。
【請求項２５】
第１のネットワークを介して配信されるディジタル・コンテンツを受信し、前記第１のネットワークに接続される第２のネットワークを構成するクライアントであって、該クライアントは、前記第１のネットワークを介して複数のパケットに分割されたディジタル・コンテンツを構成する最小単位のパケットを受信する手段と、前記第２のネットワークを介して前記ディジタル・コンテンツを再構成するためのパケットを受信する手段と、前記第１のネットワークを介して受信した前記最小単位のパケットと、前記第２のネットワークを介して他のクライアントから受信したパケットとを使用して、前記第２のネットワークに含まれるクライアントに対して前記ディジタル・コンテンツを保持させる手段とを含むクライアント。
【請求項２６】
前記クライアントは、前記最小単位のパケットを受信した時刻を含む受信通知を生成する手段を含む、請求項２５に記載のクライアント。
【請求項２７】
さらに、前記クライアントは、前記最小単位のパケットと、前記他のクライアントから受信したパケットとを識別する手段を含む、請求項２５に記載のクライアント。
【請求項２８】
さらに、前記第２のネットワークを構成するメンバーのリストを含み、前記リストを、前記第２のネットワークにクライアントが追加または削除された場合に更新する手段とを含む、請求項２５に記載のクライアント。
【請求項２９】
第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するためのシステムであって、前記第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される前記第２のネットワークを構成するクライアントを含んで構成され、前記ディジタル・コンテンツを受信して提供する前記大域グループを構成する複数のグループとを含み、前記サーバは、保持したディジタル・コンテンツを複数のパケットに分割して前記グループの前記クライアントに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを重複なく送信する手段を含み、前記最小単位のパケットを受信した前記クライアントは、前記クライアントを含むグループを構成するすべてのクライアントおよび他のグループを構成する他のクライアントに前記サーバから受信した前記最小単位のパケットのコピーを配信する手段を含むディジタル・コンテンツ配信システム。
【請求項３０】
第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信する、ため、前記第１のネットワークに接続されたサーバであって、保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成する手段と、前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択する手段と、前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信する手段とを含むサーバ。
【請求項３１】
前記最小単位のパケットを生成する手段は、前記最小単位のパケットのコピーを少なくとも他のグループに配信するためのデータを含む最小単位のパケットを生成する手段を含む、請求項３０に記載のサーバ。
【請求項３２】
第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するためのサーバとしてコンピュータを制御する方法であって、前記方法は、前記コンピュータに対し、保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成するステップと、前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択して登録するステップと、前記選択された配信先のデータを前記最小単位のパケットとして記憶させるステップと、前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するため前記記憶された最小単位のパケットを読み出して送信するステップとを実行させる方法。
【請求項３３】
第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するためのサーバとしてコンピュータを制御するプログラムであって、前記プログラムは、前記コンピュータに対し、保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成するステップと、前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択して登録するステップと、前記選択された配信先のデータを前記最小単位のパケットとして記憶させるステップと、前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するため前記記憶された最小単位のパケットを読み出して送信するステップとを実行させるプログラム。
【請求項３４】
第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するためのサーバとしてコンピュータを制御するプログラムが記録されたコンピュータ可読な記憶媒体であって、前記プログラムは、前記コンピュータに対し、保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成するステップと、前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択して登録するステップと、前記選択された配信先のデータを前記最小単位のパケットとして記憶させるステップと、前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するため前記記憶された最小単位のパケットを読み出して送信するステップとを実行させる記憶媒体。
【請求項３５】
第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントであって、前記クライアントは、前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信し、受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断する手段と、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信する手段と、を含むクライアント。
【請求項３６】
前記コピー・パケットを配信する手段は、前記受信パケットが前記最小単位のパケットであると判断された場合に、前記受信パケットから少なくとも他のグループへのコピー先を読み出して、読み出されたコピー先に前記生成されたコピー・パケットを配信する手段を含む、請求項３５に記載のクライアント。
【請求項３７】
前記クライアントは、コピー先リストを格納した記憶手段を含む、請求項３６に記載のクライアント。
【請求項３８】
第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントとしてコンピュータを制御する方法であって、前記方法は、前記コンピュータに対し、前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信してメモリに記憶させるステップと、受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断するステップと、前記受信パケットが前記最小単位のパケットであると判断された場合に、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信するステップと、前記受信パケットが前記最小単位のパケットではないと判断された場合に、前記メモリに受信パケットを記憶させるステップとを実行させる方法。
【請求項３９】
第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントとしてコンピュータを制御するためのプログラムであって、前記プログラムは、前記コンピュータに対し、前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信してメモリに記憶させるステップと、受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断するステップと、前記受信パケットが前記最小単位のパケットであると判断された場合に、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信するステップと、前記受信パケットが前記最小単位のパケットではないと判断された場合に、前記メモリに受信パケットを記憶させるステップとを実行させるプログラム。
【請求項４０】
第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントとしてコンピュータを制御するためのプログラムが記録されたコンピュータ可読な記憶媒体であって、前記プログラムは、前記コンピュータに対し、前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信してメモリに記憶させるステップと、受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断するステップと、前記受信パケットが前記最小単位のパケットであると判断された場合に、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信するステップと、前記受信パケットが前記最小単位のパケットではないと判断された場合に、前記メモリに受信パケットを記憶させるステップとを実行させる記憶媒体。
【請求項４１】
所定のディジタル・コンテンツを、連続する複数のストリーム・データとし、前記所定のディジタル・コンテンツを再構成するために必要な最小単位のパケットをサーバからネットワークを介して送信することにより、複数のネットワークを介して接続されたクライアントに前記ディジタル・コンテンツを共有化させる方法であって、前記ディジタル・コンテンツの配信を要求する前記クライアントをクライアント・リストを読み出して選択するステップと、前記最小単位のパケットを前記選択したクライアントに送信するステップと、前記最小単位のパケットを受信したクライアントに前記最小単位のパケットをメモリに記憶させると共に、コピー・パケットを生成させ、前記受信したクライアントを除く他のクライアントに対して前記コピー・パケットを配信するステップと、他のクライアントから受信したコピー・パケットを前記メモリに記憶するステップと、前記メモリ内のパケットを再構成して前記配信された所定のディジタル・コンテンツをユーザに共有させるステップとを含むネットワーク上でのディジタル・コンテンツの共有化方法。
【発明の詳細な説明】
技術分野
本発明は、ディジタル・コンテンツの配信に関し、より詳細には、ディジタルコンテンツ配信サイトからネットワークを介してディジタル・コンテンツを配信して、複数のクライアントに保持させることにより、ネットワークを介してディジタル・コンテンツを効率よく配信することを可能とするディジタル・コンテンツ配信システム、ディジタル・コンテンツ配信方法、該方法を実行させるためのプログラム、該プログラムを含むコンピュータ可読な記録媒体、そのためのサーバおよびクライアントに関する。
また、本発明は、ネットワークを介して互いに接続され、それぞれ複数のクライアントを含んで構成される複数のグループを含む所定の大域グループに対し、サーバに対する通信トラフィックのオーバーヘッドを低減させつつ、ディジタル・コンテンツの配信を可能とするディジタル・コンテンツ配信システム、およびそのためのサーバ、およびクライアント、並びにコンピュータを上述したサーバおよびクライアントとして機能させるための制御方法、それらのためのプログラムおよび該プログラムを記録したコンピュータ可読な記録媒体に関する。
背景技術
近年では、コンピュータ、公衆電話回線、ＩＳＤＮ、光通信、無線通信、ＡＤＳＬ、ＣＡＴＶなどの方式を介したインターネットといったネットワークがますます普及している。今後、電子メールといったディジタル・コンテンツの配信ばかりではなく、ネットワークを介してテキスト・データ、音声データ、画像データ、およびこれらの複合したマルチメディア・データを、ディジタル・コンテンツを提供するサイトに配置されたサーバから、ネットワークを介して複数のコンピュータ、または携帯型端末といったクライアントへと配信するサービスがさらに普及するものと考えられる。
一方では、上述したインターネットといった広範な範囲に渡ってディジタル・コンテンツを配信、または管理することが可能な第１のネットワークの他に、企業、政府機関、行政機関、教育機関、図書館、放送通信機関といった公共的グループにおいてコンピュータ資源の効率的な利用を可能とするため、インターネットに比較すれば狭い範囲においてディジタル・コンテンツを共有して管理し、配信を行う、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）といった第２のネットワークも、急速に普及している。すなわち、現在におけるサーバー公共的グループ間の接続は、多くの場合には、複数のグループに帰属される複数のネットワークを介して行われているといえる。通常、上述した第２のネットワークにおいては、コンピュータといった複数のクライアント（以下、クライアントとして参照する。）が所定のグループを形成するように接続されており、グループ毎に所与のディジタル・コンテンツを保持することが可能とされている。
上述したネットワーク環境においては、サーバが保持するディジタル・コンテンツを、他のネットワークに帰属される複数のクライアントへと配信することが必要とされる場合がある。これまでサーバから送信されるディジタル・コンテンツを複数のクライアントに向けて配信する送信する方法またはシステムが種々提案されてきている。
例えば、Ｄｅｅｒｉｎｇ，Ｓ．ら、「Ｍｕｌｔｉｃａｓｔ．″Ｒｏｕｔｉｎｇ  ｉｎ  Ｉｎｔｅｒｎｅｔｗｏｒｋｓ  ａｎｄ  Ｅｘｔｅｎｄｅｄ  ＬＡＮｓ」（Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ，Ｄｅｐａｒｔｍｅｎｔ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ：ＳＴＡＮ−ＣＳ−８８−１２１４，Ｊｕｌｙ，１９８８）においては、ネットワーク系路上でパケットの重複を回避するため、いわゆるＩＰマルチキャストと呼ばれる方法が提案されている。図３１には、Ｄｅｅｒｉｎｇらにより提案されたＩＰマルチキャスト方式の概略図を示す。図３１に示されるように、Ｄｅｅｒｉｎｇらにより提案されたＩＰマルチキャスト方式は、ネットワーク１００上でのパケットの重複を排除し、良好な通信を可能とするものの、単純なＩＰ転送を行うルータの代わりに、サービスを受けるクライアントに関する「ステート（ｓｔａｔｅ）」を持つ専用のルータを配置する必要があるなど、ネットワーク資源の複雑化を伴うといった不都合があった。また、上述したネットワーク資源の複雑化に関連して、ネットワーク設備の増設が必要とされること、またはクライアントの不意の障害や、離脱といった事態に対応することができないなど、スケーラビリティに制約が生じるという不都合が生じていた。
また、ＩＰマルチキャストは、任意のソースから任意のグループにデータが送れるという仕組み上、悪意のある攻撃に弱くなること、グループに対して唯一の大域的なアドレスを確保する必要があること、基本的にベスト・エフォート型であり、ディジタル・コンテンツの配信を行う点では低コストでサービスを運営できるという利点がある。しかしながら、ＩＰマルチキャストは、わずかな回線中断が多大な損失につながる企業の基幹回線や、常に一定の帯域を確保する必要がある動画配信などの用途には不向きであるなど、信頼性や、混雑の回避、セキュリティなどの扱いが、ユニキャストに比べて難しいという不都合がある。さらには、ＩＰマルチキャストは、ネットワーク基盤の大規模な変更を必要とすることなどの理由により、まだまだ実用的であるとはいえない。
また、上述したＩＰマルチキャストの問題点を解消するために、「アプリケーション−レベル・マルチキャスト（ａｐｐｌｉｃａｔｉｏｎ−ｌｅｖｅｌ  ｍｕｌｔｉｃａｓｔ）」方式も提案されている（Ｄｉｍｉｔｒｉｏｓ  Ｐｅｎｄａｒａｋｉｓ，Ｓｈｅｒｌｉａ  Ｓｈｉ，Ｄｉｎｅｓｈ  Ｖｅｒｍａ，ａｎｄ  Ｍａｒｃｅｌ  Ｗａｌｄｖｏｇｅｌ．Ａｌｍｉ：Ａｎ  ａｐｐｌｉｃａｔｉｏｎ  ｌｅｖｅｌ  ｍｕｌｔｉｃａｓｔ  ｉｎｆｒａｓｔｒｕｃｔｕｒｅ．Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３ｒｄ  ＵＳＥＮＩＸ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｉｎｔｅｒｎｅｔ  Ｔｅｃｈｎｏｌｏｇｉｅｓ  ａｎｄ  Ｓｙｓｔｅｍｓ（ＵＳＩＴＳ），ｐａｇｅｓ  ４９−−６０，２００１；Ｙ．Ｃｈｕ，Ｓ．Ｒａｏ，ａｎｄ  Ｈ．Ｚｈａｎｇ．Ａ  Ｃａｓｅ  Ｆｏｒ  Ｅｎｄ  Ｓｙｓｔｅｍ  Ｍｕｌｔｉｃａｓｔ．Ｉｎ  Ｐｒｏｃ．ＡＣＭ  Ｓｉｇｍｅｔｒｉｃｓ，Ｊｕｎｅ  ２０００；Ｐ．Ｆｒａｎｃｉｓ，″Ｙｏｉｄ；ｅｘｔｅｎｄｉｎｇ  ｔｈｅ  ｉｎｔｅｒｅｎｔ  ｍｕｌｔｉｃａｓｔ  ａｒｃｈｉｔｅｃｔｕｒｅ，″ｐｒｅｐｒｉｎｔ  ａｖａｉｌａｂｌｅ  ｆｒｏｍ  ｈｔｔｐ：／／ｗｗｗ．ｉｓｉｓ．ｅｄｕ／ｄｉｖ７／ｙｏｉｄ／，Ａｐｒｉｌ  ２０００）。
上述した先行技術においては、クライアントがパケット送信の中継点を兼ねて、より下流側のクライアントにパケットを転送する方式が用いられる。図２４には、アプリケーション−レベル・マルチキャスト方式を使用したディジタル・コンテンツの配信の概略図を示す。図３２に示されるアプリケーション−レベル・マルチキャスト方式は、クライアント１０６に対してランクを与え、それぞれパス木構造にしたがって、パケットの送信を行うことができる構成とされている。図３２に示したアプリケーション−レベル・マルチキャスト方式においては、Ｐｅｎｄａｒａｋｉｓらは、すべての参加クライアントを効率的に接続する最小ネットワークを計算する。また、Ｃｈｕらは、パケットの流れをクライアントに対して割り当てる試みを行っている。
最小ネットワークは、たとえば、枝がｒｏｕｎｄ−ｔｒｉｐ  ｔｉｍｅ（ＲＴＴ）で重み付けされたｍｉｎｉｍｕｍ  ｓｐａｎｎｉｎｇ  ｔｒｅｅ（ＭＳＴ）として形成される。ＭＳＴは、静的に決定されるので、参加クライアントの離脱等が起きた場合には再構成が必要となる。この再構成を行う計算は、サーバ１０８が実行するので、サーバ１０８に対して与えられるオーバーヘッドが大きくなるという不都合がある。また、各々の参加離脱による再構成を局所的に行い、定期的に全体の構成を見直すなどとして、サーバ１０８に対するオーバーヘッドを軽減するための方式も提案されている。それでも、パケットを送信するパス木構造の中間に位置するクライアントが離脱した場合や、クライアント１０６の中央処理装置（ＣＰＵ）が他のプロセスに割り当てられ、パケットをリレーできない場合などには、その下流のクライアントにおいてパケット受信の突発的な遮断といった影響を受ける。この不都合を回避するには、最小ネットワーク（木構造）に冗長性を持たせる、あるいは代替の木構造をあらかじめ用意するなどの対策が必要となり、最小ネットワークの構成がますます複雑化し、このため、再構成の際にサーバ１０８に対して加えられるオーバーヘッドがさらに増加することになる。この理由は、各クライアントがリレーの役割を静的に与えられていることによるものであり、ネットワーク構成情報を含むパス木構造の生成・再構成は、サーバのみが行うことによる。
一方では、分散したクライアントを使用して、協調的に送信パケットのキャッシングを行うシステムも提案されている。協調的にパケットのキャッシングを行うシステムでは、サーバ１０８からではなくて、クライアント１０６のキャッシュからデータを入手する（特願平１１−２８２３３２明細書、発明の名称「分散クライアントベースのデータ・キャッシング・システム」）。特願平１１−２８２３３２号明細書には、各クライアントが、データ・キャッシュとクライアントの対応表を利用して、希望するデータをキャッシュしているクライアントを探し出し、そのクライアントからデータを入手する手法が開示されている。
特願平１１−２８２３３２号明細書に開示された方法は、良好にクライアントにおけるキャッシングを行うことを可能とするものの、データを入手した時点で、少なくともキャッシュされるデータの長さだけ遅れが生じ、時間遅れの小さい、リアルタイム性が必要なストリーミングなどの場合には、リアルタイム性の点で充分ではない。また、特願平１１−２８２３３２号明細書では、大きなデータ長でのキャッシングについては何ら開示するものではない。また、上述したデータ・キャッシング・システムは、キャッシングによる時間遅延を低減するべく、ストリームを小さなパケットに分割して管理すると、パケットの単位で頻繁にキャッシングのための対応表を更新することが必要となり、クライアントに対するオーバーヘッドが増大する。そのため、対応表をクライアントに含ませる利点が損なわれるばかりでなく、クライアントのオーバーヘッドを著しく増加させてしまうので、実用的ではない。
一方、Ａｒａｍａｋｉらは、クライアントをエッジ・サーバに接続させる構成を提案している（ｈｔｔｐ：／／ｗｗｗ．ａｋａｍａｉ．ｃｏｍ）。図３３にＡｒａｍａｋｉらにより提案された方式を概略的に示す。図３３に示したＡｒａｍａｋｉらの方式では、ネットワーク１００を介して遠隔的に配置されたサーバ１０８と、クライアント１０６の近くに配置されたエッジ・サーバ１１０とを使用する。遠隔サーバ１０８と、エッジ・サーバ１１０との間のネットワーク１００は、ベスト・エフォート型のネットワークとされており、バンド幅を使い切るようにしてディジタル・コンテンツを送信した後、送信されたディジタル・コンテンツは、いったんエッジ・サーバ１１０でキャッシュされる。キャッシュされたディジタル・コンテンツは、エッジ・サーバ１１０から改めて近隣のクライアントにストリーミングされ、ディジタル・コンテンツのクライアントに対する配信が完了される。すなわち、Ａｒａｍａｋｉらの方法は、サーバ１０８とエッジ・サーバ１１０の間のパケットの重複を抑え、混雑を回避する方法のひとつの解決策を与えるものである。しかしながら、エッジ・サーバ１１０を使用する場合であっても、エッジ・サーバ１１０のオーバーヘッドが課題となりがちで、エッジ・サーバ１１０から各クライアントへとパケットを送信する際にも送信パケットの重複を低減することが必要である。
サーバ１０８とエッジ・サーバ１１０の間がインターネットでない場合でも、バックボーンがバンド幅共有型のイントラネットなら、バックボーンでのパケット重複による混雑を回避するために同様のサーバ１０８と、エッジ・サーバ１１０とを使用する構成が利用できる。しかしながら、バックボーン・ルータで相互接続されているエンド・ルータの下すべてにエッジ・サーバ１１０を配置することが必要とされるので、ＬＡＮまたはＷＡＮといった第２のネットワークを構成するためのコストが高まり、さらにエッジ・サーバ１１０のメンテナンス・コストの増加、そのためのネットワーク管理者への負荷増大といった不都合が発生してしまう。また、システムとしての複雑さの増加は、ネットワークおよびそのための処理の自律性（ａｕｔｏｎｏｍｉｃ  ｃｏｍｐｕｔｉｎｇ）という観点から問題となる状況が生じる。このため、ディジタル・コンテンツをリアルタイム性を確保しつつ、複数のクライアントへと、特別の補助サーバ（エッジ・サーバなど）を持たず、単純で、かつｓｅｌｆ−ｃｏｎｆｉｇｕｒｉｎｇ、ｓｅｌｆ−ｏｐｔｉｍｉｚｉｎｇなどの機能を含むネットワークの自律性を付与したロバスト運用されるシステムを提供することが必要とされていた。
また、前述のＩＰマルチキャストでは送信元は宛先として特別な範囲内の値をもつＩＰアドレスを指定してパケットを送信する。このＩＰアドレスがマルチキャストグループを表しており、受信側ホストは、このグループへの参加要求を経路上にある各ルータへと送信し、これを受信したルータが参加要求を送信したグループを認識してパケットを配信する処理を実行する。マルチキャストを使用することによっても適切なルーティングを行うことにより、パケットの重複なしに多数の受信側ホストに対して一度に同じパケットを送信することができる。
上述したルータを越えない単一ネットワーク内や、限定されたネットワーク上では、特に設備・装置の大きな投資負担や、通信トラフィックに対する不都合を生じさせずにマルチキャストによるコンテンツの配信は良好に機能する。しかしながら、現状のインターネットが全体として使用する通信プロトコル（ＩＰｖ４）では通常、マルチキャスト機能が有効化されておらず、実際にインターネット上でマルチキャストを行うには一般に追加の装置・設備を必要とする。
図３４には、上述したマルチキャストが可能なグループに対して疑似マルチキャスト、例えばよく知られた方法として、マルチキャストに対応したネットワークと別のマルチキャスト対応のコンテンツ配信を可能とするネットワーク・システムを示す。図３４に示したネットワーク・システムは、サーバと、複数のグループとの間に複数のトンネルを形成することによりディジタル・コンテンツの配信を可能としている。図３４に示されるサーバ１１２は、各グループ１１４ａ〜１１４ｃから構成される大域グループＧへとディジタル・コンテンツを、インターネットといった第１のネットワーク１１６を介して配信する。図３４に示された大域グループＧは、グループ１１４ａ〜グループ１１４ｃを含んで構成されており、例えば企業、公共機関、政府機関、学校教育機関などを挙げることができる。
具体的には、例えば１つの企業を例として説明すると、グループ１１４ａは、北海道営業所であり、グループ１１４ｃは、同一の企業の九州営業所などとすることができる。図３４に示したサーバ１１２は、グループ１１４ａ〜１１４ｃのそれぞれに対して、いわゆるトンネル１１８ａ〜１１８ｃといわれる構成を使用して、ディジタル・コンテンツをマルチキャスト配信している。トンネル１１８ａ〜１１８ｃは、より詳細には異なる二つのネットワーク間に、それぞれトンネルの入口ポートおよび出口ポートを設置し、入口ポートと出口ポートとを経由してデータ・パケットを転送することで、ネットワーク上の受信者に対してマルチキャスト・パケットを一度に配信する。図３４に示されるように、複数のグループに対してマルチキャスト配信を行うためには、グループ分だけトンネルを複数用意しなければならないことになる。
上述したトンネリングの技術は、既に一般的に知られたものであり、グループが多数ある場合には、トンネリングによるマルチキャスト配信は充分に機能しないことが多いことも知られている。これをより具体的に示したのが図３５である。図３５では、ディジタルコンテンツの送信者（以下プロバイダとして参照する。）と多数のグループとがインターネットを介して接続されている。グループ１１４ａ〜１１４ｃは、グループが使用するＩＳＤＮ、ＡＤＳＬ、ＣＡＴＶ、光通信などの通信容量の異なる回線で第１のネットワークに接続されている。さらに、グループ１１４ａ〜１１４ｃは、またそれぞれ通信容量がまちまちで異なる種類の通信インフラ基盤、例えばイーサネット（登録商標）やワイヤレス通信ネットワークを用いて構成されたローカル・エリア・ネットワーク（ＬＡＮ）といった第２のネットワークにより接続されている。これらの第２のネットワーク上にそれぞれ複数のクライアント１２２が接続されており、これらがルータ１２４などによって第１のネットワーク１１６に接続されている。このような状況で、サーバ１１２がすべてのクライアント１２２に対してパケットを送信するものとする。
図３５に示した状況下では、トンネリングによりマルチキャスト配信を行う従来の手法では、下記に示す不都合が生じる。
（１）受信側となるグループにおける運用および管理の問題：第２のネットワークにトンネルのポートを提供するため、マルチキャストによるパケットを受信し、クライアント１２２へとマルチキャストすることが可能な構成とされた専用ホスト装置が必要になる。当然ながら、グループ内を相互接続するＬＡＮへの通信は、専用ホスト装置の機能に依存するため、もし専用ホストが何らかの理由で利用できなくなった場合には、専用ホスト装置が管理する第２のネットワークのすべてのクライアントに影響が生じてしまう。
（２）コンテンツ配信サーバのネットワーク帯域幅の問題：サーバ１１２と各グループ間の通信は、ユニキャストであるため、グループがＭ個あればサーバが送信するパケット量、およびそのための通信トラフィック量は、Ｍ倍になる。したがって、サーバ１１２側において非常に太い通信インフラ基盤を使用しない限り、グループが多くなればなるほどリアルタイム性を損なわずに同時に通信することはできず、マルチキャストを使用するコスト・メリット的な魅力が失われてしまうことになる。
すなわち、これまで１対多のデジタル・コンテンツ、特にリアルタイム性が必要とされるディジタル・コンテンツの配信において、ネットワーク系路上での送信パケットの重複を避けて、トラフィックの混雑を回避すると共に、個々のルータの複雑化を招くことなく、また経路上すべてのルータを交換する作業およびコストなど、大規模な投資を伴う変更を必要としないリアルタイム性の向上したディジタル・コンテンツの配信を可能とすることが必要とされていた。また、ルータ、スイッチング・ハブなどのネットワーク層の変更なく、さらには静的な最小ネットワークにおけるクライアントの頻繁な参加および離脱に対応する再構成の必要を排除することで、サーバへのオーバーヘッドを低減させ、ネットワーク・システムの安定性を損なわずにディジタル・コンテンツの配信を行うことが必要とされていた。
具体的に言えば、たとえば、上流の中継点に位置するクライアントが異常終了などで離脱した場合に、その下流側のクライアントの安定性を確保し、確実にユーザに対してディジタル・コンテンツを配信することを可能とするべく、冗長性を持たせるネットワーク構成にするなど、ネットワーク資源の複雑化およびサーバに対する再編成のオーバーヘッドを増すことなく、ディジタル・コンテンツのリアルタイム性を確保するディジタル・コンテンツの配信を行うことが必要とされていた。
さらには、トンネリングを使用する場合にはグループが増えるにつれて構成されるトンネルの個数を増やすことも可能であるが、トンネルの数の増加に対応してサーバ側の通信トラフィックをさらに圧迫することになる。また、サーバ側における上述した不都合を防止するためにグループ間にもトンネルを構成し、カスケード状にパケットを中継することでサーバ側の混雑を避ける方法も考えられる。しかしながら、グループ間においてもトンネルのポートを構成するため追加の装置・設備が必要となることや、グループ間における階層構造が形成されるため、一つのグループにおけるトンネルの障害が、他のグループにも致命的な影響を与えてしまうことになるという、新たな問題が生じる。さらには、サーバから直接送られたパケットと、カスケード的に他のグループから送られてきたパケットとが重複してしまうことも考えられ、このためにディジタル・コンテンツの再生に不都合をきたしたり、ソフトウエア的にパケットの重複を排除することが必要となるなど、再生品質およびソフトウエア・コスト的にも、充分に対応を可能とするものではない。
発明の開示
本発明は、上述した不都合に鑑みてなされたものであり、本発明においては、グループの数に依存することなく、サーバから複数の情報処理装置に対してディジタル・コンテンツをリアルタイムで提供する。ディジタル・コンテンツの提供は、サーバが、ディジタル・コンテンツを第１のネットワークを介してパケットとして第２のネットワークに属する少なくとも１つのクライアントへと送信する。送信されるパケットは、ディジタル・コンテンツを再構成するために必要とされる最小単位とされる。なお、本発明においては、最小単位のパケットとは、元のディジタル・コンテンツをパケットの重複無く再構成することができる最小のパケットのことを意味し、本発明においては、以下、ソース・パケットとして参照する。ソース・パケットを受け取ったクライアントは、第２のネットワークを介して第２のネットワークに接続されたクライアントに対して受信したソース・パケットのコピーを送信する。コピー・パケットを送信したクライアントは、他のクライアントが受信したソース・パケットのコピーを受信する。
所定の期間の間に複数のパケットに分割されて送信されたディジタル・コンテンツは、クライアントにおいて結合させることにより再構成され、クライアントにおいてユーザへとリアルタイムで提供される。本発明における提供の態様は、動画イメージ・データの表示、オーディオ・データの再生、マルチメディア・データを構成する画像データの表示と、それに同期したオーディオ・データの再生などの、これまで知られたいかなる態様をも含みうる。以下、本発明において上述した提供態様を含めて表示または再生として定義する。再構成されたディジタル・コンテンツを提供させている間に、クライアントは、さらに後続するパケットを受信し、すでに再構成されたディジタル・コンテンツの提供の間に、後続するストリームの再構成を完了し連続的なディジタル・コンテンツの提供を可能とする。
本発明は、上述の処理を繰り返すことにより、送信されたパケットの重複を回避しつつ、ディジタル・コンテンツの安定した配信を続け、ネットワークを構成するクライアントの頻繁な離脱や新規の参加に対して、柔軟に対応することを可能とする。また、本発明は、たとえばＣＰＵ割り当て状況の変化など、各クライアントにおける大きな環境変動に対してもディジタル・コンテンツの配信の効率に影響を与えない、安定したシステムを実現する。また、本発明は、特別な構成のルータや、スイッチング・ハブ、または補助サーバなどを用いないことにより、ネットワーク・システムのコストを不必要に増大させることなく、さらにネットワーク・ユーザに対してメンテナンスなどの業務を付加することのないディジタル・コンテンツの配信を可能とする。
さらに本発明は、配信を行うためのトンネルにかかわらず効率的にサーバから所定の大域グループへと配信を行うための疑似トンネリング配信を提供する。本発明において疑似トンネル配信とは、サーバからはディジタル・コンテンツを再構成するに必要とされる最小限のソース・パケットを重複なく大域グループへと配信するだけで、大域グループ内のクライアントに同一のディジタル・コンテンツを重大なタイムラグを生じさせず、かつスムースに提供することを可能とする配信システムおよび配信方法を意味する。本発明における疑似トンネル配信においては、サーバは、パケットを複数のグループに帰属されるクライアントへと重複なく配信する。本発明では、複数のクライアントは、グループを構成し、複数のグループが大域グループを構成する。また、サーバは、大域グループ全体に対してパケットを送信することが可能な構成とされ、パケットを送信する場合に大域グループ内から都度送信先のクライアントを選択する。少なくとも１台のクライアントは、ディジタル・コンテンツを構成するソース・パケットをサーバから受信する。サーバおよびクライアントは、大域グループを構成するクライアントのクライアント・リストを保有しており、ソース・パケットを受信したクライアントは、ソース・パケットと共に受信するソース・パケット配信データまたは予め割り当てられたコピー先リストを参照して、他のクライアントへと、ソース・パケットのコピーを配信する。上述した処理を実行することによりすべてのクライアントにおいてディジタル・コンテンツを過不足なく再構成する。
さらに本発明では、大域グループに属するクライアントのネットワーク特性を効率的に活用するために、グループにおけるＬＡＮを有効利用する。各グループは、各グループに帰属されるクライアント間で例えば、一つのスイッチング・ハブに接続させて構成することで、スイッチの機能を利用して互いに影響を与えることなく通信が可能となる。また、本発明においては、一つのルータの下に接続された複数のクライアントと、アプリケーション・コンピュータとの間においてマルチキャスト対応の第３のネットワークを構成させることで、ディジタルコンテンツをグループに共有させ、クライアントのオーバーヘッドおよびハードウエア資源をより低減することを可能とする。
すなわち、本発明によれば、第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを配信するためのシステムであって、
前記第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、
前記第１のネットワークに接続される前記第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、
前記サーバは、保持したディジタル・コンテンツを複数のパケットに分割して前記第２のネットワークに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信する手段を含み、
前記第２のネットワークを構成する前記クライアントは、前記クライアントが前記サーバから受信した前記最小単位のパケットと、前記第２のネットワークを構成する他のクライアントから受信したパケットとを使用して、前記第２のネットワーク内に接続されたすべての前記クライアントに対して前記ディジタル・コンテンツを保持させるための手段を含む
ディジタル・コンテンツ配信システムが提供される。
本発明においては、前記サーバは、前記最小単位のパケットを、前記第２のネットワークの複数のクライアントに動的に割り当てる手段を含むことができる。本発明における前記最小単位のパケットを前記第２のネットワークの複数のクライアントに割り当てる手段は、
前記クライアントのオーバーヘッドを決定するための手段と、
前記オーバーヘッドに関連して前記クライアントの少なくとも１つを中間ノードとして動的に選択し、当該中間ノードに宛てて前記パケットを割り当てる手段と
を含むことができる。本発明の前記クライアントのオーバーヘッドを決定するための手段は、前記サーバが前記最小単位のパケットを所定のクライアントに宛てて送信した時刻と、前記所定のクライアントが前記最小単位のパケットの受信通知を発行した時刻との時間差を決定するための手段を含むことができる。
本発明によれば、第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記クライアントに配信するための方法であって、
ディジタル・コンテンツを複数のパケットに分割して前記サーバから前記クライアントに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信するステップと、
前記第２のネットワークを構成するクライアントが前記サーバから前記最小単位のパケットを受信するステップと、
前記第２のネットワークを構成する他のクライアントから前記ディジタル・コンテンツを再構成するためのパケットを受信するステップと、
前記サーバから送信された前記最小単位のパケットと、前記他のクライアントから受信したパケットとを使用して、前記第２のネットワーク内に接続されたすべての前記クライアントに対して前記ディジタル・コンテンツを保持させるステップと
を含むディジタル・コンテンツ配信方法が提供される。
本発明によれば、第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するための宛先が指定されたクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記宛先に宛てて配信する方法を実行するためのサーバ・プロセスを実行するプログラムであって、前記プログラムは、
ディジタル・コンテンツを複数のパケットに分割するステップと、
最小単位のパケットを、前記サーバから前記第２のネットワークの複数の宛先に動的に割り当てるステップと、
前記サーバから前記第１のネットワークを介して前記第２のネットワークに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信するステップと、
を含み、前記割り当てステップは、
前記宛先からの受信通知を受信するステップと、
前記受信通知を前記サーバに保持させるステップと、
前記保持された受信通知を使用して関連して中間ノードとなる宛先を選択するステップと、
前記中間ノードとして選択された宛先に宛てて前記最小単位のパケットを割り当てるステップと
を実行させるプログラムが提供される。
本発明によれば、第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するための宛先が指定されたクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記宛先に宛てて配信する方法を実行するためのサーバ・プロセスを実行するプログラムが記録されたコンピュータ可読な記録媒体であって、前記プログラムは、
ディジタル・コンテンツを複数のパケットに分割するステップと、
前記サーバから最小単位のパケットを、前記第２のネットワークの複数の宛先に動的に割り当てるステップと、
前記サーバから前記第１のネットワークを介して前記第２のネットワークに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信するステップと、
を含み、前記割り当てステップは、
前記宛先からの受信通知を受信するステップと、
前記受信通知を前記サーバに保持させるステップと、
前記保持された受信通知を使用して関連して中間ノードとなる宛先を選択するステップと、
前記中間ノードとして選択された宛先に宛てて前記最小単位のパケットを割り当てるステップと
を実行させる記録媒体が提供される。
本発明によれば、第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記クライアントに配信するための方法を実行するクライアント・プロセスを実行させるためのプログラムであって、該プログラムは、前記クライアントに対し、
前記第１のネットワークを介して複数のパケットに分割されたディジタル・コンテンツを構成する最小単位のパケットを受信するステップと、
前記第２のネットワークを構成する他のクライアントから前記ディジタル・コンテンツを再構成するためのパケットを受信するステップと、
前記第１のネットワークを介して受信した前記最小単位のパケットと、前記他のクライアントから受信したパケットとを使用して前記第２のネットワークに含まれる前記クライアントに対して前記ディジタル・コンテンツを保持させるステップと
を実行させるプログラムが提供される。
本発明によれば、第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記クライアントに配信するための方法を実行するクライアント・プロセスを実行させるためのプログラムが記録されたコンピュータ可読な記録媒体であって、該プログラムは、前記クライアントに対し、
前記第１のネットワークを介して複数のパケットに分割されたディジタル・コンテンツを構成する最小単位のパケットを受信するステップと、
前記第２のネットワークを構成する他のクライアントから前記ディジタル・コンテンツを再構成するためのパケットを受信するステップと、
前記第１のネットワークを介して受信した前記最小単位のパケットと、前記他のクライアントから受信したパケットとを使用して前記第２のネットワークに含まれる前記クライアントに対して前記ディジタル・コンテンツを保持させるステップと
を実行させる記録媒体が提供される。
本発明によれば、第１のネットワークに接続され、ディジタル・コンテンツを前記第１のネットワークに接続される第２のネットワークに対して提供するためのサーバであって、該サーバは、
ディジタル・コンテンツを複数のパケットに分割するための手段と、
前記第２のネットワークに含まれる宛先を含むリストを記憶する手段と、
前記サーバから前記第１のネットワークを介して前記第２のネットワークに対して、前記ディジタル・コンテンツを構成するための最小単位のパケットを送信する手段と、
前記リストを使用して前記最小単位のパケットを送信する前記第２のネットワークに対する宛先を動的に割り当てる動的割り当て手段と、
前記宛先からの受信通知を受信する手段と、
前記受信通知を使用して中間ノードとなる宛先を選択する手段と、
前記中間ノードとして選択された宛先を使用して前記最小単位のパケットを送信する手段と
を含むディジタル・コンテンツ配信サーバが提供される。
本発明によれば、第１のネットワークを介して配信されるディジタル・コンテンツを受信し、前記第１のネットワークに接続される第２のネットワークを構成するクライアントであって、該クライアントは、
前記第１のネットワークを介して複数のパケットに分割されたディジタル・コンテンツを構成する最小単位のパケットを受信する手段と、
前記第２のネットワークを介して前記ディジタル・コンテンツを再構成するためのパケットを受信する手段と、
前記第１のネットワークを介して受信した前記最小単位のパケットと、前記第２のネットワークを介して他のクライアントから受信したパケットとを使用して、前記第２のネットワークに含まれるクライアントに対して前記ディジタル・コンテンツを保持させる手段と
を含むクライアントが提供される。
本発明によれば、第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するためのシステムであって、
前記第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、
前記第１のネットワークに接続される前記第２のネットワークを構成するクライアントを含んで構成され、前記ディジタル・コンテンツを受信して提供する前記大域グループを構成する複数のグループとを含み、
前記サーバは、保持したディジタル・コンテンツを複数のパケットに分割して前記グループの前記クライアントに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを重複なく送信する手段を含み、
前記最小単位のパケットを受信した前記クライアントは、前記クライアントを含むサブ大域グループを構成するすべてのクライアントおよび他のグループを構成する他のクライアントに前記サーバから受信した前記最小単位のパケットのコピーを配信する手段を含むディジタル・コンテンツ配信システムが提供される。
本発明によれば、第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するため、前記第１のネットワークに接続されたサーバであって、
保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成する手段と、
前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択する手段と、
前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信する手段とを含むサーバが提供される。
本発明によれば、第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するためのサーバとしてコンピュータを制御する方法であって、前記方法は、前記コンピュータに対し、
保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成するステップと、
前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択して登録するステップと、
前記選択された配信先のデータを前記最小単位のパケットとして記憶させるステップと、
前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するため前記記憶された最小単位のパケットを読み出して送信するステップとを実行させる方法が提供される。
本発明によれば、第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するためのサーバとしてコンピュータを制御するプログラムであって、前記プログラムは、前記コンピュータに対し、
保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成するステップと、
前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択して登録するステップと、
前記選択された配信先のデータを前記最小単位のパケットとして記憶させるステップと、
前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するため前記記憶された最小単位のパケットを読み出して送信するステップとを実行させるプログラムが提供される。
本発明によれば、第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するためのサーバとしてコンピュータを制御するプログラムが記録されたコンピュータ可読な記憶媒体であって、前記プログラムは、前記コンピュータに対し、
保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成するステップと、
前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択して登録するステップと、
前記選択された配信先のデータを前記最小単位のパケットとして記憶させるステップと、
前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するため前記記憶された最小単位のパケットを読み出して送信するステップとを実行させる記憶媒体が提供される。
本発明によれば、第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントであって、前記クライアントは、
前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信し、受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断する手段と、
前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信する手段と、を含むクライアントが提供される。
本発明によれば、第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントとしてコンピュータを制御する方法であって、前記方法は、前記コンピュータに対し、
前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信してメモリに記憶させるステップと、
受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断するステップと、
前記受信パケットが前記最小単位のパケットであると判断された場合に、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信するステップと、
前記受信パケットが前記最小単位のパケットではないと判断された場合に、前記メモリに受信パケットを記憶させるステップとを実行させる方法が提供される。
本発明によれば、第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントとしてコンピュータを制御するためのプログラムであって、前記プログラムは、前記コンピュータに対し、
前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信してメモリに記憶させるステップと、
受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断するステップと、
前記受信パケットが前記最小単位のパケットであると判断された場合に、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信するステップと、
前記受信パケットが前記最小単位のパケットではないと判断された場合に、前記メモリに受信パケットを記憶させるステップとを実行させるプログラムが提供される。
本発明によれば、第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントとしてコンピュータを制御するためのプログラムが記録されたコンピュータ可読な記憶媒体であって、前記プログラムは、前記コンピュータに対し、
前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信してメモリに記憶させるステップと、
受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断するステップと、
前記受信パケットが前記最小単位のパケットであると判断された場合に、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信するステップと、
前記受信パケットが前記最小単位のパケットではないと判断された場合に、前記メモリに受信パケットを記憶させるステップとを実行させる記憶媒体が提供される。
本発明によれば、所定のディジタル・コンテンツを、連続する複数のストリーム・データとし、前記所定のディジタル・コンテンツを再構成するために必要な最小単位のパケットをサーバからネットワークを介して送信することにより、複数のネットワークを介して接続されたクライアントに前記ディジタル・コンテンツを共有化させる方法であって、
前記ディジタル・コンテンツの配信を要求する前記クライアントをクライアント・リストを読み出して選択するステップと、
前記最小単位のパケットを前記選択したクライアントに送信するステップと、
前記最小単位のパケットを受信したクライアントに前記最小単位のパケットをメモリに記憶させると共に、コピー・パケットを生成させ、前記受信したクライアントを除く他のクライアントに対して前記コピー・パケットを配信するステップと、
他のクライアントから受信したコピー・パケットを前記メモリに記憶するステップと、
前記メモリ内のパケットを再構成して前記配信された所定のディジタル・コンテンツをユーザに共有させるステップとを含む、ネットワーク上でのディジタル・コンテンツの共有化方法が提供される。
発明を実施するための最良の態様
以下、本発明を具体的な実施の形態をもって説明するが、後述する実施の形態は、本発明を制限するものではない。
Ａ：ディジタル・コンテンツ配信システム
図１は、本発明のディジタル・コンテンツ配信システム１０を示した概略図である。本発明のディジタル・コンテンツ配信システム１０は、ネットワーク１２に接続されたサーバ１４と、それぞれルータ１６およびスイッチング・ハブ１８といったネットワーク機器を介してネットワーク１２に接続された複数のクライアント２０とを含んで構成されている。図１に示されたネットワーク１２としては、インターネット、ＷＡＮ、ＬＡＮといったネットワークを挙げることができ、ネットワークを構成するための通信媒体としては、公衆電話回線、ＩＳＤＮ、ＡＤＳＬ、光通信、地上波無線通信、衛星通信などを使用することができる。サーバ１４は、ネットワーク１２およびネットワーク２２を介して、クライアント２０へと、本発明に従いディジタル・コンテンツを配信している。本発明において配信されるディジタル・コンテンツとしては、リアルタイム性を持って同時に複数のクライアントに対してコンテンツの提供を行うことが必要な、ＭＰＥＧ２、ＭＰＥＧ４、またはさらに高次の動画イメージ・データなどを挙げることができる。また、本発明においてはディジタル・コンテンツとしては、動画イメージ・データの他、動画イメージ・データと音響データ、テキスト・データといった複数の種類のディジタルデータを含んで構成されたマルチメディア・データを用いることもできる。
また、クライアント２０は、ルータ１６およびスイッチング・ハブ１８などを介してネットワーク１２へと接続されていると共に、同一のルータ１６ごとに割り当てられた、たとえばＩＰアドレスなどの識別子により、所定のグループ＃１などとして、サーバ１４により識別されている。また、所定のグループ内においてクライアントは、本発明の好ましい実施の形態においてはピアツウピア接続で接続されたネットワーク２２を構成しており、グループ内でのクライアント相互の通信が可能とされている。
本発明において使用することができるサーバ１４としては、パーソナル・コンピュータ、またはワークステーションから構成することが可能であり、このパーソナル・コンピュータ、またはワークステーションとしては、ＰＥＮＴＩＵＭ（登録商標）といったＣＰＵ、またはこれと互換性のあるＣＰＵを搭載することが可能で、ＷＩＮＤＯＷＳ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）ＮＴ（マイクロソフト・コーポレーション）、ＯＳ／２（商標：インターナショナル・ビジネス・マシーンズ・コーポレーション）、ＡＩＸ（商標：インターナショナル・ビジネス・マシーンズ・コーポレーション）、ユニックス、リナックスといったオペレーティング・システムを動作させることが可能なパーソナル・コンピュータ、ワークステーションを挙げることができるが、これらのものに限定されるわけではない。
また、本発明において使用することができるクライアント２０としては、上述したサーバ１４に適用することができるパーソナル・コンピュータ、またはワークステーションを挙げることができる。また、本発明を適用することができるだけの処理速度があれば、クライアント２０は、ワイヤレス・ネットワークを介して接続されたノートブック型パーソナル・コンピュータや、ＰＤＡなどを含んで構成することができる。
図１に示した本発明のディジタル・コンテンツ配信システム１０は、動画イメージ・データを複数のストリームへと分解し、１つのストリームをさらに複数のパケットへと分割して、サーバ１４からパケットごとに所定のクライアント２０へとソース・パケットとして送信する構成とされている。本発明においては、ストリームを構成するソース・パケットは、所与のグループに含まれる少なくとも１つのクライアントへと送信され、ソース・パケットを受信したクライアントが、所与のグループ内に含まれる他のクライアントへと、受信したソース・パケットのコピー（以下コピー・パケットとして参照する。）を送信する。コピー・パケットを受信した下流側クライアントは、所定の期間にわたりコピー・パケットを蓄積し、所定の期間経過後に、パケットに付されたたとえば連番として付されたパケット識別子を使用してストリームを再構成し、クライアントにおいてディジタル・コンテンツを表示または再生させる。すなわち、本発明においては、サーバ１４は、１つのグループに対して重複したパケットをクライアントごとに送信すること無く、所定のグループに属するクライアントに対して同一のディジタル・コンテンツを提供することを可能とする。
Ｂ：ディジタル・コンテンツ配信方法
以下さらに、本発明のディジタル・コンテンツ配信を実行するための方法について詳細に説明する。
＜Ｂ−１＞静的パス木構造のパケット単位での一時的選択に基づく動的ルーティング
本発明においては、上述したように、サーバ１４から１つのグループに含まれる、たとえばｍ台のクライアントに対して、サーバ１４をルートとし、ひとつのクライアント２０ａを中間ノードとして指定するパス木構造を構成する。図２には、本発明において構成されるパス木構造の概略を示す。図２に示されるように、構成された木構造のうちの１：１：（ｍ−１）の木構造が、パケットの１つの送信パスを構成する。本明細書においては、説明の便宜上、パスは、サーバー中間ノードの第１段パスと、中間ノード−クライアントの第２段パスの２段階で形成されるものとし、２段を超えるリレーはないものとして説明する。
図２（ａ）に示されるように、サーバ１４は、グループ内の１つのクライアント２０ａを中間ノードとして選択し、まず中間ノードとして選定されたクライアント２０ａに対してソース・パケットを送信する。ソース・パケットを受信した中間ノードとして機能するクライアント２０ａは、受信したパケットを、グループ内に含まれるクライアント２０ｂ〜２０ｄへと送信して、グループ内におけるパケットの共有を可能とする。また、本発明においては、中間ノードとされるクライアント２０ａは、図２（ａ）に示されているように１つとは限られず、各クライアントの実効スループットを、ＴＣＰ／ＩＰなどの接続指向のプロトコルのネットワーク１２を介してサーバ１４がモニタすることにより、動的に１つ、またはそれ以上のクライアントから選定することができる。本発明における中間ノードの選定については、より詳細に後述する。
図２（ａ）に示された各サーバ１４から各クライアント２０ａ〜２０ｄへのすべてのパス（木構造）を重ね合わせると、サーバ１４から各クライアント２０ａ〜２０ｄへと接続され、さらに所定のグループ内におけるクライアント間において双方向に接続する完全グラフを記述することができる。図２（ｂ）には、図２（ａ）に示した特定の実施の形態において、サーバ１４と、各クライアント２０ａ〜２０ｅの間で形成される完全グラフの実施の形態を示す。図２（ｂ）に示されるように、パケット単位のパスの選択は、完全グラフからの部分木構造（パス木構造）の選択であると考えることができる。本発明によれば、クライアントのスループットに応じてパスを柔軟に選択することが可能になので、パス木構造において各クライアントは、他のクライアントの上流または下流へと動的に変更されることになる。
図２（ｂ）に示した本発明の特定の実施の形態における完全グラフを参照して本発明を説明すると、まず、サーバ１４からクライアント２０ａ〜２０ｅのグループに向けて、１ストリーム分のソース・パケットを重複パケット無く送信する。各クライアント２０ａ〜２０ｅは、重複なくストリームの一部を構成するソースパケットを受信する。その後、同じグループに属するクライアントは、不足するパケットを、コピー・パケットとして相互にコピーすることにより、１ストリームを再構成するためのパケットの不足分を補い、１ストリームを回復する。本発明においては、上述したクライアントの機能を、ピアツウグループ（Ｐｅｅｒ−ｔｏ−Ｇｒｏｕｐ）型の配信として参照する。なお、それぞれのパケットには、ストリーミングのプロトコルにしたがって、通し番号がパケット識別子として予め付されており、各クライアントにおいて、不足したパケットおよびストリームにおけるパケット順序を回復することができる構成とされている。このための方法としては、これまで知られたいかなる方法でも用いることができるが、具体的にはたとえば、Ｓｃｈｕｌｚｒｉｎｎｅらにより開示された方法を採用することができる（Ｈ．Ｓｃｈｕｌｚｒｉｎｎｅ，Ｓ．Ｃａｓｎｅｒ，Ｒ．Ｆｒｅｄｅｒｉｃｋ，ａｎｄ  Ｖ．Ｊａｃｏｂｓｏｎ．ＲＦＣ  １８８９：ＲＴＰ：Ａ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  ｒｅａｌ−ｔｉｍｅ  ａｐｐｌｉｃａｔｉｏｎｓ，Ｊａｎｕａｒｙ  １９９６．）。
図３には、上述したサーバ１４からのソース・パケット送信およびグループ＃１におけるクライアントのコピー・パケット送信の処理を概略的に示す。図３に示すように、サーバ１４において取得された動画イメージ・データは、ストリーミングされ、複数のパケットに分割されており、それぞれのソース・パケットには、たとえば、Ｐ１〜Ｐ５のパケット識別子が付されている。図３に示したソース・パケットのサイズは、本発明においては特に制限されるものではなく、いかなるサイズにでもすることができる。ソース・パケットＰ１〜Ｐ５へと分割されたストリーム２４は、たとえば、インターネット、または異なるドメインに帰属されるＬＡＮやＷＡＮといった第１のネットワークを介してグループ＃１へと送信される。
図３に示した特定の実施の形態においては、後述するように、各クライアント２０ａ〜２０ｅは、ほぼ同様のスループットを有しているものとされており、クライアント２０ａ〜２０ｅをそれぞれ中間ノードとして選択し、クライアント２０ａ〜２０ｅへとソース・パケットＰ１〜Ｐ５を１パケットづつ送信しているのが示されている。
ここで、パケットＰ１を受信したクライアント２０ａの機能について詳細に説明する。各クライアント２０ａ〜２０ｅには、グループ＃１に帰属されるクライアントに対応するメンバー・リストが含まれていて、メンバー・リストを参照して、グループ内において、たとえばこれまで知られたいかなるプロトコル、たとえばＴＣＰ／ＩＰ、ＵＤＰ、プロミスキャスモードといった通信プロトコルにしたがって、たとえば同報通信を実行することにより、コピー・パケットを他のクライアント２０ｂ〜２０ｅへと送信する。また、本発明においては、コピー・パケットの送信に際しては、より確実に他のクライアントのそれぞれのＩＰアドレスに宛ててコピー・パケットを、ソース・パケット到着後直ちに、あるいは一定の時間間隔をもって送信することもできる。本発明において使用することができる送信方法は、所定のグループを構成するクライアントの数、コスト、信頼性などを考慮して適宜選択することができる。他のクライアント２０ｂ〜２０ｅは、クライアント２０ａからのコピー・パケットを受信して、受信バッファへとコピー・パケットを蓄積する。同様のコピー・パケットの送信は、クライアント２０ａ以外にも、他のクライアント２０ｂ〜２０ｅも実行する。各クライアントは、たとえば１秒程度以下で、後続するストリームの処理に影響を与えないことが保証できる所定の期間だけ、受信バッファへとコピー・パケットを蓄積する。
所定の期間が経過した後、クライアント２０ａの受信バッファには、パケット識別子に対応して受信バッファ内のアドレスを指定する実施の形態は、たとえば「Ｐ１Ｐ２Ｐ３Ｐ４Ｐ５」の順で１ストリーム分のソース・パケットが蓄積されることになる。クライアント２０ａは、所定の期間の間に蓄積されたパケットおよびコピー・パケットをＦＥＣデコーダ、ソース・デコーダなどを用いて１ストリーム分の動画イメージ・データを、「Ｐ１Ｐ２Ｐ３Ｐ４Ｐ５」として再構成することが可能となる。また、特に不都合が生じない限りにおいては、受信したパケットの順は、特に連番として蓄積するのではなく、受信した順に記録しておき、ソートして再構成することも可能である。
図４は、本発明において動的に中間ノードとなるクライアントが選択される場合の実施の形態を示した図である。本発明においてはサーバ１４と、クライアント２０とは、ＴＣＰといった接続指向の接続を使用してネットワークが構築されている。図４（ａ）に示すように、サーバ１４は、より詳細には後述するように、各クライアントへのスループットをモニタして、スループットの大きさに応じて、確率的にクライアントを選択する。かならずしも、スループット最大のクライアントが、常に選択されるわけではない。そして、選ばれたクライアント２０ｂを、第１の中間ノードとし、第１のソース・パケットＰ１を送信する。また、サーバ１４は、クライアントのスループット変化を、たとえば数秒以下程度の頻度で継続的にモニタして、動的にその時点においてオーバーヘッドの少ないクライアントから中間ノードを選択する。たとえば図４（ｂ）に示した実施の形態においては、その時点でクライアント２０ｄが最もオーバーヘッドが小さく、このため中間ノードとしてサーバ１４により選択され、ソース・パケット、たとえばソース・パケットＰ３を受信しているのが示されている。
上述した構成を採用することにより、本発明によれば、サーバ１４が重複したパケットを、グループ＃１を構成するクライアント分だけ送信することなく、１ストリーム分だけのソース・パケットとして送信するだけでグループ＃１のすべてのクライアントに対してディジタル・コンテンツを保持させることが可能となる。すなわち、本発明は、従来ではグループ＃１に含まれるクライアントへと送信する際のサーバ１４への負荷集中を、ネットワーク全体に対して分散させることを可能とし、サーバ１４を含むネットワークの効率を向上させることを可能とすると共に、ネットワークにおけるトラフィックのスケーラビリティを向上させることを可能とする。
＜Ｂ−２＞ネットワーク・スケーラビリティ
以下、本発明の構成における、サーバ１４およびクライアント２０の間における通信トラフィック量を検討する。本発明にしたがって、クライアント２０ａに対して送受信されるパケットのトラフィックを図５に示す。サーバ１４から単位時間にｎパケットが、各クライアントに対して均等に送信されるものと仮定する。ｎ／ｍのソース・パケットがサーバ１４からクライアント２０ａへと送出され、クライアント２０ａは、サーバ１４から送出されたソース・パケットを受信する。パケットを受信したクライアントは、受信したソース・パケットをｍ−１のクライアントにリレーする（コピー・パケットの配信）。クライアント２０ａは、同時に、他のクライアントからコピー・パケットを受取るが、これは、ネットワーク上で見れば、他のクライアントから送出されるパケットと同一なので、クライアント１台あたり単位時間に（ｎ／ｍ＋ｎ／ｍ×（ｍ−１）＝ｎ）パケットの通信が発生する。この通信トラフィック量は、従来のエッジ・サーバの構成を使用する従来例の場合と比べても、パケット数の増減はない。上述したパケットの送信量は、クライアントが、均等に選択されない場合でも成立する。
次に、各クライアントが単位時間に入出力処理する必要のあるパケットの数は、均等選択の場合で、サーバ１４からはｎ／ｍ、他のクライアントからは、｛ｎ／ｍ×（ｍ−１）｝の、合計ｎパケットの入力と、ｎ／ｍのソース・パケットをクライアントにリレーする｛ｎ／ｍ×（ｍ−１）｝パケットの出力なので、パケットの入出力処理数は、｛ｎ×（２ｍ−１）／ｍ｝［ｐａｃｋｅｔｓ］で与えられる。したがって、最小（ｍ＝１）でｎパケット、最大（ｍ→∞）でも２ｎパケットを越えることはない。すなわち、クライアントの数が増大しても、各クライアントの負荷は２ｎパケット分の負荷に漸近するばかりで、それ以上になることはなく、各クライアントにおいて負荷のオーバーフロー問題は生じない。一方、サーバ１４では、ｍ台のクライアントのうち、パケットごとにクライアントひとつを選択する作業が必要となる。このクライアント選択処理は、クライアント数ｍに比例し、パケットの送信の数に関してはクライアントの数にまったく依存しない。したがって、クライアント数が増えた場合でも、本発明のディジタル・コンテンツ配信は、ネットワーク・スケーラビリティにおいて不都合は生じない。
次いで、均等選択とは対極の場合、すなわち、ただ一つのクライアントのみがサーバ１４からすべてのソース・パケットを受取る場合も本発明においては想定される。この場合であっても、クライアントに対しての入力パケット数は、ストリーム分であるがために従来の場合と変わらず、選択されたクライアントでｎソース・パケットが入力される。また、ソース・パケットを受信したクライアントからのコピー・パケットの出力は、そのクライアントにおいてのみｎ×ｍのパケット数となる。この場合には、選択されたクライアントのみが負荷が増大することになるものの、グループ内での同報通信量が増加するだけであり、サーバ１４からグループへのディジタル・コンテンツの配信には重大な問題は生じない。さらに、本発明においては、上述した単一のクライアントのみにソースパケットが偏って送信されないよう、できるだけ均等選択に近くなるように、動的にパス木構造を選択することが好ましい。同時に動的にパス木構造を選択してネットワーク・システムを安定に保つための再構成を行うことも可能である。上述した動的パス木構造の選択については、より詳細には後述する。なお、選択の不均等性による送出パケットの局所的な増大を防ぐためには、コピー・パケットの送信速度の制限および送信処理の制限時間を設け、それを過ぎたパケットを破棄するなどして対応することが可能である。
＜Ｂ−３＞Ｄｙｎａｍｉｃ  ｓｅｌｅｃｔｉｏｎ（ｄｙｎａｍｉｃ  ｏｐｔｉｍｉｚｉｎｇ）
本発明においてパス木構造は、クライアントのうち、どれか１つまたは複数を固定して静的に利用するのではなく、動的に選択される。パス木構造の選択においては、
（ａ）そのクライアントがパケットを受信する準備ができていること、
（ｂ）サーバから見てｒｏｕｎｄ−ｔｒｉｐ  ｔｉｍｅ（ＲＴＴ）の小さい、すなわち処理オーバーヘッドの小さいクライアントを中間ノードとして選択するパスを優先させること、
（ｃ）パケットのコピー・レートの高いクライアントを中間ノードに持つパスを優先させること、
に基づき、パケットを送信するパス木構造を動的に構成する。
上述した（ａ）の条件の確認処理は、ＴＣＰなどの接続指向の接続を利用して実現可能である。また、（ｂ）において説明したＲＴＴの測定には、サーバ１４がソース・パケットを送出する場合に、例えばＩＰｖ４のフォーマットを使用して説明すると、送信パケットのＩＰヘッダ部分に時刻を記録しておき、ソース・パケットを受け取ったクライアントがＩＰヘッダ部のみをそのまま返送するなど、または別にアプリケーション・レベルで生成される独自ヘッダを使用して、独自ヘッダに時刻を記録し、この独自ヘッダをそのまま返信するなど、ＩＰヘッダなどに記録された時刻とサーバが返送を受け取った時刻との差を利用する方法などを用いることができる。また、サーバ１４がソース・パケットを送信した時刻を記憶しておき、クライアントからのレスポンス・パケットを受信して、レスポンス・パケットのＩＰヘッダの時刻を読み取って確認することもできる。
ＴＣＰを利用する場合には、その階層での再送処理にかかった分などを含めた時間、すなわちスループットがＲＴＴに関連して観測される。なお、ＲＴＴの測定については、揺らぎを吸収するために、何回かの観測での平均を利用することもできる。
また、（ｃ）において説明した条件であるコピー・レートは、中間クライアントから、その下流クライアントへパケットを送ることのできた成功率を利用する。コピー・レートが変動する原因は、ＴＣＰなどの接続指向のネットワークでは、中間クライアントが時間制限のためにパケットを破棄する、などの場合がある。クライアント間がＵＤＰで接続されている場合には、下流クライアントへのパケットの到達率より、コピー・レートを計算する。
上述した条件を満たすために、本発明の特定の実施の形態においては、条件（ａ）を満たしたクライアントについて、所定の割合でソース・パケットが送信されるように選択する。図６には、本発明において動的にクライアントを中間ノードとして選定する場合の概略図を示す。図６に示されるように、サーバ１４は、クライアント２０ｅを中間ノードとして選定し、ソース・パケットを送信している。クライアント２０ｅは、たとえばサーバ１４からのディジタル・コンテンツ配信開始に対応して、その時点で最も早くレスポンスを返したクライアントとして選定することができる。たとえば、クライアント２０ｅ以外のクライアントは、他の処理を実行しているか、所定のしきい値時間の間に応答をサーバ１４へと返さなかった、またはクライアント２０ｅよりもＲＴＴがたとえば設定されたしきい値以上に遅かった、などの理由から中間ノードとして選定されていない。
図６に示される実施の形態では、クライアント２０ｅは、サーバ１４から見て充分な処理能力があるものと判断されて、ソース・パケットを受信する中間ノードとされている。ソース・パケットを受信したクライアント２０ｅは、グループ＃１内の他のクライアントへと、たとえば同報通信などを使用して、コピー・パケットを送信する。
本発明においては、さらに、最もＲＴＴが小さかったクライアントを中間ノードとして選択する他、下記に説明するように、クライアント間にＲＴＴに関連して割り当て重みを付与することができる。たとえば、本発明において最も好ましい実施の形態においては、採用することができる割り当て重みは、下記式に基づいて与えることができる。
2003105421.tif 000003
上式中、ｔｋｒｋは、            実質的なスループット、すなわち単位時間でクライアントが処理できるパケットの数に比例する。したがって、この割り当て方法は、実効スループットを最大化する、すなわち、安定性を最大化することが目標関数になっている。なお、本発明においては、上記条件をソース・パケットごとに適用することができる。また、本発明においては、ソース・パケットの割り当て重みは、所定の時間間隔で定期的に更新することができる。各時点でパケットを受信できないクライアントは、パス選択の候補からすでに除外されているので、割り当て重みに誤差があったとしても、ソース・パケットが喪失するような重大な状況は起こらない。また、本発明の他の実施の形態においてはＲＴＴのみを使用して実効スループットを判断することもできる。
＜Ｂ−４＞動的再構成
本発明はさらに、サーバが認識しているグループに対して新たなクライアントが追加された場合には、自動的に新たなクライアントの増加に対応することにより、ネットワーク構成の変化に対して柔軟に対応することを可能とする。
図７には、本発明においてグループ＃１に対して新たにクライアントが追加された場合のサーバ１４の処理を示す。図７に示されるように、グループ＃１内に新たなクライアント２０ｆが追加されると、クライアント２０ｆは、たとえば他のクライアントから入手したサーバ１４のＩＰアドレスを使用して、サーバ１４に対してＪＯＩＮ  ｒｅｑｕｅｓｔを送信する。ＪＯＩＮ  ｒｅｑｕｅｓｔには、新たに参加したクライアント２０ｆの取得した、または割り当てられたＩＰアドレスなどのクライアント識別子を含ませることができる。
サーバ１４は、ＪＯＩＮ  ｒｅｑｕｅｓｔを受け取って、サーバ１４内に保持され、宛先リストとして使用されるグループ＃１のクライアント・リストへと当該クライアント２０ｆのクライアント識別子を追加する。図７に示した実施の形態においては、グループ＃１に含まれるクライアント２０ａ〜２０ｄへと新規クライアントの追加を通知する、ＮＥＷ  ＭＥＭＢＥＲ  ｎｏｔｉｆｉｃａｔｉｏｎを、たとえば、グループ＃１のＩＰアドレスに宛てた同報通信を使用して送出する。ＮＥＷ  ＭＥＭＢＥＲ  ｎｏｔｉｆｉｃａｔｉｏｎを受信したグループ＃１内のクライアント２０ａ〜２０ｃは、メンバー・リストを更新し、コピー・パケットの配信先として登録する。
次いで、サーバ１４は、新規に参加したクライアント２０ｆに対して接続が完了したことを示すＣＯＮＮＥＣＴ  ｒｅｑｕｅｓｔを送信する。図７に示した実施の形態においては、ＣＯＮＮＥＣＴ  ｒｅｑｕｅｓｔには、サーバ１４が保持するグループ＃１を構成するクライアントのメンバーに対応する、クライアント識別子を含ませることができる。クライアント２０ｆは、ＣＯＮＮＥＣＴ  ｒｅｑｕｅｓｔを受信して、メンバー・リストを更新する。なお、このためには、同一の出願人に帰属される、たとえば特願２００２−０８８７０２号に記載された自動ＩＰアドレス取得方法を使用することができる。上述した特願２００２−０８８７０２号に開示の自動ＩＰアドレス取得方法を使用することができる場合には、すでにメンバー・リストが各クライアント２０ａ〜２０ｆに保持されているため、サーバ１４からのＮＥＷ  ＭＥＭＢＥＲ  ｎｏｔｉｆｉｃａｔｉｏｎの送信は必要とされなくとも良い。
サーバ１４は、上述した処理の後、ディジタル・コンテンツの配信を行うためのパス木構造において新たに参加したクライアント２０ｆを含んだパスを判断することが可能となる。本発明の特定の実施の形態においては、クライアント２０ｆが参加した直後は、作成されているパス木構造の最下流にクライアント２０ｆが追加され、他のクライアント２０ａ〜２０ｃからコピー・パケットを取得する構成とすることができる。クライアント２０ｆを含む新しいパス木構造は、ＲＴＴのモニタにおける所定の期間を経過した後のパス選択において構築される。
なお、本発明において、新たに参加したクライアント２０ｆの性能は、初期段階では不明なので、たとえば下記式で示されるように、予め大きなＲＴＴを初期値（ｌａｒｇｅ  ｖａｌｕｅ）として付与しておき、ソース・パケットを受信する頻度を下げておくことができる。この判断においては、過去の実績の重みを漸次低下させる、いわゆる忘却要素（ｆｏｒｇｅｔｔｉｎｇ  ｆａｃｔｏｒ）を含ませた平均化を使用することができる。本発明においてはその後、新規参加のクライアントのいわゆる“実績”が明らかになった時点で本発明の動的構成方法を適用することが、ネットワークの安定性を確保する点では好ましく、また本発明の有効性をさらに向上させることができる。
図８には、新たに生成されたパス木新構造に基づいて新たに参加したクライアント２０ｆに対して、サーバ１４からソース・パケットが送信され、また他のクライアント２０ａ〜２０ｃからコピー・パケットが、新たに参加したクライアント２０ｆに対して送信されているのが示されている。
また、本発明においては参加クライアントが離脱したときには、サーバ１４は、接続指向のネットワークを介して、クライアントの離脱を知ることができる。なお、クライアントの異常終了であっても離脱は検出できるが、ネットワーク・ケーブルが外れるなどのケースでは、タイムアウトするまでそれを検出できないという事象が発生する。本発明においては、タイムアウトが発生する場合でも、動的選択のルール（受信可否の確認）により、ソース・パケットがそのクライアントに向けて送られることはないので、他のクライアントが受け取るパケットが一斉に失われるという不都合は発生しない。
参加クライアントの離脱を認識したサーバ１４は、当該クライアントが中間ノードとされるパス木構造を直ちに破棄し、ソース・パケットの損失を防止する。グループ＃１に残ったクライアントは、受信したソース・パケットをメンバー・リストにしたがって配信することもできるし、同報通信ベースでコピー・パケットを送信する場合には、グループ＃１内の受信可能なクライアントすべてに向けてコピーパケットを送信することもできる。また、残されたクライアントは、離脱クライアントと自分との間の接続を解消することにより、パス木構造すべての最下流から、脱離クライアントを削除することができる。
また、離脱したクライアントに送ったソース・パケットのいくつかが、リレーされずに離脱とともに破棄されることがある。このような、クライアント離脱に伴うパケット喪失を防ぐためには、サーバ１４が、各クライアントに送ったパケットについて時間的に新しいものをいくつか記録しておき、離脱クライアントが検出された時点で、それに送った分を、他のクライアントに再送する処理を用いることができる。
本発明においては、上述した構成を採用することにより、サーバおよびクライアントが、自動的にパス木構造の追加や削除、局所的な変更により、クライアント参加離脱によるグループの再編成を行い、また、最近送信したパケットを記録して必要に応じて再送することにより、突然の離脱に起因するパケット喪失を防ぐことを可能とする。
図９は、本発明において説明したクライアント２０の構成を示した機能ブロック図である。クライアント２０は、ネットワーク・インタフェイス・カード（ＮＩＣ）３０を介して、第２のネットワーク２２へと接続されている。クライアント２０は、さらに、受信バッファ３２と、メモリ３４と、ＲＡＭといったメモリ３６とを含んで構成されている。受信バッファ３２は、受信したソース・パケットおよびコピー・パケットを、動画イメージ・データのストリームを再構成するまでの間保持している。
本発明においては、受信バッファ３２は、受信したパケットを受信するごとにパケット識別子に対応したアドレスに受信したパケットを書き込みを行う、リング・バッファとして構成することができる。また、クライアント２０は、中央処理装置（ＣＰＵ）３６と、ソース・デコーダ３８と、ＦＥＣデコーダ４０とを含んで構成されている。ただし、本発明においてはＦＥＣデコーダは、必ずしも必要ではない。ＣＰＵ３６は、クロックにより駆動されており、受信バッファ３２において所定期間ごとに蓄積されたパケットを読み出してソース・デコーダ３８およびＦＥＣデコーダ４０へと送り、１ストリーム分の動画イメージ・データを再構成している。再構成された１ストリーム分の動画イメージ・データは、ディスプレイ４２へと表示または再生され、クライアントのユーザに対して提供される。
ユーザに対して表示または再生された動画イメージ・データは、クライアント２０から削除することもできるし、また、ディジタル・コンテンツの開始から終了までの全ストリームをメモリ３４に保持させておき、ハードディスク、光磁気ディスク、磁気テープといった記憶装置４４に記憶させておくこともできる。記憶装置４４には、たとえばグループ＃１を構成するクライアントを識別するためのクライアント識別子を含んで構成されたメンバー・リストも保持させることができる。メンバー・リストは、クライアントの起動時に記憶装置４４からクライアントのメモリ３６などに読み込まれ、常駐ファイルとして保持される。図９に示したクライアントが、ソース・パケットを受信した場合には、クライアント２０は、メンバー・リストを参照してコピー・パケットを配信する宛先を指定する。また、クライアント２０がコピー・パケットを、ＴＣＰ／ＩＰプロトコルにしたがい、たとえばＩＰｖ４のフォーマットで宛先をａｂｃ．ｄｅｆ．ｇｈｉ．２５５などとして同報通信する場合には、上述したメンバー・リストを直接参照する必要はない。
図１０は、本発明のサーバ１４の構成を示した図である。図１０に示されたサーバ１４は、ネットワーク１２に対して、モデム、ＤＳＵ、またはネットワーク・インタフェイス・カードといった通信手段４６を介して接続されており、図示しないクライアントへとディジタル・コンテンツを配信している。以下、本発明のサーバ１４の機能につき、ディジタル・コンテンツの取り込みから順に説明する。
図１０に示したサーバ１４には、ディジタル・ビデオカメラといった撮像手段４８が接続されており、ディジタル・コンテンツとして配信することを希望する、たとえば、番組、講演会、挨拶、教育プログラムなどが、記録媒体にディジタルデータとして収録されている。収録されたディジタル・データは、適切なインタフェイスを介してサーバ１４へと取り込まれ、たとえば記憶装置５０に保持される。本発明におけるディジタル・データとしては、上述した動画イメージ・データを含む、マルチメディア・データとして構成することが好ましい。ディジタル・コンテンツをクライアントへと送信する場合には、まず、ＣＰＵ５２が、記憶装置５０からディジタル・コンテンツを読み出し、読み出されたディジタル・コンテンツをソース・エンコーダ５４およびＦＥＣエンコーダ５６へと送る。ディジタル・データを受信したソース・エンコーダ５４およびＦＥＣエンコーダ５６は、ディジタル・データに対してストリーミング処理を施し、さらに１ストリームを所定のサイズのパケット、たとえばパケットＰ１〜Ｐ５に分割する。生成されたパケットＰ１〜Ｐ５は、通信手段４６を介して、たとえばグループ＃１へとディジタル・コンテンツを配信する。
サーバ１４とクライアント２０との間には、接続指向のネットワーク・プロトコルが確立されているので、すでにＲＴＴがモニタされ、少なくともＲＴＴに応じた重みが割り当てられており、割り当て重みに対応してクライアントが中間ノードとして選択されている。サーバ１４は、選択された中間ノードとしてのクライアントに対して、ソース・パケットを送信し、ディジタル・コンテンツの配信を実行する。図１１には、本発明において使用することができるソース・パケット５８の実施の形態の構成を、ＩＰヘッダを使用して示した場合につき説明する。図１１（ａ）に示すように、サーバ１４から送信されるソース・パケット５８には、たとえばＩＰヘッダ５８ａを含んで構成され、ＩＰヘッダ５８ａは、送信元アドレスや、宛先アドレス５８ｂを含んで構成されている。さらに、ソース・パケット５８は、配信を行うディジタル・データのパケット５８ｃと、連番として付されたパケット識別子５８ｄ、たとえばＰ１と、ソース・パケットを送信した送信時刻５８ｅなどが含まれている。本発明においては、上述したパケット５８ｃと、パケット識別子５８ｄと、送信時刻５８ｅとを、アプリケーション・レベルで作成する独自パケットとして構成することができる。また、ＩＰヘッダ５８ａには、ＩＰバージョン情報と、送信元ＩＰアドレスなどが含まれていて、クライアントからの返信に基づいて、サーバ１４がＲＴＴを判断することができる構成とされている。図１１（ａ）に示したソース・パケット５８をクライアントへと送信する際には、サーバ１４は、ソース・パケット、たとえばＰ１を送信した時刻をタイマなどによりモニタしておくこともできる。
ソース・パケットＰ１を受信したクライアントからのレスポンス・パケットは、ネットワーク１２を介してサーバ１４へと返信され、サーバ１４内の適切な記憶部にいったん蓄積されて、クライアントがレスポンス・パケットを送信した時間を、たとえばレスポンス・パケットに付された送信時刻などに記録された時刻から読み出す。図１１（ｂ）には、クライアントからのレスポンス・パケット６０の構成の実施の形態を示す。図１１（ｂ）に示されるように、レスポンス・パケット６０は、ＩＰヘッダ６０ａを含み、このＩＰヘッダ６０ａは、上述したように送信元アドレスや、宛先アドレス６０ｂを含んでいる。さらにレスポンス・パケット６０は、受信したディジタル・データのパケット識別子６０ｃと、レスポンス・パケット６０をクライアントが発行した時刻６０ｄと、ソース・パケットＰ１を送信したパケットの送信時刻５８ｅとを含んで構成されている。ＩＰヘッダ６０ａには、クライアントがレスポンス・パケット６０を送信した時刻や、送信元クライアントの送信元ＩＰアドレスなどが記録されている。
本発明においては、サーバ１４がレスポンス・パケット６０を受信すると、ソース・パケット５８と、レスポンス・パケット６０とに共通して含まれる識別子、図１１に示した実施の形態では、パケット識別子のＰ１を使用してソース・パケット５４の受信に対応したレスポンス・パケットであることを判断し、本発明の特定の実施の形態においては、送信時刻５８ｅと、発行時刻６０ｅとを使用してＲＴＴを算出し、１／ＲＴＴおよびコピー・レートとを使用してクライアントの実効スループットを判断する。判断された実効スループットは、たとえば一定期間平均化された後、図１２に示すクライアント・リストを更新するために使用される。また、本発明の他の実施の形態においては、ＩＰヘッダに時刻が記録されている場合には、ＩＰヘッダに記録された時刻を直接用いることもできる。
図１２は、本発明においてサーバ１４が使用するクライアント・リスト６２の実施の形態を示した図である。図１２に示したクライアント・リスト６２は、サーバ１４がディジタル・コンテンツを配信する際に登録されているグループ識別子６２ａと、所与のグループに含まれるクライアントのクライアント・アドレス６２ｂと、所定期間平均された実効スループット６２ｃとを含んで構成されている。グループ識別子６２ａは、たとえばディジタル・コンテンツの配信を行う場合に、テレビ放送局、衛星放送局、イベント・プロバイダといったコンテンツ・プロバイダが、ユーザからの登録などにより作成することができる。また、特にコンテンツ・プロバイダではなく、サーバ１４が企業、行政機関、法務機関、立法機関、教育機関、図書館などのイントラネットを介してディジタル・コンテンツを配信する場合には、各企業または機関のグループごとに割り当てられている、たとえばＩＰアドレスなどを使用することができる。
また、クライアント・アドレス６２ｂは、本発明の特定の実施の形態においては、特定のグループに割り当てられたＩＰアドレスなどを使用することができる。図１２に示された実効スループット６２ｃは、上述した割り当て重み付けのために使用される本発明における本質的なパラメータである。本発明においては、上述した重み付けは、不必要な変動を防止してパス木構造の安定化を行いネットワークの安定性・信頼性を確保すると共に、クライアントの脱離や、参加、または処理状況に応じたオーバーヘッドの変動に対して柔軟に対応するべく、たとえば１秒程度の時間間隔に渡って平均化され、実効スループットとして定期的に更新されている。図１２に示した実効スループット６２ｃは、たとえばグループ＃１に含まれるクライアント２０ａ〜２０ｅに対応した値が、＃１Ｔａ〜＃１Ｔｅとして示されている。
ここで、たとえば中間ノードとして＃１Ｔｂと、＃１Ｔｃとが選択され、割り当て重みが３：２であるものと仮定すると、図１３に示したパス木構造が、サーバ１４において形成される。サーバ１４は、クライアント２０ｂとクライアント２０ｃとに対して、重み付けに応じてたとえばソース・パケットＰ１〜Ｐ３までをクライアント２０ｂに送信し、クライアント２０ｃに、ソース・パケットＰ４，Ｐ５を送信する。送信されたソース・パケットは、中間ノードとして選択されたクライアント２０ｂ、２０ｃから、グループ＃１に含まれる他のクライアントへとコピー・パケットｃＰ１〜ｃＰ５として送信され、それぞれのクライアントの受信バッファに蓄積され、所定の時間蓄積された後、１ストリーム分を再構成するために使用される。なお、本発明の他の実施の形態においては、送信されるソース・パケットの数を他のいかなる比として中間ノードへと送信することもできる。
Ｃ：ディジタル・コンテンツ配信システムの他の実施の形態
図１４は、本発明のディジタル・コンテンツ配信システムの第２の実施の形態を示した図である。図１４に示したディジタル・コンテンツ配信システムは、ディジタル・コンテンツを生成するためのソース・サーバ６４と、ソース・サーバ６４に保持され、ストリーミング処理が施されたディジタル・データを抽出して保持するドレイン・サーバ６６と、ネットワーク１２を介して接続されたグループＧ＃１、Ｇ＃２、Ｇ＃３とを含んで構成されている。各グループに含まれたクライアントは、本発明にしたがって中間ノードとして選択され、ディジタル・コンテンツのグループ内における配信を行う構成とされている。
図１５は、図１４に示したソース・サーバ６４およびクライアントの構成を示したブロック図である。図１５（ａ）に示すように、ソース・サーバでは、生成されたディジタル・データからソース・デコーダ６４ａおよびＦＥＣエンコーダ６４ｂとを使用してストリーミングされたディジタル・コンテンツを生成する。生成されたパケットは、ドレイン・サーバ６６へと送信され、ドレイン・サーバ６６において本発明に必要なｎ個のソース・パケットに編集され、ネットワーク１２を介してクライアントへと送信を行っている。また、図１５（ｂ）には、クライアント側の構成および処理が示されている。クライアント２０は、コピー・パケットを受信し、所定の期間蓄積した後、ＦＥＣデコーダ３８およびソース・デコーダ４０を使用して１ストリーム分のディジタル・コンテンツを再構成し、ユーザに提供している。同時に中間ノードとして選択されたクライアント２０ａは、受信したソース・パケットをコピーしてコピー・パケットとして他のクライアントへと送信している。
Ｄ：ディジタル・コンテンツ配信におけるソース・パケット通信プロトコル
図１６は、本発明のサーバと、クライアントとの間のソース・パケットの通信を、時系列的に示した図である。サーバから送り出されるソース・パケットは、一定のインターバルでいずれかのクライアントに向けて送出される。パケットを受け取ったクライアントは、サーバに、レスポンス・パケット  Ａｃｋ（ａｃｋｎｏｗｌｅｄｇｅｎｍｔ）を返す。クライアントは、定期的（たとえば１秒おき）に、コピーの成功率（コピー・レート）をサーバに報告する構成とされている。上述したように、パケットを送り出した時刻から、サーバがＡｃｋを受け取るまでの時間をＲＴＴ（Ｒｏｕｎｄ−Ｔｒｉｐ  Ｔｉｍｅ）としてパス木構造における中間ノードの、割り当て重みを決定するために用いられる。
図１７は、本発明において中間ノードとして選択されたクライアント間におけるソース・パケットおよびコピー・パケットの送信を各クライアントおよびサーバの間において時系列的に示した図である。サーバからソース・パケットＰ１およびＰ２を受け取ったクライアントａは、同一グループのクライアントｂにパケットＰ１およびＰ２のコピー・パケット＃１および＃２を送信する。そのコピーの成功率（コピー・レート）は、定期的にサーバに報告される。また、サーバは、パケットＰ３をクライアントｂへと送り、クライアントｂが、コピーパケット＃３をクライアントａへと送信している。クライアントａは、この時点でパケットＰ１〜Ｐ３を受信バッファ内に保持しており、順次上述したプロセスが繰り返されて、１ストリーム分のパケットとが蓄積される。
図１８は、本発明のクライアントの処理を示したフローチャートである。中間ノードとして選択されたクライアントは、常時ソース・パケットの着信を待機する状態とされており、ステップＳ１００において、パケットの着信をモニタしている。パケットが着信すると、ステップＳ１０２においてパケット識別子から受信バッファにおける格納位置を計算する。ステップＳ１０４においてバッファ該当位置が空か否かを判断し、空の場合（ｙｅｓ）には、まだ該当する番号のパケットが着信していないので、ステップＳ１１２において受信バッファの該当する位置に着信したパケットを書き込む。次いで、ステップＳ１１４において、受信したパケットがソース・パケットか否かを、例えばソース・パケットの着信を、ＩＰヘッダに含まれる送信元アドレスを使用して判断する。ソース・パケットが着信した場合（ｙｅｓ）には、ステップＳ１１６へと進みグループ内の他のクライアントに対して送信を行うためにコピー処理の予約を行う。コピー処理の予約は、例えば受信したパケットのコピーを適切なＦＩＦＯバッファに対して登録するなどして行うことができる。コピー処理の予約を終了すると、ステップＳ１００へと戻り、パケットの着信を待機する。
一方で、ステップＳ１０４の判断において対応するバッファ・アドレスが空でない場合（ｎｏ）には、すでに当該パケット識別子のパケットが着信しているので、ステップＳ１０６において、当該識別子のパケットがコピー処理に予約されているか否かを判断する。予約登録されている場合（ｙｅｓ）には、上書きしてソース・パケットを消去してしまうことになるので、ステップＳ１０８において予約登録を削除し、ステップＳ１１０においてコピー失敗カウンタをインクリメントし、ステップＳ１１２において該当するバッファ位置にその時点で受信しているパケットを上書きする。これは、クライアント側が、ソース・パケットのコピーを送信する前に後続するパケットが到着することに対応し、パケットの消滅に該当する。ステップＳ１０６の判断において、コピー処理に予約登録されていない場合（ｎｏ）には、ステップＳ１１２へと進んで、コピー・パケットなので該当するバッファ・アドレスにパケットを上書きし、ステップＳ１１４〜ステップＳ１００の処理を繰り返す。
図１９（ａ）は、本発明におけるコピー処理のフローチャートを示した図である。図１９に示したコピー処理は、ステップＳ１２０において、コピー処理を必要とするソース・パケットが登録されるまで待機する。ソース・パケットが登録されると、ステップＳ１２２において登録されたパケット、例えば説明している実施の形態においてＦＩＦＯバッファを使用して登録している場合には、先に登録されたパケットを選択し、ステップＳ１２４において他のクライアントへとコピー・パケットとして同報通信するか、または宛先ＩＰアドレスを参照して他のクライアントに個別に送信する。その後、ステップＳ１２８においてコピー成功カウンタをインクリメントし、ステップＳ１２０へと戻って待機する。上述したコピー成功カウンタの（コピー成功カウンタ＋コピー失敗カウンタ）に対する割合は、コピー・レートとしてサーバへと送信され、低すぎる場合には、再度１ストリーム分のパケットを送信し直すなどの処理により失われたパケットにより生じるディジタル・コンテンツ配信における不都合を防止することができる構成とされている。
図１９（ｂ）は、予期せぬクライアントの脱離が発生した場合や、該当するクライアントに重大な障害があることを検出した場合のサーバの処理を示したフローチャートである。サーバは、ステップＳ１３０において、ＲＴＴおよびコピー・レートを介して常にクライアントの実効スループットをモニタしており、例えば所定のしきい値時間の間にレスポンス・パケットを受信しない場合には、クライアントが脱離または障害が発生したものと判断する。サーバは、その後ステップＳ１３２へと進み、該当するクライアントに対して送信したソース・パケットのうち、所定のしきい値に相当する期間内に送信したソース・パケットを選択し、サーバの送出ソース・パケット・リストの先頭に再度登録し、他のクライアントへと再度登録されたソース・パケットを送信することで、ソース・パケットの消滅を防止する構成とされている。
図２０は、本発明のディジタル・コンテンツ配信システムのより具体的な他の実施の形態を示した図である。図２０に示した実施の形態は、具体的には、本発明を事業所内イントラネットを使った、講演会などの社内放送に対して適用する場合の実施の形態である。図２０に示した実施の形態においては、事業所内のイントラネットは、各セクションに配置されるエンド・ルータ７０を、イーサネット（登録商標）またはファイバチャネルなどのネットワーク７２によりにより、バックボーン・ルータ７４を使用して接続する構成である。エンド・ルータ７０の下には、例えば１００台程度のパーソナル・コンピュータから構成されたクライアント２０が、ピアツウピア接続されて、第２のネットワーク７６を構成している。図２０において説明する実施の形態においては、クライアント２０は、ネットワーク全体で約３０００台規模のネットワークを構成している。図２０に示した構成でたとえばサーバ７８がパケットを全クライアントに送信したものとすると、バックボーン・ルータ７４として例えば１Ｇｂｐｓのバンド幅のバックボーン・ルータを使用しても、８Ｍｂｐｓの送信速度を必要とする動画イメージ・データのスムースな送信はできず、例えばディジタル・バーサタイル・ディスク（ＤＶＤ）程度でのディジタル・コンテンツの配信は、従来の方法では不可能である。本発明のパケット重複回避を用いない場合には、クライアント１００台の場合であっても、ユーザは、リアルタイムにディジタル・コンテンツの配信をうけることができない。
このシステム対して、本発明を適用することにより、クライアント２０は、例えば１００Ｍｂｐｓのイーサネット（登録商標）でクライアントが、同一のスイッチング・ハブにより第２のネットワークを形成しているものとすれば、クライアント間のピアツウピア接続による通信速度は、４０〜５０Ｍｂｐｓのスループットが期待されるので、例えばＭＰＥＧ４において８Ｍｂｐｓの送受信に問題はない。一方、クライアントが異なるエンド・ルータに接続している場合には、異なるグループに分けたほうが効率的となる。ただし、その場合、サーバ７８は、グループの数だけストリームを送信することになる。１００台のＰＣを配下に接続するエンド・ルータが３０台ある場合には、各エンド・ルータごとにグループを割り当てることができる。
この場合には、バックボーン・ルータ７４に直接接続しているサーバ７８からは３０ストリーム分を２４０Ｍｂｐｓの消費で送信することになる。図２０に示した実施の形態においては、エンド・ルータ７０の下でグループ化されるパーソナル・コンピュータは、クライアント２０として、講演会の映像や音声受信に、常時参加でき、また離脱できる。また、相対的にパフォーマンスの低いクライアントは、パケット送信におけるパス木構造の下流側へと常時配置され、他のクライアントへの悪影響を回避することができる。なお、このときサーバは、３０００台のクライアントをパスの選択対象として管理することになるが、１台のサーバで充分にディジタル・コンテンツのリアルタイム配信を行うことが可能であった。
図２１は、本発明の具体的なさらに他の実施の形態を示した図であり、インターネット上に配置されたサーバ１４からの、複数クライアント２０でディジタル・コンテンツを同時に受信する実施の形態を、本発明にしたがって実行するものである。図２１に示した実施の形態においては、インターネットが第１のネットワーク１２を形成し、第２のネットワーク２２は、例えばルータ１６を介してインターネットへと接続されたイントラネットに相当する。インターネットから見れば、事業所内のイントラネットはバンド幅が広く、スループットの揺らぎの小さい、よく管理されたネットワークといえる。インターネットにサーバ１４が配置された場合、イントラネットに属するクライアントでグループを構成すれば、インターネット上でのパケット重複を防ぎ、また、特別なエッジ・サーバなしで、たとえば１Ｍｂｐｓの動画イメージ・データ映像の同時受信ができる。図２１に示した場合には、クライアントに対して要求される通信速度は、２Ｍｂｐｓの性能があればよいことが確認できた。
図２２は、ワイヤレス・ネットワーク上のサーバに対して、負荷軽減を可能とする、本発明のさらに別の実施の形態を示した図である。図２２に示した本発明の実施の形態では、サーバ１４での処理は、グループの数に応じたストリームの送信とパスの動的選択だけなので、従来の比較してサーバに対して加えられるオーバーヘッドは、小さくてすむことになる。たとえば、ＭＰＥＧ２、ＭＰＥＧ４の再生の方がＣＰＵ資源を非常に多く必要とするので、サーバ１４よりクライアント２０の方に負担が大きくなることもある。また、サーバ１４からクライアント２０で構成するグループまでは、１ストリームだけの送信なので、ワイヤレス・ネットワーク上に配置され、かつＣＰＵ資源の小さいサーバ１４からでも、ワイヤレス・ネットワークでで接続されたイントラネット上に位置する複数クライアントに向けて、たとえば３８４ｋｂｐｓでＭＰＥＧ４のストリームを同時配信することが可能となる。
Ｅ：ディジタル・コンテンツ配信を行う疑似トンネル配信を実行するディジタル・コンテンツ配信システム
図２３には、本発明において疑似的トンネル配信を行うことを可能とするディジタル・コンテンツ配信システムを示す。図２３に示したディジタル・コンテンツ配信システム８０は、ディジタル・コンテンツを、送信者から受け取って保持するためのサーバ８２と、複数のクライアント８６を含んで構成されるグループ８４ａ〜８４ｃに帰属されたクライアント８６とを含んで構成されている。サーバ８２と、グループ８４ａ〜８４ｃとは、ルータ８８を介してインターネットといった第１のネットワークにより相互接続されている。また、グループに帰属されるクライアント８６は、それぞれグループ内において構成されたＬＡＮにより相互接続されていて、データ共有および情報通信が可能とされている。なお、図２３に示すグループの数は、本発明においては図面に示した数に制限されることはなく、またクライアントの数についても図面に示した数に制限されるものではない。また、当業者によれば周知であるように、グループには、プリンタ・サーバ、メール・サーバといった各種のサーバが接続されていても良い。各グループは、複数がより大きな大域グループＧ１を構成しており、同様の構成の大域グループＧ２、Ｇ３が第１のネットワーク１２に接続されている。なお、Ｇ２、Ｇ３に対してもサーバ８２からディジタル・コンテンツを配信することができるが、それぞれ異なるサーバを使用することもできる。
図２３に示したコンテンツ配信システム８０の機能を詳細に説明すると、まず、サーバ８２は、配信すべきディジタル・コンテンツをプロバイダが管理する送信者サーバから受信することにより、またはプロバイダがサーバ８２に動画またはファイル形式で入力することにより、ディジタル・コンテンツを、ハードディスクといった記憶手段９０に保持させる。また、サーバ８２に直接ビデオカメラからマルチメディア・データを入力する場合には、サーバ８２が含む図示しない適切なバッファ・メモリなどにディジタル・コンテンツを保持させる。
保持されたディジタル・コンテンツは、サーバ８２においてストリーミング処理が施され、複数のセグメントへと分割され、ソース・パケットとして生成される。生成されたソース・パケットは、本発明の方法にしたがって実行スループットなどを使用して選定されるクライアント８６へと送信される。クライアント８６は、ソース・パケットを受信すると、図２３に示されるようにグループ内においてソース・パケットのコピーまたはグループ間におけるパケットのコピーを実行することにより、大域グループ全体においてディジタル・コンテンツの共有を可能とさせている。
また、クライアント８６は、ディジタル・コンテンツを再生するための、例えばウインドウズ・マルチメディア・プレーヤ（商標）といったアプリケーションを含んでいて、各クライアント８６のバッファ・メモリに蓄積されたディジタル・コンテンツ分ごとに再生処理を実行して、ユーザに対してディジタル・コンテンツの提供を可能とさせている。図２３に示した実施の形態においては、アプリケーションは、各クライアントに含まれ、また、ディジタル・コンテンツもクライアント８６ごとに蓄積されるものとされている。本発明においては、疑似トンネル配信は、サーバ８２においてグループ内、またはグループ間でのパケット・コピーを実行させるデータをソース・パケットに記述することにより実行することができる。また、さらに別の実施の形態では、クライアントにクライアント・リストから選択されるコピー先リストを記憶させておき、ソース・パケットの受信を判断して、コピー先リストを参照して、コピー・パケットを送信することも可能である。
図２４には、本発明において、疑似トンネル配信を実行するために生成されるソース・パケットの実施の形態を示す。図２４（ａ）に示したソース・パケット９２は、送信時刻記述領域９２ａと、ソース・パケットに付されたパケット識別子記述領域９２ｂと、グループ内のコピーを実行するか、またはグループ間でパケットのコピーを実行する行うかを指示するコピー指示フラグ領域９２ｃ、９２ｄと、ディジタル・コンテンツの実体的データから構成されるデータ・パケット記述領域９２ｅを含んで構成されている。
送信時刻記述領域９２ａは、サーバがパケットを最初に送出した時刻を、クライアントおよびサーバが認識できる任意の形式とすることができる。送信時刻記述領域９２ａは、サーバ８２が各パケットを送信するクライアントを決定するためにクライアントの反応時間、すなわち実行スループットを測定する場合に利用される。また、パケット識別子記述領域９２ｂは、サーバ８２が送出したソース・パケット付された連番を記録する領域であり、ソース・パケットの時系列的順番をクライアントが再構成する場合に利用される。
コピー指示フラグ領域９２ｃは、グループ内のコピーを行うべきかの真偽フラグが記述された領域であり、クライアントは、受信したパケットのこの領域のフラグが真であるパケットについて、グループ内のクライアントすべてにそのコピーを送信する処理を実行する。コピー指示フラグ領域９２ｄは、グループ間のコピーを行うべきかの真偽フラグが記述された領域であり、クライアントは、このフラグが真であるパケットを、大域グループ内の他グループそれぞれのうちのクライアントの一つに送信する処理を実行する。
データ・パケット記述領域９２ｄは、サーバ８２が送信し、クライアント８６が再生するべきディジタル・コンテンツの実体的なデータが記述された領域である。なお、本発明においては、これらの要素の前後や間に他の付加的な要素を加えてもよいし、要素の順序を入れ替えてもよい。また、場合によっては一部の要素を省略してもよい。またソース・パケット９２は、図示しないものの、図１１に示されるように、ソース・パケット９２を送信する際の宛先を指定する宛先ＩＰアドレス、送信元ＩＰアドレスを含んで構成されている。
図２４（ｂ）には、本発明のコンテンツ配信サーバ８２において生成されるソース・パケットの第２の実施の形態を示す。図２４（ｂ）に示した実施の形態では、ソース・パケット自体にパケットのコピーを送信するべきクライアントのリストを含ませ、より詳細に配信先を指定する実施の形態である。この場合、サーバ８２は、サーバ自体が保持するクライアント・リストを参照して、送信するべき相手のリストをソース・パケット９２へと記述する。また、図２４（ｂ）に示されたソース・パケット９２は、送信時刻記述領域９２ａと、パケット識別子記述領域９２ｂとを含んでおり、これらは図２４（ａ）で説明したと同様の機能をクライアントに対して実行させる機能を有する。また、図２４（ｂ）に示したソース・パケット９２には、サーバ８２により指定されたコピー先を指定するコピー指示データ領域９２ｆが設けられている。クライアントは、ソース・パケットを受信したと判断すると、コピー指示データ領域９２ｆを読み出し、以下に記載する処理を実行する。
コピー指示データ領域９２ｆに記述された値Ｎ＿ｄｅｓｔは、コピーを送信すべき相手のリスト長を指定し、値Ｄｅｓｔ１〜ＤｅｓｔＮは、コピー・パケットを送信するべきクライアントを指定するＩＰアドレスなどのクライアント識別子を使用することができる。例えば、コピー指示データ領域９２ｆに自分のグループが指定されていれば、クライアントはグループ内のクライアントのみにそのコピーを送信する。一方で、コピー指示データ領域９２ｆに他のグループに送信することを指名する値、例えば他のグループに対応するＩＰアドレスなどが指定されていれば、クライアントは、指定されたグループのクライアントにそのコピーを送信する。データ・パケット記述領域９２ｅについては、図２４（ａ）において説明したと同様である。
図２４（ｃ）は、本発明において使用するソース・パケット９２の第３の実施の形態を示した図である。図２４（ｃ）に示した実施の形態は、コピー・パケットの送り先が最初から自明でパケットにはそれを記述する必要がない場合である。この場合には、クライアントは予めコピー先を、メモリまたはハードディスクといった記憶手段に記憶されたクライアント・リストから選択し、他のクライアントとは重複しない範囲で割り当てられたアドレス範囲のアドレスを有する他のグループのクライアントを選択して、コピー先リストを作成することができる。また、図２４（ｃ）の実施の形態においてグループ内においてコピー・パケットを配信する場合には、グループ内で同報通信を実行させることにより、配信を行うことができる。さらに他の実施の形態では、クライアントが各パケットについて、グループ内の他のクライアントにそのコピーを送信し、また大域グループ内の他のグループそれぞれに帰属されるクライアントの一つに受信したソース・パケットのコピーを送信するようにあらかじめ決めておくこともできる。この実施の形態において使用することができる図２４（ｃ）に示したソース・パケットには、送信時刻記述領域９２ａと、パケット識別子記述領域９２ｂと、データ・パケット記述領域９２ｅとから構成され、コピー・パケットの配信先は含まれていない。クライアントは、上述したように、コピー先リストまたは予め指定されたクライアントに対してコピー・パケットを配信する。
図２５は、本発明の疑似的トンネル配信のサーバが実行するプロセスを示したフローチャートである。本発明の疑似トンネル配信は、ステップＳ１３０においてサーバが、グループに新たなクライアントが参加したか否かを、クライアントから送信される通知（Ｊｏｉｎ  ｒｅｑｕｅｓｔ）をモニタして判断する。サーバが、新規に参加するクライアントを見出した場合（ｙｅｓ）には、サーバは、ステップＳ１３２において新規に参加するクライアントの実行スループットにつき、予め小さめの値を割り当て、以後の実績を考慮しながらいきなり新規参加のクライアントに大量のソース・パケットが送信されるのを防止する。ついでステップＳ１３４で、サーバは、クライアント・リストに当該クライアントを追加し、ディジタル・コンテンツを配信することを可能とする。ここで、クライアントの識別は、クライアントに割り当てられた識別子、例えばＩＰアドレス、クライアントに任意に付されたクライアント名称などにより行うことができる。ステップＳ１３６においてサーバは、新たなクライアントが大域グループに参加したことおよびそのＩＰアドレスなどの識別子を大域グループ内の新規参加したクライアントを含む、すべてのクライアントに通知する。この通知を受けたクライアントは、新たなリストをハードディスクまたは適切なメモリに格納する。この場合の通信は、本発明の疑似トンネル配信を使用して実行することもできるし、送信するデータ量がマルチメディア・データ、画像データなどと比較して比較的小さいため、これまで知られたいかなる方法を使用して送信することができる。上述したプロセスにより、サーバと、クライアントとは、最新の同一のクライアント・リストを保有することが可能となる。
図２６は、ディジタル・コンテンツの配信を行う処理の、サーバとクライアントとのプロセスを示した図である。プロバイダがディジタル・コンテンツの配信を行うようにサーバに対して指令すると、ステップＳ１４０において、サーバは、クライアント・リストを参照し、最も実行スループットの大きな、またはラウンド・トリップ・タイム（ＲＴＴ）の最も小さなクライアントを選択して、第１のソース・パケットを当該クライアントのＩＰアドレスなどを参照して送信する。この場合、本発明の疑似トンネル配信方法の最も単純な実施の形態では、同一のソース・パケットは、大域グループに属するただ１つのクライアントへと配信される。
クライアントは、ステップＳ１４２でパケットを受信し、ステップＳ１４４で受信したパケットがサーバからのソース・パケットか否かを判断する。ソース・パケットの判断は、例えば、ソース・パケットに含まれる送信元アドレス、コピー指示フラグ、コピー指示データ領域が含まれているか否かなどを使用して判断することができる。また、本発明においてソース・パケットのコピーは、コピー・パケットであることが判断できる限り、いかなる形式でも作成することができる。また、最も普遍的に利用することができるソース・パケットの判断は、通常サーバに割り当てられたＩＰアドレスは固定ＩＰアドレスとされるので、パケットにおける送信元ＩＰアドレスを使用して行うことができる。ステップＳ１４４の判断においてソース・パケットであると判断した場合（ｙｅｓ）には、クライアントは、ステップＳ１４６においてソース・パケットに記述された配信先、または図２４（ｃ）に示されたソース・パケットを使用する実施の形態の場合には、コピー先リストを参照するなどして予め登録されている配信先へとソース・パケットのコピーを送信する。この場合、コピー・パケットの送信は、２つのプロセスを含んで実行される。すなわち、（ｉ）ソース・パケットを受信したクライアントが所属するグループに属するクライアントすべてにコピー・パケットを送信する、（ｉｉ）ソース・パケットを受信したクライアントが所属しないグループそれぞれに対して、そのグループ内のクライアントの一つを選んでこのパケットのコピーを送信する。この選択については、予め設定しておくこともできるし、また送信するべきクライアントのＲＴＴを適切な基準および手法モニタしておき、コンテンツ配信サーバと同様にレスポンス・タイムの小さいものを動的に選択して送信することもできる。
ステップＳ１４４の判断において、受信したパケットがソース・パケットではないと判断した場合（ｎｏ）には、受信したクライアントが格納するべきパケットなので、ステップＳ１４８においてクライアントは、受信したコピー・パケットをリング・バッファなどに蓄積し、ディジタルコンテンツの再生のための処理を開始し、ステップＳ１４２へと戻って次のパケットの処理を繰り返す。
図２７は、上述したサーバとクライアントとの間のパケット送受信の処理を簡略化して示した図である。図２７に示されるように、クライアントａは、Ｇで示された大域グループを構成するグループＳＧ＠ｙｉ＠ｚに属し、大域グループＧには、グループＳＧ＠ｙ１＠ｚ〜ＳＧ＠ｙｍ＠ｚ（１≦ｉ≦ｍ）のグループが存在する。クライアントａは、サーバ８２から受信したソース・パケットのコピーを、グループＳＧ＠ｙｉ＠ｚに属する全クライアントおよび他の（ｍ−１）のグループそれぞれの一つのクライアントｂへと送信する。
図２６および図２７に示した方法により、大域グループＧに含まれるクライアントは、サーバ８２および他のグループのクライアントおよび同一グループ内のクライアントからパケットを受信することが可能となる。この結果、サーバは、ディジタル・コンテンツを再構成させるための最小限の単位であるソース・パケットを、従来のトンネルをグループごとに構成して送信する場合のように、ディジタル・コンテンツの重複した送信を行うことなく、すべてのクライアントに対してディジタル・コンテンツを再構成させるためのすべてのパケットを配信することができる。さらに、本発明の疑似トンネル配信では、ソース・パケットは重複して送信されないので、クライアントにおけるパケットの重複は完全に回避することが可能となり、クライアントにおけるパケットの重複およびそれに伴う重複パケットの処理の問題を生じさせず、スムーズなディジタル・コンテンツの配信を行うことを可能とする。
また、クライアントは、ソース・パケットおよびコピー・パケットの所定量をリング・バッファに蓄積した後、これらのパケットをアプリケーションへと提供してディジタル・コンテンツをユーザに提供する。
本発明の疑似トンネル配信では、サーバ、グループ、クライアントのすべてについて通信帯域幅を圧迫しないでディジタル・コンテンツの配信を可能とする。サーバから大域グループに対して送信するパケットは１セット分であり、グループごとに見ると、受信パケットはソース・パケットおよびコピー・パケットを含めて１セット分であり、また送信パケットは、グループ単位で平均１セット分以下となる。クライアントごとに見ても、同様に受信パケットは１セット分、送信パケットは平均１セット分以下になる。ここで、大域グループに含まれる全クライアントの数を改めてｍ個として定義し、Ｍを、大域グループを構成するグループの数として定義する。この場合グループ間でクライアントの接続数が概ね等しいものとすれば、クライアントは、統計的に見て１セットの１／ｍのソース・パケットを受信し、受信したソース・パケットを、グループ内の（ｍ／Ｍ−１）のクライアントにコピーし、さらに（Ｍ−１）の他のグループに配信する。ここで、クライアント１つについてパケットの送受信量を概略的に算出すると、下記式
（（ｍ／Ｍ−１）＋（Ｍ−１））／ｍ＝（ｍ＋Ｍ＾２−２Ｍ）／ｍＭ
が得られる。上記式中、ｍＭ−（ｍ＋Ｍ＾２−２Ｍ）＝（ｍ−Ｍ）（Ｍ−２）＋ｍ＞０なので、
（ｍ＋Ｍ＾２−２Ｍ）／ｍＭ＜１
となることが示される。
また本発明によれば、一部のクライアントが参加離脱したり、または何らかの理由で異常終了しても、残りのクライアントは正常に受信を続けることができる。本発明では、サーバとグループとの間に複数のトンネルを提供するのではなく、サーバと、多数の分散したクライアントの間においてピア−ツウ−グループ型のトンネルを提供することでシステム全体に対してロバスト性を付与することが可能となる。
なお、上述した実施の形態では、クライアントは、ディジタル・コンテンツとディジタル・コンテンツを再生するアプリケーションとを対として保持しているものとして説明した。本発明においては、クライアントとアプリケーションとは、を同一のコンピュータ上で稼動させることもできるが、より詳細には後述するように、アプリケーションがディジタル・コンテンツを共有することもでき、上述した実施の形態に限定されるものではない。また、本発明においては、ディジタル・コンテンツを生成するサーバと、ストリーミング処理を施してソース・パケットを送信するサーバとを、同一のコンピュータ上で稼動させることもできるし、別々のサーバとして構成することができる。これらを互いに別々のコンピュータとして構成する場合には、プロバイダとサーバと間の通信は、マルチキャストであってもよいし、ＵＤＰまたはＴＣＰといった通信プロトコルを用いるユニキャストとすることができる。この点で、本発明はいわゆるマルチキャスト・トンネルとは異なり、サーバ・クライアント間でＩＰマルチキャストを一切使わなくてもマルチキャストと同様の効果を与えることを可能とする。
図２８は、サーバと、クライアントとの間のパケット送受信のタイミングを示した図である。図２８に示されるように、サーバは、時刻ｔ１において、ソース・パケット＃ｉをクライアント＃１に対して送信する。ソース・パケット＃ｉを受信したクライアント＃１は、ソース・パケットを受信したことを通知する信号“Ａｃｋ”をサーバに対して送信する。サーバは、信号“Ａｃｋ”を時刻ｔ２において受け取り、その時間差（ｔ２−ｔ１）を算出して、クライアント・リストの該当するクライアントの実行スループットを更新させる。
クライアント＃１は、ソース・パケット＃ｉを受信して直ちにコピー・パケットを生成し、時刻ｔ３において、クライアント＃１が帰属されるグループのクライアント、図２８に示した実施の形態では、クライアント＃２へとコピー・パケット＃ｉを送信する。同時にクライアント＃１は、他のグループに帰属されるクライアント＃３へとコピー・パケット＃ｉを送信する。クライアント＃２は、時刻ｔ４でコピー・パケット＃ｉを受信し、クライアント＃３は、時刻ｔ５においてコピー・パケット＃ｉを受け取る。クライアント＃３は、コピー・パケット＃ｉを受け取ったことを通知する信号“Ａｃｋ２”をクライアント＃１へと送信し、信号“Ａｃｋ２”は、時刻ｔ６においてクライアント＃１に受信される。クライアント＃１は、例えば時間差（ｔ６−ｔ３）としてグループ内での実行スループットを算出し、リストの該当するクライアント・リストを更新する。さらに、クライアント＃３は、同一のグループ内においてコピー・パケット＃ｉを同一のグループ内のクライアント＃４へと送信する。ここで、グループ内においてラウンド・トリップ・タイムを算出させていないのは、グループ内においてはクライアントを選択せずに必ずコピー・パケット＃ｉを送信しなければならないためである。また、本発明においては後述するように、各グループ間で通信帯域幅が大きく異なる場合には、サーバがソース・パケットを送信した時刻を記憶しておき、宛先のクライアントからＡｃｋ信号を受信した時刻を測定して、実行スループットを判断する基準とすることもできる。
図２９は、本発明の疑似トンネル配信システムの別の実施の形態を示した図である。ＡＤＳＬ、ＣＡＴＶなどの通信インフラ基盤を使用するネットワークでは、受信／送信（ｄｏｗｎｌｉｎｋ／ｕｐｌｉｎｋ）の帯域幅が非対称となる。図２９に示した実施の形態は、クライアント側のネットワークでｕｐｌｉｎｋの帯域幅が小さく設計されている場合に有効な実施の形態である。図２９に示した実施の形態では、サーバがソース・パケットを送信する場合、少なくとも１部のソース・パケットを複数のクライアントに送信する。図２９に示した場合には、クライアントとしては、例えばラウンド・トリップ・タイム（ＲＴＴ）の小さなものから順にそれぞれ別のグループに属するものを選択することができる。また、複数のクライアントに送信したソース・パケットとして、図２４（ｂ）に示したソース・パケット構成を使用し、どのグループのどのクライアントにコピーするかを直接指示することもできる。
図２９に示したクライアントが実行する処理を説明すると、ソース・パケット＃ｉを受信したクライアントは、ソース・パケットにおいて同一のソース・パケット＃ｉがすでに送られていない別のグループへとコピー・パケットを送信する。このことにより、同一のソース・パケットに対応するコピー・パケットが同一のグループに配信されてしまうことにより生じる不都合を排除することができる。また、ソース・パケット＃ｉには、同一のソース・パケット＃ｉを送付したグループのアドレスを記述して、当該記述されたアドレスのグループを除いたグループにコピー・パケットを送信することもできる。さらに、図２９に示した疑似トンネル配信を使用することにより、グループ間の通信量も削減することができ、ｕｐｌｉｎｋパケットの量を小さくすることができる。一方、サーバにとってみれば、同一のソース・パケットを複数のクライアントに送信する必要が生じるので負荷は高くなる。本発明においては、上述したトレードオフ、および使用している通信インフラ基盤の特性を考慮して、どの方法を使用するかを選択することができる。また、時間帯などに応じて、複数の方法を併用してディジタル・コンテンツの配信を行うこともできる。
図３０は、本発明の疑似トンネル配信システムのさらに別の実施の形態を示した図である。図３０に示した実施の形態では、グループ内におけるクライアント間でコピー・パケットを送受信しない。図３０に示した実施の形態では、クライアントから直接アプリケーションへとパケットを送るのではなく、クライアントは、受信したパケットをブロードキャスト、または第３のネットワークとして参照されるＬＡＮローカルなマルチキャストを用いて送信する。図３０に示した実施の形態では、アプリケーションは、他のコンピュータ９４に格納されており、アプリケーションを格納したコンピュータ９４は、クライアント８６から第３のネットワーク９６を介してディジタル・コンテンツを再生するために接続して必要なパケットを取得し、ディジタル・コンテンツの再生を行う。グループを接続する第２のネットワーク２２としては、ワイヤレス・ネットワークでもイーサネット（登録商標）でも許容されるものの、本発明の図３０に示した実施の形態で使用される、第３のネットワークは、第２のネットワークとは目的の異なる、例えばイーサネット（登録商標）などを使用したネットワークとすることができる。図３０に示した実施の形態では、アプリケーションを格納したコンピュータ９４は、グループ内のクライアント８６すべてが第３のネットワーク上にアップデートするパケットを都度受信して再生することができるので、ディジタル・コンテンツを過不足なくスムースに再生することができる。
また図３０に示した実施の形態では、アプリケーションは、クライアントと一対一でなくてもパケットを受信可能であることを意味する。ただし、第３のネットワーク９６上でクライアントが一つ以上稼動していることが必要である。この場合クライアント８６はすべてのパケットを取得して格納しなくても疑似トンネルを構成することができ、通信トラフィック量の削減およびクライアント側のハードウエア資源の節約を可能としつつ、ディジタル・コンテンツの配信が可能となる。
上述したように、本発明によれば、１対多数のデジタルメディア配信において、パケット単位での動的なパスの最適化により、系はクライアントの参加や離脱の影響を受けにくくなり、クライアントはいつでも参加あるいは離脱できる。また、異常終了による離脱やケーブルの断線などにも系は影響を受けにくく、安定性を向上させることができる。さらに、クライアントでの負担は基本的には均等に分散していて、大域グループ全体として受信機能が働くので（分散協調性）、特別な補助サーバを必要としない。これにより、自律性の観点から指摘されているような、ネットワークシステムの複雑化を避けて、メンテナンスの容易な単純なシステム構成にすることができる。
また、クライアントの参加離脱を反映する更新処理を局所化して、そのオーバーヘッドを常に小さくすることなどにより、サーバの負担を大幅に減らし、クライアントと同等あるいはそれ以下の資源しか許されない計算機でも、サーバとして機能させることができる。
さらに、本発明によれば、ネットワークを介して互いに接続され、それぞれ複数のクライアントを含んで構成される複数のグループを含む所定の大域グループに対してに対し、サーバに対する通信トラフィックのオーバーヘッドを低減させつつ、ディジタル・コンテンツのスムースかつ無駄のない配信を可能とするディジタル・コンテンツ配信システム、およびそのためのサーバ、およびクライアント、並びにコンピュータを上述したサーバおよびクライアントとして機能させるための制御方法、それらのためのプログラムおよび該プログラムを記録したコンピュータ可読な記録媒体を提供することが可能となる。
なお、本発明においては、ＩＰマルチキャストやアプリケーション−レベル・マルチキャストによりもたらされる利点、たとえば、パケットが重複しないように配信してネットワークを効率的に利用し混雑を回避することや、ネットワーク層でのコストのかかる置き換え作業を必要としないことなどの性質は損なうことなくそのまま受け継いでおり、優れたディジタル・コンテンツ配信を行うことが可能となる。また、本発明においては第２のネットワークは、たとえばプリンタ・サーバ、メール・サーバ、アプライアンス・サーバなど、サーバを含んで構成することができる。
本発明の上述した各機能を実現する手段または部分は、コンピュータ実行可能なプログラム言語により記述されたソフトウエアまたはソフトウエア・モジュール群として構成することができ、必ずしも図面に記載した機能ブロックとして構成される必要はない。
本発明のディジタル・コンテンツ配信を実行させるための上述したプログラムは、種々のプログラミング言語、例えばＣ言語、Ｃ＋＋言語、Ｊａｖａ（登録商標）、などを使用して記述することができ、本発明のプログラムを記述したコードは、磁気テープ、フレキシブル・ディスク、ハードディスク、コンパクト・ディスク（ＣＤ）、光磁気ディスク、デジタル・バーサタイル・ディスク（ＤＶＤ）といったコンピュータ可読な記録媒体に保持させることができる。
これまで本発明を図面に記載した具体的な実施の形態をもって説明してきたが、本発明は、上述した特定の実施の形態に制限されるものではなく、種々の変更例および他の実施の形態であっても、本発明の効果を奏する範囲において、これまで知られたいかなる構成要素であっても用いることができる。
【図面の簡単な説明】
図１は、本発明のディジタル・コンテンツ配信システムを示した概略図。
図２は、本発明において構成されるパス木構造の概略図。
図３は、サーバからのソース・パケット送信およびクライアントのコピー・パケット送信の処理を概略的に示した図。
図４は、本発明において動的に中間ノードとなるクライアントが選択される場合の実施の形態を示した図。
図５は、本発明にしたがって、クライアントに対して送受信されるパケットのトラフィックを示した図。
図６は、本発明において動的にクライアントを中間ノードとして選定する場合の概略図。
図７は、本発明においてグループ＃１に対して新たにクライアントが追加された場合のサーバの処理を示した図。
図８は、新たに生成されたパス木新構造に基づいて新たに参加したクライアントに対しての処理を示した図。
図９は、本発明におけるクライアントの構成を示した機能ブロック図。
図１０は、本発明のサーバの構成を示した機能ブロック図。
図１１は、本発明において使用することができるソース・パケットの実施の形態を示した図。
図１２は、本発明においてサーバが使用するクライアント・リストの実施の形態を示した図。
図１３は、サーバが選択する本発明のパス木構造の実施の形態を示した図。
図１４は、本発明のディジタル・コンテンツ配信システムの第２の実施の形態を示した図。
図１５は、図１４に示したソース・サーバおよびクライアントの構成を示したブロック図。
図１６は、本発明のサーバと、クライアントとの間のソース・パケットの通信を、時系列的に示した図。
図１７は、本発明において中間ノードとして選択されたクライアント間におけるソース・パケットおよびコピー・パケットの送信を各クライアントおよびサーバの間において時系列的に示した図。
図１８は、本発明のクライアントの処理を示したフローチャート。
図１９は、（ａ）は、本発明におけるコピー処理のフローチャートであり、（ｂ）は、予期せぬクライアントの脱離が発生した場合や、該当するクライアントに重大な障害があることを検出した場合のサーバの処理を示したフローチャート。
図２０は、本発明のディジタル・コンテンツ配信システムの他の実施の形態を示した図。
図２１は、本発明のディジタル・コンテンツ配信システムのさらに他の実施の形態を示した図。
図２２は、ワイヤレス・ネットワーク上のサーバに対して、負荷軽減を可能とする、本発明のさらに別の実施の形態を示した図。
図２３は、本発明のコンテンツ配信システムの構成を示したブロック図。
図２４は、本発明において使用することができるソース・パケットの他の実施の形態を示した図。
図２５は、本発明のコンテンツ配信を実行するプロセスのフローチャート。
図２６は、本発明のコンテンツ配信を実行する場合のサーバおよびクライアントの処理を示したフローチャート。
図２７は、本発明のコンテンツ配信により配信されるソース・パケットとコピー・パケットとのフローを簡略化して示した図。
図２８は、本発明のコンテンツ配信システムのさらに他の実施の形態を示した図。
図２９は、本発明のコンテンツ配信システムのさらに他の実施の形態を示した図。
図３０は、本発明のコンテンツ配信システムのさらに他の実施の形態を示した図。
図３１は、従来のＩＰマルチキャスト方式の概略図。
図３２は、従来のアプリケーション−レベル・マルチキャスト方式を使用したディジタル・コンテンツの配信の概略図。
図３３は、クライアントをエッジ・サーバに接続させる従来の構成のディジタル・コンテンツ配信システムの概略図。
図３４は、従来のマルチキャスト・トンネリングを使用したディジタル・コンテンツの配信を示した概略図。
図３５は、従来のマルチキャスト・トンネリングを使用したディジタル・コンテンツの配信における通信トラフィック環境を示した概略図。
【図１】
2003105421.tif 000004
【図３】
2003105421.tif 000005
【図２】
2003105421.tif 000006
【図４】
2003105421.tif 000007
【図５】
2003105421.tif 000008
【図６】
2003105421.tif 000009
【図７】
2003105421.tif 000010
【図８】
2003105421.tif 000011
【図９】
2003105421.tif 000012
【図１０】
2003105421.tif 000013
【図１１】
2003105421.tif 000014
【図１２】
2003105421.tif 000015
【図１３】
2003105421.tif 000016
【図１４】
2003105421.tif 000017
【図１５】
2003105421.tif 000018
【図１６】
2003105421.tif 000019
【図１７】
2003105421.tif 000020
【図１８】
2003105421.tif 000021
【図１９】
2003105421.tif 000022
【図２０】
2003105421.tif 000023
【図２１】
2003105421.tif 000024
【図２２】
2003105421.tif 000025
【図２３】
2003105421.tif 000026
【図２４】
2003105421.tif 000027
【図２５】
2003105421.tif 000028
【図２６】
2003105421.tif 000029
【図２７】
2003105421.tif 000030
【図２９】
2003105421.tif 000031
【図２８】
2003105421.tif 000032
【図３０】
2003105421.tif 000033
【図３１】
2003105421.tif 000034
【図３２】
2003105421.tif 000035
【図３３】
2003105421.tif 000036
【図３４】
2003105421.tif 000037
【図３５】
2003105421.tif 000038
【手続補正書】
【提出日】平成16年6月9日(2004.6.9)
【手続補正００１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】特許請求の範囲
【請求項１】第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを配信するためのシステムであって、前記第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される前記第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記サーバは、保持したディジタル・コンテンツを複数のパケットに分割して前記ディジタル・コンテンツを構成するための最小単位のパケットを前記第２のネットワークの複数のクライアントに動的に割り当てて送信する手段を含み、前記第２のネットワークを構成する前記クライアントは、前記クライアントが前記サーバから受信した前記最小単位のパケットと、前記第２のネットワークを構成する他のクライアントから受信したパケットとを使用して、前記第２のネットワーク内に接続されたクライアントに対して前記ディジタル・コンテンツを保持させるための手段を含む
ディジタル・コンテンツ配信システム。
【請求項２】（削除）
【請求項３】前記最小単位のパケットを前記第２のネットワークの複数のクライアントに割り当てる手段は、前記クライアントのオーバーヘッドを決定するための手段と、前記オーバーヘッドに関連して前記クライアントの少なくとも１つを中間ノードとして動的に選択し、当該中間ノードに宛てて前記パケットを割り当てる手段とを含む、請求項１に記載のディジタル・コンテンツ配信システム。
【請求項４】前記クライアントのオーバーヘッドを決定するための手段は、前記サーバが前記最小単位のパケットを所定のクライアントに宛てて送信した時刻と、前記所定のクライアントが前記最小単位のパケットの受信通知を発行した時刻との時間差を決定するための手段を含む、請求項３に記載のディジタル・コンテンツ配信システム。
【請求項５】第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記クライアントに配信するための方法であって、ディジタル・コンテンツを複数のパケットに分割して前記サーバから前記ディジタル・コンテンツを構成するための最小単位のパケットを前記第２のネットワークの複数のクライアントに動的に割り当てて送信するステップと、前記第２のネットワークを構成するクライアントが前記サーバから前記最小単位のパケットを受信するステップと、前記第２のネットワークを構成する他のクライアントから前記ディジタル・コンテンツを再構成するためのパケットを受信するステップと、前記サーバから送信された前記最小単位のパケットと、前記他のクライアントから受信したパケットとを使用して、前記第２のネットワーク内に接続されたクライアントに対して前記ディジタル・コンテンツを保持させるステップとを含むディジタル・コンテンツ配信方法。
【請求項６】（削除）
【請求項７】前記最小単位のパケットを前記第２のネットワークの複数のクライアントに割り当てるステップは、前記クライアントのオーバーヘッドを決定するステップと、前記オーバーヘッドを前記サーバに保持させるステップと、前記保持されたオーバーヘッドに関連して中間ノードとなるクライアントを選択するステップと、前記中間ノードとして選択されたクライアントに宛てて前記最小単位のパケットを割り当てるステップとを含む、請求項５に記載のディジタル・コンテンツ配信方法。
【請求項８】前記クライアントのオーバーヘッドを決定するステップは、前記サーバが前記最小単位のパケットを所定のクライアントに宛てて送信した時刻を前記サーバに登録するステップと、前記所定のクライアントが前記パケットの受信通知を発行した時刻を前記サーバに登録するステップと、前記送信した時刻と前記発行した時刻との時間差を算出するステップとを含む、請求項７に記載のディジタル・コンテンツ配信方法。
【請求項９】第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するための宛先が指定されたクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記宛先に宛てて配信する方法を実行するためのサーバ・プロセスを実行するプログラムであって、前記プログラムは、ディジタル・コンテンツを複数のパケットに分割するステップと、最小単位のパケットを、前記サーバから前記第２のネットワークの複数の宛先に動的に割り当てるステップと、前記サーバから前記第１のネットワークを介して前記第２のネットワークに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信するステップと、を含み、前記割り当てステップは、前記宛先からの受信通知を受信するステップと、前記受信通知を前記サーバに保持させるステップと、前記保持された受信通知を使用して関連して中間ノードとなる宛先を選択するステップと、前記中間ノードとして選択された宛先に宛てて前記最小単位のパケットを割り当てるステップとを実行させるプログラム。
【請求項１０】前記宛先を選択するステップは、前記サーバが前記最小単位のパケットを所定の宛先に宛てて送信した時刻をサーバに登録するステップと、前記最小単位のパケットの前記受信通知が発行された時刻を前記サーバに登録するステップと、前記送信した時刻と前記受信した時刻との時間差を算出するステップとを含む、請求項９に記載のプログラム。
【請求項１１】第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するための宛先が指定されたクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記宛先に宛てて配信する方法を実行するためのサーバ・プロセスを実行するプログラムが記録されたコンピュータ可読な記録媒体であって、前記プログラムは、ディジタル・コンテンツを複数のパケットに分割するステップと、前記サーバから最小単位のパケットを、前記第２のネットワークの複数の宛先に動的に割り当てるステップと、前記サーバから前記第１のネットワークを介して前記第２のネットワークに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを送信するステップと、を含み、前記割り当てステップは、前記宛先からの受信通知を受信するステップと、前記受信通知を前記サーバに保持させるステップと、前記保持された受信通知を使用して関連して中間ノードとなる宛先を選択するステップと、前記中間ノードとして選択された宛先に宛てて前記最小単位のパケットを割り当てるステップとを実行させる記録媒体。
【請求項１２】前記宛先を選択するステップは、前記サーバが前記最小単位のパケットを所定の宛先に宛てて送信した時刻をサーバに登録するステップと、前記最小単位のパケットの前記受信通知が発行された時刻を前記サーバに登録するステップと、前記送信した時刻と前記受信した時刻との時間差を算出するステップとを含む、請求項１１に記載のプログラム。
【請求項１３】さらに、前記宛先を選択するステップは、前記サーバに宛先リストを保持させるステップと、前記宛先リストと前記受信通知の発行された時刻とを使用して宛先を選択するステップと、前記宛先リストを定期的に更新するステップとを含む請求項１２に記載のプログラム。
【請求項１４】第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記クライアントに配信するための方法を実行するクライアント・プロセスを実行させるためのプログラムであって、該プログラムは、前記クライアントに対し、前記第１のネットワークを介して複数のパケットに分割され動的に割り当てられたディジタル・コンテンツを構成する最小単位のパケットを受信するステップと、前記第２のネットワークを構成する他のクライアントから前記ディジタル・コンテンツを再構成するためのパケットを受信するステップと、前記第１のネットワークを介して受信した前記最小単位のパケットと、前記他のクライアントから受信したパケットとを使用して前記第２のネットワークに含まれる前記クライアントに対して前記ディジタル・コンテンツを保持させるステップとを実行させるプログラム。
【請求項１５】前記最小単位のパケットを受信したクライアントに対してさらに、前記最小単位のパケットを受信した時刻を含む受信通知を生成するステップを実行させる、請求項１４に記載のプログラム。
【請求項１６】さらに、前記クライアントに対して、前記最小単位のパケットと、前記他のクライアントから受信したパケットとを識別するステップを実行させる、請求項１４に記載のプログラム。
【請求項１７】さらに、前記第２のネットワークを構成するメンバーのリストを生成するステップと、前記リストを、前記第２のネットワークにクライアントが追加または削除された場合に更新するステップとを含む、請求項１４に記載のプログラム。
【請求項１８】第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される第２のネットワークを構成し、前記ディジタル・コンテンツを受信して提供するためのクライアントとを含み、前記第１のネットワークと前記第２のネットワークとを介してディジタル・コンテンツを前記クライアントに配信するための方法を実行するクライアント・プロセスを実行させるためのプログラムが記録されたコンピュータ可読な記録媒体であって、該プログラムは、前記クライアントに対し、前記第１のネットワークを介して複数のパケットに分割され動的に割り当てられたディジタル・コンテンツを構成する最小単位のパケットを受信するステップと、前記第２のネットワークを構成する他のクライアントから前記ディジタル・コンテンツを再構成するためのパケットを受信するステップと、前記第１のネットワークを介して受信した前記最小単位のパケットと、前記他のクライアントから受信したパケットとを使用して前記第２のネットワークに含まれる前記クライアントに対して前記ディジタル・コンテンツを保持させるステップとを実行させる記録媒体。
【請求項１９】前記最小単位のパケットを受信したクライアントに対してさらに、前記最小単位のパケットを受信した時刻を含む受信通知を生成するステップを実行させる、請求項１８に記載の記緑媒体。
【請求項２０】さらに、前記クライアントに対して、前記最小単位のパケットと、前記他のクライアントから受信したパケットとを識別するステップを実行させる、請求項１８に記載の記録媒体。
【請求項２１】さらに、前記第２のネットワークを構成するメンバーのリストを生成するステップと、前記リストを、前記第２のネットワークにクライアントが追加または削除された場合に更新するステップとを含む、請求項１８に記載の記録媒体。
【請求項２２】第１のネットワークに接続され、ディジタル・コンテンツを前記第１のネットワークに接続される第２のネットワークに対して提供するためのサーバであって、該サーバは、ディジタル・コンテンツを複数のパケットに分割するための手段と、前記第２のネットワークに含まれる宛先を含むリストを記憶する手段と、前記サーバから前記第１のネットワークを介して前記第２のネットワークに対して、前記ディジタル・コンテンツを構成するための最小単位のパケットを送信する手段と、前記リストを使用して前記最小単位のパケットを送信する前記第２のネットワークに対する宛先を動的に割り当てる動的割り当て手段と、前記宛先からの受信通知を受信する手段と、前記受信通知を使用して中間ノードとなる宛先を選択する手段と、前記中間ノードとして選択された宛先を使用して前記最小単位のパケットを送信する手段とを含むディジタル・コンテンツ配信サーバ。
【請求項２３】前記動的割り当て手段は、前記最小単位のパケットを所定の宛先に宛てて送信した時刻を前記サーバに登録する手段と、前記所定のクライアントが前記最小単位のパケットの前記受信通知を発行した時刻を前記サーバに登録する手段と、前記送信した時刻と前記受信した時刻との時間差を算出する手段とを含む、請求項２２に記載のサーバ。
【請求項２４】前記サーバは、宛先リストを含み、さらに前記宛先リストを、前記第２のネットワークの構成の変更に関連して動的に更新する手段を含む、請求項２２に記載のサーバ。
【請求項２５】第１のネットワークを介して配信されるディジタル・コンテンツを受信し、前記第１のネットワークに接続される第２のネットワークを構成するクライアントであって、該クライアントは、前記第１のネットワークを介して複数のパケットに分割され動的に割り当てられたディジタル・コンテンツを構成する最小単位のパケットを受信する手段と、前記第２のネットワークを介して前記ディジタル・コンテンツを再構成するためのパケットを受信する手段と、前記第１のネットワークを介して受信した前記最小単位のパケットと、前記第２のネットワークを介して他のクライアントから受信したパケットとを使用して、前記第２のネットワークに含まれるクライアントに対して前記ディジタル・コンテンツを保持させる手段とを含むクライアント。
【請求項２６】前記クライアントは、前記最小単位のパケットを受信した時刻を含む受信通知を生成する手段を含む、請求項２５に記載のクライアント。
【請求項２７】さらに、前記クライアントは、前記最小単位のパケットと、前記他のクライアントから受信したパケットとを識別する手段を含む、請求項２５に記載のクライアント。
【請求項２８】さらに、前記第２のネットワークを構成するメンバーのリストを含み、前記リストを、前記第２のネットワークにクライアントが追加または削除された場合に更新する手段とを含む、請求項２５に記載のクライアント。
【請求項２９】第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するためのシステムであって、前記第１のネットワークに接続され、ディジタル・コンテンツを送信するサーバと、前記第１のネットワークに接続される前記第２のネットワークを構成するクライアントを含んで構成され、前記ディジタル・コンテンツを受信して提供する前記大域グループを構成する複数のグループとを含み、前記サーバは、保持したディジタル・コンテンツを複数のパケットに分割して前記グループの前記クライアントに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを重複なく動的に割り当てて送信する手段を含み、前記最小単位のパケットを受信した前記クライアントは、前記クライアントを含むグループを構成するクライアントおよび他のグループを構成する他のクライアントに前記サーバから受信した前記最小単位のパケットのコピーを配信する手段を含むディジタル・コンテンツ配信システム。
【請求項３０】第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するため、前記第１のネットワークに接続されたサーバであって、保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成する手段と、前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択する手段と、前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するための最小単位のパケットを動的に割り当てて送信する手段とを含むサーバ。
【請求項３１】前記最小単位のパケットを生成する手段は、前記最小単位のパケットのコピーを少なくとも他のグループに配信するためのデータを含む最小単位のパケットを生成する手段を含む、請求項３０に記載のサーバ。
【請求項３２】第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するためのサーバとしてコンピュータを制御する方法であって、前記方法は、前記コンピュータに対し、保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成するステップと、前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択して登録するステップと、前記選択された配信先のデータを前記最小単位のパケットとして記憶させるステップと、前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するため前記記憶された最小単位のパケットを読み出して動的に割り当てて送信するステップとを実行させる方法。
【請求項３３】第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するためのサーバとしてコンピュータを制御するプログラムであって、前記プログラムは、前記コンピュータに対し、保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成するステップと、前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択して登録するステップと、前記選択された配信先のデータを前記最小単位のパケットとして記憶させるステップと、前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するため前記記憶された最小単位のパケットを読み出して動的に割り当てて送信するステップとを実行させるプログラム。
【請求項３４】第２のネットワークを介して接続される複数のグループを含んだ大域グループに対して第１のネットワークを介してディジタル・コンテンツを配信するためのサーバとしてコンピュータを制御するプログラムが記録されたコンピュータ可読な記憶媒体であって、前記プログラムは、前記コンピュータに対し、保持したディジタル・コンテンツを複数のパケットに分割して最小単位のパケットを生成するステップと、前記最小単位の同一のパケットが所定のグループについて重複しないように前記最小単位のパケットの配信先を選択して登録するステップと、前記選択された配信先のデータを前記最小単位のパケットとして記憶させるステップと、前記グループの前記選択されたクライアントに対して前記ディジタル・コンテンツを構成するため前記記憶された最小単位のパケットを読み出して動的に割り当てて送信するステップとを実行させる記憶媒体。
【請求項３５】第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントであって、前記クライアントは、前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信し、受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断する手段と、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信する手段と、を含むクライアント。
【請求項３６】前記コピー・パケットを配信する手段は、前記受信パケットが前記最小単位のパケットであると判断された場合に、前記受信パケットから少なくとも他のグループへのコピー先を読み出して、読み出されたコピー先に前記生成されたコピー・パケットを配信する手段を含む、請求項３５に記載のクライアント。
【請求項３７】前記クライアントは、コピー先リストを格納した記憶手段を含む、請求項３６に記載のクライアント。
【請求項３８】第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントとしてコンピュータを制御する方法であって、前記方法は、前記コンピュータに対し、前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信してメモリに記憶させるステップと、受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断するステップと、前記受信パケットが前記最小単位のパケットであると判断された場合に、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信するステップと、前記受信パケットが前記最小単位のパケットではないと判断された場合に、前記メモリに受信パケットを記憶させるステップとを実行させる方法。
【請求項３９】第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントとしてコンピュータを制御するためのプログラムであって、前記プログラムは、前記コンピュータに対し、前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信してメモリに記憶させるステップと、受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断するステップと、前記受信パケットが前記最小単位のパケットであると判断された場合に、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信するステップと、前記受信パケットが前記最小単位のパケットではないと判断された場合に、前記メモリに受信パケットを記憶させるステップとを実行させるプログラム。
【請求項４０】第１のネットワークと第２のネットワークとを介してディジタル・コンテンツを所定の大域グループに配信するため前記第２のネットワークに接続され、前記大域グループのグループを構成するクライアントとしてコンピュータを制御するためのプログラムが記録されたコンピュータ可読な記憶媒体であって、前記プログラムは、前記コンピュータに対し、前記第１のネットワークまたは前記第２のネットワークを介してパケットを受信してメモリに記憶させるステップと、受信パケットが前記ディジタル・コンテンツを再構成するための最小単位のパケットか否かを判断するステップと、前記受信パケットが前記最小単位のパケットであると判断された場合に、前記判断に応答して前記受信パケットからコピー・パケットを生成し、少なくとも他のグループのクライアントに宛ててコピー・パケットを配信するステップと、前記受信パケットが前記最小単位のパケットではないと判断された場合に、前記メモリに受信パケットを記憶させるステップとを実行させる記憶媒体。
【請求項４１】所定のディジタル・コンテンツを、連続する複数のストリーム・データとし、前記所定のディジタル・コンテンツを再構成するために必要な最小単位のパケットをサーバからネットワークを介して送信することにより、複数のネットワークを介して接続されたクライアントに前記ディジタル・コンテンツを共有化させる方法であって、前記ディジタル・コンテンツの配信を要求する前記クライアントをクライアント・リストを読み出して選択するステップと、前記最小単位のパケットを前記選択したクライアントに送信するステップと、前記最小単位のパケットを受信したクライアントに前記最小単位のパケットをメモリに記憶させると共に、コピー・パケットを生成させ、前記受信したクライアントを除く他のクライアントに対して前記コピー・パケットを配信するステップと、他のクライアントから受信したコピー・パケットを前記メモリに記憶するステップと、前記メモリ内のパケットを再構成して前記配信された所定のディジタル・コンテンツをユーザに共有させるステップとを含むネットワーク上でのディジタル・コンテンツの共有化方法。


【手続補正００２】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
アント参加離脱によるグループの再編成を行い、また、最近送信したパケットを記録して必要に応じて再送することにより、突然の離脱に起因するパケット喪失を防ぐことを可能とする。
図９は、本発明において説明したクライアント２０の構成を示した機能ブロック図である。クライアント２０は、ネットワーク・インタフェイス・カード（ＮＩＣ）３０を介して、第２のネットワーク２２へと接続されている。クライアント２０は、さらに、受信バッファ３２と、メモリ３４と、ＣＰＵ３６とを含んで構成されている。受信バッファ３２は、受信したソース・パケットおよびコピー・パケットを、動画イメージ・データのストリームを再構成するまでの間保持している。
本発明においては、受信バッファ３２は、受信したパケットを受信するごとにパケット識別子に対応したアドレスに受信したパケットを書き込みを行う、リング・バッファとして構成することができる。また、クライアント２０は、中央処理装置（ＣＰＵ）３６と、ソース・デコーダ３８と、ＦＥＣデコーダ４０とを含んで構成されている。ただし、本発明においてはＦＥＣデコーダは、必ずしも必要ではない。ＣＰＵ３６は、クロックにより駆動されており、受信バッファ３２において所定期間ごとに蓄積されたパケットを読み出してソース・デコーダ３８およびＦＥＣデコーダ４０へと送り、１ストリーム分の動画イメージ・データを再構成している。再構成された１ストリーム分の動画イメージ・データは、ディスプレイ４２へと表示または再生され、クライアントのユーザに対して提供される。
ユーザに対して表示または再生された動画イメージ・データは、クライアント２０から削除することもできるし、また、ディジタル・コンテンツの開始から終了までの全ストリームをメモリ３４に保持させておき、ハードディスク、光磁気ディスク、磁気テープといった記憶装置４４に記憶させておくこともできる。記憶装置４４には、たとえばグループ＃１を構成するクライアントを識別するためのクライアント識別子を含んで構成されたメンバー・リストも保持させることができる。メンバー・リストは、クライアントの起動時に記憶装置４４からクライアントのメモリ３４な
【手続補正００３】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
どに読み込まれ、常駐ファイルとして保持される。図９に示したクライアントが、ソース・パケットを受信した場合には、クライアント２０は、メンバー・リストを参照してコピー・パケットを配信する宛先を指定する。また、クライアント２０がコピー・パケットを、ＴＣＰ／ＩＰプロトコルにしたがい、たとえばＩＰｖ４のフォーマットで宛先をａｂｃ．ｄｅｆ．ｇｈｉ．２５５などとして同報通信する場合には、上述したメンバー・リストを直接参照する必要はない。
図１０は、本発明のサーバ１４の構成を示した図である。図１０に示されたサーバ１４は、ネットワーク１２に対して、モデム、ＤＳＵ、またはネットワーク・インタフェイス・カードといった通信手段４６を介して接続されており、図示しないクライアントへとディジタル・コンテンツを配信している。以下、本発明のサーバ１４の機能につき、ディジタル・コンテンツの取り込みから順に説明する。
図１０に示したサーバ１４には、ディジタル・ビデオカメラといった撮像手段４０が接続されており、ディジタル・コンテンツとして配信することを希望する、たとえば、番組、講演会、挨拶、教育プログラムなどが、記録媒体にディジタルデータとして収録されている。収録されたディジタル・データは、適切なインタフェイスを介してサーバ１４へと取り込まれ、たとえば記憶装置５０に保持される。本発明におけるディジタル・データとしては、上述した動画イメージ・データを含む、マルチメディア・データとして構成することが好ましい。ディジタル・コンテンツをクライアントへと送信する場合には、まず、ＣＰＵ５２が、記憶装置５０からディジタル・コンテンツを読み出し、読み出されたディジタル・コンテンツをソース・エンコーダ５４およびＦＥＣエンコーダ５６へと送る。ディジタル・データを受信したソース・エンコーダ５４およびＦＥＣエンコーダ５６は、ディジタル・データに対してストリーミング処理を施し、さらに１ストリームを所定のサイズのパケット、たとえばパケットＰ１〜Ｐ５に分割する。生成されたパケットＰ１〜Ｐ５は、通信手段４６を介して、たとえばグループ＃１へとディジタル・コンテンツを配信する。
サーバ１４とクライアント２０との間には、接続指向のネットワーク・プロトコルが
【手続補正００４】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
ステップＳ１０６において、当該識別子のパケットがコピー処理に予約されているか否かを判断する。予約登録されている場合（ｙｅｓ）には、上書きしてソース・パケットを消去してしまうことになるので、ステップＳ１０８において予約登録を削除し、ステップＳ１１０においてコピー失敗カウンタをインクリメントし、ステップＳ１１２において該当するバッファ位置にその時点で受信しているパケットを上書きする。これは、クライアント側が、ソース・パケットのコピーを送信する前に後続するパケットが到着することに対応し、パケットの消滅に該当する。ステップＳ１０６の判断において、コピー処理に予約登録されていない場合（ｎｏ）には、ステップＳ１１２へと進んで、コピー・パケットなので該当するバッファ・アドレスにパケットを上書きし、ステップＳ１１４〜ステップＳ１００の処理を繰り返す。
図１９（ａ）は、本発明におけるコピー処理のフローチャートを示した図である。図１９に示したコピー処理は、ステップＳ１２０において、コピー処理を必要とするソース・パケットが登録されるまで待機する。ソース・パケットが登録されると、ステップＳ１２２において登録されたパケット、例えば説明している実施の形態においてＦＩＦＯバッファを使用して登録している場合には、先に登録されたパケットを選択し、ステップＳ１２４において他のクライアントへとコピー・パケットとして同報通信するか、または宛先ＩＰアドレスを参照して他のクライアントに個別に送信する。その後、ステップＳ１２６においてコピー成功カウンタをインクリメントし、ステップＳ１２０へと戻って待機する。上述したコピー成功カウンタの（コピー成功カウンタ＋コピー失敗カウンタ）に対する割合は、コピー・レートとしてサーバへと送信され、低すぎる場合には、再度１ストリーム分のパケットを送信し直すなどの処理により失われたパケットにより生じるディジタル・コンテンツ配信における不都合を防止することができる構成とされている。
図１９（ｂ）は、予期せぬクライアントの脱離が発生した場合や、該当するクライアントに重大な障害があることを検出した場合のサーバの処理を示したフローチャートである。サーバは、ステップＳ１３０において、ＲＴＴおよびコピー・レートを介して常にクライアントの実効スループットをモニタしており、例えば所定の
【手続補正００５】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
ーを行うべきかの真偽フラグが記述された領域であり、クライアントは、このフラグが真であるパケットを、大域グループ内の他グループそれぞれのうちのクライアントの一つに送信する処理を実行する。
データ・パケット記述領域９２ｅは、サーバ８２が送信し、クライアント８６が再生するべきディジタル・コンテンツの実体的なデータが記述された領域である。なお、本発明においては、これらの要素の前後や間に他の付加的な要素を加えてもよいし、要素の順序を入れ替えてもよい。また、場合によっては一部の要素を省略してもよい。またソース・パケット９２は、図示しないものの、図１１に示されるように、ソース・パケット９２を送信する際の宛先を指定する宛先ＩＰアドレス、送信元ＩＰアドレスを含んで構成されている。
図２４（ｂ）には、本発明のコンテンツ配信サーバ８２において生成されるソース・パケットの第２の実施の形態を示す。図２４（ｂ）に示した実施の形態では、ソース・パケット自体にパケットのコピーを送信するべきクライアントのリストを含ませ、より詳細に配信先を指定する実施の形態である。この場合、サーバ８２は、サーバ自体が保持するクライアント・リストを参照して、送信するべき相手のリストをソース・パケット９２へと記述する。また、図２４（ｂ）に示されたソース・パケット９２は、送信時刻記述領域９２ａと、パケット識別子記述領域９２ｂとを含んでおり、これらは図２４（ａ）で説明したと同様の機能をクライアントに対して実行させる機能を有する。また、図２４（ｂ）に示したソース・パケット９２には、サーバ８２により指定されたコピー先を指定するコピー指示データ領域９２ｆが設けられている。クライアントは、ソース・パケットを受信したと判断すると、コピー指示データ領域９２ｆを読み出し、以下に記載する処理を実行する。
コピー指示データ領域９２ｆに記述された値Ｎ＿ｄｅｓｔは、コピーを送信すべき相手のリスト長を指定し、値Ｄｅｓｔ１〜ＤｅｓｔＮは、コピー・パケットを送信するべきクライアントを指定するＩＰアドレスなどのクライアント識別子を使用することができる。例えば、コピー指示データ領域９２ｆに自分のグループが指定されて
【国際調査報告】
2003105421.tif 000039
2003105421.tif 000040
2003105421.tif 000041
2003105421.tif 000042