I've been lurking in listen-only mode since I don't know the netconn API.
The PC is sending as fast as it can, but the device is synchronized to
the storage speed, so incoming data needs to be buffered and eventually
slowed down, and that is what TCP tries to do.
However, your packet loss is a bigger problem (I didn't look into that,
stopped at the buffering stuff), which you just solved.
You can help TCP by providing a bigger intermediate buffer, but it will
only delay the real issue if the file is long enough.
Please don't take this as thread-hijacking:
On the RAW API I would delay my calls to tcp_recved() forcing TCP to
delay ACKs (perhaps this has some other issues ?). Is there any
mechanism for throttling in the netconn API ?
lwip-users mailing list