3.3. Phase Three: Shortest-Path Tree (フェーズ3: 最短パスツリー)
RP がソースに向けて戻って参加することでカプセル化のオーバーヘッドは除去されますが, 転送パスを完全に最適化するわけではありません。多くの受信者にとって, RP 経由のルートは, ソースから受信者への最短パスと比較すると, 大きな迂回を伴う可能性があります。
より低いレイテンシまたはより効率的な帯域幅利用を得るために, 受信者の LAN 上のルーター (通常は DR) は, 共有ツリーからソース固有の最短パスツリー (SPT) への転送をオプションで開始できます。これを行うために, S に向けて (S,G) Join を発行します。これにより, S へのパスに沿ったルーターで状態がインスタンス化されます。最終的に, この Join は S のサブネットに到達するか, すでに (S,G) 状態を持つルーターに到達します。これが発生すると, S からのデータパケットは (S,G) 状態に従って流れ始め, 受信者に到達するまで続きます。
この時点で, 受信者 (または受信者の上流のルーター) はデータの2つのコピーを受信します: 1つは SPT から, もう1つは RPT からです。SPT からの最初のトラフィックが到着し始めると, DR または上流ルーターは RP ツリー経由で到着する S からの G のパケットをドロップし始めます。さらに, RP に向けて (S,G) Prune メッセージを送信します。これは (S,G,rpt) Prune として知られています。Prune メッセージはホップバイホップで伝播し, RP へのパスに沿って状態をインスタンス化し, S からの G のトラフィックがこの方向に転送されるべきではないことを示します。プルーンは RP に到達するか, または他の受信者のために S からのトラフィックをまだ必要とするルーターに到達するまで伝播されます。
現在までに, 受信者は受信者と S の間の最短パスツリーに沿って S からのトラフィックを受信します。さらに, RP は S からのトラフィックを受信していますが, このトラフィックはもはや RP ツリーに沿って受信者に到達していません。受信者にとって, これが最終的な配信ツリーです。