lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] TCP send queue and small windows


From: Vlad
Subject: Re: [lwip-users] TCP send queue and small windows
Date: Tue, 20 Mar 2007 12:18:07 +0200
User-agent: KMail/1.9.5

I've solved this by sending data with smaller chunks at a time ( i call 
tcp_write with TCP_MSS bytes at a time ). unfortunately this slows down 
uplink.

seems that this is issue with lwip, because i didn't see this problem with 
windows tcp/ip at the same machine, connecting the same server.

On Monday 19 March 2007 17:17, Per-Henrik Lundblom wrote:

> Hi,
>
> I am using lwIP on an ARM7 platform with somewhat limited resources
> regarding RAM. In my application I pump data between two devices (both
> running lwIP) in full duplex over one TCP link. To cope with lost
> packets and retransmissions (I'm running this over WLAN) I continously
> adjust the TCP receive window in both ends to reflect the free amount of
> pbuf:s.
>
> With this setup, I get the following problem: Both devices pump data, at
> about the same time both devices need to resend it's data. This causes
> data to be buffered and the free amount of pbufs to decrease which
> closes the receive window. Still data is enqueued in the TCP send queues
> via tcp_write. The packets assembled and queued in the unsent queue are
> MSS bytes large. At about the same time the receive windows in both ends
> falls below one MSS in size. This stalls everything.
>
> None of the devices can get rid of their buffered data because the
> buffered packets in the unsent queue are too large to be sent without
> being split. No such split mechanism seems to be implemented as I can
> see it.
>
> Have I understood this right? If yes, is the solution to implement
> fragmentation for the unacked/unsent queue in tcp_output()?
>




reply via email to

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