lwip-users
[Top][All Lists]
Advanced

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

[lwip-users] TCP send queue and small windows


From: Per-Henrik Lundblom
Subject: [lwip-users] TCP send queue and small windows
Date: Mon, 19 Mar 2007 16:17:40 +0100
User-agent: Mutt/1.5.9i

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()?

Take care...

/PH

--
Per-Henrik Lundblom           epost: address@hidden
telefon: 0733-20 71 26        hemsida: www.whatever.nu





reply via email to

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