While looking at why packet loss was so disastrous in the application I'm working on, I noticed an oddity in a CURRENT snapshot taken in January, which I believe is the same today. Basically, there's some ack handling code that looks like:
if (SEQ_LEQ(th->th_ack, tp->snd_una)) { if (tlen == 0 && tiwin == tp->snd_wnd) { /* dupack handling code */ ... } else { tp->t_dupacks = 0; } So what this seems to say to my untrained eye is that we should reset the dupacks, i.e. leave newreno fast recovery, if non-ack-only traffic comes from the other end. However, that the remote side decided to send data seems unrelated to whether we have successfully completed recovery and consequently don't need to retransmit in response to partial acks. I appreciate any and all advice about this code and whether this is desirable behaviour for some reason I haven't thought of. I will triple check RFC 2852 to see whether and if so why this is prescribed behaviour. Thanks Peter Godman To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-net" in the body of the message