title: What's the most efficient protocol for reliable multicast?
body: <p>When a sender needs to multicast a relatively large volume of data (say several megabytes per second) in a reliable way over Ethernet to a modest number of receivers (say less than a dozen) on the same subnet, what is the most efficient protocol? By <em>reliable</em> I mean that if a packet is lost, the protocol ensures that it gets resent such that there is no data loss in any receiver. The term <em>efficient</em> is a lot harder to define, but let's say we want to maximize throughput and minimize network bandwidth with modest CPU usage on both ends. That's still not a clear-cut definition but it's the best I can come up with. Either a stream-oriented or a message-oriented protocol would be acceptable.</p>
  
  <p>I'd appreciate real-world examples and I'll gladly accept subjective answers, i.e. what's your favorite multicast protocol, if you can explain its pros and cons.</p>