I have 2 questions.
1. What are the differences between PIM-DM and SM?
I can think of 3.
First, ratio of number of group members to total number of hosts is different.
Second, DM uses implicit join while SM uses explicit join. So DM wastes bandwidth especially the periodic flooding.
Third, DM builds SPT. SM builds RPT which switches to SPT.
Please update me if there are more.
2. Why PIM-SM builds shared tree to RP first, then switches to source-based tree? Why not build source-based tree at the beginning?
Just to add a bit more to it, In DM, Source does not care about receivers as it is just flood and prune. In SM, we do not want to flood and want to send traffic to only the interested recievers. However, when the initial process starts, Source is not aware of the interested recievers ( vice versa for the receivers ) and hence builds a source based tree to RP and the receivers send thier interest ( PIM JOINS ) to RP. Based on this, traffic reaches the reciever for the first time. When the first m/c packet reaches the last hop router, now it knows the source ip address, It byepasses the RP and builds a direct tree to the source, which is called as SPT switchover.
I think you had a good summary. In addition I like to add DM uses push method, it assume everybody wants to receive the multicast stream first. The ones dont want it will be removed later. SM uses pull method; RP controls who can receive the multicast, all receivers need to tell RP they want to the multicast first. SM has both share tree and source path tree; share tree is the tree root from RP, source path tree is the tree root from source.
For SM, by default the last hob router switch back to source path tree after it receive the first multicast packet; before that, the router doesn't know where is the source, it needs to get the information from the share tree.