(57)【特許請求の範囲】
【請求項１】
プロトコルインデペンデントマルチキャスト（ＰＩＭ）スヌーピング機能を備え、マルチキャスト(multicast)ソースとファーストホップＰＩＭルータとの間の配置のためのレイヤ２交換機であって、
マルチキャストフローのためのＰＩＭプルーンメッセージを受信し、
前記ＰＩＭプルーンメッセージを受信したポートを、前記マルチキャストフローに対応するＰＩＭスヌーピングエントリにプルーンポートとして追加し、
前記ＰＩＭプルーンメッセージの中のアップストリームネイバーアドレスが前記交換機のＰＩＭスヌーピング機能により維持されるＰＩＭルータのリストの中にないとの判断に応じて、前記プルーンポートを介した前記マルチキャストフローの転送を停止する
第１のモジュール
を備えた交換機。
【請求項２】
前記第１のモジュールは、さらに、
前記プルーンポートのためにプルーン時間を設定し、
前記プルーン時間が切れたときに、前記プルーンポートへの前記マルチキャストフローの転送を開始する
請求項１に記載の交換機。
【請求項３】
前記第１のモジュールは、さらに、
前記ファーストホップＰＩＭルータにおいて、前記ＰＩＭプルーンメッセージに対応する前記マルチキャストフローの前記マルチキャストフロールーティングエントリのライフタイム値よりも少ないライフタイム値を設定し、
前記プルーンポートの前記ライフタイム値が切れたときに、前記プルーンポートを一時的なルータポートに設定し、または、もし前記マルチキャストフローのためのＰＩＭプルーンメッセージを確定前の期間の時間内に受信しなければ、前記一時的なルータポートをルータポートとして設定し、もし前記マルチキャストフローのための前記ＰＩＭプルーンメッセージを受信したならば、前記一時的ルータポートをプルーンポートとして設定するとともに前記プルーンポートの前記ライフタイム値をリセットする
請求項１に記載の交換機。
【請求項４】
前記第１のモジュールは、さらに、
前記プルーンメッセージの中のアップストリームネイバーアドレスが前記交換機のＰＩＭスヌーピング機能を用いるＰＩＭルータのリストの中になく、ＰＩＭスヌーピングエントリが前記交換機の中でマルチキャストフローのために確立されていないとの判断に応じて、前記マルチキャストフローのためのＰＩＭスヌーピングエントリを確立し、
空のリストを前記ＰＩＭスヌーピングエントリの中のアップストリームネイバーリストとして設定し、
前記ＰＩＭスヌーピングエントリの中のダウンストリーム出口リストにアップストリームポート以外のＰＩＭネイバーに接続された全てのポートを追加し、
前記マルチキャストフローに対応する前記ＰＩＭスヌーピングエントリへの前記プルーンポートの追加を実行し、
前記ＰＩＭプルーンメッセージに対応する前記マルチキャストフローが、前記レイヤ2交換機の中のＰＩＭスヌーピングエントリおよびマルチキャストグループに基づいて転送され得るかを判断し、
もし前記ＰＩＭプルーンメッセージに対応する前記マルチキャストフローが転送され得るなら、ＰＩＭプルーンメッセージを転送せず、または、もし前記ＰＩＭプルーンメッセージに対応する前記マルチキャストフローが転送され得ないなら、ＰＩＭプルーンメッセージを前記マルチキャストソースの方向に転送する
請求項１に記載の交換機。
【請求項５】
前記第１のモジュールは、さらに、
前記ＰＩＭプルーンメッセージの中のアップストリームネイバーアドレスが、交換機のＰＩＭスヌーピング機能を使うＰＩＭルータのリストの中になく、前記交換機においてＰＩＭスヌーピングエントリが前記マルチキャストフローのために確立されたとの判断に応じて、前記プルーンポートの前記マルチキャストフローに対応する前記ＰＩＭスヌーピングエントリへの追加を実行し、
前記ＰＩＭプルーンメッセージに対応する前記マルチキャストフローが、前記レイヤ２交換機の中のＰＩＭスヌーピングエントリおよびマルチキャストグループ管理エントリに基づいて転送され得るかを判断し、
もし前記ＰＩＭプルーンメッセージに対応するマルチキャストフローが転送され得るならＰＩＭプルーンメッセージを転送せず、または、もし前記ＰＩＭプルーンメッセージに対応するマルチキャストフローが転送され得ないなら、ＰＩＭプルーンメッセージを前記マルチキャストソースの方向に転送する
請求項１に記載の交換機。
【請求項６】
マルチキャストフローのためのＰＩＭジョインメッセージを受信し；
前記メッセージの中の前記アップストリームネイバーアドレスが前記交換機のＰＩＭスヌーピング機能により維持されるＰＩＭルータのリストの中にないとの判断に応じて、
前記交換機において、前記ＰＩＭジョインメッセージに対応する前記マルチキャストフローのためのＰＩＭスヌーピングエントリがあり、ＰＩＭジョインメッセージを受信した前記ポートがＰＩＭスヌーピングエントリの中のプルーンポートであるとの判断に応じて、前記交換機の中のＰＩＭスヌーピングエントリおよびマルチキャストグループ管理スヌーピングエントリに基づいて前記マルチキャストフローを転送すべき、ＰＩＭジョインメッセージを受信したポート以外の他のポートがあるかを判断し、
もし前記マルチキャストフローを転送すべき他のポートがあるなら、ＰＩＭジョインメッセージを転送せず、または、もし前記マルチキャストフローを転送すべき他のポートがないなら、前記マルチキャストソースの方向にＰＩＭジョインメッセージを転送する
第２のモジュール
をさらに備える請求項１に記載の交換機。
【請求項７】
前記第２のモジュールは、さらに、
前記ＰＩＭジョインメッセージをプルーンポートとして受信した前記ポートをラベル付けするマークを削除し、
前記ポートをルータポートとして設定し、
もし前記ＰＩＭスヌーピングエントリの前記ダウンストリーム出口ポートリストがプルーンポートを含まず、アップストリームネイバーリストが空なら、前記マルチキャストフローに対応する前記ＰＩＭスヌーピングエントリを削除する
請求項６に記載の交換機。
【請求項８】
マルチキャストフローのためのマルチキャストグループジョインメッセージを受信し、
前記マルチキャストグループジョインメッセージが受信されたポートを、前記マルチキャストフローに対応するマルチキャストグループ管理スヌーピングエントリにメンバーシップポートとして追加し、
前記ＰＩＭスヌーピングエントリの中の前記マルチキャストグループジョインメッセージが受信されたポート以外の全てのルータポート、プルーンポートおよびアップストリームネイバーに前記マルチキャストグループジョインメッセージを転送する
第３のモジュール
をさらに備える請求項１に記載の交換機。
【請求項９】
プロトコルインデペンデントマルチキャスト（ＰＩＭ）スヌーピング機能を備える少なくとも１つのレイヤ２交換機を介してファーストホップＰＩＭルータに接続されたマルチキャストソースを備えるネットワークにおいて、マルチキャストブランチをプル−ニングする方法であって、
前記ファーストホップＰＩＭルータにおいて、前記マルチキャストソースにより開始されたマルチキャストフローを受信し、前記マルチキャストフローを受信しないことにするとの判断に応じて、前記マルチキャストフローを受信したポートを介してＰＩＭプルーンメッセージを送ることと、
前記ファーストホップＰＩＭルータにおいて、ダウンストリームＰＩＭルータからのマルチキャストフローのためのＰＩＭプルーンメッセージまたはファーストホップＰＩＭルータに接続されたクライアントからのマルチキャストフローのためのマルチキャストグループリーブメッセージ(multicast group leave message)を受信することと、
前記マルチキャストフローに対応した出口ポートリストからＰＩＭプルーンメッセージまたはマルチキャストリーブメッセージを受信したポートを削除することと、
前記マルチキャストフローを受信しないことにするとの判断に応じて、マルチキャストフローを受信したポートを介してマルチキャストソースに宛てられたＰＩＭプルーンメッセージを送ることとを
を含むマルチキャストブランチをプル−ニングする方法。
【請求項１０】
少なくとも１つのレイヤ２交換機において、前記ファーストホップＰＩＭルータからの前記ＰＩＭプルーンメッセージを受信することと、
ＰＩＭプルーンメッセージを受信したポートを、前記マルチキャストフローに対応するＰＩＭスヌーピングエントリへプルーンポートとして追加することと、
前記ＰＩＭプルーンメッセージの中のアップストリームネイバーアドレスが、前記交換機のＰＩＭスヌーピング機能により維持されるＰＩＭルータのリストの中にないときに、前記プルーンポートを介した前記マルチキャストフローの転送を停止することと
をさらに含む請求項９に記載の方法。
【請求項１１】
マルチキャストソースに少なくとも１つのレイヤ２交換機を介して接続されたプロトコルインデペンデントマルチキャスト（ＰＩＭ）ルータであって、
マルチキャストソースにより開始されたマルチキャストフローを受信し、
前記マルチキャストフローを受信するかどうかを判断し、
前記マルチキャストフローを受信しないことにするとの判断に応じて第２のモジュールにプルーンインディケーション(prune indication)を送り；または、
ダウンストリームＰＩＭルータからの前記マルチキャストフローのためのＰＩＭプルーンメッセージ、または、ＰＩＭルータに接続されたクライアントからの前記マルチキャストフローのためのマルチキャストグループリーブメッセージを受信し、
前記ＰＩＭプルーンメッセージまたは前記マルチキャストグループリーブメッセージを受信したポートを、前記マルチキャストフローに対応する出口ポートリストから削除し、
前記マルチキャストフローを受信するかどうかを判断し、
前記マルチキャストフローを受信しないことにするとの判断に応じて、前記プルーンインディケーションを第２のモジュールに送る
第１のモジュールと、
前記プルーンインディケーションを受信し、前記マルチキャストソースに宛てたＰＩＭプルーンメッセージを前記マルチキャストフローを受信したポートを介して送る第２のモジュールと
を備えるＰＩＭルータ。
【請求項１２】
前記ＰＩＭルータは、ＰＩＭ−ＳＳＭを採用し、または、ＰＩＭ−ＳＭを採用し、指定されたルータ(designated router; ＤＲ)ではなく、または、双方向ＰＩＭを採用し、ＤＲではなく、
前記第１のモジュールは、
前記マルチキャストフローを受信し、前記マルチキャストフローの情報を第２のサブモジュールに送る第１のサブモジュール
を備え、
前記第２のサブモジュールは、
前記第１のモジュールからの前記マルチキャストフローの情報を受信し、前記マルチキャストフローを受信しないことにすると判断し、
マルチキャストルーティングテーブルエントリがＰＩＭルータの中のマルチキャストフローのために確立されていないとの判断に応じて、または、前記マルチキャストルーティングテーブルエントリが前記マルチキャストフローのために確立されたが、前記マルチキャストルーティングテーブルエントリの出口ポートリストが空であるとの判断に応じて、前記プルーンインディケーションを前記第２のモジュールに送る
請求項１１に記載のＰＩＭルータ。
【請求項１３】
前記ＰＩＭルータがＰＩＭ−ＳＭを採用し、ＤＲであるときには、
前記第１のモジュールは、
前記マルチキャストフローを受信し、前記マルチキャストフローの情報を第２のサブモジュールに送る第１のサブモジュール
を備え、
前記第２のサブモジュールは、
前記マルチキャストフローの情報を前記第１のサブモジュールから受信し、
前記マルチキャストフローを受信しないことにすると判断し、
マルチキャストルーティングテーブルエントリが前記マルチキャストフローのために確立されたが、前記マルチキャストルーティングテーブルエントリの出口ポートリストが空であるとの判断に応じて、前記第２のモジュールにプルーンインディケーションを送り；または、
マルチキャストフローを受信しないことにすると判断し、ソースレジスタ停止メッセージをＲＰから受信し、マルチキャストルーティングテーブルエントリの出口ポートリストが空であると判断した後で、前記第２のモジュールにプルーンインディケーションを送る
請求項１１に記載のＰＩＭルータ。
【請求項１４】
前記ＰＩＭルータがＰＩＭ−ＤＭを採用するときには、
前記第１のモジュールは、
前記マルチキャストフローを受信し、前記マルチキャストフローの情報を第２のサブモジュールに送る第１のサブモジュール
を備え、
前記第２のサブモジュールは、
前記第１のサブモジュールから前記マルチキャストフローの情報を受信し、
前記マルチフローを受信しないことにすると判断し、
マルチキャストルーティングテーブルエントリが前記マルチキャストフローのために確立されたが、前記マルチキャストルーティングテーブルエントリの中の全ての出口ポートがプルーンポートであるとの判断に応じて、前記第２のモジュールにプルーンインディケーションを送り；または、
ＰＩＭプルーンメッセージをダウンストリームＰＩＭネイバーから受信し、ＰＩＭプルーンメッセージを受信したポートをマルチキャストルーティングテーブルエントリの出口ポートリストにプルーンポートとして追加し；
ＰＩＭグラフトメッセージをダウンストリームＰＩＭネイバーから受信し、ＰＩＭグラフトメッセージを受信したポートをマルチキャストルーティングテーブルエントリの出口ポートリストに転送ポートとして追加し；
前記マルチキャストフローを受信しないことにすると判断し、ダウンストリームＰＩＭネイバーに接続された全てのポートがマルチキャストルーティングテーブルエントリの前記出口ポートリストに追加され、前記マルチキャストルーティングテーブルエントリの中の全ての前記出口ポートがプルーンポートであると判断した後に、前記第２のモジュールにプルーンインディケーションを送る
請求項１１に記載のＰＩＭルータ。
【請求項１５】
前記ＰＩＭルータがＰＩＭ−ＳＭまたはＰＩＭ−ＳＳＭを採用するときに、
前記ＰＩＭルータはさらに、
ダウンストリームＰＩＭルータにより送られた前記マルチキャストフローのためのＰＩＭジョインメッセージを受信し、ＰＩＭジョインメッセージを前記マルチキャストソースの方向に送り、または、
前記ＰＩＭルータがＰＩＭ−ＳＭ、ＰＩＭ−ＳＳＭまたはＰＩＭ−ＤＭを採用するときに、
前記ＰＩＭルータはさらに、
前記ＰＩＭルータに接続されたクライアントにより送られた前記マルチキャストフローのためのマルチキャストグループジョインメッセージを受信し、ＰＩＭジョインメッセージを前記マルチキャストソースの方向に送る
第３のモジュール
をさらに有する請求項１１に記載のＰＩＭルータ。
【請求項１６】
前記第３のモジュールは、さらに、
前記ダウンストリームＰＩＭルータからの前記ＰＩＭジョインメッセージまたは前記クライアントからの前記マルチキャストグループジョインメッセージを受信した後に、マルチキャストルーティングテーブルエントリが前記マルチキャストフローのために前記ＰＩＭルータの中に確立されたかを判断し、
前記ＰＩＭジョインメッセージまたは前記マルチキャストグループジョインメッセージが受信されたポートを前記マルチキャストルーティングテーブルエントリの中の出口ポートリストに追加し、
前記ＰＩＭジョインメッセージの前記マルチキャストソースの方向への送信を実行する
請求項１５に記載のＰＩＭルータ。
【請求項１７】
前記ＰＩＭルータがＰＩＭ−ＳＭを採用し、ＤＲでないとき、または、双方向ＰＩＭを採用し、ＤＲでないときには、
ＤＲでなかった前記ファーストホップＰＩＭルータがＤＲになったときに、マルチキャストフローに対応するマルチキャストルーティングテーブルエントリに従って、ＰＩＭジョインメッセージをマルチキャストフローそれぞれのマルチキャストソースの方向へ送る
第４のモジュール
をさらに備える請求項１１に記載のＰＩＭルータ。
【請求項１８】
前記ＰＩＭルータはＰＩＭ−ＤＭを採用し、
前記マルチキャストフローのためのＰＩＭグラフトメッセージをダウンストリームＰＩＭネイバーから受信して、ＰＩＭジョインメッセージを前記マルチキャストソースの方向に送る第５のモジュール
をさらに備える請求項１１に記載のＰＩＭルータ。
【請求項１９】
前記第５のモジュールは、さらに、
前記マルチキャストフローのためのＰＩＭグラフトメッセージをダウンストリームＰＩＭネイバーから受信した後で、前記マルチキャストフローに対応するマルチキャストルーティングテーブルエントリが前記ＰＩＭルータの中に確立されているかを判断し、
前記ＰＩＭグラフトメッセージを受信したポートをマルチキャストルーティングテーブルエントリの出口ポートリストに追加し、
前記マルチキャストルーティングテーブルエントリが確立されていて、前記マルチキャストルーティングテーブルエントリの出口ポートリストが空であると判断されるときに、ＰＩＭジョインメッセージを前記マルチキャストソースの方向に送る
請求項１８に記載のＰＩＭルータ。
【請求項２０】
レイヤ２交換機においてマルチキャストフローのためのＰＩＭプルーンメッセージを受信することと；
前記レイヤ２交換機において、ＰＩＭプルーンメッセージが受信されたポートを前記マルチキャストフローに対応するＰＩＭスヌーピングエントリにプルーンポートとして追加することと、
ＰＩＭプルーンメッセージの中のアップストリームネイバーアドレスが交換機のＰＩＭスヌーピング機能により維持されるＰＩＭルータのリストの中にないとの判断に応じて、前記プルーンポートを介した前記マルチキャストフローの転送を停止することと
を備えるマルチキャストブランチをプル−ニングする方法
【請求項２１】
ＰＩＭスヌーピングエントリが前記マルチキャストフローのために前記レイヤ２交換機の中に確立されていないとの判断に応じて、前記レイヤ２交換機において、前記マルチキャストフローのためのＰＩＭスヌーピングエントリを確立することと、アップストリームポートとプルーンポートを除いたＰＩＭネイバーに接続された全てのポートを前記ＰＩＭスヌーピングエントリに追加することと；
前記ＰＩＭプルーンメッセージに対応する前記マルチキャストフローが転送され得ないとの判断に応じて、前記レイヤ２交換機において、マルチキャストソースの方向に前記ＰＩＭプルーンメッセージを転送することと
をさらに備える請求項２０に記載の方法。
【請求項２２】
前記レイヤ２交換機において、マルチキャストフローのためのＰＩＭジョインメッセージを受信することと；
ＰＩＭジョインメッセージをマルチキャストソースの方向に送り、前記ポートをルータポートとラベル付けした後に、前記レイヤ２交換機において、ＰＩＭジョインメッセージが受信されたポートをプルーンポートとしてラベル付けするマークを削除することと；
前記ＰＩＭスヌーピングテーブルエントリがプルーンポートを含まないとの判断に応じて、前記レイヤ２交換機において、前記マルチキャストフローに対応するＰＩＭスヌーピングテーブルエントリを削除することと；
前記マルチキャストフローを転送すべき他のポートがないとの判断に応じて、前記レイヤ２交換機において、前記ＰＩＭジョインメッセージを前記マルチキャストソースの方向に送ることと
をさらに備える請求項２０に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
理解を容易にするために、以下の概念がまず説明される。
【０００２】
マルチキャスト(multicast)：
ユニキャスト(unicast)およびブロードキャスト(broadcast)と対照的な通信の態様。
マルチキャストシステムは、マルチキャストソース(multicast source)、１つまたは複数のレシーバおよびマルチキャストグループを含む。
ソースホスト(source host)は、１度だけデータを送り、データの宛先アドレスは、マルチキャストグループのアドレスである。
マルチキャストグループ内のレシーバそれぞれは、データのコピーを受け、マルチキャストグループ内のレシーバのみがデータを受けることができる。
【０００３】
ＩＧＭＰ(Internet Group Management Protocol)：
ＴＣＰ／ＩＰ(Transmission Control Protocol/Internet Protocol)ファミリーにおけるＩＰマルチキャストメンバーを管理するプロトコルであって、ＩＰホストと、隣接するマルチキャストルータ(Multicast Routers)との間のマルチキャストグループメンバーの関係を設定し、維持する。
【０００４】
ＩＧＳＰ(Internet Group Management Protocol Snooping)：
マルチキャストグループを管理し、制御するレイヤ２(layer-2)のデバイスにおいて動作するマルチキャスト制限の枠組み。ＩＧＭＰスヌーピング(snooping;探索)を動作させるレイヤ２デバイスは、受けられたＩＧＭＰパケットを分析し、ポートとマルチキャストＭＡＣ(Media Access Control)アドレスとの間のマッピングの関係を設定し、マッピングの関係に従ってマルチキャストデータを転送する。
【０００５】
ＰＩＭ：
静的ルーティングを用いて設定されるユニキャストルーティングテーブル、または、ＲＩＰ、ＯＳＰＦ、ＩＳ−ＩＳ、ＢＧＰその他といったいかなるユニキャストルーティングプロトコルを利用することによりＩＰマルチキャストルーティングを提供するプロトコルであって、レイヤ３(layer-three)デバイスの間のマルチキャストデータの伝達のためのものである。ＰＩＭプロトコルは４つのモード、つまり、ＰＩＭ−ＤＭ(Dense Mode)、ＰＩＭ−ＳＭ(Spare Mode)、ＰＩＭ−ＳＳＭ(Source-Specific Multicast)および双方向(bi-directional)ＰＩＭを有する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＩＰマルチキャスト技術は、１対多数の送信に存在する問題を効果的に解決し、ＩＰネットワークにおいて１対多数のデータ送信を効果的に実現し、ネットワーク帯域幅を節約し、ネットワーク負荷を減らすことができる。
オンライン生放送、ＩＰＴＶ、遠隔教育、遠隔治療、インターネットラジオ、リアルタイムビデオ会議などのようなインターネット情報サービスを含むその他のいくつかの新しい付加価値サービスは、ネットワークのマルチキャスト機能を上手く利用することにより、より多くの進歩をとげることができる。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明にかかるプロトコルインデペンデントマルチキャスト（ＰＩＭ）ルータは、マルチキャストルータ(multicast router)に少なくとも１つのレイヤ２交換機を介して接続されたＰＩＭルータであって、マルチキャスト(multicast)ソースにより開始されたマルチキャストフローを受け、前記マルチキャストフローが受けられ得るかを判断し、前記マルチキャストフローが受けられ得ないとの判断に応じて第２のモジュールにプルーンインディケーション(prune indication)を送り；または、ダウンストリームＰＩＭルータからの前記マルチキャストフローのためのＰＩＭプルーンメッセージ、または、ＰＩＭルータに接続されたクライアントからの前記マルチキャストフローのためのマルチキャストグループリーブメッセージ(multicast group leave message)を受け、前記ＰＩＭプルーンメッセージまたは前記マルチキャストグループリーブメッセージが受けられたポートを、前記マルチキャストフローに対応する出口ポートリストから削除し、前記マルチキャストフローが受けられ得るかを判断し、前記マルチキャストフローが受けられ得ないとの判断に応じて、前記プルーンインディケーションを受け、ＰＩＭプルーンメッセージを前記マルチキャストフローが受けられたポートを介して送れる第２のモジュールに送る第１のモジュールを備える。
【０００８】
また、本発明にかかる交換機は、ＰＩＭスヌーピング機能を備え、マルチキャストソースとファーストホップＰＩＭルータとの間の配置のためのレイヤ２交換機であって、マルチキャストフローのためのＰＩＭプルーンメッセージを受信し、前記ＰＩＭプルーンメッセージが受けられたポートを、前記マルチキャストフローに対応するＰＩＭスヌーピングエントリにプルーンポートとして追加し、前記メッセージの中の前記アップストリームネイバーアドレスが前記交換機のＰＩＭスヌーピング機能により維持されるＰＩＭルータのリストの中にないとの判断に応じて、前記プルーンポートを介した前記マルチキャストの転送を停止する第１のサブモジュールを備える。
【０００９】
また、本発明にかかるマルチキャストブランチをプル−ニングする方法は、プロトコルインデペンデントマルチキャスト（ＰＩＭ）機能を有する少なくとも１つのレイヤ２交換機を介してファーストホップＰＩＭルータに接続されたマルチキャストソースを用意することと、前記ファーストホップＰＩＭルータにより、前記マルチキャストソースにより開始されたマルチキャストフローを受信し、前記マルチキャストフローが受信されないとの判断に応じて、前記マルチキャストフローが受けられたポートを介してＰＩＭプルーンメッセージを送ることと、前記マルチキャストフローが受けられないとの判断に応じて、前記ＰＩＭプルーンメッセージまたはマルチキャストグループリーブメッセージが受けられたポートを、前記マルチキャストフローに対応する出口ポートリストから検出することとを含む。
【図面の簡単な説明】
【００１０】
【図１】図１は、マルチキャストネットワークの構成を説明する説明図である。
【図２】図２は、一例に従ったマルチキャストブランチプルーニング(pruning;刈り込む)方法を説明するフローチャートである。
【図３】図３は、マルチキャストフローを受けた後にＰＩＭ−ＳＳＭを採用しているファーストホップ(first hop)ＰＩＭルータにより実行される一例に従った処理を説明するフローチャートである。
【図４】図４は、ダウンストリーム(downstream)ＰＩＭルータからのＰＩＭプルーン(prune;刈り込む，切り詰める，余計な物を取り除く)メッセージ、または、ファーストホップＰＩＭルータによりサーブされる(served)クライアントからのＩＧＭＰリーブメッセージ(leave message)を受けた後にＰＩＭ−ＳＳＭを採用しているファーストホップＰＩＭルータにより実行される一例に従った処理を説明するフローチャートである。
【図５】図５は、ＰＩＭプルーンメッセージを受けた後にレイヤ２交換機(exchange)によって実行される一例に従った処理を説明するフローチャートである。
【図６】図６は、ダウンストリームＰＩＭルータからのＰＩＭジョインメッセージ(join message)を受けた後にＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータによって実行される一例に従った処理を説明するフローチャートである。
【図７】図７は、ＰＩＭジョインメッセージを受けた後のレイヤ２交換機によって実行される一例に従った処理を説明するフローチャートである。
【図８】図８は、ＩＧＭＰジョインメッセージを受けた後にＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータによって実行される一例に従った処理を説明するフローチャートである。
【図９】図９は、ＰＩＭジョインメッセージを受けた後にレイヤ２交換機によって実行される一例に従った処理を説明するフローチャートである。
【図１０】図１０は、マルチキャストフローを受けた後にＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータによって実行される一例に従った処理を説明するフローチャートである。
【図１１】図１１は、マルチキャストフローを受けた後に、ＰＩＭ−ＤＭを採用するファーストホップＰＩＭルータによって実行される一例に従った処理を説明するフローチャートである。
【図１２】図１２は、ＰＩＭネイバー(neighbor)からのＰＩＭグラフト(graft;移植する，接ぎ木する)メッセージを受けた後にＰＩＤ−ＤＭを採用するファーストホップＰＩＭルータによって実行される一例に従った処理を説明するフローチャートである。
【図１３】図１３は、一例に従ったＰＩＭルータの構成を説明する説明図である。
【図１４】図１４は、一例に従ったＰＩＭルータの構成を説明する説明図である。
【発明を実施するための形態】
【００１１】
ＰＩＭプロトコルは、今日使用されていて現在一般的なマルチキャストルーティングプロトコルである。
ＩＧＭＰスヌーピング(snooping)およびＰＩＭスヌーピングはまた、一般的に採用されているレイヤ２マルチキャストコントロールプロトコルである。
その重要性がＩＧＭＰスヌーピング以下でしかないＰＩＭスヌーピングは、ＰＩＭハローメッセージ(hello message)、ＰＩＭジョインメッセージおよびＰＩＭプルーンメッセージのためのものであり、意図されたルータへのマルチキャストフローの転送を制御する。
ＰＩＭスヌーピング交換機は、しかしながら、ＰＩＭルータの間に配置されたときにのみ肯定的な成果を生み出し得るが、マルチキャストソース(multicast source)とＰＩＭルータとの間に配置されたときには同じ成果をなし得ないかもしれない。
【００１２】
ＶＯＤ(Video On Demand)と同様な機構の下に動作するマルチキャストアプリケーションについては、マルチキャストソース側のトラヒック(traffic)制御には、産業において解決されるべき問題が残っている。
図１は、マルチキャストネットワークの構成を説明する説明図である。
図１に示すように、マルチキャストソースは、１つ以上のレイヤ２交換機を介してネットワークにアクセスし、クライアントは、レイヤ２交換機またはＰＩＭルータを介してネットワークにアクセスする。
さらに、複数のレイヤ２交換機は、ＰＩＭルータに合流する。
例えば、マルチキャストソース１および２は、レイヤ２交換機５および６を介してそれぞれネットワークにアクセスし、レイヤ２交換機１および２は、ＰＩＭルータ２に合流する。
【００１３】
マルチキャストソースから開始されたマルチキャストフローは、１つまたは複数の交換機を介してファーストホップＰＩＭルータに到達したとき、ＰＩＭルータは、ＰＩＭルータがＤＲ(Designated Router)であるならば、ソースレジスタメッセージをＲＰ(Rendezvous Point)に送って（送信して）よい。
ＲＰが、マルチキャストフローにクライアントが参加していないことを示し、ＲＰにおいて設定されていないマルチキャストフローに対応する（Ｓ，Ｇ）エントリ、つまり、マルチキャストフローのソースアドレスおよびグループアドレスを検出したときは、ＲＰは、ＤＲにソースクエンチメッセージ(source quench message)を送る。
それから、クライアントがマルチキャストフローに参加したとき、クライアントはＩＧＭＰジョインメッセージをリーフルータ(leaf router)に送り、リーフルータは、ＰＩＭジョインメッセージをＲＰに送る。
ＰＩＭジョインメッセージを受けた（受信した）後、ＲＰは、ＰＩＭジョインメッセージをＤＲに送り、続いて、マルチキャストフローは、ＲＰを介してマルチキャストレシーバに到達する。
【００１４】
ファーストホップＰＩＭルータは、マルチキャストソースからのマルチキャストフローに遭遇した第１のＰＩＭルータを参照する。
ＲＰは、マルチキャストフロー情報の集中化された管理を提供するＰＩＭルータであって、マルチキャストソースとマルチキャストレシーバとの間の媒体としての役割を果たす。
【００１５】
従来のネットワークにおいて、クライアントが参加しているか否かにかかわらず、マルチキャストソースからのマルチキャストフローは、まず、ファーストホップＰＩＭルータに１つまたは複数の交換機を介して送られ、交換機においてキャッシュメモリの消費量を増やす。
交換機の出口ポートのためのキャッシュメモリは、ビデオといった特にバーストをともなうサービスフローを維持し、パケット損失の防止およびジッターの低減を保持することに重要な役割を果たす。
従って、その転送が必要でないデータフローの転送は、交換機の出口ポートのためのメモリキャッシュの消費量を減らすために抑制されるべきである。
現在のプロトコルは、しかしながら、データリンクレイヤにおけるマルチキャストソースとＰＩＭルータとの間の不要なマルチキャストフローを切り詰める(prune off)ことができない。
【００１６】
いくつかの例が、添付の図面を参照とともに詳細に記載されるであろう。
【００１７】
いくつかの例においては、ネットワーク全体がマルチキャストグループ管理プロトコル、例えば、ＩＧＭＰｖ２、ＩＧＭＰｖ３、ＭＬＤｖ１(Multicast Listener Discovery Protocol Version 1)およびＭＬＤｖ２の一つを採用するといった、いくつかのバージョンを採用することが前提とされる。
【００１８】
例えば、ＩＧＭＰｖ２またはＭＬＤｖ１が採用されたときには、マルチキャストフローは、マルチキャストグループ識別番号(multicast group identification)によって識別される。
しかしながら、ＩＧＭＰｖ３またはＭＬＤｖ２が採用されるときには、マルチキャストフローは、マルチキャストソース識別番号＋マルチキャストグループ識別番号により識別される。
【００１９】
いくつかの例においては、採用されたＰＩＭプロトコルはＰＩＭ−ＳＳＭまたはＰＩＭ−ＤＭである。
ＰＩＭ−ＳＳＭが採用されたときには、採用されたＩＧＭＰのバージョンは、それにおけるＩＧＳＰのバージョンがＩＧＭＰｖ３スヌーピングであるＩＧＭＰｖ３である。
【００２０】
いくつかの例においては、ＰＩＭスヌーピング機能を備えたレイヤ２交換機はポート、つまりプルーンポートのための新たな役割を持つ。
ＰＩＭスヌーピング機能を備えたレイヤ２交換機が、マルチキャストフローのためのＰＩＭプルーンメッセージをファーストホップＰＩＭルータから受けたときには、メッセージを受けたポートは、プルーンポートとして設定される。
その後で、マルチキャストフローは、プルーンポートへ転送されることが阻止される。
【００２１】
マルチキャストをサポートするレイヤ２交換機はポートのために４つの役割、つまり、ルータポート、ＩＧＭＰスヌーピングのためのメンバーシップポート、プルーンポートおよびＰＩＭスヌーピングのためのアップストリームポートを有する。
ルータポートはダウンストリームポート、つまり、ＰＩＭジョインメッセージを受けるポートである。
ダウンストリームポートは、それらが同じ機能、つまり、ルータを接続することと、全てのマルチキャストフローを転送することを実行するので、ルータポートと呼ばれる。
【００２２】
ポートの４つの役割それぞれは、それぞれ互いに維持される。
ポートが、メンバーシップポート、プルーンポートおよびルータポートの全てまたは３つの役割の内の任意の２つの役割を同時に果たすときは、役割の優先順位は、優先順位が下がる順にメンバーシップポート、プルーンポートおよびルータポートとなる。
レイヤ２転送テーブルエントリ、つまりＰＩＭスヌーピングエントリおよびＩＧＭＰスヌーピングエントリのために、このようなポートの処理の規則は、メンバーシップポートの役割の優先度が最も高いときには、ポートをエントリに加えること、および、プルーンポートの役割の優先度が最も高いときには、ポートをエントリに加えないことを含む。
さらに、ポートの役割がルータポートだけのときには、ポートの最も高い優先度を有する役割はルータポートであるとみなされ、ポートは、レイヤ２転送テーブルエントリに加えられる。
【００２３】
もし、レイヤ２交換機のＰＩＭスヌーピングテーブルの中のダウンストリームネイバーリスト(upstream neighbor list)が空ならば、レイヤ２交換機のアップストリームポートは、ＰＩＭスヌーピングテーブルエントリの中のダウンストリーム出口ポートリストに追加されるべきである。
ＰＩＭスヌーピングテーブルエントリは、（Ｓ，Ｇ）エントリ、アップストリームネイバーリスト、ダウンストリームネイバーリストその他を含む。
【００２４】
以下の例は、そのマルチキャストグループ管理プロトコルとしてＩＧＭＰを採用する。
ＭＬＤプロトコルが採用されるときには、以下の記載における全ての”ＩＧＭＰ”の”ＭＬＤ”への交換のみが必要とされることが理解されるべきである。
【００２５】
図２は、一例に従ってマルチキャストブランチをプルーンニングする方法を説明する説明図である。
図２に示すように、この方法は以下の動作を含んでよい。
【００２６】
ブロック２０１において、レイヤ２交換機はＰＩＭハローメッセージをＰＩＭルータから受け、メッセージを受けたポートを、ＩＧＭＰスヌーピング機能を利用してルータポートとして設定し、ＰＩＭスヌーピング機能を利用して、メッセージに従ってＰＩＭルータリストを維持する。
ＰＩＭルータリストのエントリそれぞれは、ＰＩＭハローメッセージを送信するＰＩＭルータのアドレスと、ＰＩＭルータを介してレイヤ２交換機と接続するポートのポート番号とを含む。
【００２７】
ＰＩＭハローメッセージを送信するＰＩＭルータのアドレスは、ＰＩＭハローメッセージの中のソースアドレスフィールドから得られるかもしれない。
ＰＩＭルータを備えたレイヤ２交換機に接続するポートのポート番号は、そこからＰＩＭハローメッセージレイヤ２交換機により受けられたポート番号を参照する。
【００２８】
ＰＩＭルータにおいて、ＰＩＭプロトコルを採用するポートは、外部装置への合間にＰＩＭハローメッセージを送ってよい。
【００２９】
ＰＩＭハローメッセージを受けた後に、レイヤ２交換機は、他のレイヤ２交換機にメッセージを転送してよく、他のレイヤ２交換機もまた、メッセージを受けた後に、ブロック２０１の動作を実行する。
【００３０】
ブロック２０２において、マルチキャストソースから開始されたマルチキャストフローが、ルータポートを介してファーストホップＰＩＭルータに到達したときに、ファーストホップＰＩＭルータは、マルチキャストフローの受信が必要でないとの決定がなされたときに、マルチキャストフローのためのＰＩＭプルーンメッセージを、マルチキャストフローが受けられたポートを介して送信する。
【００３１】
ブロック２０３において、ファーストホップＰＩＭルータが、マルチキャストフローのためのＰＩＭプルーンメッセージをダウンストリームＰＩＭルータから受けたとき、または、マルチキャストフローのためのＩＧＭＰリーブメッセージをファーストホップＰＩＭルータに接続されたクライアントから受けたときは、ファーストホップＰＩＭルータは、マルチキャストルーティングテーブルの中でマルチキャストフローに対応するエントリを探し、マルチキャストフローが受けられたポートをエントリから削除し、マルチキャストフローのためのＰＩＭプルーンメッセージを、エントリの出口ポートのリストが空のときには、マルチキャストフローが受けられたポートを介して送る。
【００３２】
ＰＩＭプルーンメッセージを、ブロック２０２および２０３において送信する頻度は制限されており、つまり、ＰＩＭプルーンメッセージは、同じマルチキャストフローが受けられているときに、短い時間内で多く繰り返して送られることはないであろう。
ＰＩＭプルーンメッセージの各送信の間の初期設定時間は１分である。
マルチキャストフローのブランチが切り詰められた(be pruned off)とき、または、ローカルクライアントから新たなマルチキャストフローへの要求が受けられたときに、ＩＭプルーンメッセージの送信は停止される。
【００３３】
ブロック２０４において、ファーストホップＰＩＭルータとマルチキャストソースとの間のレイア２交換機は、ＰＩＭプルーンメッセージを受け、そのメッセージ中のアップストリームネイバーアドレスがレイヤ２交換機のＰＩＭスヌーピング機能によって維持されるＰＩＭルータのリスト内にないと検出したときに、ＰＩＭプルーンメッセージが受けられたポートをプルーンポートとして設定し、プルーンポートを介してマルチキャストフローを転送することを停止する。
【００３４】
図２からは、マルチキャストソースとファーストホップＰＩＭルータとの間のマルチキャストフローが、以下のときに切り詰められることが理解されてよい：
１．マルチキャストフローの受信への要求がないとき；
２．マルチキャストフローの受信への要求があったが、マルチキャストフローの受信を停止する要求が受けられた瞬間。
【００３５】
図３および図４は、それぞれＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータにより上記２つのタイプのマルチフローを処理する詳細な手順を説明する。
【００３６】
図３は、ＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータにより、一例に従ってマルチキャストフローを受けた後に実行される処理を説明するフローチャートである。
図３に示すように、この処理は、以下の動作を含んでよい。
【００３７】
ブロック３０１において、ファーストホップＰＩＭルータ(Ｒｔｒ)は、ＰＩＭハローメッセージを、周期的にファーストホップＰＩＭのＰＩＭポートそれぞれを介して送信する。
【００３８】
ブロック３０２において、レイヤ２交換機は、ＰＩＭハローメッセージを受け、ＩＧＭＰスヌーピング機能を利用してメッセージが受けられたポートをルータポートとして設定し、ＰＩＭハローメッセージをレイヤ２交換機のポートそれぞれを介して他のレイヤ２交換機に転送する。
【００３９】
ＩＧＭＰスヌーピングは、マルチキャストをサポートするレイヤ２交換機の全てに共通な特徴である。
ＩＧＭＰスヌーピング機能を備えた交換機は、ＩＧＭＰジェネラルクエリ(IGMP general query)メッセージまたはＰＩＭパケットが受けられたポートをルータポートとみなし、ＩＧＭＰジョインメッセージが受けられたポートをメンバーシップポートとみなす。
ＩＧＭＰスヌーピング機能を備えた交換機は、受けられたマルチキャストフローの全てをルータポートに送ってよく、マルチキャストグループのマルチキャストフローのみをメンバーシップポートに送る。
【００４０】
他のレイヤ２交換機はまた、ＰＩＭハローメッセージを受けた後に、ブロック３０２において動作を実行してよい。
【００４１】
ブロック３０３において、マルチキャストソースはマルチキャストフローを開始し、マルチキャストフローは、ルータポートそれぞれを介してファーストホップＰＩＭルータ(Ｒｔｒ)に転送される。
【００４２】
ブロック３０４において、Ｒｔｒは、Ｒｔｒがマルチキャストフローに対応する確立された（Ｓ，Ｇ）エントリを有するかを判断し、エントリが確立されていたときにはブロック３０５における動作を実行し、または、エントリが確立されていなかったときにはブロック３０８における動作を実行する。
【００４３】
ブロック３０５において、Ｒｔｒは、（Ｓ，Ｇ）エントリ内の出口ポートのリストが空であるかを判断し、リストが空であるときにはブロック３０６における動作を実行し、または、リストが空でないときにはブロック３０８における動作を実行する。
【００４４】
ブロック３０６において、Ｒｔｒは（Ｓ，Ｇ）エントリのエージング時間(aging time)を更新し、マルチキャストフローを受けたポートを介してＰＩＭプルーンメッセージを送り、処理は終了される。
【００４５】
ＰＩＭプルーンメッセージのアップストリームネイバーアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＩＰアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＭＡＣアドレスはマルチキャストソースのＭＡＣアドレスである。
【００４６】
ＰＩＭプルーンメッセージはマルチキャストフローがＲｔｒに入ったポートから送信されるので、ＰＩＭプルーンメッセージは、マルチキャストソースとＲｔｒとの間のレイヤ２交換機に到達するであろう。
レイヤ２交換機は、ＰＩＭプルーンメッセージを受けた後に、図５に示した手順を処理してよい。
【００４７】
ブロック３０７において、Ｒｔｒは出口ポートの中の出口ポート情報に従ってマルチキャストフローを外部の装置に転送し、処理は終了される。
【００４８】
ブロック３０８において、Ｒｔｒは、マルチキャストフローのための（Ｓ，Ｇ）エントリを確立し、エントリのためのエージング時間を構成し、ＰＩＭプルーンメッセージをマルチキャストフローが受けられたポートを介して外部デバイスに送る。
【００４９】
（Ｓ，Ｇ）エントリのエージング時間は通常３分として構成される。
【００５０】
ＰＩＭプルーンメッセージのアップストリームネイバーアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＭＡＣアドレスはマルチキャストソースのＭＡＣアドレスである。
【００５１】
もし、ＰＩＭ−ＳＭが採用されたら、このブロックにおいて、ＲｔｒはＲＰへのマルチキャストフローのためのソースレジスタメッセージ(source register message)をさらに送る。
【００５２】
図４は、一例に従ってダウンストリームＰＩＭルータからＰＩＭプルーンメッセージを、または、ファーストホップＰＩＭルータに接続されたクライアントからＩＧＭＰリーブメッセージを受けた後に、ＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータにより実行される処理を説明するフローチャートである。
図４に示すように、処理は以下の処理を含んでよい。
【００５３】
ブロック４０１において、ファーストホップＰＩＭルータ（Ｒｔｒ）は、ダウンストリームＰＩＭルータにより送られたマルチキャストフローのためのＰＩＭプルーンメッセージ、または、Ｒｔｒに接続されたクライアントにより送られたマルチキャストフローのためのＩＧＭＰリーブメッセージを受け、マルチキャストフローに対応する（Ｓ，Ｇ）エントリを探し、ＰＩＭプロトコルに従って（Ｓ，Ｇ）エントリを処理する。
【００５４】
マルチキャストレシーバがマルチキャストフローの受信を停止したときには、マルチキャストレシーバはマルチキャストフローのためのＩＧＭＰリーブメッセージをマルチキャストレシーバのリーフルータに送ってよい。
リーフルータは、ＰＩＭプルーンメッセージをマルチキャストフローのためにＲＰに送る。
ＲＰはＰＩＭプルーンメッセージをファーストホップＰＩＭルータの方向に転送する。
【００５５】
ＰＩＭプロトコルによれば、Ｒｔｒは通常ＰＩＭプルーンメッセージが受けられたポートを（Ｓ，Ｇ）エントリの中の出口ポートのリストから削除する。
【００５６】
ブロック４０２において、Ｒｔｒは、（Ｓ，Ｇ）エントリの出口ポートリストが空かを判断し、リストが空のときにはブロック４０３における動作を実行し、リストが空でないときにはブロック４０４における動作を実行する。
【００５７】
ブロック４０３において、ＲｔｒはＰＩＭプルーンメッセージをマルチキャストフローが受けられたポートを介して外部装置に送り、処理は終了される。
【００５８】
ＰＩＭプルーンメッセージのアップストリームネイバーアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＩＰアドレスはマルチキャストソースのIPアドレスであり、宛先ＭＡＣアドレスはマルチキャストソースのＭＡＣアドレスである。
【００５９】
ＰＩＭプルーンメッセージは、マルチキャストフローがＲｔｒに入るポートから送られるので、ＰＩＭプルーンメッセージは、マルチキャストソースとＲｔｒとの間のレイヤ２交換機に到達するであろう。
図５は、一例に従ってＰＩＭプルーンメッセージを受けた後にレイヤ２交換機により実行される処理を説明するフローチャートである。
図５に示すように、処理は以下の動作を含んでよい。
【００６０】
ブロック４０４において、Ｒｔｒは、いかなる処理もさらに行わない。
【００６１】
ファーストホップＰＩＭルータにより送られたＰＩＭプルーンメッセージはマルチキャストソースとファーストホップＰＩＭルータとの間の１つまたは複数のレイヤ２交換機に到達するであろう。
図５は、一例に従ってＰＩＭプルーンメッセージを受けた後に実行される処理を説明するフローチャートである。
【００６２】
ブロック５０１において、レイヤ２交換機は、マルチキャストフローのためのＰＩＭプルーンメッセージを受ける。
【００６３】
ブロック５０２において、レイヤ２交換機は、ＰＩＭプルーンメッセージの中のアップストリームネイバーアドレスがレイヤ２交換機のＰＩＭスヌーピング機能により維持されるＰＩＭルータのリスト内にあるかを判断し、もしアップストリームネイバーアドレスがリスト内にあるならブロック５０３における動作を実行し、もしアップストリームネイバーアドレスがリスト内にないならブロック５０４における動作を実行する。
【００６４】
ブロック５０３において、レイヤ２交換機は現行のＰＩＭスヌーピングプロトコルに従って処理を実行し、処理は終了される。
【００６５】
もし、ＰＩＭプルーンメッセージの中のアップストリームネイバーアドレスが、ＰＩＭスヌーピング機能により維持されるＰＩＭルータのリスト内にあるならば、それはレイヤ２交換機がＰＩＭルータの間に配置されていることの現れであり、現行のＰＩＭスヌーピングプロトコルに従った処理が実行される。
これ以外は、それはレイヤ２交換機がマルチキャストソースとファーストホップＰＩＭルータとの間に配置されていることを表し、そして、一例に従った処理、つまり、ブロック５０４〜５０９における処理が採用される。
【００６６】
ブロック５０４において、レイヤ２交換機は、レイヤ２交換機内にマルチキャストフローのためのＰＩＭスヌーピングエントリがあるかを判断し、ＰＩＭスヌーピングエントリがあるときにはブロック５０５における動作を実行し、ＰＩＭスヌーピングエントリがないときにはブロック５０６における動作を実行する。
【００６７】
ブロック５０５において、レイヤ２交換機はＰＩＭプルーンメッセージが受けられたポートをＰＩＭスヌーピングエントリの中のダウンストリーム出口ポートのリストに追加し、このポートをプルーンポートとしてマーク(mark)し、ブロック５０７における動作を実行する。
【００６８】
ブロック５０６において、レイヤ２交換機は、ＰＩＭプルーンメッセージに従ってＰＩＭスヌーピングテーブルを生成する。
ＰＩＭスヌーピングエントリの中のアップストリームポートは、ＰＩＭプルーンメッセージの宛先ＭＡＣアドレスに従って、ユニキャスト宛先テーブルエントリの中に設けられた出口ポートになるように設定される。
アップストリームネイバーリストは空である。
ＰＩＭプルーンメッセージが受けられたポートは、エントリの中のダウンストリーム出口ポートリストの中に追加され、プルーンポートとしてマークされる。
【００６９】
任意のマルチキャストフローについては、もしＰＩＭスヌーピングエントリがマルチキャストフローのために確立されていないなら、レイヤ２交換機はマルチキャストフローを初期設定によるアップストリームポート以外のＰＩＭネイバーポートの全てを介して転送する。
従って、このブロックにおいては、マルチフローのためにＰＩＭスヌーピングエントリが確立された後に、マルチキャストフローが続いて受けられたときには、マルチキャストフローがダウンストリームポート以外の全てのＰＩＭネイバーポートに転送されるであろうことを保証するために、アップストリームポートおよびマークされたプルーンポート以外の全てのＰＩＭネイバーポートは、ＰＩＭスヌーピングテーブルエントリのダウンストリーム出口ポートリストに追加される。
【００７０】
ブロック５０７において、レイヤ２交換機は、レイヤ２交換機の中のＰＩＭスヌーピングテーブルエントリおよびＩＧＭＰスヌーピングテーブルエントリに従って、ＰＩＭプルーンメッセージに対応するマルチキャストフローを転送する必要があるか、つまり、最高の優先順位がメンバーシップポートまたはルータポートであるポートを有するＰＩＭスヌーピングテーブルエントリまたはＩＧＭＰスヌーピングテーブルエントリがあるかを判断し、もしあるならばブロック５０８における動作を実行し、もしなければブロック５０９における動作を実行する。
【００７１】
ブロック５０８において、レイヤ２交換機は、ＰＩＭプルーンメッセージを転送せず、処理は終了される。
【００７２】
ブロック５０９において、レイヤ２交換機は、ユニキャスト宛先テーブルエントリの中で、ＰＩＭプルーンメッセージのユニキャスト宛先ＭＡＣアドレスに従って出口ポートを探し、ＰＩＭプルーンメッセージを出口ポートを介して転送する。
【００７３】
ＰＩＭメッセージは、そしてマルチキャストソースに到達する。
【００７４】
この例においては、ライフタイム値(lifetime value)がプルーンポートのためにＰＩＭスヌーピングエントリの中に設定されてよい。
プルーンポートのライフタイム値は、ＰＩＭルータにおけるマルチキャストフローの（Ｓ，Ｇ）エントリのライフタイムの１／３であってよい。
従って、ＰＩＭ  ＤＲは、マルチキャストフローを毎分、受けるかもしれない。
プルーンポートのライフタイム値が切れたときには、ＰＩＭスヌーピングエントリの中の全てのプルーンポートが、マルチキャストフローをポートを通じて転送させるように、一時的にルータポートとして設定される。
もし、マルチキャストフローのためのＰＩＭプルーンメッセージが、プルーンポートのライフタイム値が切れたときから予め定義された時間周期の内にポートから受けられないときには、ポートは正式にルータポートとして設定される。
そして、ＰＩＭスヌーピングエントリの中の中に他のプルーンポートかあるかの判断がなされ、もしエントリ資源に保存されるべきその他のプルーンポートがなければ、ＰＩＭスヌーピングエントリは削除される。
もし、マルチキャストフローのためのＰＩＭプルーンメッセージが、プルーンポートのライフタイム値が切れたときから予め定義された時間周期の内にポートから受けられたなら、ポートはプルーンポートとして設定され、プルーンポートのライフタイム値はリセットされる。
【００７５】
続いて、もし装置が、そのブランチが切り詰められたマルチキャストフローに参加しているなら、ブランチはマルチキャストフローに移植されて(be grafted to)よい。
ブランチは、マルチキャストフローのために、マルチキャストソースとファーストホップＰＩＭルータとの間に、下の３条件のいずれかを満たすように移植されるべきである。
【００７６】
１．ダウンストリームＰＩＭルータに接続されたクライアントがマルチキャストフローに参加しているときには、クライアントはＩＧＭＰジョインメッセージをダウンストリームＰＩＭルータに送り、ダウンストリームＰＩＭルータは
ＩＧＭＰジョインメッセージを受けた後で、ＰＩＭジョインメッセージをファーストホップＰＩＭルータに送る。
【００７７】
２．レイヤ２交換機に接続されたクライアントがマルチキャストフローに参加しているときには、クライアントはＩＧＭＰジョインメッセージをレイヤ２交換機に送ってよい。
【００７８】
３．ファーストホップＰＩＭルータに接続されているクライアントがマルチキャストフローに参加しているときには、クライアントはＩＧＭＰジョインメッセージをファーストホップＰＩＭルータに送ってよい。
【００７９】
いくつかの模範的な処理手順がマルチキャストフローへのブランチへの移植と関連付けられて以下に記載されるであろう。
【００８０】
図６は、ＰＩＭジョインメッセージをダウンストリームＰＩＭルータから受けた後に、ＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータにより実行される処理を説明するフローチャートである。
図６に示すように、処理は以下の動作を含んでよい。
【００８１】
ブロック６０１において、ファーストホップＰＩＭルータ（Ｒｔｒ）はマルチキャストフローのためのＰＩＭジョインメッセージをダウンストリームＰＩＭルータから受け、ファーストホップＰＩＭルータの中のマルチキャストフローに対応する（Ｓ，Ｇ）エントリを探す。
【００８２】
ファーストホップＰＩＭルータのダウンストリームＰＩＭルータが、図１に示したようにクライアントに接続されているときには、ＰＩＭルータ２はファーストホップＰＩＭルータであり、ＰＩＭルータ１はダウンストリームＰＩＭルータであり、ＰＩＭルータ１はクライアント１に接続される。
クライアントがマルチキャストフローに参加しているときには、クライアントはマルチキャストフローのためのＩＧＭＰジョインメッセージをダウンストリームＰＩＭルータに送ってよい。
ダウンストリームＰＩＭルータは、ＩＧＭＰジョインメッセージを受けた後に、マルチキャストフローのためのＰＩＭジョインメッセージをファーストホップＰＩＭルータ、つまり、ＰＩＭルータ２に送ってよい。
【００８３】
ブロック６０２において、Ｒｔｒは、（Ｓ，Ｇ）エントリの中の出口ポートのリストが空かを判断し、リストが空のときにはブロック６０３における動作を実行し、リストが空でないときにはブロック６０４における動作を実行する。
【００８４】
ブロック６０３において、ＲｔｒはＰＩＭジョインメッセージが受けられたポートを（Ｓ，Ｇ）エントリの中の出口ポートリストに追加し、ユニキャスト宛先テーブルにおいてメッセージの宛先ＩＰアドレスに対応するエントリを探し、ＰＩＭジョインメッセージをユニキャスト宛先テーブルエントリの中の出口ポートを通して送信し、そして処理が終了される。
【００８５】
ＰＩＭジョインメッセージの宛先ＩＰアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＭＡＣアドレスはマルチキャストソースのＭＡＣアドレスである。
ＰＩＭジョインメッセージは、マルチキャストソースに１つ以上のＲｔｒとマルチキャストソースとの間のレイヤ２交換機を通して転送されてよい。
レイヤ２交換機によるＰＩＭジョインメッセージの処理手順は図９に示すとおりであってよい。
【００８６】
ＰＩＭジョインメッセージの損失を防ぎ、マルチキャストフローを素速く受けるために、ＲｔｒはＰＩＭジョインメッセージを高い繰り返し頻度でマルチキャストフローが受けられるまで送ってよい。
【００８７】
ブロック６０４において、ＲｔｒはＰＩＭジョインメッセージを現行のＰＩＭプロトコルに従って処理する。
【００８８】
図７は、一例に従ってレイヤ２交換機によってＩＧＭＰジョインメッセージを受けた後に実行される処理を説明するフローチャートである。
図５に示すように、処理は以下の処理を含んでよい。
【００８９】
ブロック７０１において、レイヤ２交換機はマルチキャストフローのためのＩＧＭＰジョインメッセージを受ける。
【００９０】
ＩＧＭＰリーブメッセージは、レイヤ２交換機に接続されたクライアントにより開始される。
【００９１】
ブロック７０２において、レイヤ２交換機はレイヤ２交換機においてマルチキャストフローに対応するＩＧＭＰスヌーピングテーブルエントリを探し、メッセージが受けられたポートをＩＧＭＰスヌーピングテーブルエントリにメンバーシップポートとして追加し、ＩＧＭＰジョインメッセージをＰＩＭスヌーピングテーブルエントリの中のメッセージが受けられたポート以外の全てのルータポート、プルーンポートおよびアップストリームネイバーに転送する。
【００９２】
ＩＧＭＰジョインメッセージは他のレイヤ２交換機またはファーストホップＰＩＭルータに到達してもよい。
他のレイヤ２交換機によるＩＧＭＰジョインメッセージの処理手順もこの例においてと同じである。
ファーストホップＰＩＭルータによるＩＧＭＰジョインメッセージの処理手順の例は、図８に示すとおりである。
【００９３】
図８は、一例に従って、ＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータによりＩＧＭＰジョインメッセージを受けた後に実行される処理を説明するフローチャートである。
図８に示すように、処理は以下の動作を含んでよい。
【００９４】
ブロック８０１において、ファーストホップＰＩＭルータ（Ｒｔｒ）は、マルチキャストフローのためのＩＧＭＰジョインメッセージを受ける。
【００９５】
ＩＧＭＰジョインメッセージは、以下の２つのタイプのソースから開始されてよい。
【００９６】
ソース１：  図１に示すようにファーストホップＰＩＭルータがクライアントに接続されているときには、ＰＩＭルータ２はファーストホップＰＩＭルータであり、クライアント２に接続される。
もしクライアントがマルチキャストフローに参加しているなら、クライアントはＩＧＭＰジョインメッセージをファーストホップＰＩＭルータに送ってよい。
【００９７】
ソース２：  ＰＩＭルータがファーストホップＰＩＭルータである図１に示すように、マルチキャストソースとファーストホップＰＩＭルータとの間のレイヤ２交換機がクライアントに接続されているときには、ＰＩＭルータ２およびマルチキャストソース１および２の間のレイヤ２交換機２はクライアント３に接続される。
もし、クライアント３がマルチキャストフローに参加しているなら、クライアント３はＩＧＭＰジョインメッセージをレイヤ２交換機１に送ってよい。
レイヤ２交換機１はＩＧＭＰジョインメッセージをファーストホップＰＩＭルータに転送してよい。
【００９８】
ブロック８０２において、Ｒｔｒは、Ｒｔｒがマルチキャストフローに対応する（Ｓ，Ｇ）エントリを確立したかを判断し、エントリが確立されていたときにはブロック８０３の処理を実行し、または、エントリが確立されていなかったときにはブロック８０８の処理を実行する。
【００９９】
ブロック８０３において、Ｒｔｒは、（Ｓ，Ｇ）エントリの出口ポートリストが空かを判断し、リストが空のときにはブロック８０４における処理を実行し、リストが空でないときにはブロック８０７における処理を実行する。
【０１００】
ブロック８０４において、ＲｔｒはＩＧＭＰジョインメッセージがマルチキャストソースへ導くポートからのものであるかを判断し、もしＩＧＭＰジョインメッセージがそのポートからのものであるならばブロック８０５における処理を実行し、もしＩＧＭＰジョインメッセージがそのポートからのものでないならばブロック８０６における処理を実行する。
【０１０１】
ＩＧＭＰジョインメッセージはマルチキャストソースへ導くポートからのもの、つまり、ＩＧＭＰジョインメッセージの送信元(source)はブロック８０１におけるソース２であり、そして、ＩＧＭＰジョインメッセージを受けるポートを（Ｓ，Ｇ）エントリの出口ポートリストに追加する必要も、ＰＩＭジョインメッセージを送る必要もない。
【０１０２】
ブロック８０５において、Ｒｔｒはさらなる処理を行わず、処理は終了される。
【０１０３】
ブロック８０６において、ＲｔｒはＩＧＭＰジョインメッセージが受けられたポートを（Ｓ，Ｇ）エントリの出口ポートリストに追加し、マルチキャストフローのためのＰＩＭジョインメッセージをマルチキャストソース（複数可）の方向に送り、処理が終了される。
【０１０４】
ＰＩＭジョインメッセージの宛先ＩＰアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＭＡＣアドレスはマルチキャストソースのＭＡＣアドレスである。
ＰＩＭジョインメッセージは、Ｒｔｒとマルチキャストソースとの間のレイヤ２交換機を通じてマルチキャストソースに転送されてよい。
レイヤ２交換機によるＰＩＭジョインメッセージの処理手順は、図９に示すとおりであってよい。
【０１０５】
ＰＩＭジョインメッセージの損失を防ぎ、マルチキャストフローを素速く受けるために、ＲｔｒはＰＩＭジョインメッセージをマルチキャストフローが受けられるまで高い繰り返し頻度で送ってよい。
【０１０６】
ブロック８０７において、Ｒｔｒは現行のＰＩＭプロトコルに従って処理を実行し、処理は終了される。
【０１０７】
現行のＰＩＭプロトコルによれば、ＲｔｒはＩＧＭＰジョインメッセージが受けられたポートを（Ｓ，Ｇ）エントリの出口ポートリストに追加してよい。
【０１０８】
ブロック８０８において、Ｒｔｒは現行のＰＩＭプロトコルに従った処理を実行する。
【０１０９】
現行のＰＩＭプロトコルによれば、Ｒｔｒは、マルチキャストフローに対応する（Ｓ，Ｇ）エントリを確立してよく、ＩＧＭＰジョインメッセージを受けたポートを（Ｓ，Ｇ）エントリの出口ポートに追加してよい。
【０１１０】
図９は、一例に従ってＰＩＭジョインメッセージを受けた後のレイヤ２交換機によって実行される処理を説明するフローチャートである。
図９に示すように、処理は以下の動作を含んでよい。
【０１１１】
ブロック９０１において、レイヤ２交換機はマルチキャストフローのためのＰＩＭジョインメッセージを受ける。
【０１１２】
ブロック９０２において、レイヤ２交換機は、ＰＩＭジョインメッセージの中のアップストリームネイバーアドレスが、レイヤ２交換機のＰＩＭスヌーピング機能によって維持されるＰＩＭルータのリスト内にあるかを判断し、もしアップストリームネイバーアドレスがリスト中にあればブロック９０３における動作を実行し、もしアップストリームネイバーアドレスがリスト中になければブロック９０４における動作を実行する。
【０１１３】
ブロック９０３において、レイヤ２交換機は現行のＰＩＭスヌーピングプロトコルに従って処理を実行し、処理は終了される。
【０１１４】
ブロック９０４において、レイヤ２交換機はマルチキャストフローのためのＰＩＭスヌーピングテーブルエントリがあるかを判断し、ＰＩＭスヌーピングテーブルエントリがあるときにはブロック９０５における処理を行い、このようなＰＩＭスヌーピングテーブルエントリがないときにはブロック９０６における処理を行う。
【０１１５】
ブロック９０５において、レイヤ２交換機はＰＩＭジョインメッセージを受けたポートがＰＩＭスヌーピングテーブルエントリの中のプルーンポートであるかを判断し、ポートがプルーンポートであるときにはブロック９０７の動作を実行し、ポートがプルーンポートでないときにはブロック９０６の動作を実行する。
【０１１６】
ブロック９０６において、レイヤ２交換機はさらに処理を行わず、処理は終了される。
【０１１７】
ブロック９０７において、レイヤ２交換機は、ローカルＰＩＭスヌーピングテーブルエントリおよびＩＧＭＰスヌーピングテーブルエントリに従って、ＰＩＭジョインメッセージを受けたポート以外にマルチキャストフローを転送する必要がある他のポートがあるかを判断し、このようなポートがあるときにはブロック９０８における動作を行い、このようなポートがないときにはブロック９０９における動作を行う。
【０１１８】
ブロック９０８において、レイヤ２交換機はＰＩＭジョインメッセージを転送せず、ブロック９１０における動作を実行する。
【０１１９】
ブロック９０９において、レイヤ２交換機はユニキャストルーティングテーブルの中でＰＩＭジョインメッセージの宛先ＩＰアドレスに従ってエントリを探し、ユニキャストルーティングテーブルエントリの中の出口ポートを介してＰＩＭジョインメッセージを転送し、ブロック９０１の動作を実行する。
【０１２０】
ブロック９１０において、レイヤ２交換機は、ＰＩＭジョインメッセージの受信ポートをＰＩＭスヌーピングテーブルエントリのダウンストリーム出口ポートリストからプルーンポートとしてラベル付けするマーク(mark)を削除し、ＰＩＭジョインメッセージの受信ポートをルータポートとして設定し、マルチキャストフローをこのポートを介して転送する。
【０１２１】
ブロック９１１において、レイヤ２交換機は、ＰＩＭスヌーピングテーブルエントリのダウンストリーム出口ポートリストがプルーンポートを含まず、アップストリームネイバーリストが空かを判断し、もしＰＩＭスヌーピングテーブルエントリのダウンストリーム出口ポートリストがプルーンポートを含まず、アップストリームネイバーリストが空ならブロック９１２における動作を実行し、これ以外ならブロック９１３における動作を実行する。
【０１２２】
ブロック９１２において、レイヤ２交換機はＰＩＭスヌーピングテーブルエントリを削除し、テーブルエントリ資源を保存し、処理は終了される。
【０１２３】
ブロック９１３において、レイヤ２交換機はさらに処理を行わない。
【０１２４】
図１０は、ＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータによって、一例に従ってマルチキャストフローを受けた後に実行される処理を説明するフローチャートである。
図１０に示すように、処理は以下の動作を含んでよい。
【０１２５】
ブロック１００１において、ファーストホップＰＩＭルータ（Ｒｔｒ）は、周期的にＰＩＭハローメッセージをファーストホップＰＩＭのＰＩＭポートそれぞれを介して送る。
【０１２６】
ブロック１００２において、レイヤ２交換機はＰＩＭハローメッセージを受け、メッセージを受けたポートを、ＩＧＭＰスヌーピング機能を利用してルータポートとして設定し、ＰＩＭハローメッセージをレイヤ２交換機のポートそれぞれを介して他のレイヤ２交換機に転送する。
【０１２７】
他のレイヤ２交換機は、ＰＩＭハローメッセージを受けた後にブロック１００２における動作を実行してもよい。
【０１２８】
ブロック１００３において、マルチキャストソースはマルチキャストフローを開始し、マルチキャストフローはファーストホップＰＩＭルータ（Ｒｔｒ）にルータポートそれぞれを介して転送される。
【０１２９】
ブロック１００４において、ＲｔｒはＲｔｒがマルチキャストフローに対応する（Ｓ，Ｇ）エントリを確立されていたかを判断し、エントリが確立されていたときにはブロック１００５における動作を実行し、エントリが確立されていないときにはブロック１００８における動作を実行する。
【０１３０】
ブロック１００５において、Ｒｔｒは（Ｓ，Ｇ）エントリの出口ポートリストが空かを判断し、リストが空のときにはブロック１００６における動作を実行し、リストが空でないときにはブロック１００７における動作を実行する。
【０１３１】
ブロック１００６において、Ｒｔｒは（Ｓ，Ｇ）エントリのエージング時間を更新し、マルチキャストフローが受けられたポートを介してＰＩＭプルーンメッセージを送り、処理は終了される。
【０１３２】
ＰＩＭプルーンメッセージのアップストリームネイバーアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＩＰアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＭＡＣアドレスはマルチキャストソースのＭＡＣアドレスである。
【０１３３】
ＰＩＭプルーンメッセージはマルチキャストフローがＲｔｒに入ったポートから送られるので、ＰＩＭプルーンメッセージはマルチキャストソースとＲｔｒとの間のレイヤ２交換機に到達するであろう。
レイヤ２交換機は、ＰＩＭプルーンメッセージを受けた後に、図５に示した処理手順を実行してよい。
【０１３４】
ブロック１００７において、Ｒｔｒは、出口ポートリストの中の出口ポート情報に従ってマルチキャストフローを外部装置に転送する。
【０１３５】
ブロック１００８において、Ｒｔｒは、マルチキャストフローに対応する（Ｓ，Ｇ）エントリを確立し、（Ｓ，Ｇ）エントリのためのエージング時間を設定する。
【０１３６】
（Ｓ，Ｇ）エントリのエージング時間は通常３分として構成される。
【０１３７】
ブロック１００９において、ＲｔｒはＲｔｒがＤＲであるかを判断し、ＲｔｒがＤＲであるときにはブロック１０１１における動作を実行し、ＲｔｒがＤＲでないときにはブロック１０１０における動作を実行する。
【０１３８】
ブロック１０１０において、Ｒｔｒはさらに処理を行わず、処理は終了される。
【０１３９】
ブロック１０１１において、ＲｔｒはマルチキャストフローのためのソースレジスタメッセージをＲＰに送る。
【０１４０】
ブロック１０１２において、Ｒｔｒは、ＲＰにより返されたマルチキャストフローのためのソースレジスタ停止メッセージ(source register stop message)を受け、マルチキャストフローに対応する（Ｓ，Ｇ）エントリの出口ポートリストが空かを判断し、リストが空のときにはブロック１０１３における動作を実行し、リストが空でないときにはブロック１０１４における動作を実行する。
【０１４１】
マルチキャストフローのためのソースレジスタメッセージを受けた後、マルチキャストフローのレシーバがあると判断したときには、ＲＰは、第一にマルチキャストフローのためのＰＩＭジョインメッセージをＲｔｒに返してよく、マルチキャストフローのためのソースレジスタストップメッセージをＲｔｒに送る。
ＰＩＭジョインメッセージを受けた後に、Ｒｔｒは、メッセージを受けたポートをマルチキャストフローに対応する（Ｓ，Ｇ）エントリの出口ポートリストに追加する。
ＲＰは、マルチキャストフローのためのソースレジスタ停止メッセージをＲｔｒに直接に返してよい。
【０１４２】
ブロック１０１３において、Ｒｔｒは、マルチキャストフローが受けられたポートを介して外部の装置にＰＩＭプルーンメッセージを送り、処理が終了される。
【０１４３】
ＰＩＭプルーンメッセージのアップストリームネイバーアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＩＰアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＭＡＣアドレスはマルチキャストソースのＭＡＣアドレスである。
【０１４４】
ＰＩＭプルーンメッセージはマルチキャストフローがＲｔｒに入るポートを介して送られるので、ＰＩＭプルーンメッセージはマルチキャストソースとＲｔｒとの間の１つ以上のレイヤ２交換機に到達するであろう。
レイヤ２交換機は、ＰＩＭプルーンメッセージを受けた後に、図５に示された処理手順を実行してよい。
【０１４５】
ブロック１０１４において、Ｒｔｒはマルチキャストフローを、出口ポートリストの中の出口ポート情報に従って外部装置に転送する。
【０１４６】
ファーストホップＰＩＭルータが、双方向ＰＩＭを採用し、ＤＲでないときには、ファーストホップＰＩＭルータによるマルチキャストフローの処理手順は、ＰＩＭ−ＳＭを採用し、マルチキャストフローを受けたときのＤＲでないファーストホップＰＩＭルータと同じである。
【０１４７】
さらに、ファーストホップＰＩＭルータはＰＩＭ−ＳＭまたは双方向ＰＩＭを採用し、ファーストホップＰＩＭルータが非ＤＲからＤＲになるときに、ファーストホップＰＩＭルータにおいて確立された（Ｓ，Ｇ）エントリそれぞれのためのマルチキャストソースの方向にＰＩＭジョインメッセージを送ってよい。
【０１４８】
ＰＩＭ−ＳＭを採用しているファーストホップＰＩＭルータが、ダウンストリームＰＩＭルータからのＰＩＭプルーンメッセージまたはファーストホップＰＩＭルータに接続されたクライアントからＩＧＭＰリーブメッセージを受けた後に、ファーストホップＰＩＭルータの処理手順は、図４に示された例におけるように、ＰＩＭ−ＳＳＭを採用しているファーストホップＰＩＭルータのものと同じである。
【０１４９】
ＰＩＭ−ＳＭを採用するファーストホップＰＩＭルータがＰＩＭジョインメッセージをダウンストリームＰＩＭルータから受けた後は、ファーストホップＰＩＭルータの処理手順は、図６に示された例におけるように、ＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータのものと同じである。
【０１５０】
ＰＩＭ−ＳＭを採用するファーストホップＰＩＭルータがＩＧＭＰジョインメッセージをダウンストリームＰＩＭルータから受けた後は、ファーストホップＰＩＭルータの処理手順は、図８に示された例におけるように、ＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータのものと同じである。
【０１５１】
図１１は、一例に従ってマルチキャストフローを受けた後にＰＩＭ−ＤＭを採用するファーストホップＰＩＭルータによって実行される処理を説明するフローチャートである。
図１１に示すように、処理は以下の動作を含んでよい。
【０１５２】
ブロック１１０１において、ファーストホップＰＩＭルータ（Ｒｔｒ）は周期的にＰＩＭハローメッセージをＰＩＭポートそれぞれを介してファーストホップＰＩＭに送る。
【０１５３】
ブロック１１０２において、レイヤ２交換機はＰＩＭハローメッセージを受け、ＩＧＭＰスヌーピング機能を利用してメッセージが受けられたポートをルータポートとして設定し、ＰＩＭハローメッセージをレイヤ２交換機のポートそれぞれを介して他のレイヤ２交換機に転送する。
【０１５４】
他のレイヤ２交換機もまた、ＰＩＭハローメッセージを受けた後にブロック１１０２における動作を行ってよい。
【０１５５】
ブロック１１０３において、マルチキャストソースはマルチキャストフローを送り、マルチキャストフローはファーストホップＰＩＭルータにルータポートそれぞれを介して転送される。
【０１５６】
ブロック１１０４において、ＲｔｒはＲｔｒがマルチキャストフローに対応する（Ｓ，Ｇ）エントリを確立していたかを判断し、エントリが確立されていたときにはブロック１１０５における動作を実行し、エントリが確立されていなかったときにはブロック１１０６における動作を実行する。
【０１５７】
ブロック１１０５において、Ｒｔｒは（Ｓ，Ｇ）エントリのエージング時間を更新し、ブロック１１０７における動作が実行される。
【０１５８】
ブロック１１０６において、Ｒｔｒは、マルチキャストフローのための（Ｓ，Ｇ）エントリを確立し、（Ｓ，Ｇ）エントリのエージング時間を設定し、Ｒｔｒの全てのダウンストリームＰＩＭネイバーにマルチキャストフローを転送し、ＰＩＭネイバーにより返されたＰＩＭプルーンメッセージを受けた後に、ＰＩＭプルーンメッセージが受けられたポートを（Ｓ，Ｇ）エントリの中の出口ポートリストにプルーンポートとして追加し；ＰＩＭグラフトメッセージをダウンストリームＰＩＭネイバーから受けた後に、ＰＩＭグラフトメッセージを受けたポートを（Ｓ，Ｇ）エントリの中の出口ポートリストに転送ポート(forwarding port)として追加する。
上記動作は、ダウンストリームＰＩＭネイバーに接続された全てのポートが（Ｓ，Ｇ）エントリの中に追加されるまで実行される。
【０１５９】
（Ｓ，Ｇ）エントリのエージング時間は通常３分として構成される。
【０１６０】
ブロック１１０７において、Ｒｔｒは（Ｓ，Ｇ）エントリの中の全ての出口ポートがプルーンポートであるかを判断し、全ての出口ポートがプルーンポートであるときにはブロック１１０８における動作を実行し、全ての出口ポートがプルーンポートでないときにはブロック１１０９における動作を実行する。
【０１６１】
ブロック１１０８においてＲｔｒはＰＩＭプルーンメッセージをマルチキャストフローが受けられたポートを介して外部装置に送り、処理は終了される。
【０１６２】
ＰＩＭプルーンメッセージのアップストリームネイバーアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＩＰアドレスはマルチキャストソースであり、宛先ＭＡＣアドレスはマルチキャストソースのＭＡＣアドレスである。
【０１６３】
ＰＩＭプルーンメッセージは、Ｒｔｒにマルチキャストフローが入るポートから送られ、ＰＩＭプルーンメッセージは１つ以上のマルチキャストソースとＲｔｒとの間のレイヤ２交換機に到達するであろう。
レイヤ２交換機は、ＰＩＭプルーンメッセージを受けた後に、図５に示した処理手順を実行してよい。
【０１６４】
ブロック１１０９において、Ｒｔｒは（Ｓ，Ｇ）エントリの中の転送出口ポート(forwarding egress port)それぞれを介してマルチキャストフローを転送する。
【０１６５】
図１２は、一例に従ってＰＩＭネイバーからＰＩＭグラフトメッセージを受けた後に、ＰＩＭ−ＤＭを採用するファーストホップＰＩＭルータにより実行される処理を説明するフローチャートである。
図１２に示すように、処理は以下の動作を含んでよい。
【０１６６】
ブロック１２０１において、ＲｔｒはＰＩＭネイバーからマルチキャストフローのためのＰＩＭグラフトメッセージを受け、Ｒｔｒの中においてマルチキャストフローに対応する（Ｓ，Ｇ）エントリをさがす。
【０１６７】
ブロック１２０２において、Ｒｔｒは（Ｓ，Ｇ）エントリの中の出口ポートのリストが空かを判断し、リストが空のときにはブロック１２０３における動作を実行し、リストが空でないときにはブロック１２０４における動作を実行する。
【０１６８】
ブロック１２０３において、Ｒｔｒは、ＰＩＭグラフトメッセージが受けられたポートを（Ｓ，Ｇ）エントリの中の出口ポートリストに追加し、ユニキャストルーティングテーブルにおいてメッセージの宛先ＩＰアドレスに対応するエントリを探し、ＰＩＭジョインメッセージをユニキャストルーティングテーブルエントリの中の出口ポートを通して送り、処理は終了される。
【０１６９】
ＰＩＭジョインメッセージの宛先ＩＰアドレスはマルチキャストソースのＩＰアドレスであり、宛先ＭＡＣアドレスはマルチキャストソースのＭＡＣアドレスである。
ＰＩＭジョインメッセージはＲｔｒとマルチキャストソースとの間のレイヤ２交換機を通してマルチキャストソースに転送されてよい。
レイヤ２交換機によるＰＩＭジョインメッセージの処理手順は図９に示した通りであってよい。
【０１７０】
ＰＩＭジョインメッセージ損失を防ぐため、および、マルチキャストフローを素速く受けるために、Ｒｔｒは、マルチキャストフローが受けられるまで、ＰＩＭジョインメッセージを高い繰り返し頻度で送ってよい。
【０１７１】
ブロック１２０４において、ＲｔｒはＰＩＭグラフトメッセージを現行のＰＩＭプロトコルに従って処理する。
【０１７２】
ＰＩＭ−ＤＭを採用するファーストホップＰＩＭルータがダウンストリームＰＩＭルータからのＰＩＭプルーンメッセージ、または、ファーストホップＰＩＭルータに接続されたクライアントからのＩＧＭＰリーブメッセージを受けた後で、ファーストホップＰＩＭルータの処理手順は、図４に示した例におけるように、ＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータのと同じである。
【０１７３】
ＰＩＭ−ＤＭを採用するファーストホップＰＩＭルータがＩＧＭＰジョインメッセージをダウンストリームＰＩＭルータから受けた後は、ファーストホップＰＩＭルータの処理手順は、図８に示した例におけるように、ＰＩＭ−ＳＳＭを採用するファーストホップＰＩＭルータのと同じである。
【０１７４】
図１３は、一例によって提供されるＰＩＭルータの構成を説明する図である。
ＰＩＭルータは、ファーストホップＰＩＭルータであり、マルチキャストソースにＰＩＭスヌーピング機能を有するレイヤ２交換機を介して接続される。
図１３に示すように、ＰＩＭルータは第１のモジュールと第２のモジュールを含んでよい。
【０１７５】
第１のモジュールは、マルチキャストソースから開始されたマルチキャストフローを受け、ＰＩＭプルーンメッセージをマルチキャストフローのためのダウンストリームＰＩＭルータから受けた後、または、ＰＩＭルータに接続されたクライアントからマルチキャストグループリーブメッセージを受けた後に、ＰＩＭプルーンメッセージまたはマルチキャストグループリーブメッセージが受けられたポートをマルチキャストフローの出口ポートリストから削除し、マルチキャストフローが受けられたかを判断し、マルチキャストフローが受けられないという判断に応じて、プルーンインディケーション(prune indication)を第２のモジュールに送るためのものである。
【０１７６】
マルチキャストグループリーブメッセージはＩＧＭＰリーブメッセージまたはＭＬＤリーブメッセージである。
【０１７７】
第２のモジュールは、プルーンインディケーションを受け、ＰＩＭプルーンメッセージをマルチキャストフローが受けられたポートを介して送ることができる。
【０１７８】
ＰＩＭルータが、ＰＩＭ−ＳＳＭを採用するとき、または、ＤＲではなくてＰＩＭを採用するときには、第１のモジュールは以下のサブモジュールを含んでよい。
【０１７９】
第１のサブモジュールは、マルチキャストフローを受け、マルチキャストフローの情報を第２のサブモジュールに送ることができる。
【０１８０】
第２のサブモジュールは、マルチキャストフローの情報を第１のサブモジュールから受け、マルチキャストフローが受けられなかったかを判断し、マルチキャストフローのためにマルチキャストルーティングテーブルエントリがＰＩＭルータにおいて確立されていなかったという判断がなされたとき、または、マルチキャストルーティングテーブルエントリがマルチキャストフローのために確立されていたが、マルチキャストルーティングテーブルエントリの出口ポートリストが空であるという判断がなされたときに、第２のモジュールにプルーンインディケーションを送信することができる。
【０１８１】
ＰＩＭルータがＰＩＭ−ＳＭを採用し、ＤＲであるときには、ファーストホップＰＩＭルータは以下のサブモジュールを含んでよい。
【０１８２】
第１のサブモジュールは、マルチキャストフローを受け、第２のサブモジュールにマルチキャストフローの情報を送ることができる。
【０１８３】
第２のサブモジュールは、マルチキャストフローの情報を第１のサブモジュールから受け、マルチキャストフローが受けられなかったかを判断し、マルチキャストフローのためにマルチキャストルーティングテーブルエントリが確立していたが、マルチキャストルーティングテーブルエントリの出口ポートリストが空だという判断がなされたときに、第２のモジュールにプルーンインディケーションを送ることができ；または、マルチキャストフローのためのマルチキャストルーティングテーブルエントリを確立し、マルチキャストフローのためにマルチキャストルーティングテーブルエントリが確立していなかったという判断がなされたときには、ＲＰにソースレジスタメッセージを送り、マルチキャストフローが受けられないことを判断し、ソースレジスタ停止メッセージをＲＰから受け、マルチキャストルーティングテーブルエントリの出口ポートリストが空であると判断した後に、第２のモジュールにプルーンインディケーションを送ることができる。
【０１８４】
ＰＩＭルータがＰＩＭ−ＤＭを採用するときには、第１のモジュールは以下のサブモジュールを含んでよい。
【０１８５】
第１のサブモジュールは、マルチキャストフローを受け、第２のサブモジュールにマルチキャストフローの情報を送ることができる。
【０１８６】
第２のサブモジュールは第１のサブモジュールからマルチキャストフローの情報を受け、マルチキャストフローが受けられないことを判断し、マルチキャストフローのためにマルチキャストルーティングテーブルエントリが確立されていているがマルチキャストルーティングテーブルエントリの中の全ての出口ポートがプルーンポートであると判断したときに、第２のモジュールにプルーンインディケーションを送り；または、
マルチキャストフローのためにマルチキャストルーティングテーブルエントリを確立し、マルチキャストフローのためにマルチキャストルーティングテーブルエントリが確立されていないという判断がなされたときに、全てのダウンストリームＰＩＭネイバーにマルチキャストフローを転送し；
ＰＩＭプルーンメッセージをダウンストリームＰＩＭネイバーから受け、ＰＩＭグラフトメッセージが受けられたポートをマルチキャストルーティングテーブルエントリの出口ポートリストにプルーンポートとして追加し；
ＰＩＭグラフトメッセージをダウンストリームＰＩＭネイバーから受け、ＰＩＭグラフトメッセージが受けられたポートをマルチキャストルーティングテーブルエントリの出口ポートリストに転送ポートとして追加し；
マルチキャストフローが受けられないかを判断し、ダウンストリームＰＩＭネイバーに接続されている全てのポートがマルチキャストルーティングテーブルエントリの出口ポートリストに追加されたかを判断し、マルチキャストルーティングテーブルエントリの中の全ての出口ポートがプルーンポートであると判断した後で、第２のモジュールにプルーンインディケーションを送る。
【０１８７】
実際には、ＰＩＭルータがＰＩＭ−ＳＭまたはＰＩＭ−ＳＳＭを採用するときには、第１のモジュールもまた、ダウンストリームＰＩＭルータからのマルチキャストフローのためのＰＩＭジョインメッセージ、または、ＰＩＭルータに接続されたクライアントからのマルチキャストグループジョインメッセージを受け、マルチキャストソースの方向にＰＩＭジョインメッセージを送ることができる第３のモジュールを含んでよい。
【０１８８】
第３のモジュールは、さらに、マルチキャストフローのためのＰＩＭジョインメッセージをダウンストリームＰＩＭルータから受けた後に、マルチキャストフローに対応するマルチキャストルーティングテーブルエントリがＰＩＭルータの中に確立されているかを判断し、ＰＩＭジョインメッセージが受けられたポートをマルチキャストルーティングテーブルエントリの出口ポートリストに追加し、マルチキャストルーティングテーブルエントリの出口ポートリストが空であるとの判断がなされたときに、ＰＩＭジョインメッセージをマルチキャストソースの方向に送ることができる。
【０１８９】
実際には、ＰＩＭルータがＰＩＭ−ＳＭ、ＰＩＭ−ＳＳＭまたはＰＩＭ−ＤＭを採用するときに、ＰＩＭルータは、ＰＩＭルータに接続されたクライアントからのマルチキャストフローのためのマルチキャストグループジョインメッセージを受けることができる第４のモジュールを含んでよい。
【０１９０】
第４のモジュールは、さらに、マルチキャストフローのためのマルチキャストグループジョインメッセージをＰＩＭルータに接続されたクライアントから受けた後に、マルチキャストフローに対応するマルチキャストルーティングテーブルエントリが確立されているかを判断し、マルチキャストグループジョインメッセージが受けられたポートをマルチキャストルーティングテーブルエントリの出口ポートリストに追加し、マルチキャストルーティングテーブルエントリが確立されていて、マルチキャストルーティングテーブルエントリの出口ポートリストが空であるという判断がなされたときに、ＰＩＭジョインメッセージをマルチキャストソースの方向に送ることができる。
【０１９１】
ＰＩＭルータがＰＩＭ−ＳＭを採用してＤＲでないとき、または、双方向ＰＩＭを採用してＤＲでないときに、ＰＩＭルータもまた、マルチキャストフローそれぞれのために確立されたマルチキャストルーティングテーブルエントリのために、ＤＲでなかったＰＩＭルータがＤＲになったときに、マルチキャストフローのためのＰＩＭジョインメッセージをマルチキャストソースの方向に送信することができる第５のモジュールを含んでよい。
【０１９２】
ＰＩＭルータがＰＩＭ−ＤＭを採用するとき、ＰＩＭルータもまた、ダウンストリームＰＩＭネイバーからのマルチキャストフローのためのＰＩＭグラフトメッセージを受け、マルチキャストソースの方向にＰＩＭジョインメッセージを送ることができる第６のモジュールを含んでよい。
【０１９３】
第６のモジュールは、さらに、マルチキャストフローのためのＰＩＭグラフトメッセージをダウンストリームＰＩＭネイバーから受けた後に、マルチキャストフローに対応するマルチキャストルーティングテーブルエントリがＰＩＭルータの中で確立されていたかを判断し、ＰＩＭグラフトメッセージが受けられたポートをマルチキャストルーティングテーブルエントリの出口ポートリストに追加し、マルチキャストルーティングテーブルエントリが確立されていて、マルチキャストルーティングテーブルエントリの出口ポートリストが空であるときには、マルチキャストソースの方向にＰＩＭジョインメッセージを送ることができる。
【０１９４】
以下は、一例に従ったＰＩＭスヌーピング機能を備えた交換機の構成を記載する。
交換機はマルチキャストソースとファーストホップＰＩＭルータとの間に配置される。
交換機は、主に第１のモジュール、第２のモジュールおよび第３のモジュールを含んでよい。
【０１９５】
第１のモジュールはマルチキャストフローのためのＰＩＭプルーンメッセージを受け、ＰＩＭプルーンメッセージが受けられたポートをマルチキャストフローに対応するＰＩＭスヌーピングエントリに追加し、メッセージの中のアップストリームネイバーアドレスが、交換機のＰＩＭスヌーピング機能により維持されるＰＩＭルータのリストの中にないという判断がなされたときに、プルーンポートを介したマルチキャストの転送を停止することができる。
【０１９６】
第１のモジュールは、さらに、プルーンポートのためにプルーン時間を設定してよく、プルーン時間が切れたときに、プルーンポートを介したマルチキャストフローの転送を開始する。
【０１９７】
第１のモジュールは、さらに、ファーストホップＰＩＭルータの中のＰＩＭプルーンメッセージに対応するマルチキャストフローのマルチキャストルーティングテーブルエントリのライフタイム値よりも小さいライフタイム値を設定し、プルーンポートのライフタイム値が切れたときには、プルーンポートを一時的なルータポートに設定し、もしマルチキャストフローのためのＰＩＭメッセージが予め定義された時間周期の内にマルチキャストフローのためのＰＩＭプルーンメッセージが受けられないなら、一時的なルータポートをルータポートとして設定し、もしマルチキャストフローのためのＰＩＭプルーンメッセージが受けられたなら、一時的なルータポートをプルーンポートとして設定し、プルーンポートのライフタイム値をリセットしてよい。
【０１９８】
第１のモジュールは、さらに、ＰＩＭプルーンメッセージの中のアップストリームネイバーアドレスがＰＩＭスヌーピング機能用いて維持されるＰＩＭルータのリストの中にないと判断した後に、交換機においてマルチキャストフローのためにＰＩＭスヌーピングエントリが確立されていないと判断したときには、第１のモジュールは、マルチキャストフローのためのＰＩＭスヌーピングエントリを確立してよく、空のリストをＰＩＭスヌーピングエントリのアップストリームネイバーリストとして設定し、交換機のアップストリームポート以外の全てのＰＩＭネイバーポートをＰＩＭスヌーピングエントリの出口ポートリストに追加し、マルチキャストフローのＰＩＭスヌーピングエントリにプルーンポートを追加し、マルチキャストフローが交換機の中のＰＩＭスヌーピングエントリおよびマルチキャストグループ管理エントリに基づいて転送され得るかを判断することができ、もしマルチキャストフローが転送され得るならＰＩＭプルーンメッセージを転送せず、または、もしマルチキャストフローが転送され得ないならＰＩＭプルーンメッセージを転送する。
【０１９９】
第１のモジュールは、メッセージの中のアップストリームネイバーアドレスがＰＩＭスヌーピング機能により維持されるＰＩＭルータのリストの中にあるかを判断した後に、マルチキャストフローのためにＰＩＭスヌーピングエントリが確立されているかを判断したときに、プルーンポートをＰＩＭスヌーピングエントリに直接に追加してよく、交換機におけるＰＩＭスヌーピングエントリおよびマルチキャストグループ管理エントリに基づいて転送され得るかを判断することができ、もしマルチキャストフローが転送され得るならＰＩＭプルーンメッセージを転送せず、または、もしマルチキャストフローが転送され得ないならＰＩＭプルーンメッセージをマルチキャストソースの方向に転送する。
【０２００】
レイヤ２交換機がＩＧＭＰを採用するとき、マルチキャストグループスヌーピングエントリはＩＧＭＰスヌーピングエントリである。
レイヤ２交換機がＭＬＤを採用するとき、マルチキャストグループスヌーピングエントリはＭＬＤスヌーピングエントリである。
【０２０１】
第２のモジュールは、マルチキャストのためのＰＩＭジョインメッセージを受けることができる。
メッセージの中のアップストリームネイバーアドレスが交換機のＰＩＭスヌーピング機能により維持されるＰＩＭルータのリストの中にないという判断がなされたときには、交換機の中のＰＩＭスヌーピングエントリおよびマルチキャストグループ管理スヌーピングエントリに基づいて、マルチキャストフローを受け得るＰＩＭジョインメッセージが受けられたポート以外の他のポートがあるかについての判断がなされ、マルチキャストフローの受信を要求する他のポートがあるときには、ＰＩＭジョインメッセージが転送されず、または、マルチキャストフローの受信を要求する他のポートがないときには、ＰＩＭジョインメッセージが転送される。
【０２０２】
第２のモジュールは、さらに、ＰＩＭジョインメッセージをマルチキャストソースの方向に転送した後に、ＰＩＭジョインメッセージを受けたポートをＰＩＭスヌーピングエントリから削除し、ポートをルータポートとして設定してよい。
【０２０３】
第３のモジュールは、マルチキャストフローのためのマルチキャスト管理ジョインメッセージを受け、メッセージを受けたポートをマルチキャストフローのマルチキャストグループ管理エントリにメンバーシップポートとして追加し、マルチキャストグループ管理ジョインメッセージを、メッセージが受けられたポート以外のＰＩＭスヌーピングエントリの中の全てのルータポート、プルーンポートおよびアップストリームネイバーを介して転送することができる。
【０２０４】
マルチキャストグループ管理ジョインメッセージは、ＩＧＭＰジョインメッセージまたはＭＬＤジョインメッセージであってよい。
【０２０５】
ここに開示された例示の方法、システムおよびモジュールはハードウェア、機械可読命令またはハードウェアおよび機械可読命令の組み合わせによって実現されてよい。
ここに開示された例において用いられた機械可読命令は、ハードドライブ、ＣＤ−ＲＯＭ、ＤＶＤ、コンパクトディスク、フロッピー（登録商標）ディスク、磁気テープドライブ、ＲＡＭ、ＲＯＭまたは他の適切な記憶装置といった１つ以上の処理により読み出されうる記憶媒体に記憶されてよい。
あるいは、機械可読命令の少なくとも一部は、専用集積回路、ゲートアレー、ＦＰＧＡ、ＰＬＤおよび特定用途のコンピュータなどといった特定用途のハードウェアに置き換えられてよい。
例えば、図１４は、他の例により提供されるＰＩＭルータの構成を説明する図である。
ＰＩＭルータは、ファーストホップＰＩＭルータであり、ＰＩＭスヌーピング機能を有するレイヤ２交換機を介してマルチキャストソースに接続されてよい。
図１４に示すように、ＰＩＭルータは第１のモジュール、第２のモジュールおよびプロセッサを含んでよい。
第１のモジュールおよび第２のモジュールは、プロセッサにより可読な記憶媒体に格納されて、図１３に示されたプロセッサに第１のモジュールおよび第２のモジュールと同様な機能を実行させてよい。
【０２０６】
機械に、ここに開示されたような制御方法を実行させる命令を格納することができる機械可読記憶媒体もまた提供される。
特に、システムまたは装置の１つ以上のプロセッサ（例えば、ＣＰＵまたはＭＰＵなど）により読み出され、実行され得て、上記例に記載された方法および機能を実現する機械可読命令を格納する記憶媒体を有するシステムまたは装置が提供される。
【０２０７】
この場合には、記録媒体から読み出される機械可読命令（例えばプログラムコード）は上の例のいずれをも実現してよく、よって、機械可読命令および機械可読命令を格納する記憶媒体は、技術的枠組みの一部である。
【０２０８】
機械可読命令を提供する記憶媒体は、フロッピー（登録商標）ディスク、ハードドライブ、光磁気ディスク、（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷといった）コンパクトディスク、磁気テープドライブ、フラッシュカード、ＲＯＭおよびその他を含んでよい。
随意的には、機械可読命令はコンピュータネットワークを介してサーバコンピュータからダウンロードされてよい。
【０２０９】
コンピュータにより実行される機械可読命令に代わって、機械可読命令により実行される動作の少なくとも一部は、機械可読命令に基づいて命令を理解して上記のいかなる例の技術的枠組みを実現するコンピュータにおいて動作するオペレーションシステムにより実現されてよい。
【０２１０】
さらに、記憶媒体から実現される機械可読命令は、コンピュータに挿入された拡張ボードの中の記憶装置またはコンピュータに接続された拡張ユニットの中の記憶装置に書き込まれてよい。
この例においては、拡張ボードまたは拡張ユニットの中のＣＰＵが機械可読命令に基づく命令に従った動作の少なくとも一部を実行して上記いずれの例の技術的枠組みをも実現する。
【０２１１】
上述は提示の開示事項の例に過ぎず、その保護範囲を制限するためのものではない。
全ての変形、等価物による置換あるいは提示の開示事項の精神および原理に従った改良は提示の開示事項の保護範囲内に含まれるべきである。
【図１】
0005619290.tif 000002
【図２】
0005619290.tif 000003
【図３】
0005619290.tif 000004
【図４】
0005619290.tif 000005
【図５】
0005619290.tif 000006
【図６】
0005619290.tif 000007
【図７】
0005619290.tif 000008
【図８】
0005619290.tif 000009
【図９】
0005619290.tif 000010
【図１０】
0005619290.tif 000011
【図１１】
0005619290.tif 000012
【図１２】
0005619290.tif 000013
【図１３】
0005619290.tif 000014
【図１４】
0005619290.tif 000015