So What are the advantages of using Multicast vs. Broadcast for cluster communications?
Multicast and broadcast are nearly
identical. Both are UDP datagram
based. The advantages that multicast has
over broadcast are that multicast can span multiple subnets (presuming that the
intervening routers are configured correctly) and that with broadcast only one
application can receive a datagram.
Most configurations do not use multicasting
over multiple subnets. Clusters are
nearly universally on the same subnet.
So the ability for multicast to span subnets is rarely, if ever, used. The ability for more than one application to
receive a UDP datagram is an important feature.
In fact, multicasting is the only way under IP to have a datagram/packet
delivered to multiple applications.
For example, you could have a cluster
configured and the cluster is managed by exchanging UDP multicast
datagrams. An application that monitored
the cluster and needed those same datagrams could run on one of the cluster
nodes and two applications would receive the datagrams. With broadcasting, a monitoring application
could not run on a node in the cluster as only the cluster manager would be
able to receive the datagrams.
As previously mentioned, for a cluster
monitoring application with broadcasting, the monitor would be required to run
on the same subnet as the cluster. With
multicasting, it would be possible to run the monitoring application on a
different subnet than the cluster.
The bottom line is that for the condition
of a single subnet, broadcast and multicast are nearly identical. The sole benefit being multicast supports
multiple delivery, and this feature may be needed based the applications that
are deployed.