Abstract

As part of evaluating options for the design and implementation of a scalable application-level multicast system, we produced an independent implementation of CAN, experimented with tuning it, and also extended it to improve its performance and in some cases, correctness. We were able to reproduce most of the results in the original CAN paper, providing independent validation of their results. However, we encountered far more complexity with tuning and extending CAN than anticipated. The best set of parameter choices appeared to be highly scenariospecific and non-intuitive, at least for some of the parameters supported. Tuning CAN involved a lot of trial-and-error navigation through the CAN parameter space. Furthermore, the “anycast” semantics provided by CAN turned out to make our application design more complex than was originally anticipated.