Recently I've started to read RFCs of different multicast standards and came out to the question, which is not totally clear for me. I'm trying to compare DVMRP vs PIM-DM routing protocols in order to understand which one is better, which one producing less multicast message while establishing route and during routing process at all. And which one of them is able to produce more sophisticated source tree.
Can you, please help me to figure out the answers for my questions?
The main difference between PIM-DM and DVMRP is that the latter is routing protocol dependent. Specifically, it depends upon the routing table formed by the unicast routing protocol using the Distance vector. PIM-DM also requires the presence of a unicast routing protocol for finding out the route between two nodes but doesn't make any assumptions about its working.
One other difference is that PIM-DM floods all its downstream routers where as DVMRP only floods children routers in the delivery tree. Because of this PIM-DM has to deal with duplicate messages by pruning.
I'd only consider PIM-DM in a network where there's receiving hosts on most (if not all) routers in the network and mostly end up using PIM-SM. Not knowing how your network looks, I can't (unfortunately) give you any hard and fast guidance.
If you are concerned with keeping down the total bandwidth of multicast packets for your routing protocol, you need to focus on those protocols that send change-based updates. For example, RIP sends it's entire table at a regular interval (RIP v1 is IP UDP port 520, RIP v2 is Multicast), where as EIGRP only sends periodic 'hello' messages unless there is a topology change, they will not regularly send out their topology tree.
In my mind, EIGRP is one of the most sophisticated source trees since it stores a copy of all of the neighboring trees so that it can almost instantly converge on a new best route if a link goes down.
As with all routing protocols, you can adjust and customize these timers, but beware that you can cause some huge problems if you adjust the hello/timeout/hold down timers on one router but not another.