Given the multicast service model described above, and the restrictions that senders and receivers don't know each others' location or anything about the topology, how do routers conspire to deliver traffic from the senders to the receivers?
We shall assume that if a sender and a receiver did know about each other, that they could each send unicast packets to the other. In other words, there is a network with bidirectional paths and an underlying unicast routing mechanism already running. Given this, there is a spectrum of possible solutions. At one extreme, we can flood data from the sender to all possible receivers and have the routers for networks where there are no receivers prune off their branches of the distribution tree. At the other extreme, we can communicate information in a multicast routing protocol conveying the location of all the receivers to the routers on the paths to all possible senders. Neither of methods is terribly desirable on a global scale, and so the most interesting solutions tend to be hybrid solutions that lie between these extremes.
In the real world there are many different multicast routing protocols, each with its own advantages and disadvantages. We shall explain each of the common ones briefly, as a working knowledge of their pros and cons helps us understand the practical limits to the uses of multicast.