[ENet-discuss] Retransmission mechanism of enet

Todd Huang huangtodd at hotmail.com
Fri Jul 20 04:46:32 PDT 2007


    I am now trying to use the enet to provide a communication tunnel 
between a multimedia server and the player over the Internet. Since the 
behavior of the Internet is unpredictable, I try to establish the connection 
with the reliable feature. In order to test enet's reliability feature, I 
try to decrease the bandwidth of the Internet and monitor the traffic by 
using Ethereal.

    After tracing the captured result, I am somewhat confused and wish 
anyone can provide your comment.

1.  enet will append a 24-byte header before user data, and the sequence 
number will be put in the last four bytes. Am I right? If it is correct, 
could anyone tell me what's the name of the data structure of this header? 
In which header file is it defined?

2.  What's the name of the timer and its value enet uses for transmission 
time-out? Does the timer adopt the backoff algorithm (0.5, 1, 2, 4,....) 
like the TCP? Or its value fixed?

3.  According to my assumption, enet will retransmit the un-acked packets in 
sequence. That is, enet will retransmit the packets (within allowed window 
size) with sequence number 100, 101, 102,.... if the sequence number of the 
latest acknowledgement is 99. However, I find that the retransmitted packets 
are in decreasing order (102, 101, 100). Do I miss anything?

4.  Is anyone familiar with the throttle algorithm of enet? Is there any 
related document describing this algorithm?


Express yourself instantly with MSN Messenger! Download today it's FREE! 

More information about the ENet-discuss mailing list