Abstract
The Selectively Reliable Multicast transport Protocol (SRMP) supports a mix of reliable and best-effort multicast by taking advantage of the specific requirements of distributed virtual simulation. It serves as the transport layer of a protocol stack with Internet Protocol multicast, and has been demonstrated to support distributed simulation with significantly lower demands on the network than that generated by use of multiple TCP connections. This paper addresses the iterative design and prototyping process used to develop the current implementation of SRMP. The paper begins with a review of the principles involved in SRMP. We then focus on two major aspects of the SRMP implementation software design, inter-process communication and process concurrency (threading), which were developed using an iterative or spiral development model. The earliest prototypes we developed showed disappointingly poor performance. Inter-process communication went through a three distinct iterations before arriving at an efficient implementation; threading required two iterations for the basic SRMP functionality, and a third for implementation of heartbeats and bundling. We describe how the iterative development process has produced an efficient and effective implementation, and can be expected to yield similar results with ongoing enhancements to SRMP.