On Tue, 21 Oct 2003, Zhu, Yi wrote: > On Mon, 21 Oct 2003, Donald Becker wrote: > > But none of these uses indicates that we > > need reliable multicast implemented in the kernel. > > Reliable multicast transport layer is useful in the intranet. > If kernel can provide this, a lot of cluster softwares can > benefit from it. I really doubt that. A few years ago, with mostly repeater-based networks, multicast did marginally make sense. But Ethernet switches drop multicast traffic in different, unpredictable ways. And cascading two switches compounds the problem characterizing the loss pattern. End-point: high-bandwidth Ethernet multicast is not a deployable technology. You end up developing and tuning algorithms that work on your specific machine, but don't work with other hardware or scale to a different size/topology. Multicast does have a much better chance of working if the application carefully manages the group size and restricts the bandwidth i.e. implements significant policy intertwined with the mechanism. With low bandwidth and complicated policy, there is no performance or structural reason to put multicast into the kernel vs. leaving it as a library implementation. And with a library implementation, it's easier to turn off when it doesn't work for the majority of end users! If you are making general-purpose cluster software, the communication design must also work on Myrinet, SCI, Giganet, and Infiniband. None of those have hardware-based multicast. They all emulate it in software or switch firmware. (Most Gigabit Ethernet switches emulate multicast in firmware.) I don't see any change that motivates new development of physical-layer-oriented multicast protocols for cluster use. -- Donald Becker becker@scyld.com Scyld Computing Corporation http://www.scyld.com 914 Bay Ridge Road, Suite 220 Scyld Beowulf cluster system Annapolis MD 21403 410-990-9993 - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html