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