On Fri, 2007-08-03 at 22:44 +0200, Per-Henrik Lundblom wrote: > * Ramanathan Ramadass <[EMAIL PROTECTED]> [070803 22:36]: > > > Not necessarily. If I am reading the code right, the condition in > > "tcp_output()" is; > > > > if(pcb->flags & TF_ACK_NOW && > > (seg == NULL || > > ....) > > > > Where "seg" is the "pcb->unsent" queue. Because the data is flowing one > > way (from client to lwIP) "pcb->unsent" will be NULL and will result in a > > Dup ACK. I think this is a bug. > > I can honestly say I didn't look at your capture files but I have been > hacking around pretty heavily in lwIP at work recently with data flows > similar to yours. If you call for example tcp_received() in wrong ways > you will get a lot of DUP ACKs. Even if you do everything The Right Way > you may end up with a DUP ACK sometimes. At least in my case that mostly > came from the fact that lwIP doesn't implement the persist timer and > functionality for splitting TCP data in the pcb->unsent queue. I have > implemented this functionality but haven't submitted any patches.
The persist timer implementation would be of great interest, as we really must have it to be a compliant stack and it's causing problems for a number of users. Do you plan to be able to send this patch in, or is that unlikely (e.g. due to problems with licencing of code etc)? I only ask so we know whether or not we need to independently work on this. Thanks Kieran _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
