[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] [TCP Previous segment lost] / [TCP Out-Of-Order] (HTTPd

From: Chris_S
Subject: Re: [lwip-users] [TCP Previous segment lost] / [TCP Out-Of-Order] (HTTPd-RAW)
Date: Mon, 10 Aug 2009 05:00:13 -0700

> That is odd - the two packets in question are being shown out of order,
> and looking at the IP ID field in their headers they were generated in
> the correct order.  The reason there is no retransmission is that the
> "missing" packet is the second one, and so it is received almost
> immediately and no retransmission is required.
> If you get the time to look into this in more detail I think it would be
> worth it.  The re-ordering must be happening after the IP header is
> generated (due to the IP IDs).  I wonder if your driver could be doing
> something odd, or if one of the packet lists inside lwIP is improperly
> sorted.

( BTW: This is strange.  I wrote this post and sent it 4 days ago. )
( I wondered what happened to it.  It just pops up on the mail list now! )
( I guess the FastMail freebe account I use for my forum stuff isn't so
fast. )
( I think I will switch over to my main Verizon account. )

I figured out the problem, or at least what the solution is.
In my HTTP_Task loop I had:

    if(IsLinked) ethernetif_input(net0);     // works, slow

I changed it to:

    if(IsLinked) while(ethernetif_input(net0));     // works very fast

That got rid of it.  Adding the "while()" made all the difference.
After this line I do a Yield() in the RTOS.
Apparently it was causing a delay in the middle of the packets
by the RTOS going over to other tasks, and not getting back for 10mSec.
That screw'd up the packet order I guess.

That's resolved.  I've got another small question, I will do a new post.

Thanks, Chris.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]