|
From: | SviMik |
Subject: | [lwip-devel] [bug #60415] Large data transmissions (from lwip to client) sometimes stop |
Date: | Sun, 18 Apr 2021 22:58:25 -0400 (EDT) |
User-agent: | Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 |
URL: <https://savannah.nongnu.org/bugs/?60415> Summary: Large data transmissions (from lwip to client) sometimes stop Project: lwIP - A Lightweight TCP/IP stack Submitted by: svimik Submitted on: Mon 19 Apr 2021 02:58:23 AM UTC Category: TCP Severity: 3 - Normal Item Group: Faulty Behaviour Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Planned Release: None lwIP version: Other _______________________________________________________ Details: I'm using lwIP 2.1.2. It works fine most of the time, but in some cases if I try to send large amount of data at high speed the transfer (from lwip to client) stops at some point and does not resume until one of the sides decide to close the connection. I tried to investigate with Wireshark and I see a group of 16 Dup ACK packets until the client gives up seemingly not satisfied with lwip response: https://svimik.com/lwipstall3a.pcapng [22MB] As a workaround I tried to wait for snd_queuelen to become zero before calling next tcp_write(). It fixes the problem, but (obviously) limits the throughput. My config is: #define MEMP_NUM_TCP_PCB_LISTEN 16 #define MEMP_NUM_TCP_PCB 1024 #define TCP_MSS 1460 #define TCP_SND_BUF (20 * TCP_MSS) #define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS)) #define TCP_MAXRTX 6 #define TCP_WND (8 * TCP_MSS) #define LWIP_TCP_SACK_OUT 0 #define LWIP_TCP_KEEPALIVE 1 #define TCP_KEEPIDLE_DEFAULT 5000 #define TCP_KEEPINTVL_DEFAULT 5000 #define TCP_KEEPCNT_DEFAULT 3 _______________________________________________________ Reply to this item at: <https://savannah.nongnu.org/bugs/?60415> _______________________________________________ Message sent via Savannah https://savannah.nongnu.org/
[Prev in Thread] | Current Thread | [Next in Thread] |