lwip-users
[Top][All Lists]
Advanced

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

RE: [lwip-users] TCP problem


From: Pettinato, Jim
Subject: RE: [lwip-users] TCP problem
Date: Thu, 22 Oct 2009 09:38:44 -0400

Is anyone else having feelings of déjà vu with this thread?? 

James M. Pettinato, Jr.
FMC Technologies Measurement Solutions Inc.

http://lists.nongnu.org/archive/html/lwip-devel/2008-04/msg00034.html


-----Original Message-----
From: address@hidden [mailto:address@hidden On Behalf Of Kieran Mansley
Sent: Thursday, October 22, 2009 7:01 AM
To: Mailing list for lwIP users
Subject: Re: [lwip-users] TCP problem

On Thu, 2009-10-22 at 12:33 +0200, Simon Goldschmidt wrote:
> Kieran Mansley wrote:
> > On Wed, 2009-10-21 at 17:04 +0200, address@hidden wrote:
> > > But is that really what we want (an bug free)? If so, we would 
> > > really need a compile-time check that TCP_WND is at least 
> > > 2*TCP_MSS (or only greater than TCP_MSS?) to prevent problems:
> > 
> > I think a compile time check would be a good idea.
> 
> Unless we fix it.
> 
> > 
> > >  If, in Jan's case, the
> > > remote side was lwIP, too, the connection would stall as the 
> > > window would never reopen because the remote side wouldn't be able 
> > > to send a 2-byte-segment. I know we can fix this in lwIP, too, but 
> > > there might be other embedded stacks having a problem with this?
> > 
> > I don't understand this new problem.
> 
> Looking at Jan's 1.3.1 trace, lwIP shrinks the window down to 2.

"shrinking the window" is a term generally reserved to describe the case where 
the stack moves the right edge of the window left.  i.e. it stop advertising 
sequence space in the window that it did before.  This breaks the TCP spec.  
Just to be clear that this is not what we're
doing: we keep the right edge constant, but because the sender uses some of the 
window the amount left that can be sent goes down.  

> At that moment (after a timeout, I guess), the remote side sends a 
> packet of length 2. This results in the window getting 0 (not
> advertised) and our algorithm opening the window by MSS (resulting in 
> a window of MSS).
> 
> *If* the remote side would be lwIP too, and it would have pre-splitted 
> segments on the unsent queue that are bigger than 2 bytes, it would 
> stall because lwIP currently cannot split segments that are already 
> created and thus wouldn't be able to send a 2-byte-segment that would 
> be necessary to reopen the window.
>
> I don't know if this is still a problem after we change the algorithm, 
> we'll have to see that.

If we mandate that TCP_WND is at least 2 MSS, then I think we would be OK.  Of 
if we add the window update condition of updating when the increment is "1 MSS 
or WND / 2" as suggested by David Empson then I think we'd be also be OK.  I 
vote for doing both.

Kieran



_______________________________________________
lwip-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/lwip-users




reply via email to

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