Active Reliable Multicast on CANEs: A Case Study M. Sanders † , M. Keaton ‡ , S. Bhattacharjee ♯ , K. Calvert ♭ , S. Zabele ‡ , E. Zegura † † Georgia Tech, ‡ TASC Inc., ♯ Univ. of Maryland, ♭ Univ. of Kentucky Abstract —Thispaperpresentsacasestudyinim- plementing a moderately complex, useful service on an active network platform. The active appli- cation is reliable multicast with congestion control; the platform comprises the Bowman Node Oper- ating System and the Composable Active Network Elements (CANEs) Execution Environment. The importance of the work stems from the lessons it provides about the design and implementation of active platforms in general and Bowman/CANEs in particular. For example, our experience shows that timer-driven active node processing is as im- portant as packet-arrival-driven processing. Thus, executionenvironmentscannotfocusexclusivelyon forwarding, but must also provide efficient timers and allow timer handlers the same capabilities as packet-driven computations. Other areas in which the implementation provides insight include ser- vice decomposition approaches for active applica- tions and information sharing among service com- ponents. I. Introduction Active networks provide a platform for network ser- vices that can be built or customized by injecting code or other information into the nodes of the network. For the purposes of this paper, the salient character- istic of “active networking” is the placement of user- controllable (for some definition of “user”) computing capabilities in shared infrastructure of the communi- cation network, where they can be utilized by appli- cations that need those capabilities. This paradigm offers a number of potential advantages, including the ability to develop and deploy new network protocols and services quickly, and the ability to customize ser- vices to meet the needs of different classes of users. As an example of a desirable network service, con- sider the problem of multicast applications that need reliability and desire to share bandwidth coopera- tively with other applications. The present IP mul- ticast service makes it difficult for applications to re- cover from losses in the network, because the needed This work was supported by DARPA under the CANEs project contract N66001-97-C-8512 and the PANAMA project contract N66001-97-C-8513. information (location of losses) is hidden from users. Additionally, congestion control in the multicast en- vironment is challenging due to the feedback implo- sion problem if all users communicate with the sender independent of one another. A number of active multicast projects have realized the value of placing the functionality where it is needed in the network— at the multicast branch points. The Active Er- ror Recovery/Nominee-based Congestion Avoidance (AER/NCA) protocols realize multicast reliability and congestion control, taking advantage of active networking where it is present. The AER/NCA pro- tocol design is based on current trends in reliable mul- ticast research, but allows for enhanced performance when using active networks. Briefly, AER/NCA pro- vides for rapid recovery from packet losses using pack- ets cached at repair servers in the network, suppres- sion of NACKs to avoid feedback implosion, and iden- tification of the most congested receiver for congestion control. AER/NCA was initially implemented in the ANTS Active Node Transfer System [3], arguably the most widely used environment for development of active network applications and services. While ANTS of- fers a number of advantages for code portability and rapid prototyping, it is not designed to support high performance, nor does it offer much explicit support for structuring complex protocols, beyond the support generally offered by a structured programming lan- guage. The AER/NCA service is a reasonably com- plex service; a significant portion of the processing oc- curs in the data path (e.g., retransmission of cached data packets), thus the implementation must provide reasonable performance. This case study reports on the implementa- tion of AER/NCA in an active network platform that includes the Bowman Node Operating System (NodeOS) and the CANEs Execution Environment (EE). Bowman is specifically designed to allow ef- ficient access to low-level system resources, while CANEs is designed to provide a framework for struc- turing complex services. The overall platform at- tempts to strike a balance between performance and