(57)【要約】【課題】  ネットワークノード装置間で大規模配信が可能であり、配信性能が高く、耐障害性に優れたマルチキャストツリーを迅速に構築する方法を得る。【解決手段】  ネットワークノード装置１００は、他のネットワークノード装置からの接続要求を受信したときに、受け入れ可能と判断すれば接続受け入れ応答を返信し、受け入れ不能と判断すれば、既に接続している任意の下流接続ノードに接続を試みることを促すためのリダイレクト応答を返信する。リダイレクト応答を受信した他ネットワークノード装置は、指示された下流接続ノードに接続を試みる。【選択図】      図１
2005244526.tif 000002
【特許請求の範囲】
【請求項１】
マルチキャストツリーを構成するネットワークノード装置であって、
接続済みの上流ノードと下流ノードおよび接続候補ノードの情報を記憶する接続状況記憶手段と、
前記接続状況記憶手段の下流ノードの情報を用いて下流接続先を受け入れることの可否を判断する下流接続受付制御手段と、
事前に設定された、または、上書きされた前記接続状況記憶手段の接続候補ノードの情報を用いて接続候補ノードへ接続要求を送信する接続要求手段と、
前記接続要求を受信し、前記下流接続受付制御手段が受け入れ可能と判断すれば接続受け入れ応答を返信し、前記下流接続受付制御手段が受け入れ不能と判断すれば前記接続要求を断り、前記接続状況記憶手段から任意の下流接続ノードを検索し、検索された下流接続ノードに接続を試みることを促すためのリダイレクト応答を返信する接続要求受付手段と、
前記接続受け入れ応答を受信した場合は前記接続候補ノードの情報を前記上流ノードの情報として上書きし、前記リダイレクト応答を受信した場合は前記リダイレクト応答の中の前記下流接続ノードを前記接続候補ノードとして上書きする接続応答受信手段とを含むことを特徴とするネットワークノード装置。
【請求項２】
前記接続状況記憶手段の下流接続ノードの情報と、接続要求を発信したノードの情報を比較し、前記下流接続ノードに対して前記接続要求を発信したノードの下流に接続するように指示することの是非を判断する接続先変更制御手段と、
前記接続先変更制御手段が、前記下流接続ノードは前記接続要求を発信したノードの下流に接続すべきと判断すれば、前記下流接続ノードに対して前記接続要求を発信したノードに接続することを指示するスワップ命令を送信する接続先変更命令手段と、
前記スワップ命令を受信し、前記スワップ命令の中の前記接続要求を発信したノードを前記接続候補ノードとして上書きする接続先変更命令受付手段とをさらに含むことを特徴とする請求項１記載のネットワークノード装置。
【請求項３】
受け入れ応答、あるいはリダイレクト応答を最初に受信した際に、前記受け入れ応答、前記リダイレクト応答を送信したノードを記憶しておく最上流ノード記憶手段と、
上流ノードとの接続が完了した後、前記上流ノードとの間で通信障害が発生した場合、前記最上流ノード記憶手段から最上流ノードを前記接続状況記憶手段の接続候補ノードに上書きする処理を行う最上流ノード型障害回復手段とをさらに含むことを特徴とする請求項１または２記載のネットワークノード装置。
【請求項４】
リダイレクト応答を受信するたびに前記リダイレクト応答を送信したノードを追加記憶し、上流ノードリストを保守する上流ノードリスト記憶手段と、
上流ノードとの接続が完了した後、前記上流ノードとの間で通信障害が発生した場合、前記上流ノードリスト記憶手段からノードを一つ選び出し、前記接続状況記憶手段の接続候補ノードに上書きする処理を接続受け入れ応答かリダイレクト応答を受信するまで繰り返す、上流ノードリスト型障害回復手段とをさらに含むことを特徴とする請求項１または２記載のネットワークノード装置。
【請求項５】
マルチキャストツリーに参加を希望するネットワークノード装置に対して接続先ネットワークノード装置を案内するサーバ装置であって、
ツリーの最上流のノードを記憶する最上流ノード記憶手段と、
最上流ノード案内要求を受信し、前記最上流ノード記憶手段にツリーの最上流ノードが存在すれば前記最上流ノードを案内し、ツリーの最上流ノードが存在しなければ最上流ノード案内要求を送信したノードをツリーの最上流ノードになるように案内する最上流案内手段とを含むことを特徴とするサーバ装置。
【請求項６】
マルチキャストツリーの最上流ノードを案内するツリーサーバ装置であって、
ネットワークアドレスから前記ネットワークアドレスが存在する領域の情報を検索するアドレス検索手段と、
領域毎の最上流ノードを記憶する領域検索手段と、
最上流ノード案内要求を受信し、前記最上流ノード案内要求の発信ノードのＩＰアドレスから前記ネットワークアドレス検索手段により領域の情報を検索し、前記領域検索手段により領域の最上流ノードを検索し、領域の最上流ノードが存在すれば領域の最上流ノードを案内し、領域の最上流ノードが存在しなければ領域の最上流ノードになるように案内する最上流案内手段とを含むことを特徴とする請求項５記載のサーバ装置。
【請求項７】
前記ネットワークアドレス検索手段は、ネットワークアドレスから階層化された領域情報を検索することと、
前記領域検索手段は、階層化された領域の各階層の最上流ノードを記憶することをさらに特徴とする請求項６記載のサーバ装置。
【請求項８】
マルチキャストツリーを構成する上で、前記ネットワークノード装置が属している拠点あるいはサブネットなどの領域と、他のネットワークノード装置が属している拠点あるいはサブネットなどの領域とを比較する領域識別手段とを含むことを特徴とする請求項１〜４いずれか記載のネットワークノード装置。
【請求項９】
階層的なマルチキャストツリーを構成する上で、前記ネットワークノード装置が属している階層と、他のネットワークノード装置が属している階層とを比較する階層識別手段とを含むことを特徴とする請求項１〜４または８いずれか記載のネットワークノード装置。
【請求項１０】
前記サーバ装置は、最高階層の領域の最上流ノードに対してのみコンテンツ配信サーバへ接続するように案内することを特徴とする請求項５〜７いずれか記載のサーバ装置。
【請求項１１】
前記サーバ装置は、最初に最高階層の領域の最上流ノードになるように案内したノードに対してのみ前記コンテンツ配信サーバへ接続するように案内し、以降の最高階層の領域の最上流ノードになるように案内したノードには前記最初に最高階層の領域の最上流ノードになるように案内したノードに接続するように案内することを特徴とする請求項５〜７いずれか記載のサーバ装置。
【請求項１２】
前記領域識別手段と前記階層識別手段を有し、
前記接続要求受付手段は、最高階層の領域の最上流ノードとして振舞う際に、他の最高階層の領域の最上流ノードからの接続要求に対して、受け入れ応答またはさらに他の最高階層の領域の最上流ノードへのリダイレクト応答をかえすことを特徴とする請求項１から４記載ネットワークノード装置。
【請求項１３】
前記領域識別手段と前記階層識別手段を有し、
前記接続要求受付手段は、最高階層の領域の最上流ノードとして振舞う際に、他の最高階層の領域の最上流ノードからの接続要求に対して、受け入れ応答または低階層の下流ノードへのリダイレクト応答をかえすことを特徴とする請求項１〜４記載のネットワークノード装置。
【請求項１４】
ネットワークノード装置間でデータを送受信するためのマルチキャストツリー構築方法であって、
接続済みの上流ノードと下流ノードおよび接続候補ノードの情報を記憶しておくノード記憶ステップと、
前記下流ノードの情報を用いて下流接続先を受け入れることの可否を判断する受け入れ判断ステップと、
事前に設定された、または、上書きされた前記接続候補ノードの情報を用いて前記接続候補ノードへ接続要求を送信する送信ステップと、
前記接続要求を受信し、前記受け入れ判断ステップで受け入れ可能と判断すれば接続受け入れ応答を返信し、前記受け入れ判断ステップで受け入れ不能と判断すれば前記接続要求を断り、前記ノード記憶ステップで記憶したノードから任意の下流接続ノードを検索し、検索された下流接続ノードに接続を試みることを促すためのリダイレクト応答を返信する接続要求受付ステップと、
前記接続受け入れ応答を受信した場合は前記接続候補ノードの情報を前記上流ノードの情報として上書きし、前記リダイレクト応答を受信した場合は前記リダイレクト応答の中の前記下流接続ノードを前記接続候補ノードとして上書きする接続応答受信ステップとを含むことを特徴とするマルチキャストツリー構築方法。
【請求項１５】
前記ノード記憶ステップの下流接続ノードの情報と、接続要求を発信したノードの情報を比較し、前記下流接続ノードに対して前記接続要求を発信したノードの下流に接続するように指示することの是非を判断する接続先変更制御ステップと、
前記接続先変更制御ステップで、前記下流接続ノードは前記接続要求を発信したノードの下流に接続すべきと判断すれば、前記下流接続ノードに対して前記接続要求を発信したノードに接続することを指示するスワップ命令を送信する接続先変更命令送信ステップと、
前記スワップ命令を受信し、前記スワップ命令の中の前記接続要求を発信したノードを接続候補ノードとして上書きする接続先変更命令受付ステップとを含むことを特徴とする請求項１４記載のマルチキャストツリー構築方法。
【請求項１６】
受け入れ応答、あるいはリダイレクト応答を最初に受信した際に、前記受け入れ応答、前記リダイレクト応答を送信したノードを記憶しておく最上流ノード記憶ステップと、
上流ノードとの接続が完了した後、前記上流ノードとの間で通信障害が発生した場合、前記最上流ノード記憶ステップで記憶した最上流ノードを前記ノード記憶ステップの接続候補ノードに上書きする処理を行う最上流ノード型障害回復ステップとを含むことを特徴とする請求項１４または１５記載のマルチキャストツリー構築方法。
【請求項１７】
リダイレクト応答を受信するたびに前記リダイレクト応答を送信したノードを追加記憶し、上流ノードリストを保守する上流ノードリスト記憶ステップと、
上流ノードとの接続が完了した後、前記上流ノードとの間で通信障害が発生した場合、前記上流ノードリスト記憶ステップで作成したリストからノードを一つ選び出し、前記ノード記憶ステップの接続候補ノードに上書きする処理を接続受け入れ応答かリダイレクト応答を受信するまで繰り返す、上流ノードリスト型障害回復ステップとを含むことを特徴とする請求項１４または１５記載のマルチキャストツリー構築方法。
【請求項１８】
マルチキャストツリーに参加を希望するネットワークノード装置に対して接続先ネットワークノード装置を案内する接続先案内方法であって、
サーバ装置において、
ツリーの最上流のノードを記憶する最上流ノード記憶ステップと、
最上流ノード案内要求を受信し、前記最上流ノード記憶ステップで記憶したツリーの最上流ノードが存在すれば前記最上流ノードを案内し、ツリーの最上流ノードが存在しなければ最上流ノード案内要求を送信したノードをツリーの最上流ノードになるように案内する最上流案内ステップとを含むことを特徴とする接続先案内方法。
【請求項１９】
ネットワークアドレスから前記ネットワークアドレスが存在する領域の情報を検索するアドレス検索ステップと、
領域毎の最上流ノードを記憶する領域検索ステップと、
最上流ノード案内要求を受信し、前記最上流ノード案内要求の発信ノードのＩＰアドレスから前記ネットワークアドレス検索ステップにより領域の情報を検索し、前記領域検索ステップにより領域の最上流ノードを検索し、領域の最上流ノードが存在すれば領域の最上流ノードを案内し、領域の最上流ノードが存在しなければ領域の最上流ノードになるように案内する最上流案内ステップとを含むことを特徴とする請求項１８記載の接続先案内方法。
【請求項２０】
前記ネットワークアドレス検索ステップは、ネットワークアドレスから階層化された領域情報を検索することと、
前記領域検索ステップは、階層化された領域の各階層の最上流ノードを記憶することをさらに特徴とする請求項１９記載の接続先案内方式。
【請求項２１】
マルチキャストツリーを構成する上で、前記ネットワークノード装置が属している拠点あるいはサブネットなどの領域と、他のネットワークノード装置が属している拠点あるいはサブネットなどの領域とを比較する領域識別ステップとを含むことを特徴とする請求項１４〜１７いずれか記載のマルチキャストツリー構築方法。
【請求項２２】
階層的なマルチキャストツリーを構成する上で、前記ネットワークノード装置が属している階層と、他のネットワークノード装置が属している階層とを比較すする階層識別ステップを含むことを特徴とする請求項１４〜１７または２１いずれか記載のマルチキャストツリー構築方法。
【請求項２３】
前記接続先案内方法は、最高階層の領域の最上流ノードに対してのみコンテンツ配信サーバへ接続するように案内することを特徴とする請求項１８〜２０いずれか記載の接続先案内方法。
【請求項２４】
前記接続先案内方法は、最初に最高階層の領域の最上流ノードになるように案内したノードに対してのみコンテンツ配信サーバへ接続するように案内し、以降の最高階層の領域の最上流ノードになるように案内したノードには前記最初に最高階層の領域の最上流ノードになるように案内したノードに接続するように案内することを特徴とする請求項１８〜２０いずれか記載の接続先案内方法。
【請求項２５】
前記領域識別ステップと前記階層識別ステップを有し、
最高階層の領域の最上流ノードとして振舞う際に、前記接続要求受付ステップにおいて、他の最高階層の領域の最上流ノードからの接続要求に対して、受け入れ応答またはさらに他の最高階層の領域の最上流ノードへのリダイレクト応答をかえすことを特徴とする請求項１４〜１７記載のマルチキャストツリー構築方法。
【請求項２６】
前記領域識別ステップと前記階層識別ステップを有し、
最高階層の領域の最上流ノードとして振舞う際に，前記接続要求受付ステップにおいて、他の最高階層の領域の最上流ノードからの接続要求に対して、受け入れ応答または低階層の下流ノードへのリダイレクト応答をかえすことを特徴とする請求項１４〜１７記載のマルチキャストツリー構築方法。
【請求項２７】
ネットワークノード装置間でデータを送受信するためのマルチキャストツリー構築方法をコンピュータに実行させるためのプログラムであって、
接続済みの上流ノードと下流ノードおよび接続候補ノードの情報を前記接続状況記憶手段に記憶させる接続状況記憶処理と、
前記接続状況記憶手段の下流ノードの情報を用いて下流接続先を受け入れることの可否を判断する下流接続受付制御処理と、
事前に設定された、または、上書きされた前記接続状況記憶手段の接続候補ノードの情報を用いて接続候補ノードへ接続要求を送信する接続要求処理と、
前記接続要求を受信し、前記下流接続受付制御処理で受け入れ可能と判断すれば接続受け入れ応答を返信し、前記下流接続受付制御処理で受け入れ不能と判断すれば前記接続要求を断り、前記接続状況記憶手段から任意の下流接続ノードを検索し、検索された下流接続ノードに接続を試みることを促すためのリダイレクト応答を返信する接続要求受付処理と、
前記接続受け入れ応答を受信した場合は前記接続候補ノードの情報を前記上流ノードの情報として上書きし、前記リダイレクト応答を受信した場合は前記リダイレクト応答の中の前記下流接続ノードを前記接続候補ノードとして上書きする接続応答受信処理とを含むことを特徴とするプログラム。
【請求項２８】
前記接続状況記憶手段の下流接続ノードの情報と、接続要求を発信したノードの情報を比較し、前記下流接続ノードに対して前記接続要求を発信したノードの下流に接続するように指示することの是非を判断する接続先変更制御処理と、
前記接続先変更制御処理で前記下流接続ノードは前記接続要求を発信したノードの下流に接続すべきと判断すれば、前記下流接続ノードに対して前記接続要求を発信したノードに接続することを指示するスワップ命令を送信する接続先変更命令処理と、
前記スワップ命令を受信し、前記スワップ命令の中の前記接続要求を発信したノードを前記接続候補ノードとして上書きする接続先変更命令受付処理とを含むことを特徴とする請求項２７記載のプログラム。
【請求項２９】
受け入れ応答、あるいはリダイレクト応答を最初に受信した際に、前記受け入れ応答、前記リダイレクト応答を送信したノードを前記最上流ノード記憶手段に記憶させる最上流ノード記憶処理と、
上流ノードとの接続が完了した後、前記上流ノードとの間で通信障害が発生した場合、前記最上流ノード記憶手段から最上流ノードを前記接続状況記憶手段の接続候補ノードに上書きする処理を行う最上流ノード型障害回復処理とを含むことを特徴とする請求項２７または２８記載のプログラム。
【請求項３０】
リダイレクト応答を受信するたびに前記リダイレクト応答を送信したノードを前記上流ノード追加記憶手段に追加記憶させる上流ノードリスト記憶処理と、
上流ノードとの接続が完了した後、前記上流ノードとの間で通信障害が発生した場合、前記上流ノードリスト記憶手段からノードを一つ選び出し、前記接続状況記憶処理の接続候補ノードに上書きする処理を接続受け入れ応答かリダイレクト応答を受信するまで繰り返す、上流ノードリスト型障害回復処理とを含むことを特徴とする請求項２７または２８記載のプログラム。
【請求項３１】
マルチキャストツリーに参加を希望するネットワークノード装置に対して接続先ネットワークノード装置を案内する接続案内方法をコンピュータに実行させるためのプログラムであって、
ツリーの最上流のノードを最上流ノード記憶手段に記憶させる最上流ノード記憶処理と、
最上流ノード案内要求を受信し、前記最上流ノード記憶手段にツリーの最上流ノードが存在すれば前記最上流ノードを案内し、ツリーの最上流ノードが存在しなければ最上流ノード案内要求を送信したノードをツリーの最上流ノードになるように案内する最上流案内処理とを含むことを特徴とするプログラム。
【請求項３２】
ネットワークアドレスから前記ネットワークアドレスが存在する領域の情報を検索するアドレス検索処理と、
領域毎の最上流ノードを前記領域検索手段に記憶させる領域検索処理と、
最上流ノード案内要求を受信し、前記最上流ノード案内要求の発信ノードのＩＰアドレスから前記ネットワークアドレス検索処理により領域の情報を検索し、前記領域検索処理により領域の最上流ノードを検索し、領域の最上流ノードが存在すれば領域の最上流ノードを案内し、領域の最上流ノードが存在しなければ領域の最上流ノードになるように案内する最上流案内処理とを含むことを特徴とする請求項３１記載のプログラム。
【請求項３３】
前記ネットワークアドレス検索処理は、ネットワークアドレスから階層化された領域情報を検索することと、
前記領域検索処理は、階層化された領域の各階層の最上流ノードを記憶することをさらに特徴とする請求項３２記載のプログラム。
【請求項３４】
マルチキャストツリーを構成する上で、前記ネットワークノード装置が属している拠点あるいはサブネットなどの領域と、他のネットワークノード装置が属している拠点あるいはサブネットなどの領域とを比較する領域識別処理とを含むことを特徴とする請求項２７〜３０いずれか記載のプログラム。
【請求項３５】
階層的なマルチキャストツリーを構成する上で、前記ネットワークノード装置が属している階層と、他のネットワークノード装置が属している階層とを比較する階層識別処理とを含むことを特徴とする請求項２７〜３０または３４いずれか記載のプログラム。
【請求項３６】
前記サーバ装置は、最高階層の領域の最上流ノードに対してのみ前記コンテンツ配信サーバへ接続するように案内することを含むことを特徴とする請求項３１〜３３いずれか記載のプログラム。
【請求項３７】
前記サーバ装置は、最初に最高階層の領域の最上流ノードになるように案内したノードに対してのみ前記コンテンツ配信サーバへ接続するように案内し、以降の最高階層の領域の最上流ノードになるように案内したノードには前記最初に最高階層の領域の最上流ノードになるように案内したノードに接続するように案内することを含むことを特徴とする請求項３１〜３３いずれか記載のプログラム。
【請求項３８】
前記領域識別処理と前記階層識別処理を有し、
最高階層の領域の最上流ノードとして振舞う際に、前記接続要求受付処理において、他の最高階層の領域の最上流ノードからの接続要求に対して、
受け入れ応答またはさらに他の最高階層の領域の最上流ノードへのリダイレクト応答をかえすことを特徴とする請求項２７〜３０いずれか記載のプログラム。
【請求項３９】
前記領域識別処理と前記階層識別処理を有し、
最高階層の領域の最上流ノードとして振舞う際に、前記接続要求受付処理において、他の最高階層の領域の最上流ノードからの接続要求に対して、受け入れ応答または低階層の下流ノードへのリダイレクト応答をかえすことを特徴とする請求項２７〜３０いずれか記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークノード装置およびサーバ装置ならびにマルチキャストツリー構築方法およびプログラムに関し、特に複数のネットワークノード装置が大規模かつ高速にマルチキャストツリーを構築することが可能なネットワークノード装置およびサーバ装置ならびにマルチキャストツリー構築方法およびプログラムに関する。
【背景技術】
【０００２】
昨今、複数のネットワークノード間で構築したツリー上にデータを転送することによって、アプリケーションレベルのマルチキャストを実現するアプリケーションレイヤマルチキャストが注目を集めている。
【０００３】
構築したマルチキャストツリーには、ツリーのルートとなるネットワークノード（以下、最上流ノード）と、ツリーのリーフとなるネットワークノード（以下、最下流ノード）が存在する。
【０００４】
マルチキャストツリーに参加したネットワークノードは、ツリーのルート側、すなわち上流に接続したネットワークノード（以下、上流ノード）からデータを受信し、ツリーのリーフ側、すなわち下流に接続している単数、あるいは複数のネットワークノード（以下、下流ノード）へデータを送信する。
【０００５】
最上流ノードがオリジナルのコンテンツを保持するコンテンツ配信サーバからデータを受信し、下流ノード、言い換えると構築したマルチキャストツリー上にデータを転送することによって、参加している複数のネットワークノードに対してデータを転送することができる。
【０００６】
この種のマルチキャストツリー構築方法は、集中型マルチキャストツリー構築方法と分散型マルチキャストツリー構築方法が代表的である。
【０００７】
集中型ツリー構築方法は、ツリーに参加するネットワークノードの情報の管理、保守を集中サーバで行い、新たにツリーに参加する要求に対して適切な接続先ネットワークノードへ案内することによってツリーを構築する。
【０００８】
従来の集中型マルチキャストツリー構築方法の一例が、非特許文献１に記載されている。
【０００９】
この方法では、セッションコントローラと称される集中サーバによって、ネットワークノード間でどのようなツリーを構築するかを決定するためのツリー計算、およびその計算結果の配布を各ネットワークノードに対して行う。
【００１０】
このようなマルチキャストツリー構築方法では、コンテンツの受信を希望する参加ネットワークノードの数が増加するほど、集中サーバに対するアクセス数も増加する。
【００１１】
そのため、集中サーバで行っているツリー計算、および計算結果の配布をするための処理負荷が高くなってしまう。
【００１２】
また、参加ネットワークノードの数に比例して管理、保守しなければならない情報量が増大してしまう。
【００１３】
一方、分散型ツリー構築方法は、サーバではツリーに参加するネットワークノードの管理、保守はほぼ行わず、新たにツリーに参加する要求に対して、接続先ネットワークノードを決定するための情報のみを提供し、ネットワークノード間で協調動作を行うことで接続先ネットワークノードを決定することによってツリーを構築する。
【００１４】
従来の分散型マルチキャストツリー構築方法の一例が、非特許文献２に記載されている。
【００１５】
この方式では、ネットワークノードは、ランデブーポイントと称されるサーバにツリー参加要求を行い、既に参加しているネットワークノードのいくつかを教えてもらう。
【００１６】
それらのうちのネットワークノードの1 つと接続し、自分が知っているネットワークノードを伝えると共に、相手の知っているネットワークノードを教えてもらうことでツリー情報の交換を行う。
【００１７】
このようなマルチキャストツリー構築方法では、ツリー参加ネットワークノード間で多くのツリー情報のやり取りが行われる。
【００１８】
そのため、最適なマルチキャストツリーを構築することができるが、構築完了までに時間がかかってしまう。
【００１９】
また、各ネットワークノードが保持しなければならない他のネットワークノードの情報量が多くなってしまう。
【００２０】
また、新規参加ノードよりマルチキャスト通信への接続要求が発生したとき、新規参加ノードより参加要求情報を受け取る過程と、参加要求情報に基づき、マルチキャスト通信に既に参加しているノードの情報と、ネットワーク構成情報とを取得して、同報ノードに対する仮想コストを算出する過程と、算出された仮想コストと既存参加非同報ノードへのリンクコストとを比較する過程と、比較の結果、最も低いコストのノードを新規参加ノードの接続先ノードとして選択する過程と、選択された接続先ノードへ新規参加ノードを接続する過程とを備えたマルチキャストルーチング方法が特許文献１に記載されている。
【００２１】
【特許文献１】特開２０００−２５３０６５号（段落００１０、図１、図２）
【非特許文献１】２００１年３月、USUTS 会報、D ．ぺンダラキ、シェリア・シー、D ．ヴェルマ、M ．ウォルドヴォゲル著、ALMI: アプリケーション・レベル・マルチキャスト・インフラストラクチャ（D. Pendarakis, Sherlia Shi, D. Verma and M. Waldvogel,” ALMI: An Application Level Multicast Infrastructure  “, In Proc. USITS, March 2001）
【非特許文献２】２０００年６月、ACM SIGMETRICS会報、Y ．チュウ、S ．G ．ラオ、H ．ザン著、ケース・フォー・エンドシステムマルチキャスト（Y. Chu, S. G. Rao and H. Zhang, “ A Case for End System Multicast  “ , In Proc ACM SIGMETRICS 2000, June 2000 ）
【発明の開示】
【発明が解決しようとする課題】
【００２２】
第１の問題点は、集中型マルチキャストツリー構築方法ではツリーの規模が拡大しないということである。
【００２３】
その理由は、コンテンツの受信を希望する参加ネットワークノードの数が増加するほど、ツリー計算、および計算結果配布処理の過負荷、および管理、保守しなければならない情報量の増大が生じ、同時多数の参加要求を処理しきれなくなるためである。
【００２４】
第２の問題点は、分散型マルチキャストツリー構築方法では最適なツリーの構築が遅いということである。
【００２５】
その理由は、分散しているツリー参加ネットワークノード間で多くのツリー情報のやり取りを行い、多くのネットワークノードの情報を収集してから最適なツリー計算を行うためである。
【００２６】
第３の問題は、マルチキャストツリーの配信性能が低いということである。
【００２７】
その理由は、マルチキャストのデータの複製と再配信をする各ネットワークノードの性能を考慮せず、他のネットワークノードへの接続数を決定するため、特定のネットワークノードに過負荷がかかるためである。
【００２８】
第４の問題は、任意のツリー参加ネットワークノードが離脱した時に、ツリーの再構築を迅速に行えないことである。
【００２９】
その理由は、離脱したネットワークノードが保持していた情報がツリー再構築に必要な情報であった場合、失われた情報を再度他のネットワークノードから収集するために要する時間がかかるためである。
【００３０】
そこで本発明の目的は、ネットワークノード間で大規模なマルチキャストツリーを構築することが可能なネットワークノード装置およびサーバ装置ならびにマルチキャストツリー構築方法およびプログラムを提供することにある。
【００３１】
また、本発明の他の目的は、最適なマルチキャストツリーを迅速に構築することが可能なネットワークノード装置およびサーバ装置ならびにマルチキャストツリー構築方法およびプログラムを提供することにある。
【００３２】
さらに、本発明の他の目的は、マルチキャストツリーの配信性能を向上させることが可能なネットワークノード装置およびサーバ装置ならびにマルチキャストツリー構築方法およびプログラムを提供することにある。
【００３３】
さらに、本発明の他の目的は、ツリー参加ネットワークノードが離脱しても、迅速にツリーの再構築を行うことが可能なネットワークノード装置およびサーバ装置ならびにマルチキャストツリー構築方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００３４】
前記課題を解決するために本発明によるネットワークノード装置は、マルチキャストツリーを構成するネットワークノード装置であって、接続済みの上流ノードと下流ノードおよび接続候補ノードの情報を記憶する接続状況記憶手段と、前記接続状況記憶手段の下流ノードの情報を用いて下流接続先を受け入れることの可否を判断する下流接続受付制御手段と、事前に設定された、または、上書きされた前記接続状況記憶手段の接続候補ノードの情報を用いて接続候補ノードへ接続要求を送信する接続要求手段と、前記接続要求を受信し、前記下流接続受付制御手段が受け入れ可能と判断すれば接続受け入れ応答を返信し、前記下流接続受付制御手段が受け入れ不能と判断すれば前記接続要求を断り、前記接続状況記憶手段から任意の下流接続ノードを検索し、検索された下流接続ノードに接続を試みることを促すためのリダイレクト応答を返信する接続要求受付手段と、前記接続受け入れ応答を受信した場合は前記接続候補ノードの情報を前記上流ノードの情報として上書きし、前記リダイレクト応答を受信した場合は前記リダイレクト応答の中の前記下流接続ノードを前記接続候補ノードとして上書きする接続応答受信手段とを含むことを特徴とする。
【００３５】
また、本発明によるサーバ装置は、マルチキャストツリーに参加を希望するネットワークノード装置に対して接続先ネットワークノード装置を案内するサーバ装置であって、ツリーの最上流のノードを記憶する最上流ノード記憶手段と、最上流ノード案内要求を受信し、前記最上流ノード記憶手段にツリーの最上流ノードが存在すれば前記最上流ノードを案内し、ツリーの最上流ノードが存在しなければ最上流ノード案内要求を送信したノードをツリーの最上流ノードになるように案内する最上流案内手段とを含むことを特徴とする。
【００３６】
また、本発明によるマルチキャストツリー構築方法は、ネットワークノード装置間でデータを送受信するためのマルチキャストツリー構築方法であって、接続済みの上流ノードと下流ノードおよび接続候補ノードの情報を記憶しておくノード記憶ステップと、前記下流ノードの情報を用いて下流接続先を受け入れることの可否を判断する受け入れ判断ステップと、事前に設定された、または、上書きされた前記接続候補ノードの情報を用いて前記接続候補ノードへ接続要求を送信する送信ステップと、前記接続要求を受信し、前記受け入れ判断ステップで受け入れ可能と判断すれば接続受け入れ応答を返信し、前記受け入れ判断ステップで受け入れ不能と判断すれば前記接続要求を断り、前記ノード記憶ステップで記憶したノードから任意の下流接続ノードを検索し、検索された下流接続ノードに接続を試みることを促すためのリダイレクト応答を返信する接続要求受付ステップと、前記接続受け入れ応答を受信した場合は前記接続候補ノードの情報を前記上流ノードの情報として上書きし、前記リダイレクト応答を受信した場合は前記リダイレクト応答の中の前記下流接続ノードを前記接続候補ノードとして上書きする接続応答受信ステップとを含むことを特徴とする。
【００３７】
また、本発明によるプログラムは、ネットワークノード装置間でデータを送受信するためのマルチキャストツリー構築方法をコンピュータに実行させるためのプログラムであって、接続済みの上流ノードと下流ノードおよび接続候補ノードの情報を前記接続状況記憶手段に記憶させる接続状況記憶処理と、前記接続状況記憶手段の下流ノードの情報を用いて下流接続先を受け入れることの可否を判断する下流接続受付制御処理と、事前に設定された、または、上書きされた前記接続状況記憶手段の接続候補ノードの情報を用いて接続候補ノードへ接続要求を送信する接続要求処理と、前記接続要求を受信し、前記下流接続受付制御処理で受け入れ可能と判断すれば接続受け入れ応答を返信し、前記下流接続受付制御処理で受け入れ不能と判断すれば前記接続要求を断り、前記接続状況記憶手段から任意の下流接続ノードを検索し、検索された下流接続ノードに接続を試みることを促すためのリダイレクト応答を返信する接続要求受付処理と、前記接続受け入れ応答を受信した場合は前記接続候補ノードの情報を前記上流ノードの情報として上書きし、前記リダイレクト応答を受信した場合は前記リダイレクト応答の中の前記下流接続ノードを前記接続候補ノードとして上書きする接続応答受信処理とを含むことを特徴とする。
【発明の効果】
【００３８】
第１の効果は、ネットワークノード装置間で大規模なマルチキャストツリーを構築することができることにある。
【００３９】
その理由は、コンテンツの受信を希望する参加ネットワークノードの数が増加しても、ツリー計算、および計算結果配布処理の負荷、および管理、保守しなければならない情報量をネットワークノード装置に分散することで、同時多数の参加要求を処理することができるためである。
【００４０】
第２の効果は、分散しているネットワークノード装置間で迅速に最適なツリーを構築することができることにある。
【００４１】
その理由は、サーバ装置に適切なネットワークノード装置を案内してもらった以降は、各ネットワークノード装置に接続先ネットワークノードを案内してもらうことによって、分散しているツリー参加ネットワークノード間との情報のやり取りを最小限にし、情報収集後のツリー計算を必要としないためである。
【００４２】
第３の効果は、マルチキャストツリーの配信性能を向上させることができることにある。
【００４３】
その理由は、マルチキャストデータの複製と再配信をする各ネットワークノード装置の性能を考慮し、他のネットワークノード装置への接続数を決定するため、各ネットワークノード装置に適切な負荷を割り当てるためである。
【００４４】
第４の効果は、任意のツリー参加ネットワークノード装置が離脱しても、迅速なツリーの再構築を行うことができることにある。
【００４５】
その理由は、ネットワークノード装置は、ツリー構築の時に、ツリー再構築に必要な情報を、各ネットワークノード装置に必要な量だけ収集することによって、新たに情報を収集せずに、短時間でツリーの再構築を行うことができるためである。
【発明を実施するための最良の形態】
【００４６】
以下、本発明の実施例について添付図面を参照しながら説明する。
【実施例１】
【００４７】
図１は本発明に係るネットワークノード装置の第１実施例の構成図である。図1 を参照すると、本発明に係るネットワークノード装置１００は、接続状況記憶手段１０１と、下流接続受付制御手段１０２と、接続要求手段１０３と、接続要求受付手段１０４と、接続応答受信手段１０５とを含んでいる。
【００４８】
これらの手段はそれぞれ概略次のように動作する。接続状況記憶手段１０１は、接続済みの上流ノードと下流ノードおよび接続候補ノードの情報を記憶する。
【００４９】
下流接続受付制御手段１０２は、接続状況記憶手段１０１が記憶している下流ノードの情報を用いて下流接続先を受け入れの可否を判断する。
【００５０】
接続要求手段１０３は、接続状況記憶手段１０１が記憶している接続先候補ノードの情報を用いて接続先候補ノードへ接続要求を送信する。
【００５１】
接続要求受付手段１０４は、接続要求手段１０３から送信された接続要求を受信し、下流接続受付制御手段１０２が受け入れ可能と判断すれば接続受け入れ応答を返信し、下流接続受付制御手段１０２が受け入れ不能と判断すれば接続要求手段１０３から送信された接続要求を断り、接続状況記憶手段１０１から任意の下流接続ノードを検索し、検索された下流接続ノードに接続を試みることを促すためのリダイレクト応答を返信する。
【００５２】
接続応答受信手段１０５は、接続要求受付手段１０４から接続受け入れ応答を受信した場合は、前記接続候補ノードの情報を前記上流ノードの情報として上書きし、接続要求受付手段１０４からリダイレクト応答を受信した場合は、前記リダイレクト応答の中の前記下流接続ノードを前記接続候補ノードとして上書きする。
【００５３】
次に、図２及び図３を参照して第１実施例の全体の動作について詳細に説明する。図２はネットワークノード装置のサーバとしての動作を示すフローチャート、図３はネットワークノード装置のクライアントとしての動作を示すフローチャートである。
【００５４】
まず、ネットワークノード装置１００のサーバとしての動作について説明する。ネットワークノード装置１００は、他のネットワークノード装置からの接続要求を受信する（図２のステップＳ１）。
【００５５】
そして、下流接続受付制御手段１０２で受信した接続要求を受け入れることが可能か確認する（ステップＳ２およびＳ３）。
【００５６】
もし, 受信した接続要求を受け入れることが可能であれば、接続状況記憶手段１０１に下流接続ノード情報を追加し、接続受け入れ応答を返信する（ステップＳ４およびＳ５およびＳ８）。
【００５７】
もし、受信した接続要求を受け入れることが不可能であれば、接続状況記憶手段１０１より任意の下流ノードを検索し、検索された下流ノードに接続を試みることを促すためのリダイレクト応答を返信する（ステップＳ６およびＳ７およびＳ８）。
【００５８】
次に、ネットワークノード装置１００のクライアントとしての動作ついて説明する。ネットワークノード装置１００は、ツリーに参加するために接続状況記憶手段１０１より接続候補ノードの情報を用いて他のネットワークノード装置に対して接続要求を送信する（図３のステップＣ１およびＣ２）。
【００５９】
そして、接続応答受付手段１０４は、他のネットワークノード装置からの接続要求に対する応答を受信し、応答の内容を確認する（ステップＣ３およびＣ４およびＣ５）。
【００６０】
もし、接続受け入れ応答であれば、接続状況記憶手段１０１で接続候補ノードの情報を上流ノードの情報として追加し、上流ノードへ接続する（ステップＣ６およびＣ７）。
【００６１】
もし、リダイレクト応答であれば、接続状況記憶手段１０１の接続候補ノードの情報を、新しい接続先ノードのデータで上書きし、再度接続要求を試みる（ステップＣ８）。
【００６２】
次に、第１実施例の効果について説明する。第１実施例では、集中サーバでツリー計算を行わずに、というように構成されているため、集中サーバの負荷を分散することができ、大規模のツリーを構築することができる。
【００６３】
また、第１実施例では、さらに、接続要求をクライアント間でリダイレクトして構築するというように構成されているため、集中サーバで全ネットワークノード装置を管理することなくツリーを構築することができる。
【実施例２】
【００６４】
図４は本発明に係るネットワークノード装置の第２実施例の構成図である。図4 を参照すると、第２実施例は、ネットワークノード装置１００が、図1 に示された第１実施例に加え、接続先変更手段制御手段１０６と、接続先変更命令手段１０７と、接続先変更命令受付手段１０８とを有する点で異なる。
【００６５】
これらの手段はそれぞれ概略次のように動作する。接続先変更制御手段１０６は、接続状況記憶手段１０１が記憶している下流ノードの情報を用いて、接続状況記憶手段１０１から検索した下流接続ノードの情報と、接続要求を発信したノードの情報を比較し、下流接続ノードに対して前記接続要求を発信したノードの下流に接続するように指示することの是非を判断する。
【００６６】
接続先変更命令手段１０７は、接続先変更制御手段１０６が接続状況記憶手段１０１に記憶している下流接続ノードは接続要求を発信したノードの下流に接続すべきと判断した場合は、下流接続ノードに対して接続要求を発信したノードに接続することを指示するスワップ命令を送信する。
【００６７】
接続先変更命令受付手段１０８は、接続先変更命令手段１０７が送信したスワップ命令を受信し、要求の中に含まれている接続要求を発信したノードを接続候補ノードとして上書きする。
【００６８】
次に、図５及び図６のフローチャートを参照して第２実施例の全体の動作について詳細に説明する。図５はネットワークノード装置１００のサーバとしての動作を示すフローチャート、図６はネットワークノード装置１００のクライアントとしての動作を示すフローチャートである。
【００６９】
図５のステップＳ１〜Ｓ８、及び図６のステップＣ１〜Ｃ８で示される第２実施例における接続状況記憶手段１０１と、下流接続受付制御手段１０２と、接続要求手段１０３と、接続要求受付手段１０４と、接続応答受信手段１０５の動作は、第１実施例の各手段１０１〜１０５の動作と同一のため、説明は省略する。      
【００７０】
第１実施例では、下流接続受付制御手段１０２は、接続状況記憶手段１０１に記憶されている下流ノード数を考慮して受け入れることの可否を判断していた。
【００７１】
第２実施例では、下流接続受付制御手段１０２において接続要求の受け付けの可否を判断する際に、既に接続しているノードと後に接続要求を発信したノードを比較して、接続先の変更を行うべきかを判断する。
【００７２】
まず、ネットワークノード装置１００のサーバとしての動作について説明する。下流接続受付制御手段１０２において接続要求の受け付けの可否を判断する際に、接続先変更制御手段１０６が接続状況記憶手段１０１に記憶している下流接続ノードと比較して、接続先を変更することの是非を判断する（図５ステップＳ９）。
【００７３】
もし、下流接続ノードは接続要求を発信したノードに接続先を変更するべきと判断した場合は、接続先変更命令手段１０７より該当する下流接続ノードに対して接続要求を発信したノードに接続先を変更するためのスワップ命令を送信する（ステップＳ１０）。
【００７４】
もし、接続先の変更をする必要が無いと判断した場合は、第１の実施の動作で説明した図２のステップＳ３〜Ｓ８で示した通り、受け入れの可否を判断し、接続要求に対する適切な応答を返信する。
【００７５】
次に、ネットワークノード装置１００のクライアントとしての動作ついて説明する。接続先変更命令受付手段１０８は、他のネットワークノード装置の接続先変更命令手段１０７によって送信されたスワップ命令を受信する（ステップＣ９）。
【００７６】
そして、スワップ命令の中に含まれている接続要求を発信したノードを接続候補ノードとして上書きし、既に接続していた上流ノードとの接続を切断する（ステップＣ１０およびＣ８）。
【００７７】
最後に、第１の実施の動作で説明した図３のステップＣ１〜Ｃ８で示した通り、接続候補ノードに対して接続要求を送信する。
【００７８】
次に、第２実施例の効果について説明する。第２実施例では、後で性能の良いノードがツリーに参加してきた際に、接続先の変更を行い、ネットワークノード装置の上下をスワップするというように構成されているため、大規模かつ安定したツリーを構築することができる。
【００７９】
また、第２実施例では、さらに、ノードの領域情報を意識してネットワークノード装置の上下をスワップするというように構成されているため、可能な限り近いノードからデータを受信することによって、データ転送の信頼性や、トラフィック経路の最適化を図ることができる。
【実施例３】
【００８０】
次に、第３実施例について図面を参照して詳細に説明する。図７は本発明に係るネットワークノード装置の第３実施例の構成図である。図７を参照すると、第３実施例は、ネットワークノード装置１００が、図１に示された第１実施例に加え、最上流ノード記憶手段１０９と、最上流ノード型障害回復手段１１０とを有する点で異なる。
【００８１】
これらの手段はそれぞれ概略次のように動作する。最上流ノード記憶手段１０９は、接続応答受信手段１０５が受け入れ応答、あるいはリダイレクト応答を最初に受信した際に、前記受け入れ応答、前記リダイレクト応答を送信したノードを記憶しておく。
【００８２】
最上流ノード型障害回復手段１１０は、上流ノードとの接続が完了した後に、前記上流ノードとの間でなんらかの通信障害が発生した場合、前記最上流ノード記憶手段１０９から最上流ノード読み出し、接続状況記憶手段１０１の接続候補ノードに上書きする処理を行う。
【００８３】
次に、図８を参照して第３実施例の全体の動作について詳細に説明する。図８（ａ）は図７の最上流ノードを記憶するときのネットワークノード装置の動作を示すフローチャートであり、図８（ｂ）は図７の最上流ノード型障害回復を実施するときのネットワークノード装置の動作を示すフローチャートである。
【００８４】
図８のステップＣ１〜Ｃ８で示される第３実施例における接続状況記憶手段１０１と、接続要求手段１０３と、接続応答受信手段１０５の動作は、第１実施例の各手段１０１、１０３、１０５の動作と同一のため、説明は省略する。
【００８５】
ネットワークノード装置間でマルチキャストツリーを構築し、データの転送を行う際に、ノードがダウンして中継できなくなることや、リンク障害などの理由でデータの転送が途絶える可能性がある。
【００８６】
第３実施例では、上述のような何らかの理由で障害が発生し、マルチキャストツリーの上流のノードからデータが送信されてこなくなった場合でも、迅速にマルチキャストツリーの再構築を行うことによってデータ転送が途絶えることを回避する。
【００８７】
まず、ツリーに参加するために他のノードに対して接続要求を送信し、応答は受け入れ応答、あるいはリダイレクト応答を受信する。
【００８８】
このとき、最上流ノード記憶手段１０９は、一番初めに接続要求を送信したノードの接続先を最上流ノード記憶手段１０９に記憶しておく（図８（ａ）のステップＣ１１およびＣ１２）。
【００８９】
もし、上流ノードとの通信で何らかの障害が発生した場合は、下流ノードで通信障害を検知する（図８（ｂ）のステップＣ１３）。
【００９０】
そして、最上流ノード記憶手段１０９に記憶していた最上流ノードの情報を読み出し、接続候補ノードとして上書きする（図８（ｂ）のステップＣ１４およびＣ８）。
【００９１】
最後に、第１実施例の動作で説明した図３のステップＣ１〜Ｃ８で示した通り、接続候補ノードに対して接続要求を送信する。
【００９２】
接続要求を受信したノードは、通常時の接続要求と同様に扱うことができるので、受け入れ応答、あるいはリダイレクト応答を、接続要求を発信したノードに対して返信する。
【００９３】
次に、第３実施例の効果について説明する。第３実施例では、マルチキャストツリーを構成するノード間でなんらかの障害が発生しても、ノード間で協調してツリーを再構築するように構成されているため、集中サーバにかかる負荷を分散することができる。
【００９４】
また、第３実施例では、さらに、各ノードが保持しなければならない情報量を必要最低限にするというように構成されているため、ツリー再構築時に各ノード間で正確な情報の同期の手間がかからず、柔軟なツリー再構築を行うことができる。
【実施例４】
【００９５】
次に、第４実施例について図面を参照して詳細に説明する。図９は本発明に係るネットワークノード装置の第４実施例の構成図である。図９を参照すると、第４実施例は、ネットワークノード装置１００が、図７に示された第３実施例において、最上流ノード記憶手段１０９の代わりに上流ノードリスト記憶手段１１１を、最上流ノード型障害回復手段１１０の代わりに上流ノードリスト型障害回復手段１１２を有する点で異なる。
【００９６】
これらの手段はそれぞれ概略次のように動作する。上流ノードリスト記憶手段１１１は、リダイレクト応答を受信するたびに前記リダイレクト応答を送信したノードを追加記憶し、上流ノードリストを保守する。
【００９７】
上流ノードリスト型障害回復手段１１２は、上流ノードとの接続が完了した後、前記上流ノードとの通信障害が発生した場合、上流ノードリスト記憶手段１１１からノードを一つ選び出し、接続状況記憶手段１０１の接続候補ノードに上書きする処理を、接続受け入れ応答かリダイレクト応答を受信するまで繰り返す。
【００９８】
次に、図１０を参照して本実施の形態の全体の動作について詳細に説明する。図１０（ａ）は図９の上流ノードリストを作成するときのネットワークノード装置の動作を示すフローチャート、図１０（ｂ）は図９の上流ノードリスト型障害回復を実施するときのネットワークノード装置の動作を示すフローチャートである。
【００９９】
図１０のステップＣ１〜Ｃ８で示される第４実施例における接続状況記憶手段１０１と、接続要求手段１０３と、接続応答受信手段１０５の動作は、第１実施例の各手段１０１、１０３、１０５の動作と同一のため、説明は省略する。
【０１００】
第３実施例では、最上流ノードを記憶しておくことによって、何らかの通信障害が発生した時に最上流ノードに接続要求を送信し、ツリーの再構築を行っていた。
【０１０１】
第４実施例では、ツリー構築時に作成した上流ノードリストを用いてツリーの再構築を行う。
【０１０２】
まず、ツリーに参加するために他のノードに対して接続要求を送信する。その応答がリダイレクト応答であった場合は、リダイレクト応答を送信した上流ノードを上流ノードリスト記憶手段１１１に追加記憶する（図１０（ａ）のステップＣ１５）。
【０１０３】
リダイレクト応答を受信したノードは、リダイレクト応答の中の接続先ノードを接続候補ノードとして上書きし、接続候補ノードに対して接続要求を送信する。
【０１０４】
その応答がリダイレクト応答であった場合は、リダイレクト応答を送信した上流ノードを上流ノードリストに追加記憶する、というように、リダイレクト応答を受信するたびに前記リダイレクト応答を送信した上流ノードを追加記憶していき、上流ノードリストを作成する。
【０１０５】
上流ノードリストの作成について説明として図２４を示す。図２４は第４実施例における上流ノードリストのデータ構造であるＦＩＬＯを示す図である。
【０１０６】
上流ノードリストの作成は、ＦＩＬＯ（First In Last Out ）のデータ構造のように、上流ノードの情報をプッシュしてリストに格納しておく。
【０１０７】
もし、上流ノードとの通信で何らかの障害が発生した場合は、下流ノードで通信障害を検知する（図１０（ｂ）のステップＣ１３）。
【０１０８】
そして、上流ノードリスト記憶手段１１１に記憶していた上流ノードリストから上流ノードの情報を読み出し、接続候補ノードとして上書きする（図１０（ｂ）のステップＣ１６およびＣ８）。
【０１０９】
上流ノードリストから上流ノードの情報の読み出しについての説明として図２１を示す。上流ノードリストから上流ノードの情報の読み出しは、ＦＩＬＯのデータ構造のスタックトップから順にポップして上流ノードの情報を読み出す。
【０１１０】
最後に、第１実施例の動作で説明した図３のステップＣ１〜Ｃ８で示した通り、接続候補ノードに対して接続要求を送信する。
【０１１１】
もし、接続要求を送信した接続候補ノードから接続応答が無い場合は、上流ノードリストから上流ノードの情報を読み出し、再度接続要求を送信する。
【０１１２】
この処理を接続候補ノードからの受け入れ応答、あるいはリダイレクト応答を受信するまで繰り返す（図２４参照）。
【０１１３】
次に、第４実施例の効果について説明する。第４実施例では、各ノードで上流ノードリストを作成し、保守することにように構成されているため、マルチキャストツリーを構成するノード間でなんらかの障害が発生し、多数のノードがツリー再構築を実施した場合に、特定のノードに対して集中する負荷を分散させることができる。
【０１１４】
また、第４実施例では、さらに、自分よりも上流のノードを下流から順に接続要求を送信するというように構成されているため、接続要求を送信してから受け入れ応答を受信するまでの時間を削減することができる。
【実施例５】
【０１１５】
次に、第５実施例について図面を参照して詳細に説明する。図１１は第５実施例であるサーバ装置の構成図である。
【０１１６】
図１１を参照すると、第５実施例は、サーバ装置２００と、最上流ノード記憶手段２０１と、最上流案内手段２０２とを含んで構成されている。
【０１１７】
サーバ装置２００は、最上流ノード記憶手段２０１と、最上流案内手段２０２とを含んでいる。
【０１１８】
これらの手段はそれぞれ概略次のように動作する。最上流ノード記憶手段２０１は、マルチキャストツリーの最上流ノードを記憶する。最上流案内手段２０２は、最上流ノード案内要求を受信し、最上流ノード記憶手段２０１にツリーの最上流ノードが存在すれば、前記最上流ノードを案内し、ツリーの最上流ノードが存在しなければ最上流ノード案内要求を送信したノードをツリーの最上流ノードになるように案内する。
【０１１９】
次に、図１２を参照して第５実施例の全体の動作について詳細に説明する。図１２は第５実施例のサーバ装置の動作を示すフローチャートである。
【０１２０】
サーバ装置は、マルチキャストツリーに参加を希望するネットワークノード装置から最上流ノード案内要求を受信する（図１２のステップＴ１）。
【０１２１】
そして、最上流ノード案内手段２０２は、最上流ノード記憶手段２０１に記憶されている最上流ノードの存在の有無を確認する（ステップＴ２）。
【０１２２】
もし、最上流ノードが存在する場合は、その最上流ノードを接続先として案内する応答を返信する（ステップＴ３およびＴ５）。
【０１２３】
もし、最上流ノードが存在しない場合は、最上流ノード案内要求を送信したノードを最上流ノードとして最上流ノード記憶手段２０１に登録し、最上流ノードになるように案内する応答を返信する（ステップＴ４およびＴ５）。
【０１２４】
次に、第５実施例の効果について説明する。第５実施例では、サーバ装置は、接続要求に対して最上流ノードを接続先として案内するという構成になっているため、マルチキャストツリーを構築するための計算に必要な処理負荷をネットワークノード装置に分散することにより、大規模なツリー構築を実現することができる。
【実施例６】
【０１２５】
次に、第６実施例について図面を参照して詳細に説明する。図１３は第６実施例であるサーバ装置の構成図である。
【０１２６】
図１３を参照すると、第６実施例は、サーバ装置２００が、図１１に示された第５実施例に加え、ネットワークアドレス検索手段２０３と、領域検索手段２０４とを有する点で異なる。ネットワークアドレス検索手段はＩＰアドレス等のネットワークアドレスをキーとして検索する機能を有する．
【０１２７】
これらの手段はそれぞれ概略次のように動作する。ネットワークアドレス検索手段２０３は、ＩＰアドレスからＩＰアドレスが存在する領域を検索するマルチキャストツリーの最上流のノードを記憶する。領域検索手段２０４は、領域ごとの最上流ノードを記憶する。
【０１２８】
また、最上流案内手段２０２は、最上流ノード案内要求を受信し、前記最上流ノード案内要求の発信ノードのＩＰアドレスから前記ネットワークアドレス検索手段２０３により領域の情報を検索し、前記領域検索手段２０４により領域の最上流ノードを検索し、領域の最上流ノードが存在すれば領域の最上流ノードを案内し、領域の最上流ノードが存在しなければ領域の最上流ノードになるように案内することを特徴とする。
【０１２９】
次に、図１４を参照して第６実施例の全体の動作について詳細に説明する。図１４は第６実施例のサーバ装置の動作を示すフローチャートである。
【０１３０】
第５実施例では、最上流ノード記憶手段２０１においてマルチキャストツリーに参加する任意のノードを最上流のノードとして記憶していた。
【０１３１】
第６実施例では、領域ごとの最上流ノードを記憶し、ＩＰアドレスと領域のマッピング情報を利用して、ある領域からの参加者の要求に対して同一領域の最上流ノードを案内する応答を返信する。
【０１３２】
まず、サーバ装置は、マルチキャストツリーに参加を希望するネットワークノード装置から最上流ノード案内要求を受信する（図１４のステップＴ１）。
【０１３３】
そして、ネットワークアドレス検索手段２０３は、最上流ノード案内要求を発信したネットワークノード装置のＩＰアドレスから領域の情報を検索し、該当する領域の最上流ノードの存在の有無を確認する（ステップＴ６およびＴ７）。
【０１３４】
もし、最上流ノードが存在する場合は、その最上流ノードを接続先として案内する応答を返信する（ステップＴ３およびＴ５）。
【０１３５】
もし、最上流ノードが存在しない場合は、最上流ノード案内要求を送信したノードを、該当する領域の最上流ノードとして領域検索手段２０４に登録し、領域の最上流ノードになるように案内する応答を返信する（ステップＴ８およびＴ５）。
【０１３６】
次に、第６実施例の効果について説明する。第６実施例では、サーバ装置は、接続要求に対して適切な最上流ノードを接続先として案内するという構成になっているため、ネットワークノード間でマルチキャストツリーを構築するために必要なコストを削減させることができる。
【０１３７】
また、第６実施例では、さらに、同一領域内のネットワークノード装置間でマルチキャストツリーを構築させるという構成になっているため、遅延の影響を受けにくいネットワーク環境内でネットワークノード装置間の協調調動作が可能であるので、迅速にマルチキャストツリーを構築させることができる。
【実施例７】
【０１３８】
次に、第７実施例について図面を参照して詳細に説明する。図１５は第７実施例であるサーバ装置の構成図である。
【０１３９】
図１５を参照すると、第７実施例は、サーバ装置２００が、図１３に示された第６実施例で示した領域検索手段２０４の代わりに、階層領域検索手段２０５を有する点で異なる。
【０１４０】
この手段は概略次のように動作する。階層領域検索手段２０５は、階層化された領域の各階層の最上流ノードを記憶する。
【０１４１】
また、最上流案内手段２０２は、最上流ノード案内要求を受信し、最上流ノード案内要求の発信ノードのＩＰアドレスからネットワークアドレス検索手段２０３により階層化された領域情報を検索し、適切な階層領域検索手段２０５から発信ノードの属する階層の領域の最上流ノードを案内し、該当する階層の領域の最上流ノードが存在しなければ、ひとつ高い階層の階層領域検索手段２０５によりひとつ高い階層の領域の最上流ノードを検索し、ひとつ高い階層の領域の最上流ノードが存在すれば前記該当した階層の領域の最上流ノードになることとひとつ高い階層の領域の最上流ノードを案内し、ひとつ高い階層の領域の最上流ノードが存在しなければひとつ高い階層の領域の最上流ノードになるように案内することを特徴とする。
【０１４２】
次に、図１６を参照して第７実施例の全体の動作について詳細に説明する。図１６は第７実施例のサーバ装置の動作を示すフローチャートである。
【０１４３】
第６実施例では、領域ごとの最上流ノードを記憶し、ＩＰアドレスと領域のマッピング情報を利用して、ある領域からの参加者の要求に対して同一領域の最上流ノードを案内していた。
【０１４４】
第７実施例では、階層化された領域ごとの最上流ノードまで記憶し、ＩＰアドレスと階層化された領域のマッピング情報を利用して、ある階層の領域からの参加者の要求に対して同一階層の領域の最上流ノードを案内する応答を返信する。
【０１４５】
まず、サーバ装置は、マルチキャストツリーに参加を希望するネットワークノード装置から最上流ノード案内要求を受信する（図１６のステップＴ１）。
【０１４６】
そして、ネットワークアドレス検索手段２０３は、最上流ノード案内要求を発信したネットワークノード装置のＩＰアドレスから階層化された領域の情報を検索し、該当する階層の領域の最上流ノードの存在の有無を確認する（ステップＴ９およびＴ１０）。
【０１４７】
もし、該当する階層の領域の最上流ノードが存在する場合は、その最上流ノードを接続先として案内する応答を返信する（ステップＴ３およびＴ５）。
【０１４８】
もし、該当する階層の領域の最上流ノードが存在しない場合は、ステップＴ９で検索した結果に該当するひとつ高い階層の領域の最上流ノードの存在の有無を確認する（ステップＴ７）。
【０１４９】
もし、該当するひとつ高い階層の領域の最上流ノードが存在する場合は、最上流ノード案内要求を送信したノードを、ステップＴ９で検索した結果に該当する階層の領域の最上流ノードとして適切な階層領域検索手段２０５に登録し、該当するひとつ高い階層の領域の最上流ノードを接続先として案内する応答を返信する（ステップＴ１１およびＴ３およびＴ５）。
【０１５０】
もし、該当するひとつ高い階層の領域の最上流ノードが存在しない場合は、最上流ノード案内要求を送信したノードを、該当するひとつ高い階層の領域の最上流ノードとして適切な階層領域手段２０５に登録し、ひとつ高い階層の領域の最上流ノードになるように案内する応答を返信する（ステップＴ８およびＴ５）。
【０１５１】
次に、第７実施例の効果について説明する。第７実施例では、サーバ装置は、同一階層の領域内のネットワークノード装置間でマルチキャストツリーを構築させるという構成になっているため、データ転送時の上流ネットワークノード装置との距離を最短にすることができるので、ネットワークの遅延による影響を最小にすることができる。
【実施例８】
【０１５２】
次に、第８実施例について図面を参照して詳細に説明する。図１７は本発明に係るネットワークノード装置の第８実施例の構成図である。
【０１５３】
図１７を参照すると、第８実施例は、ネットワークノード装置１００が、図１に示された第１実施例に加え、領域識別手段１１３を有する点で異なる。
【０１５４】
この手段は概略次のように動作する。領域識別手段１１３は、マルチキャストツリーを構成する上で、自分が属している領域と、接続要求を送信したネットワークノード装置が属する領域とを比較する。
【０１５５】
ここで、マルチキャストツリーを構成する上での領域とは、ネットワークセグメントのことを示す。第８実施例では、例として拠点やサブネットを取り上げている。
【０１５６】
次に、図１８を参照して第８実施例の全体の動作について詳細に説明する。図１８は第８実施例のネットワークノード装置の動作を示すフローチャートである。
【０１５７】
図１８のステップＳ１〜Ｓ８、Ｓ１１〜Ｓ１４で示される第８実施例における接続状況記憶手段１０１と、下流接続受付制御手段１０２と、接続要求受付手段１０４の動作は、第１実施例の各手段１０１、１０２、１０４の動作と同一のため、説明は省略する。
【０１５８】
第８実施例では、接続要求を受け入れることの可否を判断するときに、ネットワークノード装置の属する領域を考慮して接続応答を返信することを特徴とする。
【０１５９】
接続要求を受信した時に、領域識別手段１１３は、マルチキャストツリーを構築する上で、自分が属している領域と、接続要求を送信したネットワークノード装置が属する領域とを比較する（図１８のステップＳ１１）。
【０１６０】
その比較結果を考慮して第1 実施例の動作で説明した図２のステップＳ１〜Ｓ８、Ｓ１１〜Ｓ１４で示した通り、受け入れの可否を判断し、接続要求に対する適切な応答を返信する。
【０１６１】
例えば、自分が所属している拠点と同じ拠点から接続要求を受信した場合は、受け入れ応答を返信する。
【０１６２】
自分が所属している拠点と異なる拠点から接続要求を受信した場合は、リダイレクト応答を返信する。また、同一と異なる領域の最大接続数をそれぞれ事前に設定しておき、それぞれの設定値を超過しない範囲では接続要求に応じ、超過した場合は領域に応じたリダイレクト応答を返信するなど、領域を考慮した接続受付制御のバリエーションは様々考えられる。
【０１６３】
次に、第８実施例の効果について説明する。第８実施例では、ネットワークノード装置が属する領域を考慮した接続受付制御をするというように構成されているため、領域ごとにまとまったマルチキャストツリーを構築することができるので、データ転送や障害回復など、通信に所要する時間を短縮することができる。
【実施例９】
【０１６４】
次に、第９実施例について図面を参照して詳細に説明する。図１９は本発明に係るネットワークノード装置の第９実施例の構成図である。
【０１６５】
図１９を参照すると、本発明の第９実施例は、ネットワークノード装置１００が、図１に示された第１実施例に加え、階層識別手段１１４を有する点で異なる。
【０１６６】
これらの手段はそれぞれ概略次のように動作する。他のネットワークノード装置から接続要求を受け取った際に、階層識別手段１１４は前記他のネットワークノード装置の属する階層情報を取得し、自己のネットワークノード装置の属する階層情報と比較し、階層の高低差を算出する。
【０１６７】
ここで、マルチキャストツリーを構成する上での階層が同じ、あるいは低いとは、マルチキャストツリーを構成するネットワークノード装置が段階的に層をなした場合の各層の高低関係を示す（図２５参照）。階層の数は任意である。もっとも高い階層を最高階層、二番目に高い階層を第二階層と呼び、もっとも低い階層を最低階層と呼ぶ。
【０１６８】
本発明の実施の形態では、例として階層を拠点、サブネットに区分する。最高階層が拠点を代表するネットワークノード装置が属する階層とする。第二階層が、サブネットを代表するネットワークノード装置が属する階層とする。最低階層が代表でないネットワークノード装置が属する階層とする。三階層として説明する。階層の領域とは、階層のネットワークノード装置とそれの下流に存在するネットワークノード装置を含む領域である。本実施例では例として、最高階層の領域を拠点、第二階層の領域をサブネット、最低階層の領域を代表ではないネットワークノード装置に対応させている。
【０１６９】
次に、図２０を参照して第９実施例の全体の動作について詳細に説明する。図２０は第９実施例のネットワークノード装置の動作を示すフローチャートである。
【０１７０】
図２０のステップＳ１〜Ｓ２、Ｓ４〜Ｓ８で示される第９実施例における接続状況記憶手段１０１と、下流接続受付制御手段１０２と、接続要求受付手段１０４の動作は、第１実施例の各手段１０１、１０２、１０４の動作と同一のため、説明は省略する。
【０１７１】
第９実施例では、接続要求を受け入れることの可否を判断するときに、自分が属する階層と、接続要求を発信したネットワークノード装置の属する階層を比較して接続要求を受け入れることの可否を判断することを特徴とする。
【０１７２】
接続要求を受信した時に、領域識別手段１１３は、マルチキャストツリーを構築する上で、自分が属している領域と、接続要求を送信したネットワークノード装置が属する領域とを比較する（図２０のステップＳ１５）。
【０１７３】
その比較結果を考慮して第１実施例の動作で説明した図２０のステップＳ１〜Ｓ２、Ｓ４〜Ｓ８、Ｓ１５、Ｓ９０で示した通り、受け入れの可否を判断し、接続要求に対する適切な応答を返信する。特にステップＳ１５では、接続要求ノードの階層情報を調査する。ステップＳ９０では、接続要求ノードの階層情報と自己の階層情報を比較し、接続要求ノードの階層が自己の階層よりも一段低いかを検査する。その結果、一段低い階層に属するノードに対しては受け入れ応答を返す（ステップＳ４）。それ以外のノードに対しては下流ノードを調べ、リダイレクト応答を返す（ステップＳ６，Ｓ７）。
【０１７４】
本実施例のネットワークノードを複数動作させた場合、任意のネットワークノードは自分の階層よりも一段高い階層のネットワークノードと接続された階層化されたマルチキャストツリーを構築する。
【０１７５】
他の実施の形態としては、同一の階層からの接続要求に対しては受付応答または同一の階層のネットワークノード装置へのリダイレクト応答を返し、異なる階層からの接続要求に対しては最初のネットワークノード装置に対してのみ受付応答または異なる階層へのリダイレクト応答を返す。
この場合、各階層でマルチキャストツリーを構成し、それぞれのネットワークノード装置の下にマルチキャストツリーがぶら下がる階層化されたマルチキャストツリーが構築される。
【０１７６】
以上のとおり、階層を考慮した接続受付制御のバリエーションは様々考えられる。
【０１７７】
次に、第９実施例の効果について説明する。第９実施例では、接続要求を発信したネットワークノード装置が属する階層と、既に下流に接続しているネットワークノード装置が属する階層を比較して接続受付制御をするというように構成されているため、ある階層でマルチキャストツリーを構築し、それを基に一段低い階層のマルチキャストツリーを構築することができる。その結果、ツリーの構築や障害回復などの処理がそれぞれの階層の処理として分散され、負荷の低減と構築時間や障害回復時間の短縮になる。さらに、階層の数を増加することによってより大きなツリーの構築を可能とする。
【実施例１０】
【０１７８】
次に、第１０実施例について図面を参照して詳細に説明する。本発明の第１０実施例は、第６実施例（図１３参照）と同様であるが、最上流案内手段２０２の振る舞いが異なる。
【０１７９】
本発明の第１０実施例では、最上流案内手段２０２は、最高階層の領域の最上流ノードになるように案内する時に、接続先としてコンテンツ配信サーバを案内することを特徴とする。
【０１８０】
本発明の第１０実施例では、まず、サーバ装置は、マルチキャストツリーに参加を希望するネットワークノード装置から最上流ノード案内要求を受信する（図１４のステップＴ１）。
【０１８１】
そして、ネットワークアドレス検索手段２０３は、最上流ノード案内要求を発信したネットワークノード装置のＩＰアドレスから最高階層の領域の情報を検索し（ステップＴ６）、該当する領域の最上流ノードの存在の有無を確認する（ステップＴ７）。
【０１８２】
もし、最高階層の領域に最上流ノードが存在する場合は、その最上流ノードを接続先として案内する応答を返信する（ステップＴ３およびＴ５）。
【０１８３】
もし、最高階層の領域に最上流ノードが存在しない場合は、最上流ノード案内要求を送信したノードを、該当する領域の最上流ノードとして階層領域検索手段２０５に登録し（ステップＴ８）、接続先としてコンテンツ配信サーバを案内する応答を返信する（ステップＴ５）。
【０１８４】
この応答を返信する時に、接続先としてコンテンツ配信サーバを案内する。このような振る舞いをすることによって図２６のマルチキャストツリーの構成図に示すようなマルチキャストツリーを構築する。
【０１８５】
各最高階層の領域の最上流ノードは、直接コンテンツ配信サーバからデータを受信するため、最高階層の領域ごとに独立なマルチキャストツリーを構築する。
【０１８６】
次に、第１０実施例の効果について説明する。第１０実施例では、最高階層の領域ごとの最上流ノードが直接コンテンツ配信サーバからデータを取得するマルチキャストツリーを構築するというように構成されているため、最高階層領域間を往復するトラフィックを削減することができ、リンク帯域を圧迫することによる映像品質の劣化を回避することができる。
【０１８７】
また、第１０実施例では、さらに、最高階層の領域ごとに独立したマルチキャストツリーを構築するというように構成されているため、他の最高階層の領域のツリーの状況に影響しないので、マルチキャストツリーの安定性が向上する。
【実施例１１】
【０１８８】
次に、第１１実施例について図面を参照して詳細に説明する。第１１実施例は、第１０実施例と同様であるが、最上流案内手段２０２の振る舞いが異なる。
【０１８９】
第１０実施例では、最上流案内手段２０２は、最高階層の領域の最上流ノードになるように案内する時に、接続先としてコンテンツ配信サーバを案内していた。
【０１９０】
第１１実施例では、最高階層の領域の最上流ノードになるように案内する時に、接続先としてコンテンツ配信サーバ、あるいは他の最高階層の領域の最上流ノードを案内することを特徴とする。
【０１９１】
第１１実施例では、まず、サーバ装置は、マルチキャストツリーに参加を希望するネットワークノード装置から最上流ノード案内要求を受信する（図１４のステップＴ１）。
【０１９２】
そして、ネットワークアドレス検索手段２０３は、最上流ノード案内要求を発信したネットワークノード装置のＩＰアドレスから最高階層の領域の情報を検索し（ステップＴ６）、該当する領域の最上流ノードの存在の有無を確認する（ステップＴ７）。
【０１９３】
もし、最高階層の領域に最上流ノードが存在する場合は、その最上流ノードを接続先として案内する応答を返信する（ステップＴ３およびＴ５）。
【０１９４】
もし、最高階層の領域に最上流ノードが存在しない場合は、最上流ノード案内要求を送信したノードを、該当する領域の拠点の最上流ノードとして階層領域検索手段２０５に登録し、接続先としてコンテンツ配信サーバを案内する応答を返信する（ステップＴ８およびＴ５）。
【０１９５】
この応答を返信する時に、他の最高階層の領域の最上流ノードを検索し、他の最高階層の領域の最上流ノードが存在する場合は、コンテンツ配信サーバではなく任意の最高階層の領域の最上流ノードを接続先として案内する。
【０１９６】
もし、他の最高階層の領域の最上流ノードが存在しない場合は、接続先としてコンテンツ配信サーバを案内する。
【０１９７】
このような振る舞いをすることによって図２７のマルチキャストツリーの構成図に示すマルチキャストツリーを構築する。
【０１９８】
１つの最高階層の領域の最上流ノードのみコンテンツ配信サーバから直接データを受信し、それ以外の最高階層の領域の最上流ノードは他の最高階層の領域のノードからデータを受信するため、最高階層の領域間でもツリー構成をなすマルチキャストツリーを構築する。
【０１９９】
次に、第１１実施例の効果について説明する。第１１実施例では、１つの最高階層の領域の最上流ノードのみコンテンツ配信サーバと接続を確立するというように構成されているため、マルチキャストツリーに参加するネットワークノード装置がどれだけ増加してもコンテンツ配信サーバにかかる負荷を一定に抑えることができる。
【０２００】
また、第１１実施例では、さらに、各最高階層の領域の最上流ノードのみが最高階層の領域間の接続の確立を試みるというように構成されているため、最高階層領域間を無駄に往復するトラフィックを削減することができる。
【実施例１２】
【０２０１】
次に、第１２実施例について図面を参照して詳細に説明する。図２１は本発明に係るネットワークノード装置の第１２実施例の構成図である。
図２１を参照すると、本発明の第１２の実施例は、ネットワークノード装置１００が、第一実施例の図１に加え、領域識別手段１１３と階層識別手段１１４を有する点で異なる。
【０２０２】
第１２実施例では、他の最高階層の領域の最上流ノードからの接続要求に対して、受け入れ応答またはさらに他の最高階層の領域の最上流ノードへのリダイレクト応答をかえすことを特徴とする。
次に、図２２を参照して第１２実施例の全体の動作について詳細に説明する。図２２は第１２実施例のネットワークノード装置の動作を示すフローチャートである。
図２２のステップＳ１〜Ｓ５、Ｓ７、Ｓ８、Ｓ１１、Ｓ１２、Ｓ１５、Ｓ１６で示される第１２実施例における接続状況記憶手段１０１と、下流接続受付制御手段１０２と、接続要求手段１０３、接続要求受付手段１０４、接続応答受信手段１０５の動作は、第１実施例の各手段１０１、１０２、１０３、１０４、１０５の動作と同一のため、説明は省略する。
【０２０３】
第１２実施例では、接続要求を受信した時に、領域識別手段１１３および階層識別手段１１４を用いて、マルチキャストツリーを構築する上で、自分が属している領域および階層と、接続要求を送信したネットワークノード装置が属する領域および階層とを比較する（図２２のステップＳ１１、Ｓ１５）。
【０２０４】
その結果を考慮して、第１実施例の動作で説明した図２２のステップＳ１〜Ｓ５、Ｓ７、Ｓ８、Ｓ１１、Ｓ１２、Ｓ１５〜Ｓ１９で示したとおり、受け入れの可否を判断し接続要求に対する適切な応答を返信する。
【０２０５】
本実施例ではステップＳ３において接続要求を受け付け不可能である場合、接続要求ノードの階層と自己の階層を比較する（ステップＳ１６）。その結果、同階層であれば同階層の下流ノードへリダイレクトをする（ステップＳ１７、Ｓ７）。逆に、異なる階層であれば、接続要求ノードの所属する領域と自己の所属する領域の同一性を比較する（ステップＳ１２）。その結果、同領域であれば、異なる階層の下流ノードへリダイレクトする（ステップＳ１８、Ｓ７）。逆に、異なる階層であれば、最上流案内サーバに問い合わせ、正しい最上流サーバへの誘導を要求する（ステップＳ１９）。
【０２０６】
このような振る舞いをすることによって図２７のマルチキャストツリーの構成図に示すようなマルチキャストツリーを構築する。１つの最高階層の領域の最上流ノードのみコンテンツ配信サーバから直接データを受信し、それ以外の最高階層の領域の最上流ノードは他の最高階層の領域のの最上流ノードからデータを受信する。
【０２０７】
次に、第１２実施例の効果について説明する。第１２実施例では、最高階層の領域間接続を最高階層の領域の最上流ノード間で確立するというように構成されているため、複数拠点間でマルチキャストツリーを構築しても、コンテンツ配信サーバから最下流ノードまでに生じるデータの遅延を短縮することができる。また、拠点間の接続数を削減することが可能となり拠点間リンクに与える負荷を削減することができる。
【実施例１３】
【０２０８】
次に、第１３実施例について図面を参照して詳細に説明する。第１３実施例は、第１２実施例の図２１とネットワークノード装置の構成は同様であるが、接続要求受付手段１０４の振る舞いが異なる。
【０２０９】
第１３実施例の全体の動作を図２３に示す。
第１３の実施例では、接続要求受付手段１０４は、
接続要求を受信したとき、接続要求ノードの階層情報と領域情報を調査し（ステップＳ１１、Ｓ１５）、受け入れ可能である場合受け入れ応答を返信する（ステップＳ４、Ｓ５）。
受け入れ不可能である場合、接続要求ノードの階層と自己の階層が同一であるかを比較する（ステップＳ１６）。
さらに階層が同じであれば一つ高い階層の領域が同一であるかを比較する（ステップＳ１２）。その結果、階層も領域も同一であれば、同一の階層の下流接続ノードへリダイレクトする（ステップＳ１８、Ｓ７）。逆に、階層と領域のどちらかが異なれば、異なる階層の下流接続ノードへリダイレクトする（ステップＳ１７、Ｓ７）。
【０２１０】
特にステップ１２における一つ高い階層の領域の比較に関して例を用いて説明する。例えば最高階層の領域が拠点であり、第二階層の領域がサブネットであり、第三階層が拠点もサブネットも代表しないネットワークノード装置とする。この場合、サブネットを代表するネットワークノード装置同士は同一の拠点に所属するかを比較する。拠点もサブネットも代表しないネットワークノード装置同士は同一のサブネットに所属するかを比較する。
第１３実施例では、接続要求を受信した時に、領域識別手段１１３は、マルチキャストツリーを構築する上で、自分が属している領域と、接続要求を送信したネットワークノード装置が属する領域とを比較する（図２３のステップＳ１１）。
【０２１１】
このような振る舞いをすることによって図２８のマルチキャストツリーの構成図に示すようなマルチキャストツリーを構築する。１つの拠点の最上流ノードのみコンテンツ配信サーバから直接データを受信し、それ以外の拠点の最上流ノードは他の拠点の最下流ノードからデータを受信する。
【０２１２】
次に、第１３実施例の効果について説明する。第１３実施例では、拠点間接続を拠点の最上流ノードと他の拠点の最下流ノードとの間で確立するというように構成されているため、多人数が参加している拠点の最下流ノードから複数拠点へデータを転送することができるので、コンテンツ配信サーバの配信帯域を削減しつつ、拠点間リンク上のトラフィックをさらに削減することができる。また、各拠点で独立にマルチキャストツリーを構築することが可能であるため、ツリーの構築時間や障害回復時間を短縮することができ、拠点領域を細分化することにより大規模なツリーの構築も可能となる。
【産業上の利用可能性】
【０２１３】
本発明によれば、低価格でかつ大規模なコンテンツの配信を行うためのマルチキャストツリーを構築するネットワークノード装置や、ネットワークノード装置をコンピュータに実現するためのプログラムといった用途に適用できる。
【図面の簡単な説明】
【０２１４】
【図１】本発明に係るネットワークノード装置の第１実施例の構成図である。
【図２】ネットワークノード装置のサーバとしての動作を示すフローチャートである。
【図３】ネットワークノード装置のクライアントとしての動作を示すフローチャートである。
【図４】本発明に係るネットワークノード装置の第２実施例の構成図である。
【図５】ネットワークノード装置１００のサーバとしての動作を示すフローチャートである。
【図６】ネットワークノード装置１００のクライアントとしての動作を示すフローチャートである。
【図７】本発明に係るネットワークノード装置の第３実施例の構成図である。
【図８】図８（ａ）は図７の最上流ノードを記憶するときのネットワークノード装置の動作を示すフローチャート、図８（ｂ）は図７の最上流ノード型障害回復を実施するときのネットワークノード装置の動作を示すフローチャートである。
【図９】本発明に係るネットワークノード装置の第４実施例の構成図である。
【図１０】図１０（ａ）は図９の上流ノードリストを作成するときのネットワークノード装置の動作を示すフローチャート、図１０（ｂ）は図９の上流ノードリスト型障害回復を実施するときのネットワークノード装置の動作を示すフローチャートである。
【図１１】第５実施例であるサーバ装置の構成図である。
【図１２】第５実施例のサーバ装置の動作を示すフローチャートである。
【図１３】第６実施例であるサーバ装置の構成図である。
【図１４】第６実施例のサーバ装置の動作を示すフローチャートである。
【図１５】第６実施例のサーバ装置の動作を示すフローチャートである。
【図１６】第７実施例のサーバ装置の動作を示すフローチャートである。
【図１７】本発明に係るネットワークノード装置の第８実施例の構成図である。
【図１８】第８実施例のネットワークノード装置の動作を示すフローチャートである。
【図１９】本発明に係るネットワークノード装置の第９実施例の構成図である。
【図２０】第９実施例のネットワークノード装置の動作を示すフローチャートである。
【図２１】本発明に係るネットワークノード装置の第１２実施例の構成図である。
【図２２】第１２実施例のネットワークノード装置の動作を示すフローチャートである。
【図２３】第１３実施例のネットワークノード装置の動作を示すフローチャートである。
【図２４】第４実施例における上流ノードリストのデータ構造であるFILOを示す図である。
【図２５】階層的なマルチキャストツリーの説明図である。
【図２６】第１１実施例のマルチキャストツリーの構成図である。
【図２７】第１０、１２実施例のマルチキャストツリーの構成図である。
【図２８】第１３実施例のマルチキャストツリーの構成図である。
【符号の説明】
【０２１５】
１００    ネットワークノード装置
１０１    接続状況記憶手段
１０２    下流接続受付制御手段
１０３    接続要求手段
１０４    接続要求受付手段
１０５    接続応答受信手段
１０６    接続先変更制御手段
１０７    接続先変更命令手段
１０８    接続先変更命令受付手段
１０９    最上流ノード記憶手段
１１０    最上流ノード型障害回復手段
１１１    上流ノードリスト記憶手段
１１２    上流ノードリスト型障害回復手段
１１３    領域識別手段
１１４    階層識別手段
２００    ツリーサーバ
２０１    最上流ノード記憶手段
２０２    最上流案内手段
２０３    ネットワークアドレス検索手段
２０４    領域検索手段
２０５    階層領域検索手段
【図１】
2005244526.tif 000003
【図２】
2005244526.tif 000004
【図３】
2005244526.tif 000005
【図４】
2005244526.tif 000006
【図５】
2005244526.tif 000007
【図６】
2005244526.tif 000008
【図７】
2005244526.tif 000009
【図８】
2005244526.tif 000010
【図９】
2005244526.tif 000011
【図１０】
2005244526.tif 000012
【図１１】
2005244526.tif 000013
【図１２】
2005244526.tif 000014
【図１３】
2005244526.tif 000015
【図１４】
2005244526.tif 000016
【図１５】
2005244526.tif 000017
【図１６】
2005244526.tif 000018
【図１７】
2005244526.tif 000019
【図１８】
2005244526.tif 000020
【図１９】
2005244526.tif 000021
【図２０】
2005244526.tif 000022
【図２１】
2005244526.tif 000023
【図２２】
2005244526.tif 000024
【図２３】
2005244526.tif 000025
【図２４】
2005244526.tif 000026
【図２５】
2005244526.tif 000027
【図２６】
2005244526.tif 000028
【図２７】
2005244526.tif 000029
【図２８】
2005244526.tif 000030