* 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. /PH -- Per-Henrik Lundblom epost: [EMAIL PROTECTED] telefon: 0733-20 71 26 hemsida: www.whatever.nu _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
