Skip to Main Content
Tree-based reliable multicast protocols provide scalability by distributing error-recovery tasks among several repair nodes. These repair nodes integrate the status information of several receiver nodes and perform local error recovery for these nodes using the data stored in their buffers. We propose a buffer management scheme that uses both positive and negative acknowledgments to manage these buffers in an efficient manner. Under our scheme, receiver nodes send negative acknowledgments to repair nodes to request packet retransmissions. At infrequent intervals, they also send positive acknowledgements to indicate which packets can be safely discarded from the buffer of their repair node. Our scheme reduces delay in error recovery, because the packets requested from the repair nodes are always available in their buffers. It achieves this goal without increasing the server workload because (a) each receiver node only sends infrequent positive acknowledgments and (b) their sending times are randomized among all the receiver nodes. We also show how our scheme can be extended to provide full flow control and eliminate buffer overflows.