lwip-users
[Top][All Lists]
Advanced

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

[lwip-users] TCP send() fails when other sockets perform retransmissions


From: Daniel Pauli
Subject: [lwip-users] TCP send() fails when other sockets perform retransmissions
Date: Fri, 23 Dec 2016 17:22:30 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1

Hey there

I have a TCP client running on a Windows PC that communicates with a TCP server on a LWIP box. The client sends requests to the server in high frequency (polling) and receives responses of approx. 16 KB.

The problem: When a clients crashes (without being able to send FIN/RST because of e.g. temporary link down) and gets restarted, the server is unable to send responses over the new connection because send() blocks. This happens even though I'm using select() to determine if sockets are writable. I'm using a SO_SNDTIMEO of 3 seconds for tracking the problem down. Strangely, send() already returns after 1 second with EWOULDBLOCK.

I observed that LWIP performs TCP retransmissions on the socket from the crashed client. In my setting, these retransmissions are ignored by the PC (due to the Windows firewall). The problem resolves after approx 25 min when LWIP stops performing these retransmissions. After that, send() works again for new connections.

Any hints are greatly appreciated :)

Regards
Daniel



reply via email to

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