On Thursday 02 September 2004 03:49, Saikrishna Dasari wrote:
Hi Alain, I was studying the UDPCast source code for some experimental purposes. I have the following question. 1. The whole data to be transfered into is divided into slices which again contains a series of blocks to transfer. Can we consider the whole data to be transfered as a single slice ( By setting appropriate parameters in code) and what kind of performance issues we can expect if we do a change of this kind at code level.
Thanks in advance, Sai
Unfortunately, the protocol, as it is implemented now, does not support arbitrarily large slice sizes.
Indeed, the acknowledge message encodes the set of missed packets as a bitmap, where 1 means "packet received" 0 means "packet not received" (usually: to be retransmitted)
Making the maximal slice size larger (MAX_SLICE_SIZE) would also make this bitmask larger, and obviously, the bitmask may not be any larger than a packet, which puts the absolute maximal slice size at 1460*8 = 11680 elements.
Moreover, udpcast has several buffers in memory which must contain an entire slice (for purpose of retransmission, and for FEC calculation). Excessively large slices would lead to rather enormous memory requirements.
And, last but not least, if forward error correction (FEC) is enabled, the time needed to calculate the FEC blocks is proportional to the stripe size, which usually is proportional to the slice size. Huge slice sizes thus would slow down FEC calculation.
Regards,
Alain