* 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

Reply via email to